-
Notifications
You must be signed in to change notification settings - Fork 328
Release checklist
Camilo QS edited this page May 31, 2019
·
20 revisions
Put your ideas in the "Brainstorming" section if you don't know when they should be done. If you know when, put it directly in the corresponding section. Feel free to reorder items in each section (things to be done first go upper). Eventually, Brainstorming will become empty and the list will be time-ordered :)
- Is the cherry-picking advice for beta releases the best idea?
- Testing
- Put out a call for testing on your personal instance
- Possibly upgrade one or two public nodes?
- Write instructions for upgrading for semver-major releases
- Update installation instructions in readthedocs (or version it?)
- Send a note about the release
- Tweet about the release?
- Invite to upgrade public nodes
- Contact maintainers of prominent nodes?
tl;dr: master is considered the latest alpha, the latest beta is on the beta branch, and each stable release gets its own maintenance branch. Changes are propagated with merges when it makes sense, otherwise cherry-picks are used. Change log entries are always added on master and then merged/cherry-picked into other branches; version number bumps happen only on the relevant branch.
- Push to
master - Have
package.jsonversionend with-alpha.0 - Bump semver-major as necessary
- Don't ever publish to npm
- Update docs' prose, if necessary
- README.md prerequisites
- README.md colophon
- Manpage text
- Change log
- Prepare change log entries on
master - Merge
- See below - this depends on the type of release
- When resolving
package.jsonconflicts keep the"version":line that came frommaster(this is because if you modify it to have the desired version number,npm versionwill refuse to run)
- Run
npm version(updates all version numbers and the manpage timestamp, then commits, tags and pushes) - havepackage.jsonversionend with-beta.NwhereNis the beta iteration (starting at zero)- Run
npm versionwith the exact desired version number - Run
npm versionon thebetabranch npm publish
- Run
npm publish --tag beta- Update GitHub Releases (TODO: this should be automated)
- Announcement mailing list post
- To merge, checkout
betaand perform a merge frommaster
To merge:
- Prepare fixes on
master - If it's possible to merge
mastertobetawithout introducing unwanted changes, then do so - otherwise cherry-pick relevant commits (including the change log update)
- Update docs' prose, if necessary
- README.md prerequisites
- README.md colophon
- Manpage text
- Change log
- Follow release-dependent instructions (see below)
- Run
npm version(updates all version numbers and the manpage timestamp, then commits, tags and pushes)- Do this on the release branch
npm publish- Update GitHub Releases (TODO: this should be automated)
- Announcement mailing list post
- Prepare change log entries on
masterand cherry-pick tobeta - Branch
A.B.xoff thebetabranch, whereAis the major version andBis the minor version (do not indicate patch version in the branch name) - Bump semver-minor on
master(don't usenpm version) - Enable Travis branch cronjob for Docker
- When pushing patch releases, commit the fix to
masterthen cherry-pick the commit to the release branch - Cherry-pick the change log update to the release branch