Skip to content

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.

  1. A release candidate branch for next major release is created, for example: v3-release-candidate.
  2. In package.json we set the version to include the rc tag: 3.0.0-rc.0.
  3. Pull Requests with major changes are made agains this release candidate branch.
  4. Releases are always tagged with the rc-tag when released: npm publish --tag rc
  5. 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.

  1. Check out the release candidate branch
git checkout v3-release-candidate
  1. Build the engine
npm run build
  1. Manually run unit tests to ensure it works
npm test
  1. Publish the release with the rc tag set
npm publish --tag rc
  1. Update package.json and increment the rc.N with N+1
  2. Commit the change and push to origin
git add package.json
git commit -m "<commit message>"
git push origin v3-release-candidate
Clone this wiki locally