From 5af5c13f106e862c904ae2dade42f49d31c27f87 Mon Sep 17 00:00:00 2001 From: tin-snowflake Date: Sun, 17 Mar 2024 10:38:28 +0700 Subject: [PATCH 1/7] add deprecated tag to schedule trait v1 and v2 --- substrate/frame/support/src/traits/schedule.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/substrate/frame/support/src/traits/schedule.rs b/substrate/frame/support/src/traits/schedule.rs index 7a7d1357da1e..62c8884a823d 100644 --- a/substrate/frame/support/src/traits/schedule.rs +++ b/substrate/frame/support/src/traits/schedule.rs @@ -130,7 +130,8 @@ impl MaybeHashed { } } -// TODO: deprecate +#[allow(deprecated)] +#[deprecated = "traits::schedule::v1 is deprecated. Please use v3 instead."] pub mod v1 { use super::*; @@ -286,7 +287,8 @@ pub mod v1 { } } -// TODO: deprecate +#[allow(deprecated)] +#[deprecated = "traits::schedule::v2 is deprecated. Please use v3 instead."] pub mod v2 { use super::*; From 038a98eacdf7485c23a27942531717cf4f28030f Mon Sep 17 00:00:00 2001 From: tin-snowflake Date: Sun, 17 Mar 2024 20:53:08 +0700 Subject: [PATCH 2/7] Follow deprecation convetion --- substrate/frame/support/src/traits/schedule.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/substrate/frame/support/src/traits/schedule.rs b/substrate/frame/support/src/traits/schedule.rs index 62c8884a823d..242d866fafd6 100644 --- a/substrate/frame/support/src/traits/schedule.rs +++ b/substrate/frame/support/src/traits/schedule.rs @@ -130,8 +130,7 @@ impl MaybeHashed { } } -#[allow(deprecated)] -#[deprecated = "traits::schedule::v1 is deprecated. Please use v3 instead."] +#[deprecated(note = "Use `v3` instead")] pub mod v1 { use super::*; @@ -287,8 +286,7 @@ pub mod v1 { } } -#[allow(deprecated)] -#[deprecated = "traits::schedule::v2 is deprecated. Please use v3 instead."] +#[deprecated(note = "Use `v3` instead")] pub mod v2 { use super::*; From b8ddcd86cfe804e4e108cdd013510926693abc28 Mon Sep 17 00:00:00 2001 From: tin-snowflake Date: Mon, 18 Mar 2024 00:24:10 +0700 Subject: [PATCH 3/7] add `#[allow(deprecated)]` attribute --- substrate/frame/scheduler/src/lib.rs | 4 ++++ substrate/frame/support/src/traits/schedule.rs | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/substrate/frame/scheduler/src/lib.rs b/substrate/frame/scheduler/src/lib.rs index af3abd8ac4f2..511e871a0173 100644 --- a/substrate/frame/scheduler/src/lib.rs +++ b/substrate/frame/scheduler/src/lib.rs @@ -1435,6 +1435,8 @@ impl Pallet { } } +// TODO: migrate `schedule::v2::Anon` to `v3` +#[allow(deprecated)] impl schedule::v2::Anon, ::RuntimeCall, T::PalletsOrigin> for Pallet { @@ -1469,6 +1471,8 @@ impl schedule::v2::Anon, ::RuntimeCall } } +// TODO: migrate `schedule::v2::Anon` to `v3` +#[allow(deprecated)] impl schedule::v2::Named, ::RuntimeCall, T::PalletsOrigin> for Pallet { diff --git a/substrate/frame/support/src/traits/schedule.rs b/substrate/frame/support/src/traits/schedule.rs index 242d866fafd6..73e23c08fb48 100644 --- a/substrate/frame/support/src/traits/schedule.rs +++ b/substrate/frame/support/src/traits/schedule.rs @@ -218,10 +218,12 @@ pub mod v1 { fn next_dispatch_time(id: Vec) -> Result; } + #[allow(deprecated)] impl Anon for T where T: v2::Anon, { + #[allow(deprecated)] type Address = T::Address; fn schedule( @@ -232,10 +234,13 @@ pub mod v1 { call: Call, ) -> Result { let c = MaybeHashed::::Value(call); + + #[allow(deprecated)] T::schedule(when, maybe_periodic, priority, origin, c) } fn cancel(address: Self::Address) -> Result<(), ()> { + #[allow(deprecated)] T::cancel(address) } @@ -243,18 +248,22 @@ pub mod v1 { address: Self::Address, when: DispatchTime, ) -> Result { + #[allow(deprecated)] T::reschedule(address, when) } fn next_dispatch_time(address: Self::Address) -> Result { + #[allow(deprecated)] T::next_dispatch_time(address) } } + #[allow(deprecated)] impl Named for T where T: v2::Named, { + #[allow(deprecated)] type Address = T::Address; fn schedule_named( @@ -266,10 +275,12 @@ pub mod v1 { call: Call, ) -> Result { let c = MaybeHashed::::Value(call); + #[allow(deprecated)] T::schedule_named(id, when, maybe_periodic, priority, origin, c) } fn cancel_named(id: Vec) -> Result<(), ()> { + #[allow(deprecated)] T::cancel_named(id) } @@ -277,10 +288,12 @@ pub mod v1 { id: Vec, when: DispatchTime, ) -> Result { + #[allow(deprecated)] T::reschedule_named(id, when) } fn next_dispatch_time(id: Vec) -> Result { + #[allow(deprecated)] T::next_dispatch_time(id) } } @@ -478,4 +491,5 @@ pub mod v3 { } } +#[allow(deprecated)] pub use v1::*; From 54cd332bd932a5187743c2a22e4bccd1fc7be2d4 Mon Sep 17 00:00:00 2001 From: Tin Chung <56880684+chungquantin@users.noreply.github.com> Date: Mon, 18 Mar 2024 10:12:35 +0700 Subject: [PATCH 4/7] Update deprecated note Co-authored-by: Oliver Tale-Yazdi --- substrate/frame/support/src/traits/schedule.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/support/src/traits/schedule.rs b/substrate/frame/support/src/traits/schedule.rs index 73e23c08fb48..7b7c9ec12921 100644 --- a/substrate/frame/support/src/traits/schedule.rs +++ b/substrate/frame/support/src/traits/schedule.rs @@ -130,7 +130,7 @@ impl MaybeHashed { } } -#[deprecated(note = "Use `v3` instead")] +#[deprecated(note = "Use `v3` instead. Will be removed after September 2024.")] pub mod v1 { use super::*; From d4e5ef7348c03c4024c893cad51c207b9b705dcd Mon Sep 17 00:00:00 2001 From: Tin Chung <56880684+chungquantin@users.noreply.github.com> Date: Mon, 18 Mar 2024 10:12:49 +0700 Subject: [PATCH 5/7] Update deprecated note Co-authored-by: Oliver Tale-Yazdi --- substrate/frame/support/src/traits/schedule.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/support/src/traits/schedule.rs b/substrate/frame/support/src/traits/schedule.rs index 7b7c9ec12921..f41c73fe69a8 100644 --- a/substrate/frame/support/src/traits/schedule.rs +++ b/substrate/frame/support/src/traits/schedule.rs @@ -299,7 +299,7 @@ pub mod v1 { } } -#[deprecated(note = "Use `v3` instead")] +#[deprecated(note = "Use `v3` instead. Will be removed after September 2024.")] pub mod v2 { use super::*; From 2c2bebf6d9a562226fe798415e850b54abb286c4 Mon Sep 17 00:00:00 2001 From: Tin Chung <56880684+chungquantin@users.noreply.github.com> Date: Mon, 18 Mar 2024 10:13:28 +0700 Subject: [PATCH 6/7] Remove v3 migration TODO Co-authored-by: Oliver Tale-Yazdi --- substrate/frame/scheduler/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/substrate/frame/scheduler/src/lib.rs b/substrate/frame/scheduler/src/lib.rs index 511e871a0173..8f4e0b74a022 100644 --- a/substrate/frame/scheduler/src/lib.rs +++ b/substrate/frame/scheduler/src/lib.rs @@ -1435,7 +1435,6 @@ impl Pallet { } } -// TODO: migrate `schedule::v2::Anon` to `v3` #[allow(deprecated)] impl schedule::v2::Anon, ::RuntimeCall, T::PalletsOrigin> for Pallet From d211104f0dd2067f58aa10ef60e8cef6ab643dda Mon Sep 17 00:00:00 2001 From: tin-snowflake Date: Mon, 18 Mar 2024 21:58:55 +0700 Subject: [PATCH 7/7] Create pr_3718.prdoc --- prdoc/pr_3718.prdoc | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 prdoc/pr_3718.prdoc diff --git a/prdoc/pr_3718.prdoc b/prdoc/pr_3718.prdoc new file mode 100644 index 000000000000..b2b24cc9704d --- /dev/null +++ b/prdoc/pr_3718.prdoc @@ -0,0 +1,13 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Deprecate scheduler traits v1 and v2 + +doc: + - audience: Runtime Dev + description: | + Add `#[deprecated]` attribute to scheduler traits v1 and v2 to deprecate old versions + +crates: + - name: frame-support + - name: pallet-scheduler