The version numbers of startkladde and sk_web has have the form "major.minor.revision" (where the revision is not related to the SVN revision), e. g. 2.1.3. Version 2.0 was released before this scheme was used and should have been 2.0.0.
startkladde and sk_web are released independent of each other. Releases with the same major and minor version are compatible. Therefore, if a change breaks compatibility (e. g. if a migration is added), startkladde and sk_web have to be released together. For other releases, only the revision number changes.
In case a new release for an older version is required (e. g. to fix an important bug while trunk is not ready for release), "-subrevision" is appended, for example 2.1.3-1.
Note: These guidlines can be changed if needed. In this case, this documentation has to be updated.
The version in the source code is incremented right before the release, not after the release. The reason is that after a release, it is not necessarily known what the next version number will be.
During development, changes are recorded in doc/changelog.txt. No version is specified yet:
- foo
- bar
2.0.1
- baz
For the release, the version number is incremented in CMakeLists.txt and the version is documented in doc/changelog.txt. These two changes are performed in a single commit without any other changes. Immediately after that, a tag with the name ^/tags/(package)-(version) is created ((package) is "startkladde" or "sk_web"). Exports for the release are only performed from this tag.
If Startkladde is built from an SVN working copy, the build system appends -(revision) or -svn to the version number. The same is true for using sk_web from a working copy. Exports should only be created from the respective tag, not from trunk. If an export is created from trunk, the revision or -svn will not be appended even though the version is not the release version.