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:
release
branch - from here the official version are created.frozen
branch - “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
master
branch on Github. - Increase version number, either manually or using
npm version
command. This must also be done onmaster
branch. - Merge
master
branch intofrozen
branch - Merge
frozen
branch intorelease
branch - Enter new release into Github - using the version number created in the first step. Tag name should be
vX.Y.Z
and release name should beX.Y.Z
. - Publish new code to npm using
npm publish
command.
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
frozen
branch - Included the patched code to this branch
- Increase version number, either manually or using
npm version
command. - Merge
frozen
branch intomaster
branch - Merge
frozen
branch intorelease
branch - Enter new release into Github - using the version number created in the third step. Tag name should be
vX.Y.Z
and release name should beX.Y.Z
. - Publish new code to npm using
npm publish
command.