From 0fb6e3c51eb37575f33ac7f06b6350c0aab4f0c7 Mon Sep 17 00:00:00 2001
From: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Date: Wed, 7 Aug 2024 16:30:33 +0200
Subject: [PATCH] Umbrella crate: exclude chain-specific crates (#5173)

Uses custom metadata to exclude chain-specific crates.
The only concern is that devs who want to use chain-specific crates,
still need to select matching versions numbers. Could possibly be
addresses with chain-specific umbrella crates, but currently it should
be possible to use [psvm](https://github.com/paritytech/psvm).

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
---
 Cargo.lock                                    | 13 ---
 .../chains/chain-asset-hub-rococo/Cargo.toml  |  3 +
 .../chains/chain-asset-hub-westend/Cargo.toml |  3 +
 .../chain-bridge-hub-cumulus/Cargo.toml       |  3 +
 .../chains/chain-bridge-hub-kusama/Cargo.toml |  3 +
 .../chain-bridge-hub-polkadot/Cargo.toml      |  3 +
 .../chains/chain-bridge-hub-rococo/Cargo.toml |  3 +
 .../chain-bridge-hub-westend/Cargo.toml       |  3 +
 bridges/chains/chain-kusama/Cargo.toml        |  3 +
 .../chains/chain-polkadot-bulletin/Cargo.toml |  3 +
 bridges/chains/chain-rococo/Cargo.toml        |  3 +
 bridges/chains/chain-westend/Cargo.toml       |  3 +
 docs/contributor/CONTRIBUTING.md              | 39 ++++++++
 polkadot/runtime/rococo/constants/Cargo.toml  |  3 +
 polkadot/runtime/westend/constants/Cargo.toml |  3 +
 prdoc/pr_5173.prdoc                           | 39 ++++++++
 scripts/generate-umbrella.py                  |  3 +-
 umbrella/Cargo.toml                           | 91 -------------------
 umbrella/src/lib.rs                           | 52 -----------
 19 files changed, 119 insertions(+), 157 deletions(-)
 create mode 100644 prdoc/pr_5173.prdoc

diff --git a/Cargo.lock b/Cargo.lock
index 826bb9398ae..54a01f12f35 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -14179,25 +14179,14 @@ dependencies = [
  "asset-test-utils",
  "assets-common",
  "binary-merkle-tree",
- "bp-asset-hub-rococo",
- "bp-asset-hub-westend",
- "bp-bridge-hub-cumulus",
- "bp-bridge-hub-kusama",
- "bp-bridge-hub-polkadot",
- "bp-bridge-hub-rococo",
- "bp-bridge-hub-westend",
  "bp-header-chain",
- "bp-kusama",
  "bp-messages",
  "bp-parachains",
  "bp-polkadot",
- "bp-polkadot-bulletin",
  "bp-polkadot-core",
  "bp-relayers",
- "bp-rococo",
  "bp-runtime",
  "bp-test-utils",
- "bp-westend",
  "bp-xcm-bridge-hub",
  "bp-xcm-bridge-hub-router",
  "bridge-hub-common",
@@ -14408,7 +14397,6 @@ dependencies = [
  "polkadot-service",
  "polkadot-statement-distribution",
  "polkadot-statement-table",
- "rococo-runtime-constants",
  "sc-allocator",
  "sc-authority-discovery",
  "sc-basic-authorship",
@@ -14552,7 +14540,6 @@ dependencies = [
  "testnet-parachains-constants",
  "tracing-gum",
  "tracing-gum-proc-macro",
- "westend-runtime-constants",
  "xcm-emulator",
  "xcm-procedural",
  "xcm-runtime-apis",
diff --git a/bridges/chains/chain-asset-hub-rococo/Cargo.toml b/bridges/chains/chain-asset-hub-rococo/Cargo.toml
index b765fbc57bb..363a869048a 100644
--- a/bridges/chains/chain-asset-hub-rococo/Cargo.toml
+++ b/bridges/chains/chain-asset-hub-rococo/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/bridges/chains/chain-asset-hub-westend/Cargo.toml b/bridges/chains/chain-asset-hub-westend/Cargo.toml
index ff89864fb2d..430d9b6116c 100644
--- a/bridges/chains/chain-asset-hub-westend/Cargo.toml
+++ b/bridges/chains/chain-asset-hub-westend/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml b/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
index 5609398385f..99ba721991e 100644
--- a/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-cumulus/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/bridges/chains/chain-bridge-hub-kusama/Cargo.toml b/bridges/chains/chain-bridge-hub-kusama/Cargo.toml
index 605643b0a4e..39f7b44daa5 100644
--- a/bridges/chains/chain-bridge-hub-kusama/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-kusama/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml b/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
index 97e36a19c74..3b0ac96e7cd 100644
--- a/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-polkadot/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/bridges/chains/chain-bridge-hub-rococo/Cargo.toml b/bridges/chains/chain-bridge-hub-rococo/Cargo.toml
index 5c918470322..66848ba0e26 100644
--- a/bridges/chains/chain-bridge-hub-rococo/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-rococo/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/bridges/chains/chain-bridge-hub-westend/Cargo.toml b/bridges/chains/chain-bridge-hub-westend/Cargo.toml
index 0b429ab9a0b..24a196c1d70 100644
--- a/bridges/chains/chain-bridge-hub-westend/Cargo.toml
+++ b/bridges/chains/chain-bridge-hub-westend/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/bridges/chains/chain-kusama/Cargo.toml b/bridges/chains/chain-kusama/Cargo.toml
index ec45c1eddce..aec4041f7d5 100644
--- a/bridges/chains/chain-kusama/Cargo.toml
+++ b/bridges/chains/chain-kusama/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/bridges/chains/chain-polkadot-bulletin/Cargo.toml b/bridges/chains/chain-polkadot-bulletin/Cargo.toml
index ea5f4d2e775..aecf9314273 100644
--- a/bridges/chains/chain-polkadot-bulletin/Cargo.toml
+++ b/bridges/chains/chain-polkadot-bulletin/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/bridges/chains/chain-rococo/Cargo.toml b/bridges/chains/chain-rococo/Cargo.toml
index 49a1a397ee0..8a99267691d 100644
--- a/bridges/chains/chain-rococo/Cargo.toml
+++ b/bridges/chains/chain-rococo/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/bridges/chains/chain-westend/Cargo.toml b/bridges/chains/chain-westend/Cargo.toml
index 5e27bc647bf..cd6abe8abe6 100644
--- a/bridges/chains/chain-westend/Cargo.toml
+++ b/bridges/chains/chain-westend/Cargo.toml
@@ -7,6 +7,9 @@ edition.workspace = true
 license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
 repository.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/docs/contributor/CONTRIBUTING.md b/docs/contributor/CONTRIBUTING.md
index 7d54b2681b4..d8f956b82d2 100644
--- a/docs/contributor/CONTRIBUTING.md
+++ b/docs/contributor/CONTRIBUTING.md
@@ -82,6 +82,45 @@ Non "silent" PRs must come with documentation in the form of a `.prdoc` file.
 
 See more about `prdoc` [here](./prdoc.md)
 
+## Crate Configuration `Cargo.toml`
+
+The Polkadot SDK uses many conventions when configuring a crate. Watch out for these things when you
+are creating a new crate.
+
+### Is the Crate chain-specific?
+
+Chain-specific crates, for example
+[`bp-bridge-hub-rococo`](https://github.com/paritytech/polkadot-sdk/blob/4014b9bf2bf8f74862f63e7114e5c78009529be5/bridges/chains/chain-bridge-hub-rococo/Cargo.toml#L10-L11)
+, should not be released as part of the Polkadot-SDK umbrella crate. We have a custom metadata
+attribute that is picked up by the [generate-umbrella.py](../../scripts/generate-umbrella.py)
+script, that should be applied to all chain-specific crates like such:
+
+```toml
+[package]
+# Other stuff...
+
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
+# Other stuff...
+```
+
+### Is the Crate a Test, Example or Fuzzer?
+
+Test or example crates, like
+[`pallet-example-task`](https://github.com/paritytech/polkadot-sdk/blob/9b4acf27b869d7cbb07b03f0857763b8c8cc7566/substrate/frame/examples/tasks/Cargo.toml#L9)
+, should not be released to crates.io. To ensure this, you must add `publish = false` to your
+crate's `package` section:
+
+```toml
+[package]
+# Other stuff...
+
+publish = false
+
+# Other stuff...
+```
+
 ## Helping out
 
 We use [labels](https://github.com/paritytech/polkadot-sdk/labels) to manage PRs and issues and communicate state of a
diff --git a/polkadot/runtime/rococo/constants/Cargo.toml b/polkadot/runtime/rococo/constants/Cargo.toml
index b67c36d71fd..1d0adac44af 100644
--- a/polkadot/runtime/rococo/constants/Cargo.toml
+++ b/polkadot/runtime/rococo/constants/Cargo.toml
@@ -6,6 +6,9 @@ authors.workspace = true
 edition.workspace = true
 license.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/polkadot/runtime/westend/constants/Cargo.toml b/polkadot/runtime/westend/constants/Cargo.toml
index f9b99ea5284..27d5b19b8e7 100644
--- a/polkadot/runtime/westend/constants/Cargo.toml
+++ b/polkadot/runtime/westend/constants/Cargo.toml
@@ -6,6 +6,9 @@ authors.workspace = true
 edition.workspace = true
 license.workspace = true
 
+[package.metadata.polkadot-sdk]
+exclude-from-umbrella = true
+
 [lints]
 workspace = true
 
diff --git a/prdoc/pr_5173.prdoc b/prdoc/pr_5173.prdoc
new file mode 100644
index 00000000000..81ddcd9578b
--- /dev/null
+++ b/prdoc/pr_5173.prdoc
@@ -0,0 +1,39 @@
+title: "Umbrella crate: exclude chain-specific crates"
+
+doc:
+  - audience: Runtime Dev
+    description: |
+      The `polkadot-sdk` umbrella crate does now not contain chain-specific crates. The reasoning is
+      that the SDK should be mostly chain-agnostic. Please check out
+      [psvm](https://github.com/paritytech/psvm) to select matching version numbers for chain-
+      specific crates.
+
+crates:
+  - name: polkadot-sdk
+    bump: major
+  - name: rococo-runtime-constants
+    bump: none
+  - name: westend-runtime-constants
+    bump: none
+  - name: bp-asset-hub-rococo
+    bump: none
+  - name: bp-asset-hub-westend
+    bump: none
+  - name: bp-bridge-hub-cumulus
+    bump: none
+  - name: bp-bridge-hub-kusama
+    bump: none
+  - name: bp-bridge-hub-polkadot
+    bump: none
+  - name: bp-bridge-hub-rococo
+    bump: none
+  - name: bp-bridge-hub-westend
+    bump: none
+  - name: bp-kusama
+    bump: none
+  - name: bp-polkadot-bulletin
+    bump: none
+  - name: bp-rococo
+    bump: none
+  - name: bp-westend
+    bump: none
diff --git a/scripts/generate-umbrella.py b/scripts/generate-umbrella.py
index a5f7d3b9256..3293c30bc82 100644
--- a/scripts/generate-umbrella.py
+++ b/scripts/generate-umbrella.py
@@ -24,12 +24,13 @@ Crate names that should be excluded from the umbrella crate.
 """
 def exclude(crate):
 	name = crate.name
-	if crate.metadata.get("polkadot-sdk.skip-umbrella", False):
+	if crate.metadata.get("polkadot-sdk.exclude-from-umbrella", False):
 		return True
 
 	# No fuzzers or examples:
 	if "example" in name or name.endswith("fuzzer"):
 		return True
+
 	# No runtime crates:
 	if name.endswith("-runtime"):
 		# Note: this is a bit hacky. We should use custom crate metadata instead.
diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml
index 8d85e26d8fe..65ff9a81e47 100644
--- a/umbrella/Cargo.toml
+++ b/umbrella/Cargo.toml
@@ -10,25 +10,14 @@ std = [
 	"asset-test-utils?/std",
 	"assets-common?/std",
 	"binary-merkle-tree?/std",
-	"bp-asset-hub-rococo?/std",
-	"bp-asset-hub-westend?/std",
-	"bp-bridge-hub-cumulus?/std",
-	"bp-bridge-hub-kusama?/std",
-	"bp-bridge-hub-polkadot?/std",
-	"bp-bridge-hub-rococo?/std",
-	"bp-bridge-hub-westend?/std",
 	"bp-header-chain?/std",
-	"bp-kusama?/std",
 	"bp-messages?/std",
 	"bp-parachains?/std",
-	"bp-polkadot-bulletin?/std",
 	"bp-polkadot-core?/std",
 	"bp-polkadot?/std",
 	"bp-relayers?/std",
-	"bp-rococo?/std",
 	"bp-runtime?/std",
 	"bp-test-utils?/std",
-	"bp-westend?/std",
 	"bp-xcm-bridge-hub-router?/std",
 	"bp-xcm-bridge-hub?/std",
 	"bridge-hub-common?/std",
@@ -171,7 +160,6 @@ std = [
 	"polkadot-runtime-metrics?/std",
 	"polkadot-runtime-parachains?/std",
 	"polkadot-sdk-frame?/std",
-	"rococo-runtime-constants?/std",
 	"sc-executor?/std",
 	"slot-range-helper?/std",
 	"snowbridge-beacon-primitives?/std",
@@ -239,7 +227,6 @@ std = [
 	"staging-xcm?/std",
 	"substrate-bip39?/std",
 	"testnet-parachains-constants?/std",
-	"westend-runtime-constants?/std",
 	"xcm-runtime-apis?/std",
 ]
 runtime-benchmarks = [
@@ -543,25 +530,14 @@ with-tracing = [
 runtime = [
 	"assets-common",
 	"binary-merkle-tree",
-	"bp-asset-hub-rococo",
-	"bp-asset-hub-westend",
-	"bp-bridge-hub-cumulus",
-	"bp-bridge-hub-kusama",
-	"bp-bridge-hub-polkadot",
-	"bp-bridge-hub-rococo",
-	"bp-bridge-hub-westend",
 	"bp-header-chain",
-	"bp-kusama",
 	"bp-messages",
 	"bp-parachains",
 	"bp-polkadot",
-	"bp-polkadot-bulletin",
 	"bp-polkadot-core",
 	"bp-relayers",
-	"bp-rococo",
 	"bp-runtime",
 	"bp-test-utils",
-	"bp-westend",
 	"bp-xcm-bridge-hub",
 	"bp-xcm-bridge-hub-router",
 	"bridge-hub-common",
@@ -706,7 +682,6 @@ runtime = [
 	"polkadot-runtime-parachains",
 	"polkadot-sdk-frame",
 	"polkadot-sdk-frame?/runtime",
-	"rococo-runtime-constants",
 	"sc-chain-spec-derive",
 	"sc-tracing-proc-macro",
 	"slot-range-helper",
@@ -777,7 +752,6 @@ runtime = [
 	"substrate-bip39",
 	"testnet-parachains-constants",
 	"tracing-gum-proc-macro",
-	"westend-runtime-constants",
 	"xcm-procedural",
 	"xcm-runtime-apis",
 ]
@@ -803,51 +777,11 @@ path = "../substrate/utils/binary-merkle-tree"
 default-features = false
 optional = true
 
-[dependencies.bp-asset-hub-rococo]
-path = "../bridges/chains/chain-asset-hub-rococo"
-default-features = false
-optional = true
-
-[dependencies.bp-asset-hub-westend]
-path = "../bridges/chains/chain-asset-hub-westend"
-default-features = false
-optional = true
-
-[dependencies.bp-bridge-hub-cumulus]
-path = "../bridges/chains/chain-bridge-hub-cumulus"
-default-features = false
-optional = true
-
-[dependencies.bp-bridge-hub-kusama]
-path = "../bridges/chains/chain-bridge-hub-kusama"
-default-features = false
-optional = true
-
-[dependencies.bp-bridge-hub-polkadot]
-path = "../bridges/chains/chain-bridge-hub-polkadot"
-default-features = false
-optional = true
-
-[dependencies.bp-bridge-hub-rococo]
-path = "../bridges/chains/chain-bridge-hub-rococo"
-default-features = false
-optional = true
-
-[dependencies.bp-bridge-hub-westend]
-path = "../bridges/chains/chain-bridge-hub-westend"
-default-features = false
-optional = true
-
 [dependencies.bp-header-chain]
 path = "../bridges/primitives/header-chain"
 default-features = false
 optional = true
 
-[dependencies.bp-kusama]
-path = "../bridges/chains/chain-kusama"
-default-features = false
-optional = true
-
 [dependencies.bp-messages]
 path = "../bridges/primitives/messages"
 default-features = false
@@ -863,11 +797,6 @@ path = "../bridges/chains/chain-polkadot"
 default-features = false
 optional = true
 
-[dependencies.bp-polkadot-bulletin]
-path = "../bridges/chains/chain-polkadot-bulletin"
-default-features = false
-optional = true
-
 [dependencies.bp-polkadot-core]
 path = "../bridges/primitives/polkadot-core"
 default-features = false
@@ -878,11 +807,6 @@ path = "../bridges/primitives/relayers"
 default-features = false
 optional = true
 
-[dependencies.bp-rococo]
-path = "../bridges/chains/chain-rococo"
-default-features = false
-optional = true
-
 [dependencies.bp-runtime]
 path = "../bridges/primitives/runtime"
 default-features = false
@@ -893,11 +817,6 @@ path = "../bridges/primitives/test-utils"
 default-features = false
 optional = true
 
-[dependencies.bp-westend]
-path = "../bridges/chains/chain-westend"
-default-features = false
-optional = true
-
 [dependencies.bp-xcm-bridge-hub]
 path = "../bridges/primitives/xcm-bridge-hub"
 default-features = false
@@ -1613,11 +1532,6 @@ path = "../substrate/frame"
 default-features = false
 optional = true
 
-[dependencies.rococo-runtime-constants]
-path = "../polkadot/runtime/rococo/constants"
-default-features = false
-optional = true
-
 [dependencies.sc-chain-spec-derive]
 path = "../substrate/client/chain-spec/derive"
 default-features = false
@@ -1968,11 +1882,6 @@ path = "../polkadot/node/gum/proc-macro"
 default-features = false
 optional = true
 
-[dependencies.westend-runtime-constants]
-path = "../polkadot/runtime/westend/constants"
-default-features = false
-optional = true
-
 [dependencies.xcm-procedural]
 path = "../polkadot/xcm/procedural"
 default-features = false
diff --git a/umbrella/src/lib.rs b/umbrella/src/lib.rs
index 58a5691961d..07f1cbad126 100644
--- a/umbrella/src/lib.rs
+++ b/umbrella/src/lib.rs
@@ -23,42 +23,10 @@ pub use assets_common;
 #[cfg(feature = "binary-merkle-tree")]
 pub use binary_merkle_tree;
 
-/// Primitives of AssetHubRococo parachain runtime.
-#[cfg(feature = "bp-asset-hub-rococo")]
-pub use bp_asset_hub_rococo;
-
-/// Primitives of AssetHubWestend parachain runtime.
-#[cfg(feature = "bp-asset-hub-westend")]
-pub use bp_asset_hub_westend;
-
-/// Primitives for BridgeHub parachain runtimes.
-#[cfg(feature = "bp-bridge-hub-cumulus")]
-pub use bp_bridge_hub_cumulus;
-
-/// Primitives of BridgeHubKusama parachain runtime.
-#[cfg(feature = "bp-bridge-hub-kusama")]
-pub use bp_bridge_hub_kusama;
-
-/// Primitives of BridgeHubPolkadot parachain runtime.
-#[cfg(feature = "bp-bridge-hub-polkadot")]
-pub use bp_bridge_hub_polkadot;
-
-/// Primitives of BridgeHubRococo parachain runtime.
-#[cfg(feature = "bp-bridge-hub-rococo")]
-pub use bp_bridge_hub_rococo;
-
-/// Primitives of BridgeHubWestend parachain runtime.
-#[cfg(feature = "bp-bridge-hub-westend")]
-pub use bp_bridge_hub_westend;
-
 /// A common interface for describing what a bridge pallet should be able to do.
 #[cfg(feature = "bp-header-chain")]
 pub use bp_header_chain;
 
-/// Primitives of Kusama runtime.
-#[cfg(feature = "bp-kusama")]
-pub use bp_kusama;
-
 /// Primitives of messages module.
 #[cfg(feature = "bp-messages")]
 pub use bp_messages;
@@ -71,10 +39,6 @@ pub use bp_parachains;
 #[cfg(feature = "bp-polkadot")]
 pub use bp_polkadot;
 
-/// Primitives of Polkadot Bulletin chain runtime.
-#[cfg(feature = "bp-polkadot-bulletin")]
-pub use bp_polkadot_bulletin;
-
 /// Primitives of Polkadot-like runtime.
 #[cfg(feature = "bp-polkadot-core")]
 pub use bp_polkadot_core;
@@ -83,10 +47,6 @@ pub use bp_polkadot_core;
 #[cfg(feature = "bp-relayers")]
 pub use bp_relayers;
 
-/// Primitives of Rococo runtime.
-#[cfg(feature = "bp-rococo")]
-pub use bp_rococo;
-
 /// Primitives that may be used at (bridges) runtime level.
 #[cfg(feature = "bp-runtime")]
 pub use bp_runtime;
@@ -95,10 +55,6 @@ pub use bp_runtime;
 #[cfg(feature = "bp-test-utils")]
 pub use bp_test_utils;
 
-/// Primitives of Westend runtime.
-#[cfg(feature = "bp-westend")]
-pub use bp_westend;
-
 /// Primitives of the xcm-bridge-hub pallet.
 #[cfg(feature = "bp-xcm-bridge-hub")]
 pub use bp_xcm_bridge_hub;
@@ -967,10 +923,6 @@ pub use polkadot_statement_distribution;
 #[cfg(feature = "polkadot-statement-table")]
 pub use polkadot_statement_table;
 
-/// Constants used throughout the Rococo network.
-#[cfg(feature = "rococo-runtime-constants")]
-pub use rococo_runtime_constants;
-
 /// Collection of allocator implementations.
 #[cfg(feature = "sc-allocator")]
 pub use sc_allocator;
@@ -1552,10 +1504,6 @@ pub use tracing_gum;
 #[cfg(feature = "tracing-gum-proc-macro")]
 pub use tracing_gum_proc_macro;
 
-/// Constants used throughout the Westend network.
-#[cfg(feature = "westend-runtime-constants")]
-pub use westend_runtime_constants;
-
 /// Test kit to emulate XCM program execution.
 #[cfg(feature = "xcm-emulator")]
 pub use xcm_emulator;
-- 
GitLab