Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Polkadot v0.9.13 Release checklist #4286

Closed
11 tasks done
github-actions bot opened this issue Nov 15, 2021 · 1 comment
Closed
11 tasks done

Polkadot v0.9.13 Release checklist #4286

github-actions bot opened this issue Nov 15, 2021 · 1 comment

Comments

@github-actions
Copy link

github-actions bot commented Nov 15, 2021

Release Checklist

This is the release checklist for Polkadot v0.9.13. All following
checks should be completed before publishing a new release of the
Polkadot/Kusama/Westend runtime or client. The current release candidate can be
checked out with git checkout release-v0.9.13

Runtime Releases

These checks should be performed on the codebase prior to forking to a release-
candidate branch.

  • Verify spec_version has been incremented since the
    last release for any native runtimes from any existing use on public
    (non-private/test) networks.
  • Verify previously completed migrations are
    removed for any public (non-private/test) networks.
  • Verify pallet and extrinsic ordering has stayed
    the same. Bump transaction_version if not.
  • Verify new extrinsics have been correctly whitelisted/blacklisted for
    proxy filters.
  • Verify 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 complete successfully, and the
    runtime state is correctly updated for any public (non-private/test)
    networks.
  • Verify Polkadot JS API are up to date with the latest
    runtime changes.
  • Push runtime upgrade to Westend and verify network stability.

All Releases

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
  • 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. 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.

@kianenigma
Copy link
Contributor

Tested the migrations.

Polkadot only has #4080. Output:

...
2021-12-02 11:50:42.618 DEBUG main runtime::bags_list: [7956558] 👜inserted  with weight 7231860434377 into bag 7706717883882, new count is 18196
2021-12-02 11:50:42.618 DEBUG main runtime::bags_list: [7956558] 👜inserted  with weight 1363126048887 into bag 1386343627960, new count is 18197
2021-12-02 11:50:42.618 DEBUG main runtime::bags_list: [7956558] 👜inserted  with weight 1704107319053 into bag 1717891425287, new count is 18198
2021-12-02 11:50:42.618  INFO main runtime::staking: [7956558] 💸 👜 completed staking migration to Releases::V8_0_0 with 18198 voters migrated
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ⚠️ System declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ⚠️ XcmPallet declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Crowdloan
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Auctions
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Slots
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Registrar
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for ParaSessionInfo
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Hrmp
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Ump
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Dmp
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Initializer
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Paras
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for ParaScheduler
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for ParaInherent
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for ParaInclusion
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for ParasShared
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ⚠️ Configuration declares internal migrations (which *might* execute). On-chain `StorageVersion(1)` vs current storage version `StorageVersion(1)`
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for ParachainsOrigin
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for BagsList
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for ElectionProviderMultiPhase
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Tips
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Bounties
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Multisig
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Proxy
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Identity
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Utility
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ⚠️ Vesting declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Claims
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Treasury
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for TechnicalMembership
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for PhragmenElection
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for TechnicalCommittee
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Council
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Democracy
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for AuthorityDiscovery
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for ImOnline
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Grandpa
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Session
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ✅ no migration for Historical
2021-12-02 11:50:42.618  INFO main runtime::frame-support: ⚠️ Offences declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`
2021-12-02 11:50:42.619  INFO main runtime::offences: have 0 deferred offences, applying.
2021-12-02 11:50:42.619  INFO main runtime::frame-support: ⚠️ Staking declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`
2021-12-02 11:50:42.619  INFO main runtime::frame-support: ✅ no migration for Authorship
2021-12-02 11:50:42.619  INFO main runtime::frame-support: ✅ no migration for TransactionPayment
2021-12-02 11:50:42.619  INFO main runtime::frame-support: ✅ no migration for Balances
2021-12-02 11:50:42.619  INFO main runtime::frame-support: ✅ no migration for Indices
2021-12-02 11:50:42.619  INFO main runtime::frame-support: ✅ no migration for Timestamp
2021-12-02 11:50:42.619  INFO main runtime::frame-support: ✅ no migration for Babe
2021-12-02 11:50:42.619  INFO main runtime::frame-support: ✅ no migration for Scheduler
2021-12-02 11:50:42.619  INFO main runtime::staking: [7956558] 💸 👜 staking bags-list migration passes POST migrate checks ✅
2021-12-02 11:50:42.624 DEBUG main runtime::vesting: migration: Vesting storage version v1 POST migration checks successful!
2021-12-02 11:50:42.625  INFO main try-runtime::cli: TryRuntime_on_runtime_upgrade executed without errors. Consumed weight = 2000275000000, total weight = 2000000000000 (1.0001375)

which is all good.


Kusama has no migrations. Output:

2021-12-02 12:30:39.999  INFO main try-runtime::cli: found matching spec name: "kusama"
2021-12-02 12:30:39.999  WARN main try-runtime::cli: spec version mismatch (local 9130 != remote 9122). This could cause some issues.
2021-12-02 12:30:40.001  INFO main kusama_runtime: try-runtime::on_runtime_upgrade kusama.
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ⚠️ System declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ⚠️ XcmPallet declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Crowdloan
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Auctions
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Slots
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Registrar
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for ParasDisputes
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for ParaSessionInfo
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Hrmp
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Ump
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Dmp
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Initializer
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Paras
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for ParaScheduler
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for ParaInherent
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for ParaInclusion
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for ParasShared
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ⚠️ Configuration declares internal migrations (which *might* execute). On-chain `StorageVersion(1)` vs current storage version `StorageVersion(1)`
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for ParachainsOrigin
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for BagsList
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Gilt
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for ElectionProviderMultiPhase
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Tips
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Bounties
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Multisig
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Proxy
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Scheduler
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ⚠️ Vesting declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Recovery
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Society
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Identity
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Utility
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Claims
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Treasury
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for TechnicalMembership
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for PhragmenElection
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for TechnicalCommittee
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Council
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Democracy
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for AuthorityDiscovery
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for ImOnline
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Grandpa
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Session
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Historical
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ⚠️ Offences declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`
2021-12-02 12:30:40.001  INFO main runtime::offences: have 0 deferred offences, applying.
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ⚠️ Staking declares internal migrations (which *might* execute). On-chain `StorageVersion(0)` vs current storage version `StorageVersion(0)`
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Authorship
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for TransactionPayment
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Balances
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Indices
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Timestamp
2021-12-02 12:30:40.001  INFO main runtime::frame-support: ✅ no migration for Babe
2021-12-02 12:30:40.001 DEBUG main runtime::vesting: migration: Vesting storage version v1 POST migration checks successful!
2021-12-02 12:30:40.001  INFO main try-runtime::cli: TryRuntime_on_runtime_upgrade executed without errors. Consumed weight = 275000000, total weight = 2000000000000 (0.0001375)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants