Skip to content

Branching Model

mtf90 edited this page Feb 9, 2018 · 2 revisions

Our branching model is heavily inspired by the branching model of Vincent Driessen. There exist three main branches:

master

This branch should always point to the latest released version. At best, its HEAD directly points to the tag from which the latest release was performed, so that building from the master branch always produces the same artifacts that have been deployed to the central maven repository.

Normally, no development should happen on this branch. Instead, only the tags of performed releases should be (incrementally) merged into this branch.

develop

The main branch for development. New (and potentially unstable) features can be pushed here -- either directly by the maintainers or via pull request by external contributors.

release

The main branch for performing releases. This branch should always be in a releasable state, such that hotfixes can be pushed (or cherry-picked) directly to this branch and a new release can be rolled out immediately. For performing a new major/minor release, the develop branch is merged to this branch and the release procedure is performed as usual (see Performing an AutomataLib Release).