-
Notifications
You must be signed in to change notification settings - Fork 10
Toolkits Release, Versioning and Branching Guidelines
This document provides recommendations for managing github toolkit branches, versions and releases.
A github toolkit release can be either a major toolkit release targeting new IBM Streams release or a maintenance release for a IBM Streams maintenance release or a feature release targeting a specific version of IBM Streams.
Toolkit committee should publish release plan with details about upcoming toolkit releases.
Supporting these different types of toolkit releases requires proper management of versioning and branching of a toolkit project.
Major toolkit release:
A major toolkit release is targeting new IBM Streams release, it is recommended to use “develop” branch as the active branch for such release.
On Release:
- Toolkit owner makes a toolkit release from this branch on Github.
- Toolkit committee decides if a maintenance branch is needed via voting, then create a maintenance branch. This maintenance branch should be named in the format of major.minor.x_m based on the toolkit version at release, for example, the version of the toolkit at release is 3.0.0, then 3.0.x_m will be the name of the new maintenance branch.
- If a maintenance branch is created, document what version of IBM Streams this maintenance branch is targeting for, I.e 3.0.x_m maintenance branch is targeting IBM Streams release 4.1.x
- Bump up the third identifier of the toolkit version in
develop
branch with a far enough number to differentiate between active and maintenance branch as the active branch will be used for future major toolkit release. For example if the toolkit version on release is 3.0.0, then bump the version of toolkit in active branch to 3.0.100
Maintenance toolkit release:
A maintenance toolkit release is coming from one of the maintenance branch created after a major toolkit release was made and it only serves the purpose of accepting bug fixes for upcoming IBM Streams maintenance release, in other words, and new feature or major changes should not be delivered to a maintenance branch.
A maintenance toolkit release may not be required if there are not any bug fixes went into it. If there are, then
On Release:
- Make sure the 3rd identifier is incremented only once even there are multiple changes.
- Make a release on github
- Bring the changes to relevant branches, such as
develop
branch. - Toolkit committee decides if a maintenance branch for the current release of toolkit is needed via voting.
Feature toolkit release:
A feature toolkit release may be result of special feature requests targeting a specific version of IBM Streams, therefore, a active/feature branch should be created based off the maintenance branch corresponding to that version of IBM Streams with following toolkit versioning and branch naming conventions.
- Increment the second digit of the toolkit version in the newly created active/feature branch, I.e the toolkit version in the maintenance branch is 3.0.1, then the toolkit version in this newly created branch should be changed to at least 3.1.0 and this new active branch should be named 3.1.x
On Release:
- Make a github release from this active/feature branch.
- Deliver the new features made for this branch to relevant branches, I.e
develop
branch, and bump up the second digit of toolkit version in the destination branch with a large number to distinguish from toolkit version in this branch, it is recommended to increment second digit by 10. - Toolkit committee decides if a maintenance branch is needed with +1 vote and create the maintenance branch according to the release process described for “Major toolkit release”