Unique and unequivocal references to routines
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.
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