Skip to content

Commit 8c9e84a

Browse files
authored
Merge pull request #5 from zarhus/release-process
Standard Release Process
2 parents 64fe154 + 897b7eb commit 8c9e84a

File tree

2 files changed

+68
-2
lines changed

2 files changed

+68
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Standard Release Process
2+
3+
The following document is a description of the standard release process of
4+
Zarhus-related images. Precise steps and differences from the standard
5+
process will be described in layer-specific documentation.
6+
7+
## Process steps
8+
9+
1. Make sure that everything that should go into the given release is merged
10+
into `develop`.
11+
2. Bump `DISTRO_VERSION` in the `conf/distro/<distro-name>.conf` file.
12+
3. Fill up the `CHANGELOG.md` file with latest changes.
13+
- Run `generate-changelog.sh` to generate the change notes for your release.
14+
- Use the `generate-changed-recipes` script to print the list of changes in
15+
recipe versions. The script uses build manifests - lists of recipes
16+
contained in the image along with their versions. You must provide your
17+
manifest and the current release's manifest as arguments to the script.
18+
The latter can be found in the latest release's section in the GitHub
19+
release pages. The current manifest can be found under the Yocto working
20+
directory in
21+
`build/tmp/deploy/images/{machine-name}/{image-name}.manifest`.
22+
- Paste the script output into your release's section in `CHANGELOG.md`.
23+
Additionally, you must explain why those changes were made and what they
24+
introduce (unless the commit messages listed by `generate-changelog.sh`
25+
already explain that).
26+
- Describe any additional changes.
27+
4. Commit and push the changelog.
28+
5. Merge the changes from `develop` into `main`.
29+
6. Create and push a tag to `main` that matches the newly bumped version, with
30+
`v` added at the beginning (e.g. `v2.0.1-rc1`).
31+
7. Publish the release on GitHub. The release description should be the same as
32+
the release notes for that version. The following artifacts should be
33+
uploaded: The image (usually as `wic.gz` and `wic.bmap`), the manifest and
34+
`sha256` sum of each of those files. Additionally, if possible, upload the
35+
signatures of files (`*.sha256.sig`). In case of a `release candidate`, you
36+
should publish it as a pre-release.
37+
38+
## Versioning scheme
39+
40+
`Zarhus`-related layers are versioned using the
41+
[semantic versioning](https://semver.org) scheme with the following
42+
clarifications and additions:
43+
44+
- `PATCH` version is incremented with each released `HOTFIX`
45+
- `PATCH` version is zeroed with the increment of `MINOR` or `MAJOR` versions
46+
- `MINOR` version is incremented with every `FEATURE` release (may include more
47+
than one feature) unless `MAJOR` version is incremented
48+
- `MINOR` version is zeroed with the increment of `MAJOR` version
49+
- `MAJOR` version is incremented according to the project road map. Project road
50+
map should define at which point in time or with which feature set next
51+
`MAJOR` release is ready.
52+
53+
### Release candidate
54+
55+
Depending on the need of a particular software project, a `pre-release`
56+
(`release candidate`) version may be released. The version format must follow
57+
the [pre-release semver versioning scheme](https://semver.org/#spec-item-9).
58+
Generally, we shall use the following scheme for `release candidates`:
59+
60+
```text
61+
MAJOR.MINOR.PATCH-rc.RC_ID
62+
```
63+
64+
where the `RC_ID` starts with 1.

mkdocs.yml

+4-2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ nav:
7373
- 'Radxa':
7474
- 'Radxa CM3': supported-targets/radxa-cm3.md
7575
- 'Guides':
76-
- 'Managing packages': guides/managing-packages.md
77-
- 'Managing layers': guides/managing-layers.md
76+
- 'Managing packages': guides/managing-packages.md
77+
- 'Managing layers': guides/managing-layers.md
78+
- 'Development Process':
79+
- 'Standard Release Process': development-process/standard-release-process.md
7880
- 'FAQ': faq.md

0 commit comments

Comments
 (0)