Versioning and Tagging
Naming Convention
Starting Point: 1.0.0
major.minor.incremental[-HFx]
The "-HFx" tag is optional, depending on whether or not a hotfix was added to the release.
e.g. 1.0.12, 1.0.12-HF2, 1.1.0, 1.1.0-HF1
Versioning
- If we pull from Master(Release) to Develop (Snapshot), we increment minor and/or major.
- Maven/Jenkins/artifactory requires branches be tagged either as "-SNAPSHOT" or "-RELEASE".
- Master is always RELEASE and Develop is always SNAPSHOT.
- When code is pulled from Develop (Snapshot) to a Sprint branch, the incremental is incremented.
- Development takes place in feature sets or Sprint branches.
- Locally a developer would create a feature branch (from the sprint branch) and call it something meaningful and not necessarily versioned (e.g. websocket). If more than one developer were working on the same feature then they would create a separate branch in git so they could trade code.
- If a feature isn't finished by the end of the sprint (e.g. Feature 3 in the diagram below), it won't be committed until the next sprint.
- If we pull from Master to Hotfix, we add the "-HF" tag and increment HFx.
- Adding a hotfix does not change the name/version of the release.
e.g. If we have version 1.1.2 released as 1.1.2-RELEASE and we add a hotfix, the version will become 1.1.2-HF1, but the release will still be 1.1.2-RELEASE.
- Adding a hotfix does not change the name/version of the release.
- The hotfix will be pushed into Master branch and then pulled into Develop and the current Sprint branch if it exists.
- Only if a hotfix impacts what's currently being developed in any given Feature branch should it be pulled for development - but it will be pulled whenever the Feature code is pushed back to the Sprint branch.