summaryrefslogtreecommitdiffstats
path: root/RELEASE-CHECKLIST.md
diff options
context:
space:
mode:
authorAndrew Gallant <jamslam@gmail.com>2020-05-08 23:05:33 -0400
committerAndrew Gallant <jamslam@gmail.com>2020-05-08 23:24:40 -0400
commitfac47906e6a89aea254c8d323f016c11a8a5f904 (patch)
tree8da4d77c69f17b370284485ee097b468c85b2e25 /RELEASE-CHECKLIST.md
parente02bb6b99af117b3fb78e8e0b912fc9288e71a20 (diff)
doc: add a release checklist
The steps are numerous, subtle and complex enough that it's worth writing them down. In particular, getting the order correct is important. (i.e., If we released to crates.io first and the GitHub release infrastructure failed, then we'd be in a pickle.)
Diffstat (limited to 'RELEASE-CHECKLIST.md')
-rw-r--r--RELEASE-CHECKLIST.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/RELEASE-CHECKLIST.md b/RELEASE-CHECKLIST.md
new file mode 100644
index 00000000..b24cbdad
--- /dev/null
+++ b/RELEASE-CHECKLIST.md
@@ -0,0 +1,19 @@
+Release Checklist
+-----------------
+* Run `cargo update` and review dependency updates. Commit updated
+ `Cargo.lock`.
+* Review changes for every crate in `crates` since the last ripgrep release.
+ If the set of changes is non-empty, issue a new release for that crate.
+* Edit the `Cargo.toml` to set the new ripgrep version. Run
+ `cargo update -p ripgrep` so that the `Cargo.lock` is updated. Commit the
+ changes.
+* Create a new signed tag for the ripgrep release. Push it to GitHub.
+* Wait for CI to finish creating the release. If the release build fails, then
+ delete the tag from GitHub, make fixes, re-tag, delete the release and push.
+* Copy the relevant section of the CHANGELOG to the tagged release notes.
+* Run `ci/build-deb` locally and manually upload the deb package to the
+ release.
+* Run `cargo publish`.
+* Run `ci/sha256-releases >> pkg/brew/ripgrep-bin.rb`. Then edit
+ `pkg/brew/ripgrep-bin.rb` to update the version numbers and sha256 hashes.
+ Remove extraneous stuff added by `ci/sha256-releases`. Commit changes.