Skip to content

Commit 11edbaf

Browse files
authored
Feature gate do_task in frame_system (#2707)
#1343 introduced Tasks API. This one moves `do_task` call in frame_system under the experimental flag, till the previous one is audited. --------- Co-authored-by: command-bot <>
1 parent 2cee874 commit 11edbaf

File tree

8 files changed

+32
-5
lines changed

8 files changed

+32
-5
lines changed

substrate/bin/node/runtime/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,3 +407,8 @@ try-runtime = [
407407
"pallet-whitelist/try-runtime",
408408
"sp-runtime/try-runtime",
409409
]
410+
experimental = [
411+
"frame-support/experimental",
412+
"frame-system/experimental",
413+
"pallet-example-tasks/experimental",
414+
]

substrate/frame/examples/tasks/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,4 @@ try-runtime = [
5353
"frame-system/try-runtime",
5454
"sp-runtime/try-runtime",
5555
]
56+
experimental = ["frame-support/experimental", "frame-system/experimental"]

substrate/frame/examples/tasks/src/tests.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,13 @@
1818
//! Tests for `pallet-example-tasks`.
1919
#![cfg(test)]
2020

21-
use crate::{mock::*, Numbers, Total};
22-
use frame_support::{assert_noop, assert_ok, traits::Task};
21+
use crate::{mock::*, Numbers};
22+
use frame_support::traits::Task;
2323
use sp_runtime::BuildStorage;
2424

25+
#[cfg(feature = "experimental")]
26+
use frame_support::{assert_noop, assert_ok};
27+
2528
// This function basically just builds a genesis storage key/value store according to
2629
// our desired mockup.
2730
pub fn new_test_ext() -> sp_io::TestExternalities {
@@ -89,6 +92,7 @@ fn task_index_works_at_runtime_level() {
8992
});
9093
}
9194

95+
#[cfg(feature = "experimental")]
9296
#[test]
9397
fn task_execution_works() {
9498
new_test_ext().execute_with(|| {
@@ -105,11 +109,12 @@ fn task_execution_works() {
105109
assert_ok!(System::do_task(RuntimeOrigin::signed(1), task.clone(),));
106110
assert_eq!(Numbers::<Runtime>::get(0), Some(1));
107111
assert_eq!(Numbers::<Runtime>::get(1), None);
108-
assert_eq!(Total::<Runtime>::get(), (1, 4));
112+
assert_eq!(crate::Total::<Runtime>::get(), (1, 4));
109113
System::assert_last_event(frame_system::Event::<Runtime>::TaskCompleted { task }.into());
110114
});
111115
}
112116

117+
#[cfg(feature = "experimental")]
113118
#[test]
114119
fn task_execution_fails_for_invalid_task() {
115120
new_test_ext().execute_with(|| {

substrate/frame/support/test/Cargo.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ std = [
6161
"sp-version/std",
6262
"test-pallet/std",
6363
]
64-
experimental = ["frame-support/experimental"]
64+
experimental = [
65+
"frame-support/experimental",
66+
"frame-system/experimental",
67+
]
6568
try-runtime = [
6669
"frame-executive/try-runtime",
6770
"frame-support/try-runtime",

substrate/frame/support/test/tests/pallet_outer_enums_explicit.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@ fn module_error_outer_enum_expand_explicit() {
9090
frame_system::Error::NonDefaultComposite => (),
9191
frame_system::Error::NonZeroRefCount => (),
9292
frame_system::Error::CallFiltered => (),
93+
#[cfg(feature = "experimental")]
9394
frame_system::Error::InvalidTask => (),
95+
#[cfg(feature = "experimental")]
9496
frame_system::Error::FailedTask => (),
9597
frame_system::Error::__Ignore(_, _) => (),
9698
},

substrate/frame/support/test/tests/pallet_outer_enums_implicit.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@ fn module_error_outer_enum_expand_implicit() {
9090
frame_system::Error::NonDefaultComposite => (),
9191
frame_system::Error::NonZeroRefCount => (),
9292
frame_system::Error::CallFiltered => (),
93+
#[cfg(feature = "experimental")]
9394
frame_system::Error::InvalidTask => (),
95+
#[cfg(feature = "experimental")]
9496
frame_system::Error::FailedTask => (),
9597
frame_system::Error::__Ignore(_, _) => (),
9698
},

substrate/frame/system/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ runtime-benchmarks = [
5656
"sp-runtime/runtime-benchmarks",
5757
]
5858
try-runtime = ["frame-support/try-runtime", "sp-runtime/try-runtime"]
59+
experimental = ["frame-support/experimental"]
5960

6061
[[bench]]
6162
name = "bench"

substrate/frame/system/src/lib.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,9 +323,11 @@ pub mod pallet {
323323
#[inject_runtime_type]
324324
type RuntimeCall = ();
325325

326-
/// Converts a module to the index of the module, injected by `construct_runtime!`.
326+
/// The aggregated Task type, injected by `construct_runtime!`.
327327
#[inject_runtime_type]
328328
type RuntimeTask = ();
329+
330+
/// Converts a module to the index of the module, injected by `construct_runtime!`.
329331
#[inject_runtime_type]
330332
type PalletInfo = ();
331333

@@ -637,6 +639,7 @@ pub mod pallet {
637639
Ok(().into())
638640
}
639641

642+
#[cfg(feature = "experimental")]
640643
#[pallet::call_index(8)]
641644
#[pallet::weight(task.weight())]
642645
pub fn do_task(origin: OriginFor<T>, task: T::RuntimeTask) -> DispatchResultWithPostInfo {
@@ -675,10 +678,13 @@ pub mod pallet {
675678
KilledAccount { account: T::AccountId },
676679
/// On on-chain remark happened.
677680
Remarked { sender: T::AccountId, hash: T::Hash },
681+
#[cfg(feature = "experimental")]
678682
/// A [`Task`] has started executing
679683
TaskStarted { task: T::RuntimeTask },
684+
#[cfg(feature = "experimental")]
680685
/// A [`Task`] has finished executing.
681686
TaskCompleted { task: T::RuntimeTask },
687+
#[cfg(feature = "experimental")]
682688
/// A [`Task`] failed during execution.
683689
TaskFailed { task: T::RuntimeTask, err: DispatchError },
684690
}
@@ -702,8 +708,10 @@ pub mod pallet {
702708
NonZeroRefCount,
703709
/// The origin filter prevent the call to be dispatched.
704710
CallFiltered,
711+
#[cfg(feature = "experimental")]
705712
/// The specified [`Task`] is not valid.
706713
InvalidTask,
714+
#[cfg(feature = "experimental")]
707715
/// The specified [`Task`] failed during execution.
708716
FailedTask,
709717
}

0 commit comments

Comments
 (0)