Workflow and release cycle - HeloiseS/hoki GitHub Wiki
release
branch
The The release
branch is gold and will, from v1.6 onwards, solely contain the released versions of hoki
(note that v1.5 is the transition to this new workflow and there will be differences between the pypi release and the release
branch).
It is protected and any pull requests made to the release
branch must be approved by the Code Owner.
Where is the Master branch?
The hoki
team is making a conscious effort to do away with historically problematic terminology 1(https://insights.dice.com/2020/06/16/developers-debate-deleting-master-slave-code-terminology/) so we replaced the "Master branch" terminology with "Release branch".
dev*
branches
The The development branches are created from release
and centralise the addition or modification of features for future releases.
Multiple dev
branches can be created for different releases with naming convention devX.Y
where X and Y are integers and X.Y corresponds to the future release version.
Having multiple dev
branches allows features to be developed and put together on a single branch at a slower pace without messing up the next release.
You should not be committing code to the dev
branches directly. You should create pull requests from feature branches (see below)
dev
branches should be created by the Code Owner.
The feature branches
New features or significant code modifications should be done on their own branch. One feature == one branch. (And be careful you are working on the right branch!).
Feature branches should be created from the relevant dev
branch and merged back to the same dev
branch.
All hoki
developers can create a feature branch as necessary and create pull-requests to the dev
branch.
Ideally, a feature branch would only be merged once unittests have been created
Hot Fix branches
If a bug is reported from a currently released version of the code and needs urgent fixing, hot fix branches should be created from the release
branch.
One bug == one branch
They can then be merged back to the release branch and when all sequential bugs have been addressed, a patch should be released on Pypi and in the Github releases tabs.
All hoki
developers can create hot fix branches. Merging hot fixes to release
and creating the patch will be done by the Code Owner.
Workflow visual summary
Here is a visual summary of the workflow we aim towards
Release cycle
Major hoki
releases are associated with major features that often coincide (but not always) with the publication of a journal article.
Major features are only fully released once documentation and tutorials have been created. They may be functional before then, but should remain on the dev
branches.