Skip to content
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

Manta 3.2.0 Release checklist #553

Closed
5 of 19 tasks
Dengjianping opened this issue May 16, 2022 · 0 comments · Fixed by #572
Closed
5 of 19 tasks

Manta 3.2.0 Release checklist #553

Dengjianping opened this issue May 16, 2022 · 0 comments · Fixed by #572
Assignees
Labels
P-high Priority: High
Milestone

Comments

@Dengjianping
Copy link
Contributor

Dengjianping commented May 16, 2022

Release Checklist

Most of the following checks should be completed before officially publishing the new release
of the Calamari/Manta runtime or client. Some need to be completed after the new code is deployed.

Runtime Releases

These checks should be performed on the codebase prior to freezing our release candidate:

  • Verify 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 pallet and extrinsic ordering has stayed
    the same. Bump transaction_version if not.
  • Verify new extrinsics have been correctly whitelisted/blacklisted
  • Verify benchmarks have been updated for any modified
    runtime logic.
  • Check for any upstream storage migrations and perform tests with try-runtime, if any.

The following checks can be performed after we have frozen our release candidate:

  • Code freeze should typically happen one week prior to release, to ensure we have enough time for related testing.
  • Notify everyone, especially people with merge rights to manta (stechu, Dengjianping) that a release is ongoing and no more merges to manta should happen until told otherwise
  • Complete the following manual QA workflow.
  • Verify Polkadot JS API are up to date with the latest
    runtime changes.
  • Execute runtime upgrade to Como and verify network stability.
  • Execute runtime upgrade to Baikal and verify network stability.
  • Prepare a governance post and submit to our forum with description and motivation for changes.

Client Releases

  • Verify that each crate's version has been bumped from previous release.
  • Check that the new client versions have burned-in without issue for at least 12 hours.

All Releases

Note: Do not publish draft releases from PR branches, because those branches will be deleted when the PR is merged.

After Runtime Upgrade

  • Notify subscan team. Ensure subscan service can continue to scan calamari blocks.

Notes

Burn In

Ensure that Manta DevOps has run the new release on Como and Baikal nodes
for at least 12 hours prior to publishing the release.

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

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. To generate a diff report you can do the following:

  • Go to the metadata diff tool page.
  • Open Run workflow drop-down menu.
  • Choose the branch you want to test and other inputs if the defaults are not applicable.
  • Run the workflow.
  • Wait for the job to complete and inspect the output. The things to look for in the output.txt 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)

In case of a breaking change, bump the transaction_version.

Note: Adding new functions to the runtime does not constitute a breaking change
as long as the indexes did not change.

Benchmarks

There are three benchmarking machines reserved for updating the weights at
release-time. To initialize a benchmark run for each production runtime
(calamari, manta):

  • Go to Calamari Benchmarking Github Action
    and Manta Benchmarking Github Action
  • Open Run workflow drop-down menu.
  • Choose your branch and run the workflow.
  • When these jobs have completed (it takes a few hours), custom weights files will
    be available to download as artifacts.
  • Commit the changes to your branch and push to the remote branch for review.
  • The weights should be (Currently manually) checked to make sure there are no
    big outliers (i.e., twice or half the weight).

Security Audit

Before release, run a Security Audit

  • Go to Security Audit.
  • Open Run workflow drop-down menu.
  • Choose your branch and run the workflow.
  • An audit report will be generated.
  • Address any reported findings before release. If it cannot be fixed, please file an issue.
@Dengjianping Dengjianping added the P-high Priority: High label May 16, 2022
@Dengjianping Dengjianping added this to the v3.1.6 milestone May 16, 2022
@Dengjianping Dengjianping self-assigned this May 16, 2022
@Dengjianping Dengjianping mentioned this issue Jun 6, 2022
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P-high Priority: High
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant