6.10.2.13 Release
Append-only
Records are added, never deleted.
6.10.2.13.1 Purpose¶
The decision to distribute a build on a channel, with a rollout percentage, an approval and signed metadata. Releases are only added: a rollback is a new release that points to an older build.
6.10.2.13.2 Questions it answers¶
- Which build is being rolled out, and to what share of installations?
- Who staged the release, and who approved it?
- When did it become active, and what did it replace?
6.10.2.13.3 Fields¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
id |
string (uuid) |
1..1 |
Key. |
channel |
ReleaseChannel | 1..1 |
|
build |
ReleaseBuild | 1..1 |
Must belong to the channel's application, with status ready. |
rollout_pct |
integer |
1..1 |
0..100: share of installations that receive it (see ReleaseInstallation, ReleaseInstallation.rollout_bucket). |
min_build_number |
integer |
0..1 |
Installations below it must update. |
notes |
string |
0..1 |
Markdown. |
state |
enum | 1..1 |
Values: staged, active, paused, superseded, rolled_back. |
signed_metadata |
ReleaseSignedMetadata | 0..1 |
Empty while staged: the metadata is signed when the release becomes active. |
released_by |
MoonitoringUser | 1..1 |
Who staged it. |
approved_by |
MoonitoringPerson | 0..1 |
Required to become active when the channel requires approval. Must differ from released_by and from the build's created_by. |
released_at |
datetime |
0..1 |
When it became active; empty while staged. |
created_at |
datetime |
1..1 |
|
updated_at |
datetime |
1..1 |
6.10.2.13.4 Relationships¶
References
Release.channel→ ReleaseChannel (1..1)Release.build→ ReleaseBuild (1..1)Release.signed_metadata→ ReleaseSignedMetadata (0..1)Release.released_by→ MoonitoringUser (1..1)Release.approved_by→ MoonitoringPerson (0..1)
Referenced by
SourceAdapter.release(0..1)ReleaseChannel.current_release(0..1)
6.10.2.13.5 Rules & constraints¶
- The decision to distribute a build on a channel. Only state,
approved_byandreleased_atchange after creation. - A rollback is a new Release that points to an older build. It needs no approval when that build was already active on the same channel and is not revoked.