diff --git a/docs/development/versioning.md b/docs/development/versioning.md new file mode 100644 index 0000000..ad7ab25 --- /dev/null +++ b/docs/development/versioning.md @@ -0,0 +1,22 @@ +# SPM version numbers +SPM has a **version** and a **release**. At the time of writing, the version is **SPM12** and the release is **dev**. + +Other toolboxes that depend on SPM use this information to check whether a compatible SPM version is installed. A common pattern is to split the version string, e.g. into **SPM** and **12**, and then compare the latter to the desired version number. + +## Transition to calendar versioning +SPM is moving towards [calendar versioning](https://calver.org/). + +The new format is **YY.0M[.MICRO]**, where YY is the short year (e.g. 24 for the year 2024), 0M is the zero padded month (e.g. 06 for June or 12 for December) and .MICRO is an optional integer for patches. + +For backward compatibility, the version and release will operate as follows: + +- Version: SPMYY, e.g. SPM24 +- Release: either ‘dev’ for the development version on Github or the calendar version number: YY.0M[.MICRO], e.g. 24.07 + +## Where the SPM version number is stored +The SPM version is stored on the second line of the file Contents.m in the root directory, or Contents.txt when SPM is in deployed mode (i.e., compiled). + +## Querying SPM’s version number +To obtain the version and release call: +[v, r] = spm('ver') +where v is the version and r is the release. For convenience, to return the version and release as a single string, instead call spm('version') .