Skip to content

Versioning

Alexander Yevsyukov edited this page Jul 11, 2023 · 3 revisions

Versions of Spine SDK artifacts are labeled according to Semantic Versioning specification with the extensions described below.

SNAPSHOT versions

The code under active development is versioned using the following format:

MAJOR.MINOR.PATCH-SNAPSHOT.NUMBER

where NUMBER is a number of a snapshot version incremented in each pull request. An increment is usually +1, but could be a rounding up to the next dozen to signify big code changes. Rounding increment should be used when the changes are breaking.

The update of a snapshot version is checked by io.spine.internal.gradle.publish.CheckVersionIncrement Gradle task, source of which could be found under buildSrc directory of a Spine SDK subproject.

Release versions

The Spine SDK is released using minor version number (e.g. 1.5.0).

Each feature or a significant issue fix must lead to the second-minor version bump.

The release itself along with the release notes is composed by a selected team of contributors. It is previously discussed with the project team.

Please see the Projects page for details on current development activities.

Patch versions

The patch versions are released in case of an urgent fix required for an issue discovered in a minor version update.

In the rest, patch versions are used internally instead of snapshot versions that proved to be troublesome under Gradle.

Every advancement of a code tree MUST increment the patch component of the version number (e.g. 1.5.27).

Special flavour versions

In some rare cases, a version may address a specific need and be recognizable among the other versions. In such a case we use alpha suffix in the patch component. For example, the version 2.0.0-jdk8 is a special build of v2 which is made for JDK8 rather than JDK11.

Updating version number in version.gradle.kts

A version of a Spine SDK subproject is kept in file named version.gradle.kts stored in a root directory of the project. A content of the file (sans (c) header) looks like this:

val versionToPublish: String by extra("2.0.0-SNAPSHOT.182")

It is recommended to increment the version number when starting working on a new code branch. This way you'd won't be surprised by the error emitted by CheckVersionIncrement after your commit the code to GitHub.

Commit message for the update file should contain the new version number. Like this:

Bump version -> `2.0.0-SNAPSHOT.183`

Such a message helps seeing the version just by looking at the version.gradle.kts item in the list of files under GitHub Code tab.

Clone this wiki locally