summaryrefslogtreecommitdiffstats
path: root/doc/release-checklist.md
blob: 2194e64d08dbaee77484fd5fc7a953a6c0c6ee3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Release checklist

## Dependencies

See this page for a good overview: https://deps.rs/repo/github/sharkdp/bat

- [ ] Optional: update dependencies with `cargo update`. This is also done
      by dependabot, so it is not strictly necessary.
- [ ] Check for outdated dependencies (`cargo outdated`) and decide for each
      of them whether we want to (manually) upgrade. This will require changes
      to `Cargo.toml`.

## 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
      `grep '^\s*MIN_SUPPORTED_RUST_VERSION' .github/workflows/CICD.yml`.
- [ ] Update the version and the min. supported Rust version in `README.md` and
      `doc/README-*.md`.
- [ ] Update `CHANGELOG.md`. Introduce a section for the new release and prepare
      a new (empty) "unreleased" section at the top.

## Update syntaxes and themes (build assets)

- [ ] Install the latest master version (`cargo install -f --path .`) and make
      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

- [ ] Review the `-h` and `--help` texts
- [ ] Review the `man` page

## Pre-release checks

- [ ] 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 this,
      install the latest `bat` version again (to include the new syntaxes/themes).
- [ ] Run `cargo publish --dry-run --allow-dirty` to make sure that it will succeed
      later (after creating the GitHub release).

## Release

- [ ] Create a tag and push it to the remote `git tag vX.Y.Z; git push --tags`.
      This will trigger the deployment via GitHub Actions.
- [ ] Create a new release on GitHub: https://github.com/sharkdp/bat/releases/new
      Select the new tag and also use it as the release title. Copy the
      corresponding section from `CHANGELOG.md` and possibly add remarks for
      package maintainers. Publish the release.
- [ ] Check if the binary deployment works (archives and Debian packages should
      appear when the CI run for the Git tag has finished).
- [ ] Publish to crates.io by cloning *a fresh repository* and calling `cargo publish`.

## Post release

- [ ] Optional: inform package maintainers about the update:
    - https://www.archlinux.org/packages/community/x86_64/bat/