2021-08-21 22:55:55 +02:00
|
|
|
# Release checklist
|
|
|
|
|
|
|
|
## Version bump
|
|
|
|
|
|
|
|
- [ ] Update version in `Cargo.toml`. Run `cargo build` to update `Cargo.lock`.
|
|
|
|
Make sure to `git add` the `Cargo.lock` changes as well.
|
|
|
|
- [ ] Find the current min. supported Rust version by running
|
2023-03-25 09:39:45 +01:00
|
|
|
`cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].rust_version'`.
|
2021-08-21 22:55:55 +02:00
|
|
|
- [ ] Update the version and the min. supported Rust version in `README.md` and
|
2022-05-09 08:35:27 +02:00
|
|
|
`doc/README-*.md`. Check with
|
|
|
|
`git grep -i -e 'rust.*1\.' -e '1\..*rust' | grep README | grep -v tests/`.
|
2022-01-07 09:30:54 +01:00
|
|
|
- [ ] Update `CHANGELOG.md`. Introduce a section for the new release.
|
2021-08-21 22:55:55 +02:00
|
|
|
|
|
|
|
## Update syntaxes and themes (build assets)
|
|
|
|
|
2022-05-09 08:36:24 +02:00
|
|
|
- [ ] Install the latest master version (`cargo clean && cargo install --locked -f --path .`) and make
|
2021-08-21 22:55:55 +02:00
|
|
|
sure that it is available on the `PATH` (`bat --version` should show the
|
|
|
|
new version).
|
|
|
|
- [ ] Run `assets/create.sh` and check in the binary asset files.
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
2022-12-30 09:16:07 +01:00
|
|
|
- [ ] Review [`-h`](./short-help.txt), [`--help`](./long-help.txt), and the `man` page. The `man` page is shown in
|
2022-05-06 07:33:32 +02:00
|
|
|
the output of the CI job called *Documentation*, so look there.
|
2022-05-09 08:37:49 +02:00
|
|
|
The CI workflow corresponding to the tip of the master branch is a good place to look.
|
2021-08-21 22:55:55 +02:00
|
|
|
|
|
|
|
## Pre-release checks
|
|
|
|
|
2021-08-21 23:01:29 +02:00
|
|
|
- [ ] Push all changes and wait for CI to succeed (before continuing with the
|
|
|
|
next section).
|
|
|
|
- [ ] Optional: manually test the new features and command-line options. To do
|
2022-01-07 09:30:54 +01:00
|
|
|
this, install the latest `bat` version again (to include the new syntaxes
|
2021-08-21 23:01:29 +02:00
|
|
|
and themes).
|
2022-05-09 08:39:27 +02:00
|
|
|
- [ ] Run `cargo publish --dry-run` to make sure that it will
|
2021-08-21 23:01:29 +02:00
|
|
|
succeed later (after creating the GitHub release).
|
2021-08-21 22:55:55 +02:00
|
|
|
|
|
|
|
## Release
|
|
|
|
|
2021-08-23 20:08:04 +02:00
|
|
|
- [ ] Create a tag and push it: `git tag vX.Y.Z; git push origin tag vX.Y.Z`.
|
2021-08-21 22:55:55 +02:00
|
|
|
This will trigger the deployment via GitHub Actions.
|
2022-02-27 08:50:21 +01:00
|
|
|
REMINDER: If your `origin` is a fork, don't forget to push to e.g. `upstream` instead!
|
2021-08-21 23:01:29 +02:00
|
|
|
- [ ] Go to https://github.com/sharkdp/bat/releases/new to create the new
|
|
|
|
release. Select the new tag and also use it as the release title. For the
|
|
|
|
release notes, copy the corresponding section from `CHANGELOG.md` and
|
|
|
|
possibly add additional remarks for package maintainers.
|
|
|
|
Publish the release.
|
2021-08-21 22:55:55 +02:00
|
|
|
- [ ] Check if the binary deployment works (archives and Debian packages should
|
|
|
|
appear when the CI run for the Git tag has finished).
|
2021-08-21 23:01:29 +02:00
|
|
|
- [ ] Publish to crates.io by running `cargo publish` in a *clean* repository.
|
2021-08-22 09:37:24 +02:00
|
|
|
The safest way to do this is to clone a fresh copy.
|
2022-01-07 09:30:54 +01:00
|
|
|
|
|
|
|
## Post-release
|
|
|
|
|
2022-02-27 08:40:56 +01:00
|
|
|
- [ ] Prepare a new "unreleased" section at the top of `CHANGELOG.md`.
|
|
|
|
Put this at the top:
|
|
|
|
|
|
|
|
```
|
|
|
|
# unreleased
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
## Bugfixes
|
|
|
|
|
|
|
|
## Other
|
|
|
|
|
|
|
|
## Syntaxes
|
|
|
|
|
|
|
|
## Themes
|
|
|
|
|
|
|
|
## `bat` as a library
|
|
|
|
|
|
|
|
|
2023-03-25 09:39:45 +01:00
|
|
|
```
|