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_VERSIONin theconf/distro/<distro-name>.conffile. - Fill up the 
CHANGELOG.mdfile with latest changes.- Run 
generate-changelog.shto generate the change notes for your release. - Use the 
generate-changed-recipesscript 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.shalready explain that). - Describe any additional changes.
 
 - Run 
 - Commit and push the changelog.
 - Merge the changes from 
developintomain. - Create and push a tag to 
mainthat matches the newly bumped version, withvadded at the beginning (e.g.v2.0.1-rc.1). - 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.gzandwic.bmap), the manifest andsha256sum 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:
PATCHversion is incremented with each releasedHOTFIXPATCHversion is zeroed with the increment ofMINORorMAJORversionsMINORversion is incremented with everyFEATURErelease (may include more than one feature) unlessMAJORversion is incrementedMINORversion is zeroed with the increment ofMAJORversionMAJORversion is incremented according to the project road map. Project road map should define at which point in time or with which feature set nextMAJORrelease 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.