Release process overview¶
This section describes where the release process is implemented, how to change it, and how to publish new releases. Note that the high-level overview of the release process is present in the qualification plan. Make sure to read the overview before diving into this section.
Channel names¶
The release channel is determined automatically by the tooling, based on both
the src/ci/channel file (managed by upstream) and the
ferrocene/ci/channel file (managed by Ferrocene):
Release channel |
|
|
|---|---|---|
nightly |
nightly |
rolling |
pre-rolling |
beta |
rolling |
rolling |
stable |
rolling |
beta-${version} |
stable |
beta |
stable-${version} |
stable |
stable |
We rely on this approach of combining the two files to determine the channel
(rather than storing the actual channel in ferrocene/ci/channel) to reduce
the maintenance efforts.
This way, as long as we set ferrocene/ci/channel to “rolling” on the main
branch, we don’t need to make any change ourselves to promote a branch from
“nightly” to “pre-rolling” to “rolling”, as upstream does that for us when they
change src/ci/channel.
Release Checklist¶
This checklist is targeted towards release managers who are running a release.
12 weeks before release¶
6 weeks before release¶
In any order:
[release/1.NN] Feature freeze and backports. If there are any remaining
backport:manualPRs, backport them now. After this point, therelease/1.NNbranch is in feature freeze: no new PRs can be backported unless approved by a release manager.
Simultaneously, do the following in order:
[release/1.NN] Branch beta.
[KPs repo] Add the new version to the Known Problems database.
-
[main] Update the version in the release notes.
[release/1.NN] Backport the release notes update, and remove :upcoming-release: from beta’s release notes.
[main] Create a release note named
next.rst.
5 weeks before release¶
In order:
Perform another Documentation validation.
Create a Semantic diff.
[release/1.NN] Instruct the Safety Manager to sign the release branch.
At this point, the branch is in documentation freeze: no new PRs can be merged unless they do not affect the documentation signatures. In practice, only changes to CI are allowed from this point forward.
Note
If you do make a documentation change after this point, you MUST re-sign the docs and re-send them to the assessor.
When technical reports are received from the assessor¶
[release/1.NN] Publish a dev release.
At this point, the branch is in commit freeze: No commits at all can be made until the release is published.
Day of the release¶
Publish a manual release in the
prodenvironment.
After the release¶
[release/1.NN] Prepare for patch releases.
[main] Identify any forward ports.
[main] Update the release docs to reflect current reality.