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

Remove OnRuntimeUpgrade hooks #614

Merged
merged 9 commits into from
Jul 4, 2022
Merged

Remove OnRuntimeUpgrade hooks #614

merged 9 commits into from
Jul 4, 2022

Conversation

Dengjianping
Copy link
Contributor

@Dengjianping Dengjianping commented Jun 20, 2022

Signed-off-by: Dengjianping djptux@gmail.com

Description

Remove OnRuntimeUpgrade hooks after v3.2.0 has been released.

closes: paritytech/substrate#613


Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
  • Wrote unit tests.
  • Updated relevant documentation in the code.
  • Added one line describing your change in <branch>/CHANGELOG.md
  • Re-reviewed Files changed in the Github PR explorer.
  • If runtime changes, need to update the version numbers properly:
    • authoring_version: The version of the authorship interface. An authoring node will not attempt to author blocks unless this is equal to its native runtime.
    • spec_version: The version of the runtime specification. A full node will not attempt to use its native runtime in substitute for the on-chain Wasm runtime unless all of spec_name, spec_version, and authoring_version are the same between Wasm and native.
    • impl_version: The version of the implementation of the specification. Nodes are free to ignore this; it serves only as an indication that the code is different; as long as the other two versions are the same then while the actual code may be different, it is nonetheless required to do the same thing. Non-consensus-breaking optimizations are about the only changes that could be made which would result in only the impl_version changing.
    • transaction_version: The version of the extrinsics interface. This number must be updated in the following circumstances: extrinsic parameters (number, order, or types) have been changed; extrinsics or pallets have been removed; or the pallet order in the construct_runtime! macro or extrinsic order in a pallet has been changed. You can run the metadata_diff.yml workflow for help. If this number is updated, then the spec_version must also be updated
  • Verify benchmarks & weights have been updated for any modified runtime logics
  • If importing a new pallet, choose a proper module index for it, and allow it in BaseFilter. Ensure every extrinsic works from front-end. If there's corresponding tool, ensure both work for each other.
  • If needed, update our Javascript/Typescript APIs. These APIs are officially used by exchanges or community developers.
  • If modifying existing runtime storage items, make sure to implement storage migrations for the runtime and test them with try-runtime. This includes migrations inherited from upstream changes, and you can search the diffs for modifications of #[pallet::storage] items to check for any.

Signed-off-by: Dengjianping <djptux@gmail.com>
@Dengjianping Dengjianping added this to the v3.2.1 milestone Jun 20, 2022
@Dengjianping Dengjianping self-assigned this Jun 20, 2022
@Dengjianping Dengjianping added A-calamari Area: Issues and PRs related to the Calamari Runtime A-runtime Area: Issues and PRs related to Runtimes labels Jun 20, 2022
@Garandor
Copy link
Contributor

is this a draft or ready for review?

@Garandor
Copy link
Contributor

The idea of using the StorageVersion guards is supposed to enable keeping the migration code in the pallet after migration.
See paritytech/polkadot-sdk#343

I think we should adopt this best practice and keep executed migrations in the pallet as a sort of "backlog"

@ghzlatarev
Copy link
Contributor

The idea of using the StorageVersion guards is supposed to enable keeping the migration code in the pallet after migration. See paritytech/polkadot-sdk#343 (comment)

I think we should adopt this best practice and keep executed migrations in the pallet as a sort of "backlog"

Yeah. When we need to use the pallet hook again we can just copy paste the old migration to some separate file, or we can do it now.

Copy link
Contributor

@Garandor Garandor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls re-request when ready

Signed-off-by: Dengjianping <djptux@gmail.com>
@Dengjianping Dengjianping marked this pull request as ready for review June 22, 2022 16:25
@Dengjianping
Copy link
Contributor Author

Now it's ready.

Signed-off-by: Dengjianping <djptux@gmail.com>
Signed-off-by: Dengjianping <djptux@gmail.com>
Copy link
Contributor

@Garandor Garandor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you pls move the migration from the asset-manager src to a migrations submodule?
We should keep those separate from the active code.
Check manta-collator-selection for reference

Signed-off-by: Dengjianping <djptux@gmail.com>
Signed-off-by: Dengjianping <djptux@gmail.com>
ghzlatarev
ghzlatarev previously approved these changes Jun 27, 2022
Signed-off-by: Dengjianping <djptux@gmail.com>
ghzlatarev
ghzlatarev previously approved these changes Jun 27, 2022
@Dengjianping
Copy link
Contributor Author

Could you pls move the migration from the asset-manager src to a migrations submodule? We should keep those separate from the active code. Check manta-collator-selection for reference

Done.

Garandor
Garandor previously approved these changes Jun 29, 2022
Copy link
Contributor

@Garandor Garandor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@ghzlatarev
Copy link
Contributor

ghzlatarev commented Jun 29, 2022

@Dengjianping Merge conflicts again :(
@Garandor we'll need to re-review this when resolved...

Signed-off-by: Dengjianping <djptux@gmail.com>
@Dengjianping Dengjianping dismissed stale reviews from Garandor and ghzlatarev via 572b6f4 June 30, 2022 04:33
ghzlatarev
ghzlatarev previously approved these changes Jun 30, 2022
CHANGELOG.md Outdated Show resolved Hide resolved
Signed-off-by: Dengjianping <djptux@gmail.com>
@ghzlatarev ghzlatarev requested a review from Garandor July 3, 2022 07:34
@ghzlatarev ghzlatarev merged commit 8a60cd5 into manta Jul 4, 2022
@ghzlatarev ghzlatarev deleted the jamie/remove-hooks branch July 4, 2022 06:08
stechu pushed a commit that referenced this pull request Jul 11, 2022
* Remove OnRuntimeUpgrade hooks

Signed-off-by: Dengjianping <djptux@gmail.com>

* [no ci]Update changelog

Signed-off-by: Dengjianping <djptux@gmail.com>

* [no ci]Fix changelog

Signed-off-by: Dengjianping <djptux@gmail.com>

* Move storage migration to migration file

Signed-off-by: Dengjianping <djptux@gmail.com>

* Fix build

Signed-off-by: Dengjianping <djptux@gmail.com>
Signed-off-by: Shumo Chu <shumo.chu@pm.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-calamari Area: Issues and PRs related to the Calamari Runtime A-runtime Area: Issues and PRs related to Runtimes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants