Versioning

Branche Types

  • incompatible
    The devel branch is where work on the next major release takes place, potentially with interface and feature changes that are incompatible with previous versions.

  • feature
    Feature branches (named for their major version number, e.g., 1, 2, 3) are for feature development on the current major version.

  • release
    Release branches (named for their major.minor version number, e.g., 1.1, 1.2) are stable versions of the code base. These can only be modified with bug fixes. At appropriate points, tags (named for their major.minor.patch version number, e.g., 1.1.2) are used to identify patched versions.

Tip

At the time of writing, FleCSI has the following branches:

devel (incompatible)
1 (feature)
1.4 (release)

Workflow

FleCSI development uses a devel -> feature -> release forking workflow that can be visualized as in Fig. 2. Bugfixes and features can be back-merged into feature or devel, as appropriate.

../../_images/branch.png

Fig. 2 Workflow diagram illustrating basic workflow using the three branch types described above. (Figure due to Angela Herring.)