Release Checklist ----------------- This checklist is based on ripgrep release process . * Ensure local `main` is up to date with respect to `origin/main`. * Make sure that `rustc --version` matches MSRV. * Run `cargo update` and review dependency updates. Commit updated `Cargo.lock`. * Run `cargo outdated -d 1` and review semver incompatible updates. Unless there is a strong motivation otherwise, review and update every dependency. * Run `cargo test` or `cargo msrv` to check if MSRV needs to be bumped. If MSRV must be updated, update `rust-version` key in Cargo.toml as well as the MSRV version mentioned in the readme. * Run `cargo deny check` and check output. Update dependencies as necessary. * Update the CHANGELOG as appropriate. * Edit the `Cargo.toml` to set the new jolly version. Run `cargo update -p jolly` so that the `Cargo.lock` is updated. Commit the changes and create a new signed tag. * Push changes to GitHub, NOT including the tag. (But do not publish new version of jolly 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 jolly is: > tbd * Run `cargo publish`. * Add TBD section to the top of the CHANGELOG: ``` TBD === Unreleased changes. Release notes have not yet been written. ```