From 16ecb3648e00a35400e7a4b188aeb80320745db3 Mon Sep 17 00:00:00 2001
From: Chevdor <chevdor@users.noreply.github.com>
Date: Thu, 3 Feb 2022 18:27:49 +0100
Subject: [PATCH] Add a few items to the release checklist and move the doc
 away (#4844)

---
 polkadot/.github/ISSUE_TEMPLATE/release.md | 122 +++------------------
 polkadot/doc/release-checklist.md          |  98 +++++++++++++++++
 2 files changed, 111 insertions(+), 109 deletions(-)
 create mode 100644 polkadot/doc/release-checklist.md

diff --git a/polkadot/.github/ISSUE_TEMPLATE/release.md b/polkadot/.github/ISSUE_TEMPLATE/release.md
index 30cd1f39e85..cbeb7b21d64 100644
--- a/polkadot/.github/ISSUE_TEMPLATE/release.md
+++ b/polkadot/.github/ISSUE_TEMPLATE/release.md
@@ -15,133 +15,37 @@ checked out with `git checkout release-{{ env.VERSION }}`
 These checks should be performed on the codebase prior to forking to a release-
 candidate branch.
 
-- [ ] Verify [`spec_version`](#spec-version) has been incremented since the
+- [ ] Verify [`spec_version`](https://github.com/paritytech/polkadot/blob/master/doc/release-checklist.md#spec-version) has been incremented since the
     last release for any native runtimes from any existing use on public
     (non-private/test) networks. If the runtime was published (release or pre-release), either
     the `spec_version` or `impl` must be bumped.
-- [ ] Verify previously [completed migrations](#old-migrations-removed) are
+- [ ] Verify previously [completed migrations](https://github.com/paritytech/polkadot/blob/master/doc/release-checklist.md#old-migrations-removed) are
     removed for any public (non-private/test) networks.
-- [ ] Verify pallet and [extrinsic ordering](#extrinsic-ordering) has stayed
+- [ ] Verify pallet and [extrinsic ordering](https://github.com/paritytech/polkadot/blob/master/doc/release-checklist.md#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
+    [proxy filters](https://github.com/paritytech/polkadot/blob/master/doc/release-checklist.md#proxy-filtering).
+- [ ] Verify [benchmarks](https://github.com/paritytech/polkadot/blob/master/doc/release-checklist.md#benchmarks) have been updated for any modified
     runtime logic.
 
 The following checks can be performed after we have forked off to the release-
 candidate branch or started an additional release candidate branch (rc-2, rc-3, etc)
 
-- [ ] Verify [new migrations](#new-migrations) complete successfully, and the
+- [ ] Verify [new migrations](https://github.com/paritytech/polkadot/blob/master/doc/release-checklist.md#new-migrations) complete successfully, and the
     runtime state is correctly updated for any public (non-private/test)
     networks.
-- [ ] Verify [Polkadot JS API](#polkadot-js) are up to date with the latest
+- [ ] Verify [Polkadot JS API](https://github.com/paritytech/polkadot/blob/master/doc/release-checklist.md#polkadot-js) are up to date with the latest
     runtime changes.
+- [ ] Check with the Signer's team to make sure metadata update QR are lined up
 - [ ] Push runtime upgrade to Westend and verify network stability.
 
 ### All Releases
 
-- [ ] Check that the new client versions have [run on the network](#burn-in)
-    without issue for 12 hours.
+- [ ] Check that the new client versions have [run on the network](https://github.com/paritytech/polkadot/blob/master/doc/release-checklist.md#burn-in)
+    without issue for 12+ hours on >75% of our validator nodes.
 - [ ] 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
+    notes](https://github.com/paritytech/polkadot/blob/master/doc/release-checklist.md#release-notes)
+- [ ] Check that [build artifacts](https://github.com/paritytech/polkadot/blob/master/doc/release-checklist.md#build-artifacts) have been added to the
     draft-release
-
-## Notes
-
-### Burn In
-
-Ensure that Parity DevOps has run the new release on Westend, Kusama, and
-Polkadot validators for at least 12 hours prior to publishing the release.
-
-### Build Artifacts
-
-Add any necessary assets to the release. They should include:
-
-- Linux binary
-- GPG signature of the Linux binary
-- SHA256 of binary
-- Source code
-- Wasm binaries of any runtimes
-
-### Release notes
-
-The release notes should list:
-
-- The priority of the release (i.e., how quickly users should upgrade) - this is
-    based on the max priority of any *client* changes.
-- Which native runtimes and their versions are included
-- The proposal hashes of the runtimes as built with
-    [srtool](https://gitlab.com/chevdor/srtool)
-- Any changes in this release that are still awaiting audit
-
-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
-
-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).
-
-### Old Migrations Removed
-
-Any previous `on_runtime_upgrade` functions from old upgrades must be removed
-to prevent them from executing a second time. The `on_runtime_upgrade` function
-can be found in `runtime/<runtime>/src/lib.rs`.
-
-### 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.
-
-### 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`.
-
-To verify the order has not changed, you may manually start the following [Github Action](https://github.com/paritytech/polkadot/actions/workflows/extrinsic-ordering-check-from-bin.yml). It takes around a minute to run and will produce the report as artifact you need to manually check.
-
-The things to look for in the output are lines like:
-  - `[Identity] idx 28 -> 25 (calls 15)` - indicates the index for `Identity` has changed
-  - `[+] Society, Recovery` - indicates the new version includes 2 additional modules/pallets.
-  - If no indices have changed, every modules line should look something like `[Identity] idx 25 (calls 15)`
-
-Note: Adding new functions to the runtime does not constitute a breaking change
-as long as the indexes did not change.
-
-### 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.
-
-### Benchmarks
-
-There are three benchmarking machines reserved for updating the weights at
-release-time. To initialise a benchmark run for each production runtime
-(westend, kusama, polkadot):
-* Go to https://gitlab.parity.io/parity/polkadot/-/pipelines?page=1&scope=branches&ref=master
-* Click the link to the last pipeline run for master
-* Start each of the manual jobs:
-  * 'update_westend_weights'
-  * 'update_polkadot_weights'
-  * 'update_kusama_weights'
-* When these jobs have completed (it takes a few hours), a git PATCH file will
-    be available to download as an artifact. 
-* On your local machine, branch off master
-* Download the patch file and apply it to your branch with `git patch patchfile.patch`
-* Commit the changes to your branch and submit a PR against master
-* The weights should be (Currently manually) checked to make sure there are no
-    big outliers (i.e., twice or half the weight).
-
-### Polkadot JS
-
-Ensure that a release of [Polkadot JS API]() contains any new types or
-interfaces necessary to interact with the new runtime.
+- [ ] Check that all items listed in the [milestone](https://github.com/paritytech/polkadot/milestones) are included in the release.
\ No newline at end of file
diff --git a/polkadot/doc/release-checklist.md b/polkadot/doc/release-checklist.md
new file mode 100644
index 00000000000..4be7c9bcd5d
--- /dev/null
+++ b/polkadot/doc/release-checklist.md
@@ -0,0 +1,98 @@
+
+## Notes
+
+### Burn In
+
+Ensure that Parity DevOps has run the new release on Westend, Kusama, and
+Polkadot validators for at least 12 hours prior to publishing the release.
+
+### Build Artifacts
+
+Add any necessary assets to the release. They should include:
+
+- Linux binary
+- GPG signature of the Linux binary
+- SHA256 of binary
+- Source code
+- Wasm binaries of any runtimes
+
+### Release notes
+
+The release notes should list:
+
+- The priority of the release (i.e., how quickly users should upgrade) - this is
+    based on the max priority of any *client* changes.
+- Which native runtimes and their versions are included
+- The proposal hashes of the runtimes as built with
+    [srtool](https://gitlab.com/chevdor/srtool)
+- Any changes in this release that are still awaiting audit
+
+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
+
+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).
+
+### Old Migrations Removed
+
+Any previous `on_runtime_upgrade` functions from old upgrades must be removed
+to prevent them from executing a second time. The `on_runtime_upgrade` function
+can be found in `runtime/<runtime>/src/lib.rs`.
+
+### 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.
+
+### 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`.
+
+To verify the order has not changed, you may manually start the following [Github Action](https://github.com/paritytech/polkadot/actions/workflows/extrinsic-ordering-check-from-bin.yml). It takes around a minute to run and will produce the report as artifact you need to manually check.
+
+The things to look for in the output are lines like:
+  - `[Identity] idx 28 -> 25 (calls 15)` - indicates the index for `Identity` has changed
+  - `[+] Society, Recovery` - indicates the new version includes 2 additional modules/pallets.
+  - If no indices have changed, every modules line should look something like `[Identity] idx 25 (calls 15)`
+
+Note: Adding new functions to the runtime does not constitute a breaking change
+as long as the indexes did not change.
+
+### 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.
+
+### Benchmarks
+
+There are three benchmarking machines reserved for updating the weights at
+release-time. To initialise a benchmark run for each production runtime
+(westend, kusama, polkadot):
+* Go to https://gitlab.parity.io/parity/polkadot/-/pipelines?page=1&scope=branches&ref=master
+* Click the link to the last pipeline run for master
+* Start each of the manual jobs:
+  * 'update_westend_weights'
+  * 'update_polkadot_weights'
+  * 'update_kusama_weights'
+* When these jobs have completed (it takes a few hours), a git PATCH file will
+    be available to download as an artifact. 
+* On your local machine, branch off master
+* Download the patch file and apply it to your branch with `git patch patchfile.patch`
+* Commit the changes to your branch and submit a PR against master
+* The weights should be (Currently manually) checked to make sure there are no
+    big outliers (i.e., twice or half the weight).
+
+### Polkadot JS
+
+Ensure that a release of [Polkadot JS API]() contains any new types or
+interfaces necessary to interact with the new runtime.
-- 
GitLab