The follow steps describe the git branch workflow to be used when developing for the Daffodil project. Note that the master branch is not used. Instead all development is to be done on a branch named after the version (using Semantic Versioning) being worked on.
For example, if the current version is
0.1.0, all development should follow the Development Workflow with
0.1.0 as the
Upon spin completion the following tasks are performed:
Tag a release. This may either be a release candidate or a final release. For example:
$ git tag -a 0.1.0-rc1 -m "Spin 1, Release Candidate 1" $ git tag -a 0.1.0 -m "Spin 1, Final Release"
Remember to push the tag:
$ git push --tags origin
Create a new branch for the next spin
$ git branch 0.2.0 $ git push origin 0.2.0
From this point on, all new features are to be added to the new branch (e.g.
0.2.0) following the Development Workflow. All tests and bug fixes for the previous spin should be added on that spins branch and immediately merged into the new branch by the person making the change:
$ git checkout 0.1.0 # fix bug and/or add test verifying bug fix, commit and push changes $ git checkout 0.2.0 $ git merge 0.1.0
Please see Step 17 of the Development Workflow for the correct merge/test/push workflow.