-
Notifications
You must be signed in to change notification settings - Fork 27
Working with Release Candidates
Jonas Birmé edited this page Mar 1, 2023
·
2 revisions
When major changes are introduced to the Channel Engine we still want to maintain a stable master branch from where we can do minor and patch releases. To handle this we implement the following strategy.
- A release candidate branch for next major release is created, for example:
v3-release-candidate
. - In package.json we set the version to include the rc tag:
3.0.0-rc.0
. - Pull Requests with major changes are made agains this release candidate branch.
- Releases are always tagged with the rc-tag when released:
npm publish --tag rc
- Never ever create and push git tags from a release candidate branch
Point 4 is important to ensure that the rc releases are ignored when installed:
"eyevinn-channel-engine": "^2.2.0"
npm install eyevinn-channel-engine@*
npm install eyevinn-channel-engine
npm install eyevinn-channel-engine@latest
When a release candidate is to be pushed and created this procedure is followed.
- Check out the release candidate branch
git checkout v3-release-candidate
- Build the engine
npm run build
- Manually run unit tests to ensure it works
npm test
- Publish the release with the rc tag set
npm publish --tag rc
- Update package.json and increment the
rc.N
with N+1 - Commit the change and push to origin
git add package.json
git commit -m "<commit message>"
git push origin v3-release-candidate