summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Peter <mail@david-peter.de>2022-09-27 21:36:12 +0200
committerDavid Peter <sharkdp@users.noreply.github.com>2022-10-13 22:52:09 +0200
commit425703420929d0bbe83b592abe4e2d2e20885132 (patch)
tree277caae4a0e7e50bfb3a35f6a1bbb09373812aa7
parent0984ed91eacb0823d192a22e37e1f1b427c189c4 (diff)
Add release checklist for maintainers
-rw-r--r--doc/release-checklist.md63
1 files changed, 63 insertions, 0 deletions
diff --git a/doc/release-checklist.md b/doc/release-checklist.md
new file mode 100644
index 0000000..9983304
--- /dev/null
+++ b/doc/release-checklist.md
@@ -0,0 +1,63 @@
+# Release checklist
+
+This file can be used as-is, or copied into the GitHub PR description which includes
+necessary changes for the upcoming release.
+
+## Version bump
+
+- [ ] Create a new branch for the required changes for this release.
+- [ ] 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 `fd` version and the min. supported Rust version in `README.md`.
+- [ ] Update `CHANGELOG.md`. Change the heading of the *"Upcoming release"* section
+ to the version of this release.
+
+## Pre-release checks and updates
+
+- [ ] Install the latest version (`cargo install --locked -f --path .`) and make
+ sure that it is available on the `PATH` (`fd --version` should show the
+ new version).
+- [ ] Review `-h`, `--help`, and the `man` page.
+- [ ] Run `fd -h` and copy the output to the *"Command-line options"* section in
+ the README
+- [ ] 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 described
+ in the `CHANGELOG.md`.
+- [ ] Run `cargo publish --dry-run` to make sure that it will succeed later
+ (after creating the GitHub release).
+
+## Release
+
+- [ ] Create a tag and push it: `git tag vX.Y.Z; git push origin tag vX.Y.Z`.
+ This will trigger the deployment via GitHub Actions.
+ REMINDER: If your `origin` is a fork, don't forget to push to e.g. `upstream`
+ instead.
+- [ ] Go to https://github.com/sharkdp/fd/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.
+- [ ] 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 running `cargo publish` in a *clean* repository.
+ One way to do this is to clone a fresh copy.
+
+## Post-release
+
+- [ ] Prepare a new *"Upcoming release"* section at the top of `CHANGELOG.md`.
+ Put this at the top:
+ ```
+ # Upcoming release
+
+ ## Features
+
+ ## Bugfixes
+
+ ## Changes
+
+ ## Other
+
+ ```