Release guidelines
In this document, 123 is a placeholder for the current release number, and 124 for the following release number.
Beta releases
Beta release
devbranch: updateCHANGELOG.md. Change theUnreleasedheading to123.0.0-beta.0.devbranch: update the user manual URL if necessary.- Create a
release/123.0branch using thedevbranch. release/123.0branch: update thepackage.jsonversion string to123.0.0-beta.0. Runnpm installto updatepackage-lock.json.- Create a
v123.0.0-beta.0tag using the release branch. - Test the release branch. Make any required fixes in the
devbranch, and merge them into the release branch. Ideally, bump the version and create a new tag every time changes are merged. If you don't want to bump the version, remember to destroy and recreate the latest tag. - Create packages from the release branch.
After beta release
devbranch: updateCHANGELOG.md. Create a newUnreleasedsection.devbranch: update the documentation website (guidelines). Create a new version123.0.0-beta.0.
Additional beta release
This process should be followed if changes have to be made after the beta packages have already been published (or even provided to a limited number of users). If there are significant changes in dev that should not be included in the beta release, follow the point release procedure instead (but adjust the version strings as required).
- Make the required fixes in
dev. devbranch: updateCHANGELOG.md. Change theUnreleasedheading to123.0.0-beta.1.devbranch: update the user manual URL if necessary.- Merge the
devbranch into therelease/123.0branch. release/123.0branch: update thepackage.jsonversion string to123.0.0-beta.1. Runnpm installto updatepackage-lock.json.- Create a
v123.0.0-beta.1tag using the release branch. - Test the release branch. Make any required fixes in the
devbranch, and merge them into the release branch. Ideally, bump the version and create a new tag every time changes are merged. If you don't want to bump the version, remember to destroy and recreate the latest tag. - Create packages from the release branch.
Stable releases
Final release
devbranch: updateCHANGELOG.md. Change theUnreleasedheading to123.0.0.devbranch: update the user manual URL if necessary.- Merge the
devbranch into therelease/123.0branch. release/123.0branch: update thepackage.jsonversion string to123.0.0-rc.0. Runnpm installto updatepackage-lock.json.- Create a
v123.0.0-rc.0tag using the release branch. - Test the release branch. Make any required fixes in the
devbranch, and merge them into the release branch. Ideally, bump the version and create a new tag every time changes are merged. If you don't want to bump the version, remember to destroy and recreate the latest tag. release/123.0branch: update thepackage.jsonversion string to123.0.0. Runnpm installto updatepackage-lock.json.- Create a
v123.0.0tag using the release branch. - Create packages from the release branch.
After final release
devbranch: update thepackage.jsonversion string to124.0.0-dev. Runnpm installto updatepackage-lock.json.devbranch: updateCHANGELOG.md. Create a newUnreleasedsection.devbranch: update the documentation website (guidelines). Create a new version123.0.0.
Point release
This process should be followed if important bug fixes have to be released after the final release packages have already been published (or even provided to a limited number of users). If there are no changes in dev that should not be included in the point release, follow the additional beta release procedure instead (but adjust the version strings as required).
- Make the required fixes in
dev. Cherry-pick them into the release branch. devbranch: updateCHANGELOG.md. Move the cherry-picked changes from theUnreleasedsection to a new123.0.1section underUnreleased.release/123.0branch: updateCHANGELOG.md. Copy only the123.0.1section from the changelog in thedevbranch.release/123.0branch: update thepackage.jsonversion string to123.0.1. Runnpm installto updatepackage-lock.json.- Create a
v123.0.1tag using the release branch. - Test the release branch. If an issue affects both
devand the release branch, fix it indevand cherry-pick the changes into the release branch. If an issue is caused by changes indevwhich are not included in the point release, make the minimal required changes in the release branch. Ideally, bump the version and create a new tag every time changes are made. If you don't want to bump the version, remember to destroy and recreate the latest tag. - Create packages from the release branch.
After point release
devbranch: update the documentation website (guidelines). Replace version123.0.0with123.0.1.