-
-
Notifications
You must be signed in to change notification settings - Fork 99
Release Checklist
-
Make sure the Test Suite passes.
⚠️ If the current
master
branch is not passing any of the required remote CI tests or fails locally you should not be even starting the release steps.At this stage you are encouraged to use the
make prerelease
target at will to make sure everything runs as expected. -
Start clean. 🆕
These steps are drastic but recommended. Don't run them if you have uncommitted work in your repository!
git checkout master git fetch --all git reset --hard upstream/master
-
Fetch the tooling used for cutting releases. 🔧
You need this Javascript baggage to generate the ChangeLog and other stuff that will happen automatically while making the release. No you may not fake it by hand.
npm install
-
Make autoconf tools happy. 👢
./bootstrap.sh ./configure
-
Cut the release. 🏷️
This will bump the release version, update the ChangeLog, and tag the corresponding commit.
make release-preview make release
The release version number will be guessed automatically based on commit messages since the last release. To override this if the preview doesn't look good add
RELTYPE=patch
,RELTYPE=minor
, orRELTYPE=major
for other version bump types. -
Push tag. ⬆️
Temporarily disable "include administrators" in master branch protection
# Pushes both branch and tags at once git push upstream --tags :
-
Update website. 📰
- Copy PDF manual to website repository, symlink to latest, update link in menu, commit, push.
- Copy changelog and massage the significant bits into a blog post about the release.
-
Update any distros we can. 🔨
- Submit Arch Linux out-of-date flag on sile package (@alerque can update).
- Submit update to Void Linux package.
- Submit update to Homebrew formula.
- Submit update to NixOS package.
- Build and push to Docker Hub
make docker-build-push DOCKER_TAG=v0.11.1
- Ping other distro managers (repology).
-
Let the world know. 📢
Twitter, etc.
-
Pave the way for the next release. 🏁
- Review milestones, move any postponed issues to next release, close current release, rename next
*.x
milestone to next version number, add new*.x
milestone for non-planned issues.
- Review milestones, move any postponed issues to next release, close current release, rename next
-
Eat cake. 🍰
See full release checklist for howto, this is just a checklist version:
Previous: release vX.Y.Z, checklist #NNNN.
- Shuffle any issues being put off to future milestones
- Close all issues in current milestone (except this one)
- Spring clean
- Re-fetch tooling
- Configure and build
- Pass all tests
- Remote CI
- Local
- Cut release
- Push release commit & tag to master
- Download release artifacts, GPG sign, and upload signatures
- Publish release build to craties.io
- Publish rusile library to craties.io
- Update website
- Copy and post manual, update 'latest' symlink and menu links
- Copy changelog and prefix with a summary as a blog post
- Tweak summary for gfm and edit into GitHub release notes
- Update downstream distro packages
- Bump downstream projects
- Eat cake