Versioning - nrc-cnrc/EGSnrc GitHub Wiki

How EGSnrc is versioned

Versioning by commit

Every change in a git repository (called a "commit") is uniquely identified with a 40 hexadecimal digits hash value (a 160-bit SHA1 hash). This is useful to refer to a specific point in the EGSnrc code history, for example:

98c008213fef79506e6d9e87a444a139b0f79cc5

In practice it proves sufficient to quote the first 7 characters, here 98c0082, to identify any particular commit (or more characters if there is a collision). The first line of the git log command output shows the current commit hash if EGSnrc was installed by cloning the repository.

Fundamentally, the commit hash is the unambiguous version number: it is a permanent reference to a unique and atomic point in the evolution of the software. Provided, that is, that the commit exists on either the master branch or the develop branch of the project. All other commits are considered temporary and will eventually be pruned from the code repository.

See Citing EGSnrc for the recommended citation format.

Versioning by year

Commit hashes are unsorted and rather cryptic, so for convenience the repository is also labelled every year with an official release tag: "v" followed by the 4-digit year number, for example v2021. This tag is also displayed on the Releases page. Significant changes or new features are only added in offical releases, so in general parlance or in publications you may use this version number to identify the version of EGSnrc to which you are referring.

If we need to release more than once in a given calendar year—for example if a critical bug is uncovered and fixed—we add a letter to the release number, as in 2019a, 2019b, etc.

See Citing EGSnrc for the recommended citation format.