-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Release Process #2490
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release Process #2490
Changes from 2 commits
11aa7ac
5eea0df
d8b7524
d622a7c
1e5b3b0
becbb79
316579d
11b77b0
6cdfd59
35d87bf
5189616
a769906
6d61040
d9bf9ef
71d9062
4d65917
1cc2780
423d0ab
9d7bdfd
2bdd380
51322b3
2cd25d9
554b247
d11e585
26d5a8a
7de5e5e
ad657d9
7158244
bfad729
1e10077
f8dea0b
3341c6b
3702afb
dce630d
c3014c4
702118b
ae7e73c
7a4b801
6169ee8
d03a2d3
80b81b1
9328f76
e7032c5
818c013
f36af66
d01c07a
ef1f428
d11235f
09e539a
fc28e27
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| # Processes | ||
|
|
||
| The following processes are necessary to actualize our releases. Each process has a *Cadence* on which it must execute and an *Responsible* that is responsible for autonomously doing so and reporting back any error in the RelEng<sup>1</sup> channel. | ||
ggwpez marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ## Mainline Release | ||
|
|
||
| Cadence: every two weeks. Responsible: Release Team. | ||
|
|
||
| This process aims to release the `stable` branch as a *Mainline* release every two weeks. It needs to start three days before the proposed release deadline to allow leeway for unexpected issues. This process should eventually be automated. | ||
ggwpez marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ### Steps | ||
|
|
||
| 1. [ ] Check if process [Clobbering](#clobbering) needs to happen and do so first, if that is the case. | ||
| 1. [ ] Check out the latest commit of `stable`. | ||
| 2. [ ] Verify all CI checks of that commit. | ||
| 3. [ ] Announce that commit as cutoff *Mainline* for a release in the General<sup>2</sup> chat. | ||
ggwpez marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| 4. [ ] Bump the semver of all crates <!-- FAIL-CI: We need some better process here on how to do it exactly --> | ||
|
||
| 5. [ ] Abort the release process and announce so in General if there are no bumps needed. | ||
| 6. [ ] Create a merge request to `stable` with the proposed SemVer bumps. | ||
ggwpez marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| 7. [ ] Announce this merge request in the *General* channel to quickly gather reviews. | ||
| 8. [ ] Merge it into `stable`. | ||
| 9. [ ] Verify all CI checks. | ||
| 10. [ ] Announce the intent to do a *Mainline* release from the resulting commit hash in RelEng. | ||
| 11. [ ] <!-- The release team has internal checklists for QA i think, should we mention this? --> | ||
| 12. [ ] Release all crates to crates.io using [parity-publish](https://github.com/paritytech/parity-publish). | ||
ggwpez marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ## Nightly Release | ||
|
|
||
| Cadence: every day at 00:00 UTC+1. Responsible: Release Team | ||
ggwpez marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| This process aims to release the `unstable` branch as a *Nightly* release every day. The process can start at 00:00 UTC+1 and should automatically do the following steps. | ||
|
|
||
| 1. [ ] Check out the latest commit of branch `unstable`. | ||
| 3. [ ] Compare this commit to the latest `nightly*` tag. Announce that the process was aborted in the RelEng chat since there were no changes. | ||
| 4. [ ] Verify all CI checks of that commit. | ||
| 5. [ ] Set the version of all crate to `major.0.0-nightlyYYMMDD` where `major` is the last released `major` version of that crate plus one. | ||
| 6. [ ] Tag this commit as `nightlyYYMMDD`. | ||
| 7. [ ] Announce the intent to do a *Nightly* release from that tag in the RelEng chat. | ||
| 8. [ ] Release all crates to crates.io using [parity-publish](https://github.com/paritytech/parity-publish). <!-- FAIL-CI: I think Morgan fixed that tool so it would only release crates that had changes, or that had one of their transitive dependencies changes. That would help, since otherwise we always push 400 crates or so. --> | ||
|
|
||
| ## Clobbering | ||
|
|
||
| Cadence: every 6th release (~3 months). Responsible: Release Team | ||
|
|
||
| This process aims to bring branch `stable` in sync with the latest audited commit of `unstable`. It is not done via a Merge Request but rather by just copying files. It should be automated. | ||
|
|
||
| The following script is provided to do the clobbering. | ||
|
|
||
| ```bash | ||
| git checkout polkadot-sdk -b audited | ||
| mv polkadot-sdk polkadot-sdk-audited | ||
| git checkout polkadot-sdk -b stable | ||
| cp -r polkadot-sdk-audited/* polkadot-sdk | ||
| cd polkadot-sdk | ||
| git commit -a -m "Clobber with latest audited" | ||
| git push | ||
ggwpez marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| ``` | ||
|
|
||
| # Footnotes | ||
|
|
||
| 1: `RelEng`: The *RelEng: Polkadot Release Coordination* Matrix channel. | ||
| 2: `General`: The *General* Matrix channel. | ||
Uh oh!
There was an error while loading. Please reload this page.