From 8b6300bc59ad1ebb473c913ec1b997566bb383bd Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Thu, 25 Jun 2020 13:45:46 +0200 Subject: [PATCH 1/9] Add release checklist --- RELEASE.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 RELEASE.md diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 000000000000..e28d910105d0 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,10 @@ +# Release Checklist + +The following checks should be completed before releasing a new version of the Polkadot/Kusama/Westend runtime or client: + +- [] Verify new migrations complete successfully, and the runtime state is correctly updated. +- [] Verify previously completed migrations are removed. (`on_runtime_upgrade`) +- [] Verify pallet and extrinsic ordering has stayed the same. (check metadata) +- [] Verify new extrinsics have been correctly whitelisted/blacklisted for proxy filters. +- [] Check that the new client releases have run on the network without issue for 24 hours. +- [] Verify benchmarks have been updated for any modified runtime logic. From b56a7e75b63be2681be8cef1270dd0f763441ea3 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Thu, 25 Jun 2020 13:48:43 +0200 Subject: [PATCH 2/9] add space to checkbox --- RELEASE.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index e28d910105d0..354683e71399 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -2,9 +2,9 @@ The following checks should be completed before releasing a new version of the Polkadot/Kusama/Westend runtime or client: -- [] Verify new migrations complete successfully, and the runtime state is correctly updated. -- [] Verify previously completed migrations are removed. (`on_runtime_upgrade`) -- [] Verify pallet and extrinsic ordering has stayed the same. (check metadata) -- [] Verify new extrinsics have been correctly whitelisted/blacklisted for proxy filters. -- [] Check that the new client releases have run on the network without issue for 24 hours. -- [] Verify benchmarks have been updated for any modified runtime logic. +- [ ] Verify new migrations complete successfully, and the runtime state is correctly updated. +- [ ] Verify previously completed migrations are removed. (`on_runtime_upgrade`) +- [ ] Verify pallet and extrinsic ordering has stayed the same. (check metadata) +- [ ] Verify new extrinsics have been correctly whitelisted/blacklisted for proxy filters. +- [ ] Check that the new client releases have run on the network without issue for 24 hours. +- [ ] Verify benchmarks have been updated for any modified runtime logic. From ffc9a902734be6d748d7129bafe7e4a1e78e63e0 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Thu, 25 Jun 2020 13:53:53 +0200 Subject: [PATCH 3/9] polkadot-js-apps --- RELEASE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE.md b/RELEASE.md index 354683e71399..2efaa3cce108 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -8,3 +8,4 @@ The following checks should be completed before releasing a new version of the P - [ ] Verify new extrinsics have been correctly whitelisted/blacklisted for proxy filters. - [ ] Check that the new client releases have run on the network without issue for 24 hours. - [ ] Verify benchmarks have been updated for any modified runtime logic. +- [ ] Verify Polkadot JS Apps is up to date with the latest runtime changes. From c0d5985a3a627bb66e6ab86fa655afc1793bd893 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Thu, 25 Jun 2020 13:57:31 +0200 Subject: [PATCH 4/9] Apply suggestions from code review Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> --- RELEASE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 2efaa3cce108..1c666199f16e 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,8 +4,8 @@ The following checks should be completed before releasing a new version of the P - [ ] Verify new migrations complete successfully, and the runtime state is correctly updated. - [ ] Verify previously completed migrations are removed. (`on_runtime_upgrade`) -- [ ] Verify pallet and extrinsic ordering has stayed the same. (check metadata) +- [ ] Verify pallet and extrinsic ordering has stayed the same (check metadata). Bump `transaction_version` if not. - [ ] Verify new extrinsics have been correctly whitelisted/blacklisted for proxy filters. - [ ] Check that the new client releases have run on the network without issue for 24 hours. - [ ] Verify benchmarks have been updated for any modified runtime logic. -- [ ] Verify Polkadot JS Apps is up to date with the latest runtime changes. +- [ ] Verify Polkadot JS API and Apps are up to date with the latest runtime changes. From 91e330d4fce34f4c9b7e5fe7c7d8a0bb0c3f1709 Mon Sep 17 00:00:00 2001 From: joepetrowski Date: Mon, 29 Jun 2020 16:49:13 +0200 Subject: [PATCH 5/9] add notes for each release item --- RELEASE.md | 90 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 81 insertions(+), 9 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 1c666199f16e..d8097df91811 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,11 +1,83 @@ # Release Checklist -The following checks should be completed before releasing a new version of the Polkadot/Kusama/Westend runtime or client: - -- [ ] Verify new migrations complete successfully, and the runtime state is correctly updated. -- [ ] Verify previously completed migrations are removed. (`on_runtime_upgrade`) -- [ ] Verify pallet and extrinsic ordering has stayed the same (check metadata). Bump `transaction_version` if not. -- [ ] Verify new extrinsics have been correctly whitelisted/blacklisted for proxy filters. -- [ ] Check that the new client releases have run on the network without issue for 24 hours. -- [ ] Verify benchmarks have been updated for any modified runtime logic. -- [ ] Verify Polkadot JS API and Apps are up to date with the latest runtime changes. +The following checks should be completed before releasing a new version of the +Polkadot/Kusama/Westend runtime or client: + +### All Releases + +- [ ] Check that the new client releases have [run on the network](#burn-in) without issue for 24 + hours. +- [ ] Add [build artifacts](#build-artifacts) to the release. + +### Runtime Releases + +- [ ] List any [native runtime](#native-runtimes) versions associated with the release. +- [ ] Increment [`spec_version`](#spec-version) for any native runtimes. +- [ ] Verify [new migrations](#new-migrations) complete successfully, and the runtime state is + correctly updated. +- [ ] Verify previously [completed migrations](#old-migrations-removed) are removed. +- [ ] Verify pallet and [extrinsic ordering](#extrinsic-ordering) has stayed the same. Bump + `transaction_version` if not. +- [ ] Verify new extrinsics have been correctly whitelisted/blacklisted for + [proxy filters](#proxy-filtering). +- [ ] Verify [benchmarks](#benchmarks) have been updated for any modified runtime logic. +- [ ] Verify [Polkadot JS API](#polkadot-js) are up to date with the latest runtime changes. + +## Notes + +### Burn In + +Ensure that Parity DevOps has run the new release on Westend, Kusama, and Polkadot validators for +at least 24 hours prior to publishing the release. + +### Build Artifacts + +Add any necessary assets to the release. They should include: + +- Linux binary +- GPG signature +- SHA256 of binary +- Source code +- Wasm binaries of any runtimes + +### Native Runtimes + +The release notes should list which native runtimes and their versions are included. + +### Spec Version + +A runtime upgrade must bump the spec number. This may follow a pattern with the client release +(e.g. runtime v12 corresponds to v0.8.12, even if the current runtime is not v11). + +### New Migrations + +Ensure that any migrations that are required due to storage or logic changes are included in the +`on_runtime_upgrade` function of the appropriate pallets. + +### Old Migrations Removed + +Any previous `on_runtime_upgrade` functions from old upgrades must be removed to prevent them from +executing a second time. + +### Extrinsic Ordering + +Offline signing libraries depend on a consistent ordering of call indices and functions. Compare +the metadata of the current and new runtimes and ensure that the `module index, call index` tuples +map to the same set of functions. In case of a breaking change, increase `transaction_version`. + +Note: Adding new functions to the runtime does not constitute a breaking change as long as they are +added to the end of a pallet (i.e., does not break any other call index). + +### Proxy Filtering + +The runtime contains proxy filters that map proxy types to allowable calls. If the new runtime +contains any new calls, verify that the proxy filters are up to date to include them. + +### Benchmarcks + +Run the benchmarking suite with the new runtime and update any function weights if necessary. + +### Polkadot JS + +Ensure that a release of [Polkadot JS API]() contains any new types or interfaces necessary to +interact with the new runtime. From 0c098ddc5997c87a051c61b2e806a080186e4a1a Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Tue, 25 Aug 2020 13:44:40 +0200 Subject: [PATCH 6/9] Apply suggestions from code review Co-authored-by: s3krit --- RELEASE.md | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index d8097df91811..f09f448475f3 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,11 +1,11 @@ # Release Checklist -The following checks should be completed before releasing a new version of the +The following checks should be completed before publishing a new release of the Polkadot/Kusama/Westend runtime or client: ### All Releases -- [ ] Check that the new client releases have [run on the network](#burn-in) without issue for 24 +- [ ] Check that the new client versions have [run on the network](#burn-in) without issue for 24 hours. - [ ] Add [build artifacts](#build-artifacts) to the release. @@ -35,14 +35,24 @@ at least 24 hours prior to publishing the release. Add any necessary assets to the release. They should include: - Linux binary -- GPG signature +- GPG signature of the Linux binary - SHA256 of binary - Source code - Wasm binaries of any runtimes -### Native Runtimes +### Release notes -The release notes should list which native runtimes and their versions are included. +The release notes should list: + +- The priority of the release (i.e., how quickly users should upgrade) +- Which native runtimes and their versions are included +- The proposal hashes of the runtimes as built with [srtool](https://gitlab.com/chevdor/srtool) + +The release notes may also list: + +- Free text at the beginning of the notes mentioning anything important regarding this release +- Notable changes (those labelled with B[1-9]-* labels) separated into sections +- ### Spec Version @@ -73,7 +83,7 @@ added to the end of a pallet (i.e., does not break any other call index). The runtime contains proxy filters that map proxy types to allowable calls. If the new runtime contains any new calls, verify that the proxy filters are up to date to include them. -### Benchmarcks +### Benchmarks Run the benchmarking suite with the new runtime and update any function weights if necessary. From 8d52fb1b7bc4a80d99d5749c9a0036f5c2926016 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Tue, 25 Aug 2020 14:02:32 +0200 Subject: [PATCH 7/9] Apply suggestions from code review Co-authored-by: Pierre Krieger Co-authored-by: Gavin Wood --- RELEASE.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index f09f448475f3..a618352db865 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -5,14 +5,14 @@ Polkadot/Kusama/Westend runtime or client: ### All Releases -- [ ] Check that the new client versions have [run on the network](#burn-in) without issue for 24 +- [ ] Check that the new client versions have [run on the network](#burn-in) without issue for 12 hours. - [ ] Add [build artifacts](#build-artifacts) to the release. ### Runtime Releases - [ ] List any [native runtime](#native-runtimes) versions associated with the release. -- [ ] Increment [`spec_version`](#spec-version) for any native runtimes. +- [ ] Has incremented [`spec_version`](#spec-version) for any native runtimes from any existing use on public (non-private/test) networks. - [ ] Verify [new migrations](#new-migrations) complete successfully, and the runtime state is correctly updated. - [ ] Verify previously [completed migrations](#old-migrations-removed) are removed. @@ -28,7 +28,7 @@ Polkadot/Kusama/Westend runtime or client: ### Burn In Ensure that Parity DevOps has run the new release on Westend, Kusama, and Polkadot validators for -at least 24 hours prior to publishing the release. +at least 12 hours prior to publishing the release. ### Build Artifacts From 62f4a2cee7cba73d937386e18ed719c8dcd29477 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Tue, 25 Aug 2020 14:28:24 +0200 Subject: [PATCH 8/9] Update RELEASE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bastian Köcher --- RELEASE.md | 1 - 1 file changed, 1 deletion(-) diff --git a/RELEASE.md b/RELEASE.md index a618352db865..24c1cf29e19a 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -52,7 +52,6 @@ The release notes may also list: - Free text at the beginning of the notes mentioning anything important regarding this release - Notable changes (those labelled with B[1-9]-* labels) separated into sections -- ### Spec Version From 1060499b7d94dddb595d59c75b4553e67ebbc402 Mon Sep 17 00:00:00 2001 From: Martin Pugh Date: Tue, 25 Aug 2020 19:25:21 +0200 Subject: [PATCH 9/9] Update RELEASE.md - rearrange sections --- RELEASE.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 24c1cf29e19a..b5c5e443b44d 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,16 +1,13 @@ # Release Checklist The following checks should be completed before publishing a new release of the -Polkadot/Kusama/Westend runtime or client: - -### All Releases - -- [ ] Check that the new client versions have [run on the network](#burn-in) without issue for 12 - hours. -- [ ] Add [build artifacts](#build-artifacts) to the release. +Polkadot/Kusama/Westend runtime or client. ### Runtime Releases +The following should be done *prior* to tagging the potential release. Upon +completion, tag the commit and proceed with the [All Releases](#all-releases) steps. + - [ ] List any [native runtime](#native-runtimes) versions associated with the release. - [ ] Has incremented [`spec_version`](#spec-version) for any native runtimes from any existing use on public (non-private/test) networks. - [ ] Verify [new migrations](#new-migrations) complete successfully, and the runtime state is @@ -23,6 +20,13 @@ Polkadot/Kusama/Westend runtime or client: - [ ] Verify [benchmarks](#benchmarks) have been updated for any modified runtime logic. - [ ] Verify [Polkadot JS API](#polkadot-js) are up to date with the latest runtime changes. +### All Releases + +- [ ] Check that the new client versions have [run on the network](#burn-in) without issue for 12 + hours. +- [ ] Check that a draft release has been created at https://github.com/paritytech/polkadot/releases with relevant [release notes](#release-notes) +- [ ] Check that [build artifacts](#build-artifacts) have been added to the draft-release + ## Notes ### Burn In