-
Notifications
You must be signed in to change notification settings - Fork 7
Release model
This project uses two versioning paths:
Each module (that is, each Maven project) has its own independent version number. They should be
maintained in the corresponding pom.xml
files as well as in the kukumo-bom/pom.xml
file.
Modules with unreleased modifications should use the next version with the -alpha
suffix, for example: 1.3.5-alpha
. Once they are released, the suffix must be removed.
The Maven projects kukumo-parent
and kukumo-bom
are not pieces of software but management projects;
they handle the aggregation of the different modules. Thus, they use a different version number, known as
revision
.
Independently of the kind of version number, they must follow the Semantic Versioning.
Stable versions of each module will be generated
periodically, when a meaningful set of fixes and features have been integrated
to the main
branch. A good guideline would be the number of changes in the
[Unreleased]
section of the changelogs. Such releases are done manually.
Stable Docker images have a regular version number that would be increased by one each iteration, using the identifier:
wakamiti/wakamiti:1.x
Each time a new version is tagged, it will be pushed automatically to the Docker Hub repository.
In addition, it would be pushed as well a copy of the image but with the identifier
wakamiti/wakamiti:latest
so that regular users can use the latest
stable version without caring about the actual
version number.
The version number should correspond to the
{revision}
value
Maven artifacts generated for each module would follow the Semantic Versioning nomenclature. They will be uploaded to Github as packages.
Each time a stable release is produced, the main
branch must be tagged with a label representing the revision
number (for example, v1.4.0
)
Alpha releases (also known as night builds) are representations of the current status of the
main
branch. They may contain bugs and other issues that are not yet solved, so they
are not recommended for stable usage of the tool, but rather exploring new features and experimental
modifications. Alpha releases are generated automatically by the build
Github action
that is triggered each time a commit is pushed to the main
branch.
The automated build script would create a new Docker image and push it to Docker Hub. This image would always have the same identifier:
wakamiti/wakamiti:alpha
Thus, this image will be continuously replaced with the latest changes.
No Maven artifacts would be uploaded for alpha releases. The recommended way to get them is clone the repository and execute:
./mvnw install