Git Workflow

Getting Started

Install the command line client, download a GUI and have a look at the basic Atlassian tutorial.

GUI

Documentation

  • Atlassian git tutorials - easy and recommended.
  • Official git manual - complete but more advanced.

Clone the SeqAn repository

SeqAn is hosted on GitHub. Execute the following command to get the last sources:

~ # git clone https://github.com/seqan/seqan.git seqan-src

SeqAn Workflow

The SeqAn workflow is based on the Gitflow workflow by Atlassian. The workflow is based on two persistent branches: master and develop. Development of new library and app features usually occurs on develop. The master branch receives only new library and app releases, in addition to hot-fixes to previous releases. Thus, the master branch is always stable and safe to use, and the develop branch contains the last development but might occasionally break overnight. The most frequent development use cases are documented below.

Develop a feature in a module or an app

Follow the steps in “Mary and John begin new features” and “Mary finishes her feature”.

  • Create a new feature branch based on develop.
  • Perform your changes and commit them onto your feature branch.
  • When the development is complete, push the feature branch to your repository on GithHub.
  • Create a GitHub pull request to develop.
  • Delete your feature branch once it has been merged.

Fix an existing bug in a module or app

Follow the steps in “End-user discovers a bug”.

Develop new modules and apps

Create a new module or app branch where to develop your new module or application. The branch should be based on master if your module or application doesn’t rely on any recently developed features. If a new feature becomes necessary later on, the branch can be rebased onto develop. When the development is complete, the branch can be merged back into the corresponding base branch - either master or develop.

Rules

  • Never push feature branches to the SeqAn repository.
  • Submit code reviews through GitHub.