diff --git a/polkadot/runtime/parachains/src/assigner_parachains.rs b/polkadot/runtime/parachains/src/assigner_parachains.rs
deleted file mode 100644
index 53edae5c32fc9..0000000000000
--- a/polkadot/runtime/parachains/src/assigner_parachains.rs
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (C) Parity Technologies (UK) Ltd.
-// This file is part of Polkadot.
-
-// Polkadot is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Polkadot is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Polkadot. If not, see .
-
-//! The bulk (parachain slot auction) blockspace assignment provider.
-//! This provider is tightly coupled with the configuration and paras modules.
-
-#[cfg(test)]
-mod mock_helpers;
-#[cfg(test)]
-mod tests;
-
-use frame_system::pallet_prelude::BlockNumberFor;
-use polkadot_primitives::CoreIndex;
-
-use crate::{
- configuration, paras,
- scheduler::common::{Assignment, AssignmentProvider},
-};
-
-pub use pallet::*;
-
-#[frame_support::pallet]
-pub mod pallet {
- use super::*;
-
- #[pallet::pallet]
- #[pallet::without_storage_info]
- pub struct Pallet(_);
-
- #[pallet::config]
- pub trait Config: frame_system::Config + configuration::Config + paras::Config {}
-}
-
-impl AssignmentProvider> for Pallet {
- fn pop_assignment_for_core(core_idx: CoreIndex) -> Option {
- paras::Parachains::::get()
- .get(core_idx.0 as usize)
- .copied()
- .map(Assignment::Bulk)
- }
-
- fn report_processed(_: Assignment) {}
-
- /// Bulk assignment has no need to push the assignment back on a session change,
- /// this is a no-op in the case of a bulk assignment slot.
- fn push_back_assignment(_: Assignment) {}
-
- #[cfg(any(feature = "runtime-benchmarks", test))]
- fn get_mock_assignment(_: CoreIndex, para_id: polkadot_primitives::Id) -> Assignment {
- Assignment::Bulk(para_id)
- }
-
- fn assignment_duplicated(_: &Assignment) {}
-}
diff --git a/polkadot/runtime/parachains/src/assigner_parachains/mock_helpers.rs b/polkadot/runtime/parachains/src/assigner_parachains/mock_helpers.rs
deleted file mode 100644
index d984fd9232c33..0000000000000
--- a/polkadot/runtime/parachains/src/assigner_parachains/mock_helpers.rs
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright (C) Parity Technologies (UK) Ltd.
-// This file is part of Polkadot.
-
-// Polkadot is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Polkadot is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Polkadot. If not, see .
-
-//! Helper functions for tests
-
-use crate::{
- mock::MockGenesisConfig,
- paras::{ParaGenesisArgs, ParaKind},
-};
-
-use polkadot_primitives::{Balance, HeadData, ValidationCode};
-use sp_runtime::Perbill;
-
-fn default_genesis_config() -> MockGenesisConfig {
- MockGenesisConfig {
- configuration: crate::configuration::GenesisConfig {
- config: crate::configuration::HostConfiguration { ..Default::default() },
- },
- ..Default::default()
- }
-}
-
-#[derive(Debug)]
-pub struct GenesisConfigBuilder {
- pub on_demand_cores: u32,
- pub on_demand_base_fee: Balance,
- pub on_demand_fee_variability: Perbill,
- pub on_demand_max_queue_size: u32,
- pub on_demand_target_queue_utilization: Perbill,
- pub onboarded_on_demand_chains: Vec,
-}
-
-impl Default for GenesisConfigBuilder {
- fn default() -> Self {
- Self {
- on_demand_cores: 10,
- on_demand_base_fee: 10_000,
- on_demand_fee_variability: Perbill::from_percent(1),
- on_demand_max_queue_size: 100,
- on_demand_target_queue_utilization: Perbill::from_percent(25),
- onboarded_on_demand_chains: vec![],
- }
- }
-}
-
-impl GenesisConfigBuilder {
- pub(super) fn build(self) -> MockGenesisConfig {
- let mut genesis = default_genesis_config();
- let config = &mut genesis.configuration.config;
- config.scheduler_params.num_cores = self.on_demand_cores;
- config.scheduler_params.on_demand_base_fee = self.on_demand_base_fee;
- config.scheduler_params.on_demand_fee_variability = self.on_demand_fee_variability;
- config.scheduler_params.on_demand_queue_max_size = self.on_demand_max_queue_size;
- config.scheduler_params.on_demand_target_queue_utilization =
- self.on_demand_target_queue_utilization;
-
- let paras = &mut genesis.paras.paras;
- for para_id in self.onboarded_on_demand_chains {
- paras.push((
- para_id,
- ParaGenesisArgs {
- genesis_head: HeadData::from(vec![0u8]),
- validation_code: ValidationCode::from(vec![0u8]),
- para_kind: ParaKind::Parathread,
- },
- ))
- }
-
- genesis
- }
-}
diff --git a/polkadot/runtime/parachains/src/assigner_parachains/tests.rs b/polkadot/runtime/parachains/src/assigner_parachains/tests.rs
deleted file mode 100644
index 6e8e185bb48df..0000000000000
--- a/polkadot/runtime/parachains/src/assigner_parachains/tests.rs
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright (C) Parity Technologies (UK) Ltd.
-// This file is part of Polkadot.
-
-// Polkadot is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Polkadot is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Polkadot. If not, see .
-
-use super::*;
-use crate::{
- assigner_parachains::mock_helpers::GenesisConfigBuilder,
- initializer::SessionChangeNotification,
- mock::{
- new_test_ext, ParachainsAssigner, Paras, ParasShared, RuntimeOrigin, Scheduler, System,
- },
- paras::{ParaGenesisArgs, ParaKind},
-};
-use frame_support::{assert_ok, pallet_prelude::*};
-use polkadot_primitives::{BlockNumber, Id as ParaId, SessionIndex, ValidationCode};
-
-fn schedule_blank_para(id: ParaId, parakind: ParaKind) {
- let validation_code: ValidationCode = vec![1, 2, 3].into();
- assert_ok!(Paras::schedule_para_initialize(
- id,
- ParaGenesisArgs {
- genesis_head: Vec::new().into(),
- validation_code: validation_code.clone(),
- para_kind: parakind,
- }
- ));
-
- assert_ok!(Paras::add_trusted_validation_code(RuntimeOrigin::root(), validation_code));
-}
-
-fn run_to_block(
- to: BlockNumber,
- new_session: impl Fn(BlockNumber) -> Option>,
-) {
- while System::block_number() < to {
- let b = System::block_number();
-
- Scheduler::initializer_finalize();
- Paras::initializer_finalize(b);
-
- if let Some(notification) = new_session(b + 1) {
- let mut notification_with_session_index = notification;
- // We will make every session change trigger an action queue. Normally this may require
- // 2 or more session changes.
- if notification_with_session_index.session_index == SessionIndex::default() {
- notification_with_session_index.session_index = ParasShared::scheduled_session();
- }
- Paras::initializer_on_new_session(¬ification_with_session_index);
- Scheduler::initializer_on_new_session(¬ification_with_session_index);
- }
-
- System::on_finalize(b);
-
- System::on_initialize(b + 1);
- System::set_block_number(b + 1);
-
- Paras::initializer_initialize(b + 1);
- Scheduler::initializer_initialize(b + 1);
-
- // In the real runtime this is expected to be called by the `InclusionInherent` pallet.
- Scheduler::advance_claim_queue(&Default::default());
- }
-}
-
-// This and the scheduler test schedule_schedules_including_just_freed together
-// ensure that next_up_on_available and next_up_on_time_out will always be
-// filled with scheduler claims for lease holding parachains. (Removes the need
-// for two other scheduler tests)
-#[test]
-fn parachains_assigner_pop_assignment_is_always_some() {
- let core_index = CoreIndex(0);
- let para_id = ParaId::from(10);
- let expected_assignment = Assignment::Bulk(para_id);
-
- new_test_ext(GenesisConfigBuilder::default().build()).execute_with(|| {
- // Register the para_id as a lease holding parachain
- schedule_blank_para(para_id, ParaKind::Parachain);
-
- assert!(!Paras::is_parachain(para_id));
- run_to_block(10, |n| if n == 10 { Some(Default::default()) } else { None });
- assert!(Paras::is_parachain(para_id));
-
- for _ in 0..20 {
- assert!(
- ParachainsAssigner::pop_assignment_for_core(core_index) ==
- Some(expected_assignment.clone())
- );
- }
-
- run_to_block(20, |n| if n == 20 { Some(Default::default()) } else { None });
-
- for _ in 0..20 {
- assert!(
- ParachainsAssigner::pop_assignment_for_core(core_index) ==
- Some(expected_assignment.clone())
- );
- }
- });
-}
diff --git a/polkadot/runtime/parachains/src/lib.rs b/polkadot/runtime/parachains/src/lib.rs
index f1162e1cc2154..828c0b9bcef21 100644
--- a/polkadot/runtime/parachains/src/lib.rs
+++ b/polkadot/runtime/parachains/src/lib.rs
@@ -24,7 +24,6 @@
#![cfg_attr(not(feature = "std"), no_std)]
pub mod assigner_coretime;
-pub mod assigner_parachains;
pub mod configuration;
pub mod coretime;
pub mod disputes;
diff --git a/polkadot/runtime/parachains/src/mock.rs b/polkadot/runtime/parachains/src/mock.rs
index c23918708b21f..9ef3922f0f8c5 100644
--- a/polkadot/runtime/parachains/src/mock.rs
+++ b/polkadot/runtime/parachains/src/mock.rs
@@ -17,7 +17,7 @@
//! Mocks for all the traits.
use crate::{
- assigner_coretime, assigner_parachains, configuration, coretime, disputes, dmp, hrmp,
+ assigner_coretime, configuration, coretime, disputes, dmp, hrmp,
inclusion::{self, AggregateMessageOrigin, UmpQueueId},
initializer, on_demand, origin, paras,
paras::ParaKind,
@@ -76,7 +76,6 @@ frame_support::construct_runtime!(
ParaInherent: paras_inherent,
Scheduler: scheduler,
MockAssigner: mock_assigner,
- ParachainsAssigner: assigner_parachains,
OnDemand: on_demand,
CoretimeAssigner: assigner_coretime,
Coretime: coretime,
@@ -399,8 +398,6 @@ impl pallet_message_queue::Config for Test {
type IdleMaxServiceWeight = ();
}
-impl assigner_parachains::Config for Test {}
-
parameter_types! {
pub const OnDemandTrafficDefaultValue: FixedU128 = FixedU128::from_u32(1);
// Production chains should keep this numbar around twice the
diff --git a/prdoc/pr_6171.prdoc b/prdoc/pr_6171.prdoc
new file mode 100644
index 0000000000000..36246350cf8a1
--- /dev/null
+++ b/prdoc/pr_6171.prdoc
@@ -0,0 +1,7 @@
+title: 'remove parachains_assigner'
+doc:
+ - audience: Runtime Dev
+ description: "Remove the code of the parachains_assigner pallet, since coretime was released on all production networks."
+crates:
+- name: polkadot-runtime-parachains
+ bump: major