on master help sign in
Add refined version of release checklist
05e4e1fDavid Peter
doc/release-checklist.md+59−26
@@ -1,27 +1,60 @@
1−Release checklist:
1+# Release checklist
2−
2+
3−- [ ] Check for outdated dependencies (`cargo outdated`)
3+## Dependencies
4−- [ ] Optional: update dependencies with `cargo update`.
4+
5− See also https://deps.rs/repo/github/sharkdp/bat
5+See this page for a good overview: https://deps.rs/repo/github/sharkdp/bat
6−- [ ] Update syntaxes and themes (`cargo install -f --path .; assets/create.sh`).
6+
7−- [ ] Update README (features, usage, languages, ..).
7+- [ ] Optional: update dependencies with `cargo update`. This is also done
8+ by dependabot, so it is not strictly necessary.
9+- [ ] Check for outdated dependencies (`cargo outdated`) and decide for each
10+ of them whether we want to (manually) upgrade. This will require changes
11+ to `Cargo.toml`.
12+
13+## Version bump
14+
15+- [ ] Update version in `Cargo.toml`. Run `cargo build` to update `Cargo.lock`.
16+ Make sure to `git add` the `Cargo.lock` changes as well.
17+- [ ] Find the current min. supported Rust version by running
18+ `grep '^\s*MIN_SUPPORTED_RUST_VERSION' .github/workflows/CICD.yml`.
19+- [ ] Update the version and the min. supported Rust version in `README.md` and
20+ `doc/README-*.md`.
21+- [ ] Update `CHANGELOG.md`. Introduce a section for the new release and prepare
22+ a new (empty) "unreleased" section at the top.
23+
24+## Update syntaxes and themes (build assets)
25+
26+- [ ] Install the latest master version (`cargo install -f --path .`) and make
27+ sure that it is available on the `PATH` (`bat --version` should show the
28+ new version).
29+- [ ] Run `assets/create.sh` and check in the binary asset files.
30+
31+## Documentation
32+
33+- [ ] Review the `-h` and `--help` texts
8−- [ ] Update man page
34+- [ ] Review the `man` page
9−
35+
10−
36+## Pre-release checks
11−- [ ] Update version in `Cargo.toml`. Run `cargo build` to update `Cargo.lock`
37+
12−- [ ] Update version in README and possibly update minimum Rust version
38+- [ ] Push all changes and wait for CI to succeed (before continuing with the next
13−- [ ] Run `cargo fmt`
39+ section).
14−- [ ] Run `cargo test`
15−- [ ] Run `cargo install --path . -f`
16−- [ ] Test new features & command-line options
40+- [ ] Optional: manually test the new features and command-line options. To do this,
17−- [ ] Check `-h` and `--help` texts
41+ install the latest `bat` version again (to include the new syntaxes/themes).
18−
19−
20−- [ ] `cargo publish --dry-run --allow-dirty`.
42+- [ ] Run `cargo publish --dry-run --allow-dirty` to make sure that it will succeed
21−- [ ] write GitHub release notes
43+ later (after creating the GitHub release).
22−- [ ] check if CI succeeds
44+
45+## Release
46+
23−- [ ] `git tag vX.Y.Z; git push --tags`
47+- [ ] Create a tag and push it to the remote `git tag vX.Y.Z; git push --tags`.
24−- [ ] check binaries (that were uploaded via Travis/AppVeyor)
48+ This will trigger the deployment via GitHub Actions.
49+- [ ] Create a new release on GitHub: https://github.com/sharkdp/bat/releases/new
50+ Select the new tag and also use it as the release title. Copy the
51+ corresponding section from `CHANGELOG.md` and possibly add remarks for
52+ package maintainers. Publish the release.
53+- [ ] Check if the binary deployment works (archives and Debian packages should
54+ appear when the CI run for the Git tag has finished).
25−- [ ] publish to crates.io by cloning a fresh repo and calling `cargo publish`.
55+- [ ] Publish to crates.io by cloning *a fresh repository* and calling `cargo publish`.
56+
57+## Post release
58+
26−- [ ] Inform package maintainers about the update:
59+- [ ] Optional: inform package maintainers about the update:
27 - https://www.archlinux.org/packages/community/x86_64/bat/
60 - https://www.archlinux.org/packages/community/x86_64/bat/