Unique and unequivocal references to routines
- Version numbers and version control are two independent aspects.
- Version numbers (and a VCS) are necessary prerequisites for reproducibility –
and essential for proper scientific data analysis.
- Version numbers should be expressive and follow a clear scheme.
- The version number should be stored at exactly one place
and changed following a fixed scheme.
- Schemes should be followed consequently.
Reproducible research implies to be able to track every processing step down to the data used as well as to the exact version of each processing routine. Therefore, every routine needs to have a unique and unequivocal (in mathematical terms: bijective) version number it can be referenced with.
Which tool to use
Note: This section is clearly opinionated. There are definitely other tools available. However, this is the tool the author recommends from own experience.
SemVer – Semantic Versioning
Highlighting compatibility, widespread, used for most Python projects