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
devversion.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.