diff options
author | Lars Wirzenius <liw@liw.fi> | 2021-09-13 09:10:28 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2021-09-13 09:10:28 +0000 |
commit | 2107fccc5a82216263e5b2d90b40b0e1db0e5430 (patch) | |
tree | 518f30a6feba36159cd96a6591eb6298c764de9e | |
parent | 5b19853bbf6ed1dcb1a0b6150f042de8da75c8a3 (diff) | |
parent | 01db2f0e209791f797a5f2f7bc07a08286ec6478 (diff) | |
download | obnam2-2107fccc5a82216263e5b2d90b40b0e1db0e5430.tar.gz |
Merge branch 'release-process' into 'main'
docs: update RELEASE.md to streamline the process
Closes #121
See merge request obnam/obnam!177
-rw-r--r-- | RELEASE.md | 70 |
1 files changed, 43 insertions, 27 deletions
@@ -1,39 +1,55 @@ --- -title: Release checklist for Obnam2 +title: Release checklist for Obnam ... -# Release checklist for Obnam2 +# Release checklist for Obnam -Follow these steps to make a release of Obnam2. +Follow these steps to make a release of Obnam. -* create a `release` branch -* update `NEWS` with changes for the new release -* update the version number everywhere it needs to be updated; use - [semantic versioning][] - - `NEWS` - - `debian/changelog` - - `Cargo.toml` -* commit everything -* push changes to gitlab, create merge request, merge, pull back to - local `main` branch -* create a signed, annotated git tag `vX.Y.Z` for version X.Y.Z for +1. Create a `release` branch. + - `git checkout -b release` +2. Update dependencies for the crate, and make any needed changes. + - `cargo update` + - `cargo outdated` +3. Make sure everything still works. + - `./check` +4. Review changes in the crate (`git log vX.Y.Y..`). Update the `NEWS.md` + file with any changes that users of Obnam need to be aware of. +5. Update the crate's `Cargo.toml` with the appropriate version number + for the new release, following [semantic versioning][]. +6. Update `debian/changelog` with a summary of any changes to the + Debian packaging (it's not necessary to repeat `NEWS.md` here). Use + the `dch` command to edit the file to get the format right, since + it's quite finicky. + - `dch -v X.Y.Z-1 "New release."` + - `dch "Changed this thing: foo."` + - `dch -r ""` +7. Commit any changes. +8. Run `cargo publish --dry-run` and fix any problems. +9. Push to gitlab.com and create a merge request. +10. Wait for GitLab CI to test the changes successfully. Fix any + problems it finds. + +After the above changes have been merged, do the following steps. You +need to have sufficient access to both the gitlab.com project and the +git.liw.fi project. Currently that means only Lars can do this. These +steps can hopefully be automated in the future. + +1. Pull down the above changes from GitLab. +2. Create a signed, annotated git tag `vX.Y.Z` for version X.Y.Z for the release commit -* push tag to `gitlab.com` and `git.liw.fi` -* publish Obnam crate to crates.io. -* announce new release + - `git tag -sam "Obnam version X.Y.Z" vX.Y.Z` +3. Push tags to `gitlab.com` and `git.liw.fi` (substitute whatever + names you use for the remotes): + - `git push --tags gitlab` + - `git push --tags origin` +4. Wait for Lars's Ick CI to build the release. +5. Publish Obnam crate to crates.io: + - `cargo publish` +6. Announce new release: - obnam.org blog, possibly other blogs - `#obnam` IRC channel - Obnam room on Matrix - social media -* prepare `main` branch for further development - - create new branch - - update version number again by adding `+git` to it - - add a new entry to `NEWS` with the `+git` version - - ditto `debian/changelog` - - commit - - push to gitlab, create MR, merge, pull back down to local `main` - -* continue development - [semantic versioning]: https://semver.org/ |