Skip to content

Commit c49eb44

Browse files
authored
Create versioning.md
1 parent 69b53ec commit c49eb44

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

docs/development/versioning.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# SPM version numbers
2+
SPM has a **version** and a **release**. At the time of writing, the version is **SPM12** and the release is **dev**.
3+
4+
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.
5+
6+
## Transition to calendar versioning
7+
SPM is moving towards [calendar versioning](https://calver.org/).
8+
9+
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.
10+
11+
For backward compatibility, the version and release will operate as follows:
12+
13+
- Version: SPMYY, e.g. SPM24
14+
- Release: either ‘dev’ for the development version on Github or the calendar version number: YY.0M[.MICRO], e.g. 24.07
15+
16+
## Where the SPM version number is stored
17+
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).
18+
19+
## Querying SPM’s version number
20+
To obtain the version and release call:
21+
[v, r] = spm('ver')
22+
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 commit comments

Comments
 (0)