ripgrep/RELEASE-CHECKLIST.md
Andrew Gallant 4b8e1f030e
doc: add more detail to release checklist
Getting the crate order right is important, so document it.
2020-05-09 11:12:51 -04:00

1.7 KiB

Release Checklist

  • 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.
  • 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)
  • 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. Alternatively, use cargo-up --no-push --no-release Cargo.toml {VERSION}.
  • Create a new signed tag for the ripgrep release. Push it to GitHub.
  • 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.
  • Run ci/build-deb locally and manually upload the deb package to the release.
  • Run cargo publish.
  • Run ci/sha256-releases >> pkg/brew/ripgrep-bin.rb. Then edit pkg/brew/ripgrep-bin.rb to update the version numbers and sha256 hashes. Remove extraneous stuff added by ci/sha256-releases. Commit changes.