Release procedures
This document describes versioning methodology for QTopology project.
Semantic versioning
We use semantic versioning, thus supporting easier npm dependency tracking and auto-upgrading.
Git organization
Code is being accumulated in Github on master branch. Developers should fork the repository and develop in their forks. When change is ready to be included into master, a pull-request should be created and reviewed.
Github also contains two additional branches, used for versioning and patching:
releasebranch - from here the official version are created.frozenbranch - “code-freeze” branch, used also for creating patches.
Github steps for new release
These steps must be taken for major or minor version. When code is not under heavy concurrent development, these steps can also be taken for patch version.
- Commit and merge all relevant code into
masterbranch on Github. - Increase version number, either manually or using
npm versioncommand. This must also be done onmasterbranch. - Merge
masterbranch intofrozenbranch - Merge
frozenbranch intoreleasebranch - Enter new release into Github - using the version number created in the first step. Tag name should be
vX.Y.Zand release name should beX.Y.Z. - Publish new code to npm using
npm publishcommand.
Github steps for new patch
These steps are recommended for patching current version when master code already heavily changed, possibly with breaking or non-tested changes.
- Open
frozenbranch - Included the patched code to this branch
- Increase version number, either manually or using
npm versioncommand. - Merge
frozenbranch intomasterbranch - Merge
frozenbranch intoreleasebranch - Enter new release into Github - using the version number created in the third step. Tag name should be
vX.Y.Zand release name should beX.Y.Z. - Publish new code to npm using
npm publishcommand.