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
...
- 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.
- If we pull from Dev When code is pulled from Develop (Snapshot) to Feature Set (Nightly), we increment incremental.If we pull from Feature Set (Nightly) to Features, we increment incrementala 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 current sprint (e.g. Feature 3 in the diagram below), it won't be committed until the next sprint.
- If we pull from Release(Master) Master to Hotfix, we add the "-HF" tag and increment xincrement 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 Features Develop and the current Sprint branch only 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.