Standard Release Process
The following document is a description of the standard release process of Zarhus-related images. Precise steps and differences from the standard process will be described in layer-specific documentation.
Process steps
- Make sure that everything that should go into the given release is merged
into
develop
. - Bump
DISTRO_VERSION
in theconf/distro/<distro-name>.conf
file. - Fill up the
CHANGELOG.md
file with latest changes.- Run
generate-changelog.sh
to generate the change notes for your release. - Use the
generate-changed-recipes
script to print the list of changes in recipe versions. The script uses build manifests - lists of recipes contained in the image along with their versions. You must provide your manifest and the current release's manifest as arguments to the script. The latter can be found in the latest release's section in the GitHub release pages. The current manifest can be found under the Yocto working directory inbuild/tmp/deploy/images/{machine-name}/{image-name}.manifest
. - Paste the script output into your release's section in
CHANGELOG.md
. Additionally, you must explain why those changes were made and what they introduce (unless the commit messages listed bygenerate-changelog.sh
already explain that). - Describe any additional changes.
- Run
- Commit and push the changelog.
- Merge the changes from
develop
intomain
. - Create and push a tag to
main
that matches the newly bumped version, withv
added at the beginning (e.g.v2.0.1-rc1
). - Publish the release on GitHub. The release description should be the same as
the release notes for that version. The following artifacts should be
uploaded: The image (usually as
wic.gz
andwic.bmap
), the manifest andsha256
sum of each of those files. Additionally, if possible, upload the signatures of files (*.sha256.sig
). In case of arelease candidate
, you should publish it as a pre-release.
Versioning scheme
Zarhus
-related layers are versioned using the
semantic versioning scheme with the following
clarifications and additions:
PATCH
version is incremented with each releasedHOTFIX
PATCH
version is zeroed with the increment ofMINOR
orMAJOR
versionsMINOR
version is incremented with everyFEATURE
release (may include more than one feature) unlessMAJOR
version is incrementedMINOR
version is zeroed with the increment ofMAJOR
versionMAJOR
version is incremented according to the project road map. Project road map should define at which point in time or with which feature set nextMAJOR
release is ready.
Release candidate
Depending on the need of a particular software project, a pre-release
(release candidate
) version may be released. The version format must follow
the pre-release semver versioning scheme.
Generally, we shall use the following scheme for release candidates
:
MAJOR.MINOR.PATCH-rc.RC_ID
where the RC_ID
starts with 1.