summaryrefslogtreecommitdiff
path: root/RELEASE.md
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2021-06-12 16:15:35 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2021-06-12 16:15:35 +0100
commit69832859de8952ee1dfd4245531f28997f7dfa94 (patch)
tree04d97bad287421338a4c7e65264c241883398858 /RELEASE.md
parent43b95807dc971c6eb7dcb10580dac18e922d2042 (diff)
downloadsubplot-69832859de8952ee1dfd4245531f28997f7dfa94.tar.gz
chore: Add basic release and news files
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'RELEASE.md')
-rw-r--r--RELEASE.md42
1 files changed, 42 insertions, 0 deletions
diff --git a/RELEASE.md b/RELEASE.md
new file mode 100644
index 0000000..f17623a
--- /dev/null
+++ b/RELEASE.md
@@ -0,0 +1,42 @@
+---
+title: Release process for Subplot
+...
+
+The subplot project consists of serveral crates, any step which refers to the
+`Cargo.toml` or `Cargo.lock` files should be repeated for all crates. Currently
+the set of crates to consider for release is:
+
+- `subplotlib-derive`
+- `subplotlib`
+- `subplot`
+
+When determining if a new version of a crate is required, use `git log` with
+appropriate filters.
+
+Before any release of Subplot, it is appropriate to ensure that versions of
+dependencies have been updated where needed. You may want to do this on a
+different branch, or as part of the release branch.
+
+Follow these steps to make a release of Subplot
+
+1. Create a branch on which to do the release (e.g. call it `release`)
+2. Ensure dependencies are up-to-date, for example, `cargo update` and its
+ associated tool `cargo outdated` will be of help.
+3. Update `NEWS.md` as appropriate
+4. Update the version numbers everywhere they need to be updated. Use
+ [semantic versioning](https://semver.org/) appropriately. You may use
+ the [bumper](https://bumper.liw.fi/) tool to do this.
+ - `NEWS.md`
+ - `Cargo.toml`
+ - `debian/changelog`
+5. Ensure everything is appropriately committed with good messages.
+6. Run `cargo publish --dry-run` for each crate as needed, to ensure that
+ we will be okay to publish the crates later.
+7. Push the branch to Gitlab and create the merge request.
+8. Have someone review, approve (assuming green CI), and merge the release
+ branch.
+9. Create a signed, annotated, Git tag `vX.Y.Z` for version `X.Y.Z` of Subplot.
+10. Push the tag to Gitlab and to `git.liw.fi`
+11. Publish any changed crates to `crates.io` with `cargo publish` in the
+ relevant directories.
+12. Announce our jubilation to the world.