Skip to content

Commit

Permalink
Create versioning.md
Browse files Browse the repository at this point in the history
  • Loading branch information
SPMcentral authored Oct 23, 2024
1 parent 69b53ec commit c49eb44
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions docs/development/versioning.md
Original file line number Diff line number Diff line change
@@ -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') .

0 comments on commit c49eb44

Please sign in to comment.