.. |br| raw:: html
Versioning ========== Branche Types ************* * **incompatible** |br| 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** |br| Feature branches (named for their *major* version number, e.g., 1, 2, 3) are for feature development on the current major version. * **release** |br| 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) |br| **1** (feature) |br| **1.4** (release) Workflow ******** FleCSI development uses a *devel -> feature -> release* forking workflow that can be visualized as in :numref:`branch`. Bugfixes and features can be back-merged into *feature* or *devel*, as appropriate. .. _branch: .. figure:: branch.png Workflow diagram illustrating basic workflow using the three branch types described above. (Figure due to Angela Herring.) .. vim: set tabstop=2 shiftwidth=2 expandtab fo=cqt tw=72 :