diff --git a/.github/ISSUE_TEMPLATE/release-runtime.md b/.github/ISSUE_TEMPLATE/release-runtime.md index 25157a8280..fe970ce7a1 100644 --- a/.github/ISSUE_TEMPLATE/release-runtime.md +++ b/.github/ISSUE_TEMPLATE/release-runtime.md @@ -11,14 +11,14 @@ title: Cumulus {{ env.VERSION }} Release checklist ### Codebase These checks should be performed on the codebase. -- [ ] the [`spec_version`](../../docs/release.md#spec-version) has been incremented since the +- [ ] the [`spec_version`](https://github.com/paritytech/cumulus/blob/master/docs/release.md#spec-version) has been incremented since the last release for any native runtimes from any existing use on public (non-private/test) networks -- [ ] previously [completed migrations](../../docs/release.md#old-migrations-removed) are +- [ ] previously [completed migrations](https://github.com/paritytech/cumulus/blob/master/docs/release.md#old-migrations-removed) are removed for any public (non-private/test) networks - [ ] No migrations added in the last release that would need to be removed -- [ ] pallet and [extrinsic ordering](../../docs/release.md#extrinsic-ordering) as well as `SignedExtension`s have stayed +- [ ] pallet and [extrinsic ordering](https://github.com/paritytech/cumulus/blob/master/docs/release.md#extrinsic-ordering--storage) as well as `SignedExtension`s have stayed the same. Bump `transaction_version` otherwise -- [ ] the [benchmarks](../../docs/release.md#benchmarks) ran +- [ ] the [benchmarks](https://github.com/paritytech/ci_cd/wiki/Benchmarks:-cumulus) ran - [ ] the weights have been updated for any modified runtime logic - [ ] the various pieces of XCM config are sane @@ -27,20 +27,20 @@ These checks should be performed on the codebase. 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](../../docs/release.md#new-migrations) complete successfully, and the +- [ ] Verify [new migrations](https://github.com/paritytech/cumulus/blob/master/docs/release.md#new-migrations) complete successfully, and the runtime state is correctly updated for any public (non-private/test) networks -- [ ] Run integration tests +- [ ] Run [integration tests](https://github.com/paritytech/cumulus/blob/master/docs/release.md#integration-tests), and make sure they pass. - [ ] Push runtime upgrade to Westmint and verify network stability ### Github - [ ] Check that a draft release has been created at the [Github Releases page](https://github.com/paritytech/cumulus/releases) with relevant [release - notes](../../docs/release.md#release-notes) -- [ ] Check that [build artifacts](../../docs/release.md#build-artifacts) have been added to the + notes](https://github.com/paritytech/cumulus/blob/master/docs/release.md#release-notes) +- [ ] Check that [build artifacts](https://github.com/paritytech/cumulus/blob/master/docs/release.md#build-artifacts) have been added to the draft-release. --- -Read more about the [release documentation](../../docs/release.md). +Read more about the [release documentation](https://github.com/paritytech/cumulus/blob/master/docs/release.md). diff --git a/docs/release.md b/docs/release.md index 9bd5895c83..2b7c79c50b 100644 --- a/docs/release.md +++ b/docs/release.md @@ -75,35 +75,56 @@ function of the appropriate pallets. ### Extrinsic Ordering & Storage -Offline signing libraries depend on a consistent API of call indices and functions. Nowadays, we are no longer using -indices but the task of checking whether the API remains compatible remained and the name "Extrinsic Ordering" remained -as well although we no longer check the ordering itself. +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. It also checks if there have been any changes in `storage`. In case of a breaking change, increase `transaction_version`. -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. It also checks if there have been any changes in `storage`. In case of a breaking change, -increase `transaction_version`. +To verify the order has not changed, manually start the following [Github Action](https://github.com/paritytech/cumulus/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. -To verify that the API did not break, manually start the following [Github -Action](https://github.com/paritytech/cumulus/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. +To run it, in the _Run Workflow_ dropdown: +1. **Use workflow from**: to ignore, leave `master` as default +2. **The WebSocket url of the reference node**: + - Statemint: `wss://statemint-rpc.polkadot.io` + - Statemine: `wss://statemine-rpc.polkadot.io` + - Westmint: `wss://westmint-rpc.polkadot.io` +3. **A url to a Linux binary for the node containing the runtime to test**: Paste the URL of the latest release-candidate binary from the draft-release on Github. The binary has to previously be uploaded to S3 (Github url link to the binary is constantly changing) + - E.g: https://releases.parity.io/cumulus/v0.9.270-rc3/polkadot-parachain +4. **The name of the chain under test. Usually, you would pass a local chain**: + - Statemint: `statemint-local` + - Statemine: `statemine-local` + - Westmint: `westmint-local` +5. Click **Run workflow** -When the workflow is done, click on it and download the zip artifact, inside you'll find an `output.txt` file. The -output should be appended as comment to the "Checklist issue". - -The things to look for in the output are lines like: +When the workflow is done, click on it and download the zip artifact, inside you'll find an `output.txt` file. 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 +- `[+] 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. +**Note**: Adding new functions to the runtime does not constitute a breaking change +as long as the indexes did not change. -**Note**: Extrinsic function signatures changes (adding/removing & ordering arguments) are not caught by the job, so -those changes should be reviewed "manually" +**Note**: Extrinsic function signatures changes (adding/removing & ordering arguments) are not caught by the job, so those changes should be reviewed "manually" ### Benchmarks -The Benchmarks can now be started from the CI. First find the CI pipeline from -[here](https://gitlab.parity.io/parity/mirrors/cumulus/-/pipelines?page=1&scope=all&ref=release-parachains-v9220) and -pick the latest. +The Benchmarks can now be started from the CI. First find the CI pipeline from [here](https://gitlab.parity.io/parity/mirrors/cumulus/-/pipelines?page=1&scope=all&ref=release-parachains-v9220) and pick the latest. +[Guide](https://github.com/paritytech/ci_cd/wiki/Benchmarks:-cumulus) + +### Integration Tests + +Until https://github.com/paritytech/ci_cd/issues/499 is done, tests will have to be run manually. +1. Go to https://github.com/paritytech/parachains-integration-tests and checkout to the release branch. +E.g. https://github.com/paritytech/parachains-integration-tests/tree/release-v9270-v0.9.27 +for `release-parachains-v0.9.270` +2. Clone `release-parachains-` branch from Cumulus +3. `cargo build --release` +4. Copy `./target/polkadot-parachain` to `./bin` +5. Clone `it/release--fast-sudo` from Polkadot +In case the branch does not exists (it is a manual process): cherry pick paritytech/polkadot@791c8b8 and run +`find . -type f -name "*.toml" -print0 | xargs -0 sed -i '' -e 's/polkadot-vX.X.X/polkadot-v/g'` +6. `cargo build --release features --fast-runtime` +7. Copy `./target/polkadot` into `./bin` (in Cumulus) +8. Run the tests: + - Statemint: `yarn zombienet-test -c ./examples/statemint/config.toml -t ./examples/statemint` + - Statemine: `yarn zombienet-test -c ./examples/statemine/config.toml -t ./examples/statemine`