migrations: prevent accidentally using unversioned migrations instead of...
migrations: prevent accidentally using unversioned migrations instead of `VersionedMigration` (#3835) closes #1324 #### Problem Currently, it is possible to accidentally use inner unversioned migration instead of `VersionedMigration` since both implement `OnRuntimeUpgrade`. #### Solution With this change, we make it clear that value of `Inner` is not intended to be used directly. It is achieved by bounding `Inner` to new trait `UncheckedOnRuntimeUpgrade`, which has the same interface (except `unchecked_` prefix) as `OnRuntimeUpgrade`. #### `try-runtime` functions Since developers can implement `try-runtime` for `Inner` value in `VersionedMigration` and have custom logic for it, I added the same `try-runtime` functions to `UncheckedOnRuntimeUpgrade`. I looked for a ways to not duplicate functions, but couldn't find anything that doesn't significantly change the codebase. So I would appreciate If you have any suggestions to improve this cc @liamaharon @xlc polkadot address: 16FqwPZ8GRC5U5D4Fu7W33nA55ZXzXGWHwmbnE1eT6pxuqcT --------- Co-authored-by:Liam Aharon <liam.aharon@hotmail.com>
Showing
- cumulus/pallets/xcmp-queue/src/migration.rs 5 additions, 4 deletionscumulus/pallets/xcmp-queue/src/migration.rs
- polkadot/runtime/common/src/assigned_slots/migration.rs 2 additions, 3 deletionspolkadot/runtime/common/src/assigned_slots/migration.rs
- polkadot/runtime/common/src/paras_registrar/migration.rs 2 additions, 2 deletionspolkadot/runtime/common/src/paras_registrar/migration.rs
- polkadot/runtime/parachains/src/assigner_on_demand/migration.rs 4 additions, 4 deletions...ot/runtime/parachains/src/assigner_on_demand/migration.rs
- polkadot/runtime/parachains/src/configuration/migration/v10.rs 6 additions, 4 deletions...dot/runtime/parachains/src/configuration/migration/v10.rs
- polkadot/runtime/parachains/src/configuration/migration/v11.rs 5 additions, 3 deletions...dot/runtime/parachains/src/configuration/migration/v11.rs
- polkadot/runtime/parachains/src/configuration/migration/v12.rs 2 additions, 2 deletions...dot/runtime/parachains/src/configuration/migration/v12.rs
- polkadot/runtime/parachains/src/inclusion/migration.rs 5 additions, 5 deletionspolkadot/runtime/parachains/src/inclusion/migration.rs
- polkadot/runtime/parachains/src/scheduler/migration.rs 5 additions, 4 deletionspolkadot/runtime/parachains/src/scheduler/migration.rs
- polkadot/xcm/pallet-xcm/src/migration.rs 2 additions, 2 deletionspolkadot/xcm/pallet-xcm/src/migration.rs
- prdoc/pr_3835.prdoc 54 additions, 0 deletionsprdoc/pr_3835.prdoc
- substrate/frame/examples/single-block-migrations/src/lib.rs 12 additions, 12 deletionssubstrate/frame/examples/single-block-migrations/src/lib.rs
- substrate/frame/examples/single-block-migrations/src/migrations/v1.rs 85 additions, 111 deletions...ame/examples/single-block-migrations/src/migrations/v1.rs
- substrate/frame/grandpa/src/migrations/v5.rs 10 additions, 5 deletionssubstrate/frame/grandpa/src/migrations/v5.rs
- substrate/frame/identity/src/migration.rs 4 additions, 2 deletionssubstrate/frame/identity/src/migration.rs
- substrate/frame/nomination-pools/src/migration.rs 4 additions, 4 deletionssubstrate/frame/nomination-pools/src/migration.rs
- substrate/frame/society/src/migrations.rs 2 additions, 2 deletionssubstrate/frame/society/src/migrations.rs
- substrate/frame/support/src/migrations.rs 11 additions, 11 deletionssubstrate/frame/support/src/migrations.rs
- substrate/frame/support/src/traits.rs 1 addition, 1 deletionsubstrate/frame/support/src/traits.rs
- substrate/frame/support/src/traits/hooks.rs 27 additions, 1 deletionsubstrate/frame/support/src/traits/hooks.rs
Please register or sign in to comment