Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

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 <version_branch>.

Upon spin completion the following tasks are performed:

  1. Tag a release. This may either be a release candidate or a final release. For example:

    Code Block
    languagebash
    $ 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:

    Code Block
    languagebash
    $ git push --tags origin
  2. Create a new branch for the next spin

    Code Block
    languagebash
    $ git branch 0.2.0
    $ git push origin 0.2.0
  3. Change the default branch to the new branch in the Stash Daffodil Repo Settings.
        

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:

Code Block
languagebash
$ 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.