Versioning and Release Policy
Lumi uses two main branches for development and releases: stable and dev.
Branches
stable
The stable branch contains release-ready code. Every push to this branch is treated as a stable release.
Stable versions use a normal semantic version format:
MAJOR.MINOR.PATCHExamples:
1.6.0
1.6.1
1.7.0Patch releases are used for regular minor fixes and small updates:
1.6.0 -> 1.6.1Minor releases are used for larger project-wide updates:
1.6.8 -> 1.7.0dev
The dev branch contains the latest development version of the project.
Versions built from dev always use the current project version with the -SNAPSHOT suffix:
{current project version}-SNAPSHOTExample:
1.6.0-SNAPSHOTThis means that dev builds are not considered final releases and may contain experimental or unfinished changes.
Maven Repositories
The project is published to two Maven repositories depending on the source branch.
Releases repository
Stable versions from the stable branch are published to:
https://repo.lumi.su/releasesOnly final release versions without the -SNAPSHOT suffix should be published here.
Example:
1.6.0
1.6.1
1.7.0Snapshots repository
Development versions from the dev branch are published to:
https://repo.lumi.su/snapshotsThis repository always contains the most recent development builds with the -SNAPSHOT suffix.
Example:
1.6.0-SNAPSHOTGitHub Releases
Every push to the stable branch creates a new GitHub Release for the current stable version.
Every push to either stable or dev also updates the Latest Build release. This release is used to provide the most recent build artifacts from the active development or stable branch.
Pull Requests
Pull requests with experimental changes, new features, or non-critical updates should target the dev branch.
Pull requests should target the stable branch only when they contain critical fixes that must be released as soon as possible.