1Release Checklist 2----------------- 3* Ensure local `master` is up to date with respect to `origin/master`. 4* Run `cargo update` and review dependency updates. Commit updated 5 `Cargo.lock`. 6* Run `cargo outdated` and review semver incompatible updates. Unless there is 7 a strong motivation otherwise, review and update every dependency. Also 8 run `--aggressive`, but don't update to crates that are still in beta. 9* Review changes for every crate in `crates` since the last ripgrep release. 10 If the set of changes is non-empty, issue a new release for that crate. Check 11 crates in the following order. After updating a crate, ensure minimal 12 versions are updated as appropriate in dependents. If an update is required, 13 run `cargo-up --no-push crates/{CRATE}/Cargo.toml`. 14 * crates/globset 15 * crates/ignore 16 * crates/cli 17 * crates/matcher 18 * crates/regex 19 * crates/pcre2 20 * crates/searcher 21 * crates/printer 22 * crates/grep (bump minimal versions as necessary) 23 * crates/core (do **not** bump version, but update dependencies as needed) 24* Update the CHANGELOG as appropriate. 25* Edit the `Cargo.toml` to set the new ripgrep version. Run 26 `cargo update -p ripgrep` so that the `Cargo.lock` is updated. Commit the 27 changes and create a new signed tag. Alternatively, use 28 `cargo-up --no-push --no-release Cargo.toml {VERSION}` to automate this. 29* Wait for CI to finish creating the release. If the release build fails, then 30 delete the tag from GitHub, make fixes, re-tag, delete the release and push. 31* Copy the relevant section of the CHANGELOG to the tagged release notes. 32 Include this blurb describing what ripgrep is: 33 > In case you haven't heard of it before, ripgrep is a line-oriented search 34 > tool that recursively searches the current directory for a regex pattern. 35 > By default, ripgrep will respect gitignore rules and automatically skip 36 > hidden files/directories and binary files. 37* Run `ci/build-deb` locally and manually upload the deb package to the 38 release. 39* Run `cargo publish`. 40* Run `ci/sha256-releases {VERSION} >> pkg/brew/ripgrep-bin.rb`. Then edit 41 `pkg/brew/ripgrep-bin.rb` to update the version number and sha256 hashes. 42 Remove extraneous stuff added by `ci/sha256-releases`. Commit changes. 43* Add TBD section to the top of the CHANGELOG: 44 ``` 45 TBD 46 === 47 Unreleased changes. Release notes have not yet been written. 48 ``` 49 50Note that 51[`cargo-up` can be found in BurntSushi's dotfiles](https://github.com/BurntSushi/dotfiles/blob/master/bin/cargo-up). 52