Selaa lähdekoodia

Add release checklist

David Peter 1 vuosi sitten
vanhempi
sitoutus
aaf3943618
1 muutettua tiedostoa jossa 53 lisäystä ja 0 poistoa
  1. 53 0
      assets/release-checklist.md

+ 53 - 0
assets/release-checklist.md

@@ -0,0 +1,53 @@
+# 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
+
+- [ ] Get the latest version by running `git tag | sort -V | tail -n1`
+      or `grep ^version numbat/Cargo.toml`.
+- [ ] Check if there are any changes in `numbat-exchange-rates` since the
+      last release by running `git diff vX.Y.Z.. numbat-exchange-rates`. If that
+      is the case, bump the version in `numbat-exchange-rates/Cargo.toml`.
+- [ ] Update versions and dependencies in the following files:
+      ```
+      numbat/Cargo.toml numbat-cli/Cargo.toml
+      ```
+      `Cargo.toml`. Run `cargo build` to update `Cargo.lock`.
+      Make sure to `git add` the `Cargo.lock` changes as well.
+- [ ] Update the `numbat` version in `book/src/cli-installation.md`.
+- [ ] Run `deploy.sh` (or at least `build.sh`) in `numbat-wasm/` to
+      update the `Cargo.lock` file.
+
+## Pre-release checks and updates
+
+- [ ] Install the latest version (`cargo install -f --path numbat-cli`) and make
+      sure that it is available on the `PATH` (`numbat --version` should show the
+      new version).
+- [ ] Push all changes and wait for CI to succeed (before continuing with the
+      next section).
+- [ ] Run `cargo publish --dry-run -p numbat` 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/numbat/releases/new to create the new
+      release. Select the new tag and also use it as the release title. Autogenerate
+      the release notes, edit, and then 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.
+      ``` bash
+      # optional, if there were any changes:
+      cargo publish -p numbat-exchange-rates
+
+      cargo publish -p numbat
+      cargo publish -p numbat-cli
+      ```
+- [ ] Deploy the documentation by running `bash book/deploy.sh`.