mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2024-12-12 19:18:24 +02:00
60 lines
2.9 KiB
Markdown
60 lines
2.9 KiB
Markdown
# Release Checklist
|
|
|
|
* Ensure local `master` is up to date with respect to `origin/master`.
|
|
* Run `cargo update` and review dependency updates. Commit updated
|
|
`Cargo.lock`.
|
|
* Run `cargo outdated` and review semver incompatible updates. Unless there is
|
|
a strong motivation otherwise, review and update every dependency. Also
|
|
run `--aggressive`, but don't update to crates that are still in beta.
|
|
* Update date in `crates/core/flags/doc/template.rg.1`.
|
|
* Review changes for every crate in `crates` since the last ripgrep release.
|
|
If the set of changes is non-empty, issue a new release for that crate. Check
|
|
crates in the following order. After updating a crate, ensure minimal
|
|
versions are updated as appropriate in dependents. If an update is required,
|
|
run `cargo-up --no-push crates/{CRATE}/Cargo.toml`.
|
|
* crates/globset
|
|
* crates/ignore
|
|
* crates/cli
|
|
* crates/matcher
|
|
* crates/regex
|
|
* crates/pcre2
|
|
* crates/searcher
|
|
* crates/printer
|
|
* crates/grep (bump minimal versions as necessary)
|
|
* crates/core (do **not** bump version, but update dependencies as needed)
|
|
* Update the CHANGELOG as appropriate.
|
|
* Edit the `Cargo.toml` to set the new ripgrep version. Run
|
|
`cargo update -p ripgrep` so that the `Cargo.lock` is updated. Commit the
|
|
changes and create a new signed tag. Alternatively, use
|
|
`cargo-up --no-push --no-release Cargo.toml {VERSION}` to automate this.
|
|
* Run `cargo package` and ensure it succeeds.
|
|
* Push changes to GitHub, NOT including the tag. (But do not publish a new
|
|
version of ripgrep to crates.io yet.)
|
|
* Once CI for `master` finishes successfully, push the version tag. (Trying to
|
|
do this in one step seems to result in GitHub Actions not seeing the tag
|
|
push and thus not running the release workflow.)
|
|
* Wait for CI to finish creating the release. If the release build fails, then
|
|
delete the tag from GitHub, make fixes, re-tag, delete the release and push.
|
|
* Copy the relevant section of the CHANGELOG to the tagged release notes.
|
|
Include this blurb describing what ripgrep is:
|
|
> In case you haven't heard of it before, ripgrep is a line-oriented search
|
|
> tool that recursively searches the current directory for a regex pattern.
|
|
> By default, ripgrep will respect gitignore rules and automatically skip
|
|
> hidden files/directories and binary files.
|
|
* Run `git checkout {VERSION} && ci/build-and-publish-m2 {VERSION}` on a macOS
|
|
system with Apple silicon.
|
|
* Run `cargo publish`.
|
|
* Run `ci/sha256-releases {VERSION} >> pkg/brew/ripgrep-bin.rb`. Then edit
|
|
`pkg/brew/ripgrep-bin.rb` to update the version number and sha256 hashes.
|
|
Remove extraneous stuff added by `ci/sha256-releases`. Commit changes.
|
|
* Add TBD section to the top of the CHANGELOG:
|
|
```
|
|
TBD
|
|
===
|
|
Unreleased changes. Release notes have not yet been written.
|
|
```
|
|
|
|
Note that [`cargo-up` can be found in BurntSushi's dotfiles][dotfiles].
|
|
|
|
[dotfiles]: https://github.com/BurntSushi/dotfiles/blob/master/bin/cargo-up
|