To do a major release:
- manually create MR with package.json and package-lock.json update with new major version in rc.0 state.
To do a minor release:
- merge feature branch to master (fast-forward, squash commits) if needed or restart master pipeline
- trigger "release_main" step on its pipeline
To do a patch release:
Releasing the patch itself:
- Trigger "create_release_branch" on tag (if needed) - this will generate "release-a.b.x" branch.
- Checkout to this branch and create "bugfix" branch from it
- Merge changes in the same way as it happening on the master (ff, squash) back to "release-a.b.x"
- To release the changes to npm - trigger "release_patch" jog on "release-a.b.x" branch.
Back porting the bugfixes to master
If multiple bug fixes needed (also might be needed when there is a conflict), need to run following:
# to see the difference git log origin/master..origin/release-0.7.x --oneline --no-merges # created "backport" branch from master git checkout backport git cherry-pick shaA..shaB (shaB was the one with the tag) # resolved conflicts and git add + git commit # merged "backport" to master
Single bugfix commit:
- merged bugfix branch back to "release-a.b.x"
- on merge commit (the one with actual changes, not the tag + version bump) go to options -> cherry-pick and set source as master (with commit)
- review and merge