diff --git a/.github/workflows/integration-tests-matrix.json b/.github/workflows/integration-tests-matrix.json new file mode 100644 index 0000000000..f5f50521a5 --- /dev/null +++ b/.github/workflows/integration-tests-matrix.json @@ -0,0 +1,10 @@ +[ + { + "name": "asset-hub-kusama", + "package": "asset-hub-kusama-integration-tests" + }, + { + "name": "asset-hub-polkadot", + "package": "asset-hub-polkadot-integration-tests" + } +] diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2b2fa8005a..2f8b9d48a9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,9 +12,39 @@ concurrency: cancel-in-progress: true jobs: - test: - runs-on: ubuntu-22.04 + runtime-matrix: + runs-on: ubuntu-latest + outputs: + runtime: ${{ steps.runtime.outputs.runtime }} + name: Extract runtimes from matrix + steps: + - uses: actions/checkout@v2 + - id: runtime + run: | + TASKS=$(echo $(cat .github/workflows/runtimes-matrix.json) | sed 's/ //g' ) + echo $TASKS + echo "runtime=$TASKS" >> $GITHUB_OUTPUT + integration-test-matrix: + runs-on: ubuntu-latest + outputs: + itest: ${{ steps.itest.outputs.itest }} + name: Extract integration tests from matrix + steps: + - uses: actions/checkout@v2 + - id: itest + run: | + TASKS=$(echo $(cat .github/workflows/integration-tests-matrix.json) | sed 's/ //g' ) + echo $TASKS + echo "itest=$TASKS" >> $GITHUB_OUTPUT + + runtime-test: + needs: [ runtime-matrix ] + continue-on-error: true + runs-on: ubuntu-22.04 + strategy: + matrix: + runtime: ${{ fromJSON(needs.runtime-matrix.outputs.runtime) }} steps: - name: Cancel previous runs uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 # v0.11.0 @@ -58,13 +88,119 @@ jobs: with: shared-key: "fellowship-cache-tests" - - name: Test - run: cargo test --workspace --release --locked -q --features=runtime-metrics,try-runtime + - name: Test ${{ matrix.runtime.name }} + run: cargo test -p ${{ matrix.runtime.package }} --release --locked -q --features=try-runtime env: RUSTFLAGS: "-C debug-assertions -D warnings" - - name: Test all features - run: cargo test --workspace --release --locked -q --features=runtime-benchmarks,runtime-metrics,try-runtime + - name: Test all features ${{ matrix.runtime.name }} + run: cargo test -p ${{ matrix.runtime.package }} --release --locked -q --features=runtime-benchmarks,try-runtime env: RUSTFLAGS: "-C debug-assertions -D warnings" SKIP_WASM_BUILD: 1 + + integration-test: + needs: [ integration-test-matrix ] + continue-on-error: true + runs-on: ubuntu-22.04 + strategy: + matrix: + itest: ${{ fromJSON(needs.integration-test-matrix.outputs.itest) }} + steps: + - name: Cancel previous runs + uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 # v0.11.0 + with: + access_token: ${{ github.token }} + + - name: Install updates and protobuf-compiler + run: sudo apt update && sudo apt install --assume-yes cmake protobuf-compiler + + - name: Free space on the runner + run: | + df -h + sudo apt -y autoremove --purge + sudo apt -y autoclean + sudo rm -rf /usr/share/dotnet + sudo rm -rf /opt/ghc + sudo rm -rf "/usr/local/share/boost" + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + df -h + + - name: Install stable toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + target: wasm32-unknown-unknown + components: rust-src + + - name: Install nightly toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + target: wasm32-unknown-unknown + + - name: Checkout + uses: actions/checkout@v3 + + - name: Fetch cache + uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 # v2.7.0 + with: + shared-key: "fellowship-cache-tests" + + - name: Test ${{ matrix.itest.name }} + run: cargo test -p ${{ matrix.itest.package }} --release --locked -q + env: + RUSTFLAGS: "-C debug-assertions -D warnings" + + build-chain-spec-generator: + runs-on: ubuntu-latest + steps: + - name: Cancel previous runs + uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 # v0.11.0 + with: + access_token: ${{ github.token }} + + - name: Install updates and protobuf-compiler + run: sudo apt update && sudo apt install --assume-yes cmake protobuf-compiler + + - name: Free space on the runner + run: | + df -h + sudo apt -y autoremove --purge + sudo apt -y autoclean + sudo rm -rf /usr/share/dotnet + sudo rm -rf /opt/ghc + sudo rm -rf "/usr/local/share/boost" + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + df -h + + - name: Install stable toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + target: wasm32-unknown-unknown + components: rust-src + + - name: Install nightly toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + target: wasm32-unknown-unknown + + - name: Checkout + uses: actions/checkout@v3 + + - name: Fetch cache + uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 # v2.7.0 + with: + shared-key: "fellowship-cache-tests" + + - name: Build + run: cargo test -p chain-spec-generator --release --locked -q --features=runtime-benchmarks + env: + RUSTFLAGS: "-C debug-assertions -D warnings" + SKIP_WASM_BUILD: 1 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 11337e88b2..f26efe9c56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Fixed the lowering of Asset Hub existential deposits. - MMR leaves generated by `pallet_mmr` point to the next-authority-set of the current block instead of the prior block [polkadot-fellows/runtimes#169](https://github.com/polkadot-fellows/runtimes/pull/169) - Upgrade dependencies to the `polkadot-sdk@1.5.0` release ([polkadot-fellows/runtimes#137](https://github.com/polkadot-fellows/runtimes/pull/137)) +- Deprecate the `xcm::body::TREASURER_INDEX` constant and use the standard `Treasury` variant from the `xcm::BodyId` type instead ([polkadot-fellows/runtimes#149](https://github.com/polkadot-fellows/runtimes/pull/149)) ### Removed diff --git a/Cargo.lock b/Cargo.lock index aa1e3b9fae..d23d40659d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -627,9 +627,9 @@ dependencies = [ [[package]] name = "asset-test-utils" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e667143b26882e0f67cf028814d46f92671655085e47604cc0e0b62579fee24" +checksum = "dbe1d074264d2de1e1a228f9226159bccf9d03ad2e53fc88d2e037804756d480" dependencies = [ "assets-common", "cumulus-pallet-parachain-system 0.6.0", @@ -1467,9 +1467,9 @@ dependencies = [ [[package]] name = "bridge-hub-test-utils" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d744617b60464166d7d4fbe859164f8dc4f22e096ce386d37afcc3fe157e4a9" +checksum = "5a97535e02f211094d454027af30288a1e5fb43075344354430cefc418e3266e" dependencies = [ "asset-test-utils", "bp-header-chain", @@ -8883,11 +8883,10 @@ dependencies = [ [[package]] name = "parachains-runtimes-test-utils" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34682787ee935f35aa45044637f9557c0b313d91453b41016724574e6193f493" +checksum = "ed49cba62c882e6261cc37d27f53ca84c9aa0605211b7ea2aafdfea888b63f23" dependencies = [ - "assets-common", "cumulus-pallet-parachain-system 0.6.0", "cumulus-pallet-xcmp-queue 0.6.0", "cumulus-primitives-core 0.6.0", @@ -9124,7 +9123,6 @@ dependencies = [ "frame-system-benchmarking 27.0.0", "frame-system-rpc-runtime-api 25.0.0", "frame-try-runtime 0.33.0", - "hex-literal", "log", "pallet-asset-tx-payment 27.0.0", "pallet-assets 28.0.0", diff --git a/integration-tests/emulated/assets/asset-hub-kusama/Cargo.toml b/integration-tests/emulated/assets/asset-hub-kusama/Cargo.toml index 792f3d8bc4..45cce3d4a5 100644 --- a/integration-tests/emulated/assets/asset-hub-kusama/Cargo.toml +++ b/integration-tests/emulated/assets/asset-hub-kusama/Cargo.toml @@ -27,7 +27,7 @@ pallet-xcm = { version = "6.0.0" } # Cumulus parachains-common = { version = "6.0.0" } xcm-emulator = { version = "0.4.0" } -asset-test-utils = { version = "6.0.0" } +asset-test-utils = { version = "6.0.1" } # Local emulated-chains = { path = "../../chains" } @@ -35,6 +35,3 @@ integration-tests-common = { path = "../../common" } asset-hub-kusama-runtime = { path = "../../../../system-parachains/asset-hubs/asset-hub-kusama" } kusama-runtime = { package = "staging-kusama-runtime", path = "../../../../relay/kusama" } system-parachains-constants = { path = "../../../../system-parachains/constants" } - -[features] -runtime-benchmarks = [] \ No newline at end of file diff --git a/integration-tests/emulated/assets/asset-hub-polkadot/Cargo.toml b/integration-tests/emulated/assets/asset-hub-polkadot/Cargo.toml index ff2500dd6d..e96817ef65 100644 --- a/integration-tests/emulated/assets/asset-hub-polkadot/Cargo.toml +++ b/integration-tests/emulated/assets/asset-hub-polkadot/Cargo.toml @@ -25,14 +25,11 @@ pallet-xcm = { version = "6.0.0" } # Cumulus parachains-common = { version = "6.0.0" } xcm-emulator = { version = "0.4.0" } -asset-test-utils = { version = "6.0.0" } +asset-test-utils = { version = "6.0.1" } # Local emulated-chains = { path = "../../chains" } integration-tests-common = { path = "../../common" } asset-hub-polkadot-runtime = { path = "../../../../system-parachains/asset-hubs/asset-hub-polkadot" } polkadot-runtime = { path = "../../../../relay/polkadot" } -system-parachains-constants = { path = "../../../../system-parachains/constants" } - -[features] -runtime-benchmarks = [] \ No newline at end of file +system-parachains-constants = { path = "../../../../system-parachains/constants" } \ No newline at end of file diff --git a/integration-tests/emulated/chains/Cargo.toml b/integration-tests/emulated/chains/Cargo.toml index a99a224673..96dee2b31d 100644 --- a/integration-tests/emulated/chains/Cargo.toml +++ b/integration-tests/emulated/chains/Cargo.toml @@ -41,8 +41,3 @@ bridge-hub-polkadot-runtime = { path = "../../../system-parachains/bridge-hubs/b bridge-hub-kusama-runtime = { path = "../../../system-parachains/bridge-hubs/bridge-hub-kusama" } # TODO: replace with `emulated-integration-tests-common@X.Y.Z` from `polkadot-sdk` integration-tests-common = { path = "../common" } - -[features] -runtime-benchmarks = [ - "penpal-runtime/runtime-benchmarks", -] \ No newline at end of file diff --git a/integration-tests/emulated/common/Cargo.toml b/integration-tests/emulated/common/Cargo.toml index e1c9c700b2..92154b7f10 100644 --- a/integration-tests/emulated/common/Cargo.toml +++ b/integration-tests/emulated/common/Cargo.toml @@ -35,7 +35,7 @@ cumulus-primitives-core = { version = "0.6.0" } xcm-emulator = { version = "0.4.0" } cumulus-pallet-xcmp-queue = { version = "0.6.0" } cumulus-pallet-parachain-system = { features = ["parameterized-consensus-hook",] , version = "0.6.0" } -asset-test-utils = { version = "6.0.0" } +asset-test-utils = { version = "6.0.1" } cumulus-pallet-dmp-queue = { version = "0.6.0" } # Bridges diff --git a/relay/polkadot/constants/src/lib.rs b/relay/polkadot/constants/src/lib.rs index 113c825ac6..e9e997d8a8 100644 --- a/relay/polkadot/constants/src/lib.rs +++ b/relay/polkadot/constants/src/lib.rs @@ -109,6 +109,8 @@ pub mod xcm { // The bodies corresponding to the Polkadot OpenGov Origins. pub const FELLOWSHIP_ADMIN_INDEX: u32 = 1; // The body corresponding to the Treasurer OpenGov track. + #[deprecated = "Will be removed after August 2024; Use `xcm::latest::BodyId::Treasury` \ + instead"] pub const TREASURER_INDEX: u32 = 2; } } diff --git a/relay/polkadot/src/xcm_config.rs b/relay/polkadot/src/xcm_config.rs index 12af781a2f..66b310ab84 100644 --- a/relay/polkadot/src/xcm_config.rs +++ b/relay/polkadot/src/xcm_config.rs @@ -29,9 +29,7 @@ use frame_support::{ use frame_system::EnsureRoot; use pallet_xcm::XcmPassthrough; use polkadot_runtime_constants::{ - currency::CENTS, - system_parachain::*, - xcm::body::{FELLOWSHIP_ADMIN_INDEX, TREASURER_INDEX}, + currency::CENTS, system_parachain::*, xcm::body::FELLOWSHIP_ADMIN_INDEX, }; use runtime_common::{ xcm_sender::{ChildParachainRouter, ExponentialPrice}, @@ -238,7 +236,7 @@ parameter_types! { // FellowshipAdmin pluralistic body. pub const FellowshipAdminBodyId: BodyId = BodyId::Index(FELLOWSHIP_ADMIN_INDEX); // `Treasurer` pluralistic body. - pub const TreasurerBodyId: BodyId = BodyId::Index(TREASURER_INDEX); + pub const TreasurerBodyId: BodyId = BodyId::Treasury; } /// Type to convert the `GeneralAdmin` origin to a Plurality `MultiLocation` value. diff --git a/system-parachains/asset-hubs/asset-hub-kusama/Cargo.toml b/system-parachains/asset-hubs/asset-hub-kusama/Cargo.toml index 5b43559fbd..0ce737bc14 100644 --- a/system-parachains/asset-hubs/asset-hub-kusama/Cargo.toml +++ b/system-parachains/asset-hubs/asset-hub-kusama/Cargo.toml @@ -95,8 +95,8 @@ assets-common = { default-features = false , version = "0.6.0" } pallet-xcm-bridge-hub-router = { default-features = false , version = "0.4.0" } [dev-dependencies] -asset-test-utils = { version = "6.0.0" } -parachains-runtimes-test-utils = { version = "6.0.0" } +asset-test-utils = { version = "6.0.1" } +parachains-runtimes-test-utils = { version = "6.0.1" } sp-io = { version = "29.0.0" } [build-dependencies] diff --git a/system-parachains/asset-hubs/asset-hub-polkadot/Cargo.toml b/system-parachains/asset-hubs/asset-hub-polkadot/Cargo.toml index 63a87cbe66..70c5d89ca0 100644 --- a/system-parachains/asset-hubs/asset-hub-polkadot/Cargo.toml +++ b/system-parachains/asset-hubs/asset-hub-polkadot/Cargo.toml @@ -91,8 +91,8 @@ pallet-xcm-bridge-hub-router = { default-features = false , version = "0.4.0" } [dev-dependencies] hex-literal = "0.4.1" -asset-test-utils = { version = "6.0.0" } -parachains-runtimes-test-utils = { version = "6.0.0" } +asset-test-utils = { version = "6.0.1" } +parachains-runtimes-test-utils = { version = "6.0.1" } sp-io = { version = "29.0.0" } [build-dependencies] diff --git a/system-parachains/bridge-hubs/bridge-hub-kusama/Cargo.toml b/system-parachains/bridge-hubs/bridge-hub-kusama/Cargo.toml index fd17197658..244988223a 100644 --- a/system-parachains/bridge-hubs/bridge-hub-kusama/Cargo.toml +++ b/system-parachains/bridge-hubs/bridge-hub-kusama/Cargo.toml @@ -100,7 +100,7 @@ pallet-bridge-relayers = { default-features = false , version = "0.6.0" } pallet-xcm-bridge-hub = { default-features = false , version = "0.1.0" } [dev-dependencies] -bridge-hub-test-utils = { version = "0.6.0" } +bridge-hub-test-utils = { version = "0.6.1" } bridge-runtime-common = { version = "0.6.0", features = ["integrity-test"] } sp-keyring = { version = "30.0.0" } static_assertions = { version = "1.1.0" } @@ -187,6 +187,7 @@ std = [ ] runtime-benchmarks = [ + "bridge-hub-test-utils/runtime-benchmarks", "bridge-runtime-common/runtime-benchmarks", "cumulus-pallet-dmp-queue/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", diff --git a/system-parachains/bridge-hubs/bridge-hub-polkadot/Cargo.toml b/system-parachains/bridge-hubs/bridge-hub-polkadot/Cargo.toml index 4303c1ee59..9fdb15cf52 100644 --- a/system-parachains/bridge-hubs/bridge-hub-polkadot/Cargo.toml +++ b/system-parachains/bridge-hubs/bridge-hub-polkadot/Cargo.toml @@ -100,7 +100,7 @@ pallet-bridge-relayers = { default-features = false , version = "0.6.0" } pallet-xcm-bridge-hub = { default-features = false , version = "0.1.0" } [dev-dependencies] -bridge-hub-test-utils = { version = "0.6.0" } +bridge-hub-test-utils = { version = "0.6.1" } bridge-runtime-common = { version = "0.6.0", features = ["integrity-test"] } sp-keyring = { version = "30.0.0" } static_assertions = { version = "1.1.0" } @@ -187,6 +187,7 @@ std = [ ] runtime-benchmarks = [ + "bridge-hub-test-utils/runtime-benchmarks", "bridge-runtime-common/runtime-benchmarks", "cumulus-pallet-dmp-queue/runtime-benchmarks", "cumulus-pallet-parachain-system/runtime-benchmarks", diff --git a/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs b/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs index b6b523c2b8..4934cdaf54 100644 --- a/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs +++ b/system-parachains/collectives/collectives-polkadot/src/xcm_config.rs @@ -30,7 +30,7 @@ use parachains_common::{ xcm_config::{ConcreteAssetFromSystem, RelayOrOtherSystemParachains}, }; use polkadot_parachain_primitives::primitives::Sibling; -use polkadot_runtime_constants::{system_parachain, xcm as xcm_constants}; +use polkadot_runtime_constants::system_parachain; use sp_runtime::traits::AccountIdConversion; use system_parachains_constants::TREASURY_PALLET_ID; use xcm::latest::prelude::*; @@ -61,7 +61,7 @@ parameter_types! { pub const GovernanceLocation: MultiLocation = MultiLocation::parent(); pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(polkadot_runtime_constants::TREASURY_PALLET_ID)).into(); pub TreasuryAccount: AccountId = TREASURY_PALLET_ID.into_account_truncating(); - pub const TreasurerBodyId: BodyId = BodyId::Index(xcm_constants::body::TREASURER_INDEX); + pub const TreasurerBodyId: BodyId = BodyId::Treasury; // Test [`treasury_pallet_account_not_none`] ensures that the result of location conversion is // not `None`. pub RelayTreasuryPalletAccount: AccountId =