The two important branches in gmml2 are dev
and main
. Most work is done either on dev
or on feature branches. main
is expected to be stable.
version.txt
contains the current library version, which follows a semantic versioning scheme of major.minor.patch
. Upon compilation, CMake generates a version.h
file which can be included in the code. This file is not committed.
Each release has a tag associated with it, pinned to a specific commit. This is useful for debugging or reproducing older results.
The general pattern when releasing new features is to
dev
version.txt
in a commit with no other changesmain
. A tag named after the current version will be created by a git hookmain
back into dev
--follow-tags
, or the tag will remain localWhen fixing a bug on main
, steps 1-2 should be substituted by creating a hotfix branch from main
, where fixes are first committed, followed by incrementing the patch number in version.txt
. Then resume normally with steps 3-5.