-
Notifications
You must be signed in to change notification settings - Fork 10
Managing Branches in GitHub
NOTE: This page is an early draft. Pay it no attention until this notice is removed.
Following the release of perfSONAR 4.1, the development team adopted a more-formal scheme for version control during development. There are central tenets:
- Any change is to be developed along a branch named after the release for which it is intended.
- Once the code on the branch is ready to be released, the branch is locked and the release is done.
- Changes made in the branch are merged into branches for later releases.
-
Select the release for which the change is targeted. This will depend on the nature of the change. For example, a new major feature not present in version
9.0
would be targeted for9.1
. -
Open an issue to cover the change and set the release to correspond with the one selected above. Note the number of the new issue.
9999
will be used as an example. -
Check out the
9.1
branch. -
Create a new branch from
9.1
calledissue-9999
. -
Check out the
issue-9999
branch. -
Develop, commit and push changes.
-
Submit a pull request to merge
issue-9999
into9.1
. Once the change is pulled, theissue-9999
branch will be deleted.
Following a release, the branch being released is considered closed.
-
9.0
(Paradigm Shift release)- Close the
9.0
branch (see above) - Create
9.0.0.1
(Fast-Track Patch) - Create
9.0.1
(Bug Fix / Minor Enhancement) - Create
9.1
(Major Feature) - Create
10
(Paradigm Shift) - Pull
9.0
intomaster
and tag itrelease-9.0
- Close the
-
9.0.0.1 (Fast-Track Patch)
- Lock the
9.0.0.1
branch (see above) - Create 9.0.0.2 (Fast-Track Patch)
- Pull
9.0.0.1
intomaster
and tag itrelease-9.0.0.1
- Lock the
-
9.0.1 (Bug Fix / Minor Enhancement)
- Create 9.0.1.1 (Fast-Track Patch)
- Pull
9.0.1
intomaster
and tag itrelease-9.0.1