-
Notifications
You must be signed in to change notification settings - Fork 8
Release process and versioning
This page is meant to briefly summarize our release process as well as our versioning conventions and mechanism.
Our artifacts are published into Nexus Sonatype OSS repository. Both final and unstable releases are managed via Github Workflow included in this repository.
Every push event on a branch that is different from the default one (main
) leads to an unstable release onto Nexus Sonatype snapshot repository. External developers can integrate against snapshot repositories by declaring the snapshot repository as defined in our README.
Stable releases are instead created on push event on the default branch, and published to the main Sonatype repository and streamed to Maven Central.
There are times (not so often) where we want to merge into the main
branch without creating a new library release. This usually happens when multiple PRs are raised by Dependabot and we want to merge those in one release only. In those circumstances, we can leverage Github [skip ci]
command on squash commits at PR merge time. Read more.
We adhere to Semantic Versioning conventions while versioning our library.
As opposed to the standard tagging/versioning system used for internal services in TrueLayer, on this repository we adopted a different approach based on the project version declared in the library gradle.properties file. The value in there is considered as the actual value for final versions of the library and as base version for unstable releases.
For example if a value of version=0.4.12
would lead to a final release with the following identifier com.truelayer:truelayer-java:0.4.12
.
The same version, when present on a development branch (e.g. one called jasdk-48
) would lead to the following snapshot release com.truelayer:truelayer-java:0.4.12-jsdk-48-SNAPSHOT
.