diff --git a/.config/lychee.toml b/.config/lychee.toml index 1de9fcd559dd9ea14fb603b7740efebcb893ed93..b1f08de33340999d52114ed8c6b5fcd6604662fa 100644 --- a/.config/lychee.toml +++ b/.config/lychee.toml @@ -18,7 +18,10 @@ accept = [ "429", ] -exclude_path = ["./target"] +exclude_path = [ + "./prdoc", + "./target", +] exclude = [ # Place holders (no need to fix these): @@ -32,7 +35,6 @@ exclude = [ "https://github.com/paritytech/polkadot-sdk/substrate/frame/timestamp", "https://github.com/paritytech/substrate/frame/fast-unstake", "https://github.com/zkcrypto/bls12_381/blob/e224ad4ea1babfc582ccd751c2bf128611d10936/src/test-data/mod.rs", - "https://polkadot-try-runtime-node.parity-chains.parity.io/", "https://polkadot.network/the-path-of-a-parachain-block/", "https://research.web3.foundation/en/latest/polkadot/NPoS/3.%20Balancing.html", "https://research.web3.foundation/en/latest/polkadot/Token%20Economics.html#inflation-model", @@ -41,6 +43,7 @@ exclude = [ "https://research.web3.foundation/en/latest/polkadot/overview/2-token-economics.html#inflation-model", "https://research.web3.foundation/en/latest/polkadot/slashing/npos.html", "https://rpc.polkadot.io/", + "https://try-runtime.polkadot.io/", "https://w3f.github.io/parachain-implementers-guide/node/approval/approval-distribution.html", "https://w3f.github.io/parachain-implementers-guide/node/index.html", "https://w3f.github.io/parachain-implementers-guide/protocol-chain-selection.html", diff --git a/.config/zepter.yaml b/.config/zepter.yaml index 24441e90b1a0510d8be95e48515c8b41371117c8..7a67ba2695cf697c886b31520431ea0ee33e14c9 100644 --- a/.config/zepter.yaml +++ b/.config/zepter.yaml @@ -27,7 +27,7 @@ workflows: ] # The umbrella crate uses more features, so we to check those too: check_umbrella: - - [ $check.0, '--features=serde,experimental,runtime,with-tracing,tuples-96,with-tracing', '-p=polkadot-sdk' ] + - [ $check.0, '--features=serde,experimental,riscv,runtime,with-tracing,tuples-96,with-tracing', '-p=polkadot-sdk' ] # Same as `check_*`, but with the `--fix` flag. default: - [ $check.0, '--fix' ] diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4fc5b97caae0735058337c8b23e4ca7471761d24..d13add97d419dca273fb1f0604f4da7ecee6cd5b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -64,7 +64,8 @@ /substrate/primitives/merkle-mountain-range/ @acatangiu # Contracts -/substrate/frame/contracts/ @athei @paritytech/docs-audit +/substrate/frame/contracts/ @paritytech/smart-contracts @paritytech/docs-audit +/substrate/frame/revive/ @paritytech/smart-contracts @paritytech/docs-audit # NPoS and election /substrate/frame/election-provider-multi-phase/ @paritytech/staking-core @paritytech/docs-audit diff --git a/.github/actions/build-push-image/action.yml b/.github/actions/build-push-image/action.yml new file mode 100644 index 0000000000000000000000000000000000000000..fead9cfe336933dbde9a936e49b44fe1cf1396ed --- /dev/null +++ b/.github/actions/build-push-image/action.yml @@ -0,0 +1,47 @@ +name: 'build and push image' +inputs: + dockerfile: + description: "dockerfile to build" + required: true + image-name: + description: "" + required: true +outputs: + branch: + description: 'Branch name for the PR' + value: ${{ steps.branch.outputs.branch }} + + +runs: + using: "composite" + steps: + + # gcloud + # https://github.com/paritytech/ci_cd/wiki/GitHub:-Push-Docker-image-to-GCP-Registry + - name: "Set up Cloud SDK" + uses: "google-github-actions/setup-gcloud@v2" + - name: "gcloud info" + shell: bash + run: "gcloud info" + - name: "Auth in gcloud registry" + shell: bash + run: "gcloud auth configure-docker europe-docker.pkg.dev --quiet" + + - name: build + shell: bash + env: + ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.105" + run: | + export BRANCH_NAME=${{ github.head_ref || github.ref_name }} + export DOCKER_IMAGES_VERSION=${BRANCH_NAME/\//-} + if [[ ${{ github.event_name }} == "merge_group" ]]; then export DOCKER_IMAGES_VERSION="${GITHUB_SHA::8}"; fi + docker build \ + --build-arg VCS_REF="${GITHUB_SHA}" \ + --build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')" \ + --build-arg IMAGE_NAME="${{ inputs.image-name }}" \ + --build-arg ZOMBIENET_IMAGE="${ZOMBIENET_IMAGE}" \ + -t "${{ inputs.image-name }}:$DOCKER_IMAGES_VERSION" \ + -f ${{ inputs.dockerfile }} \ + . + docker push "${{ inputs.image-name }}:$DOCKER_IMAGES_VERSION" + diff --git a/.github/actions/cargo-check-runtimes/action.yml b/.github/actions/cargo-check-runtimes/action.yml new file mode 100644 index 0000000000000000000000000000000000000000..869f17661e4a23e3c07256a8f59303c09fec7d9b --- /dev/null +++ b/.github/actions/cargo-check-runtimes/action.yml @@ -0,0 +1,22 @@ +name: 'cargo check runtimes' +description: 'Runs `cargo check` for every directory in provided root.' +inputs: + root: + description: "Root directory. Expected to contain several cargo packages inside." + required: true +runs: + using: "composite" + steps: + - name: Check + shell: bash + run: | + mkdir -p ~/.forklift + cp .forklift/config.toml ~/.forklift/config.toml + cd ${{ inputs.root }} + for directory in $(echo */); do + echo "_____Running cargo check for ${directory} ______"; + cd ${directory}; + pwd; + SKIP_WASM_BUILD=1 forklift cargo check --locked; + cd ..; + done diff --git a/.github/codecov.yml b/.github/codecov.yml index ceceb9e63654ce83c942571dea79cae29f15d851..b237c9fe6b044492349aa2f94c860f5e940d0589 100644 --- a/.github/codecov.yml +++ b/.github/codecov.yml @@ -6,4 +6,10 @@ coverage: project: default: target: 1.0 - threshold: 2.0 \ No newline at end of file + threshold: 2.0 + +comment: + behavior: new + +fixes: + - "/__w/polkadot-sdk/polkadot-sdk/::" \ No newline at end of file diff --git a/.github/command-screnshot.png b/.github/command-screnshot.png deleted file mode 100644 index 1451fabca8b975534778e8321facd261e3b803fb..0000000000000000000000000000000000000000 Binary files a/.github/command-screnshot.png and /dev/null differ diff --git a/.github/commands-readme.md b/.github/commands-readme.md deleted file mode 100644 index 793524e056f8e113b0803405f2d5a238a7c7b285..0000000000000000000000000000000000000000 --- a/.github/commands-readme.md +++ /dev/null @@ -1,265 +0,0 @@ -# Running commands - -Command bot has been migrated, it is no longer a comment parser and now it is a GitHub action that works as a [`workflow_dispatch`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#workflow_dispatch) event. - -## How to run an action - -To run an action, you need to go to the [_actions tab_](https://github.com/paritytech/polkadot-sdk/actions) and pick the one you desire to run. - -The current available command actions are: - -- [Command FMT](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-fmt.yml) -- [Command Update UI](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-update-ui.yml) -- [Command Sync](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-sync.yml) -- [Command Bench](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-bench.yml) -- [Command Bench All](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-bench-all.yml) -- [Command Bench Overhead](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-bench-overhead.yml) - -You need to select the action, and click on the dropdown that says: `Run workflow`. It is located in the upper right. - -If this dropdown is not visible, you may not have permission to run the action. Contact IT for help. - -![command screenshot](command-screnshot.png) - -Each command will have the same two required values, but it could have more. - -GitHub's official documentation: [Manually running a workflow](https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow) - -#### Running from CLI - -You can use [`gh cli`](https://cli.github.com/) to run the commands too. Refers to the [`gh workflow run`](https://cli.github.com/manual/gh_workflow_run) section from the documentation for more information. - -### Number of the Pull Request - -The number of the pull request. Required so the action can fetch the correct branch and comment if it fails. - -## Action configurations - -### FMT - -For FMT you only need the PR number. - -You can use the following [`gh cli`](https://cli.github.com/) inside the repo: - -```bash -gh workflow run command-fmt.yml -f pr=1000 -``` - -### Update UI - -For Update UI you only need the PR number. - -You can use the following [`gh cli`](https://cli.github.com/) inside the repo: - -```bash -gh workflow run command-update-ui.yml -f pr=1000 -``` - -### Bench - -Runs `benchmark pallet` or `benchmark overhead` against your PR and commits back updated weights. - -Posible combinations based on the `benchmark` dropdown. - -- `substrate-pallet`: Pallet Benchmark for Substrate for specific pallet - - Requires `Subcommand` to be `pallet` - - Requires `Runtime` to be `dev` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Target Directory` to be `substrate` -- `polkadot-pallet`: Pallet Benchmark for Polkadot for specific pallet - - Requires `Subcommand` to be one of the following: - - `pallet` - - `xcm` - - Requires `Runtime` to be one of the following: - - `rococo` - - `westend` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Target Directory` to be `polkadot` -- `cumulus-assets`: Pallet Benchmark for Cumulus assets - - Requires `Subcommand` to be one of the following: - - `pallet` - - `xcm` - - Requires `Runtime` to be one of the following: - - `asset-hub-westend` - - `asset-hub-rococo` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Runtime Dir` to be `assets` - - Requires `Target Directory` to be `cumulus` -- `cumulus-collectives`: Pallet Benchmark for Cumulus collectives - - Requires `Subcommand` to be one of the following: - - `pallet` - - `xcm` - - Requires `Runtime` to be `collectives-westend` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Runtime Dir` to be `collectives` - - Requires `Target Directory` to be `cumulus` -- `cumulus-coretime`: Pallet Benchmark for Cumulus coretime - - Requires `Subcommand` to be one of the following: - - `pallet` - - `xcm` - - Requires `Runtime` to be one of the following: - - `coretime-rococo` - - `coretime-westend` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Runtime Dir` to be `coretime` - - Requires `Target Directory` to be `cumulus` -- `cumulus-bridge-hubs`: Pallet Benchmark for Cumulus bridge-hubs - - Requires `Subcommand` to be one of the following: - - `pallet` - - `xcm` - - Requires `Runtime` to be one of the following: - - `bridge-hub-rococo` - - `bridge-hub-westend` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Runtime Dir` to be `bridge-hub` - - Requires `Target Directory` to be `cumulus` -- `cumulus-contracts`: Pallet Benchmark for Cumulus contracts - - Requires `Subcommand` to be one of the following: - - `pallet` - - `xcm` - - Requires `Runtime` to be one `contracts-rococo` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Runtime Dir` to be `contracts` - - Requires `Target Directory` to be `cumulus` -- `cumulus-glutton`: Pallet Benchmark for Cumulus glutton - - Requires `Subcommand` to be `pallet` - - Requires `Runtime` to be one of the following: - - `glutton-westend` - - `glutton-westend-dev-1300` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Runtime Dir` to be `glutton` - - Requires `Target Directory` to be `cumulus` -- `cumulus-starters`: Pallet Benchmark for Cumulus starters - - Requires `Subcommand` to be one of the following: - - `pallet` - - `xcm` - - Requires `Runtime` to be one of the following: - - `seedling` - - `shell` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Runtime Dir` to be `starters` - - Requires `Target Directory` to be `cumulus` -- `cumulus-people`: Pallet Benchmark for Cumulus people - - Requires `Subcommand` to be one of the following: - - `pallet` - - `xcm` - - Requires `Runtime` to be one of the following: - - `people-westend` - - `people-rococo` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Runtime Dir` to be `people` - - Requires `Target Directory` to be `cumulus` -- `cumulus-testing`: Pallet Benchmark for Cumulus testing - - Requires `Subcommand` to be one of the following: - - `pallet` - - `xcm` - - Requires `Runtime` to be one of the following: - - `penpal` - - `rococo-parachain` - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` - - Requires `Runtime Dir` to be `testing` - - Requires `Target Directory` to be `cumulus` - -You can use the following [`gh cli`](https://cli.github.com/) inside the repo: - -```bash -gh workflow run command-bench.yml -f pr=1000 -f benchmark=polkadot-pallet -f subcommand=pallet -f runtime=rococo -f pallet=pallet_name -f target_dir=polkadot -``` - -### Bench-all - -This is a wrapper to run `bench` for all pallets. - -Posible combinations based on the `benchmark` dropdown. - -- `pallet`: Benchmark for Substrate/Polkadot/Cumulus/Trappist for specific pallet - - Requires field `Pallet` to have an input that applies to `^([a-z_]+)([:]{2}[a-z_]+)?$` -- `substrate`: Pallet + Overhead + Machine Benchmark for Substrate for all pallets - - Requires `Target Directory` to be `substrate` -- `polkadot`: Pallet + Overhead Benchmark for Polkadot - - Requires `Runtime` to be one of the following: - - `rococo` - - `westend` - - Requires `Target Directory` to be `polkadot` -- `cumulus`: Pallet Benchmark for Cumulus - - Requires `Runtime` to be one of the following: - - `rococo` - - `westend` - - `asset-hub-kusama` - - `asset-hub-polkadot` - - `asset-hub-rococo` - - `asset-hub-westend` - - `bridge-hub-kusama` - - `bridge-hub-polkadot` - - `bridge-hub-rococo` - - `bridge-hub-westend` - - `collectives-polkadot` - - `collectives-westend` - - `coretime-rococo` - - `coretime-westend` - - `contracts-rococo` - - `glutton-kusama` - - `glutton-westend` - - `people-rococo` - - `people-westend` - - Requires `Target Directory` to be `cumulus` - -You can use the following [`gh cli`](https://cli.github.com/) inside the repo: - -```bash -gh workflow run command-bench-all.yml -f pr=1000 -f benchmark=pallet -f pallet=pallet_name -f target_dir=polkadot -f runtime=rococo -``` - -### Bench-overhead - -Run benchmarks overhead and commit back results to PR. - -Posible combinations based on the `benchmark` dropdown. - -- `default`: Runs `benchmark overhead` and commits back to PR the updated `extrinsic_weights.rs` files - - Requires `Runtime` to be one of the following: - - `rococo` - - `westend` - - Requires `Target directory` to be `polkadot` -- `substrate`: Runs `benchmark overhead` and commits back to PR the updated `extrinsic_weights.rs` files - - Requires `Target directory` to be `substrate` -- `cumulus`: Runs `benchmark overhead` and commits back to PR the updated `extrinsic_weights.rs` files - - Requires `Runtime` to be one of the following: - - `asset-hub-rococo` - - `asset-hub-westend` - - Requires `Target directory` to be `cumulus` - -You can use the following [`gh cli`](https://cli.github.com/) inside the repo: - -```bash -gh workflow run command-bench-overheard.yml -f pr=1000 -f benchmark=substrate -f runtime=rococo -f target_dir=substrate -``` - -### Sync - -Run sync and commit back results to PR. - -Posible combinations based on the `benchmark` dropdown. - -- `chain` - - Requires one of the following: - - `rococo` - - `westend` -- `sync-type` - - Requires one of the following: - - `warp` - - `full` - - `fast` - - `fast-unsafe` - -You can use the following [`gh cli`](https://cli.github.com/) inside the repo: - -```bash -gh workflow run command-sync.yml -f pr=1000 -f chain=rococo -f sync-type=full -``` - -## How to modify an action - -If you want to modify an action and test it, you can do by simply pushing your changes and then selecting your branch in the `Use worflow from` option. - -This will use a file from a specified branch. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 120000 index 0000000000000000000000000000000000000000..7b6b3498755f586abec9256cbf8f455c16928ffd --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1 @@ +../docs/contributor/PULL_REQUEST_TEMPLATE.md \ No newline at end of file diff --git a/.github/review-bot.yml b/.github/review-bot.yml index adbc480c6ba1a69e8cdd112af4be378849d26315..c2080142f506a6b594bf96521f383404d7337c9d 100644 --- a/.github/review-bot.yml +++ b/.github/review-bot.yml @@ -29,7 +29,7 @@ rules: # excluding files from 'Runtime files' and 'CI files' rules exclude: - ^cumulus/parachains/common/src/[^/]+\.rs$ - - ^substrate/frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|election|nomination-pools/.*|staking/.*|aura/.*)) + - ^substrate/frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|revive/.*|election|nomination-pools/.*|staking/.*|aura/.*)) - ^\.gitlab-ci\.yml - ^docker/.* - ^\.github/.* @@ -56,7 +56,7 @@ rules: - name: FRAME coders substrate condition: include: - - ^substrate/frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|election|nomination-pools/.*|staking/.*|aura/.*)) + - ^substrate/frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|revive/.*|election|nomination-pools/.*|staking/.*|aura/.*)) type: "and" reviewers: - minApprovals: 2 @@ -66,6 +66,17 @@ rules: teams: - frame-coders + # Smart Contracts + - name: Smart Contracts + type: basic + condition: + include: + - ^substrate/frame/contracts/.* + - ^substrate/frame/revive/.* + minApprovals: 2 + teams: + - smart-contracts + # Protection of THIS file - name: Review Bot countAuthor: true diff --git a/.gitlab/check-each-crate.py b/.github/scripts/check-each-crate.py similarity index 81% rename from .gitlab/check-each-crate.py rename to .github/scripts/check-each-crate.py index 9b654f8071ac7237fe9c7c943540e8e020cebd6e..7a53e812ddfc73ad59943b5fc62a4b8757f29524 100755 --- a/.gitlab/check-each-crate.py +++ b/.github/scripts/check-each-crate.py @@ -9,6 +9,7 @@ # # - `target_group`: Integer starting from 1, the group this script should execute. # - `groups_total`: Integer starting from 1, total number of groups. +# - `disable_forklift`: Boolean, whether to disable forklift or not. import subprocess, sys @@ -31,6 +32,9 @@ crates.sort() target_group = int(sys.argv[1]) - 1 groups_total = int(sys.argv[2]) +disable_forklift = bool(sys.argv[3] if len(sys.argv) > 3 else False) + +print(f"Target group: {target_group}, Total groups: {groups_total}, Disable forklift: {disable_forklift}", file=sys.stderr) if len(crates) == 0: print("No crates detected!", file=sys.stderr) @@ -55,7 +59,11 @@ for i in range(0, crates_per_group + overflow_crates): print(f"Checking {crates[crate][0]}", file=sys.stderr) - res = subprocess.run(["forklift", "cargo", "check", "--locked"], cwd = crates[crate][1]) + cmd = ["cargo", "check", "--locked"] + + cmd.insert(0, 'forklift') if not disable_forklift else None + + res = subprocess.run(cmd, cwd = crates[crate][1]) if res.returncode != 0: sys.exit(1) diff --git a/.github/scripts/cmd/_help.py b/.github/scripts/cmd/_help.py new file mode 100644 index 0000000000000000000000000000000000000000..8ad49dad8461e38a7d4bfe1d54f408071d7ae509 --- /dev/null +++ b/.github/scripts/cmd/_help.py @@ -0,0 +1,26 @@ +import argparse + +""" + +Custom help action for argparse, it prints the help message for the main parser and all subparsers. + +""" + + +class _HelpAction(argparse._HelpAction): + def __call__(self, parser, namespace, values, option_string=None): + parser.print_help() + + # retrieve subparsers from parser + subparsers_actions = [ + action for action in parser._actions + if isinstance(action, argparse._SubParsersAction)] + # there will probably only be one subparser_action, + # but better save than sorry + for subparsers_action in subparsers_actions: + # get all subparsers and print help + for choice, subparser in subparsers_action.choices.items(): + print("\n### Command '{}'".format(choice)) + print(subparser.format_help()) + + parser.exit() diff --git a/.github/scripts/cmd/cmd.py b/.github/scripts/cmd/cmd.py new file mode 100755 index 0000000000000000000000000000000000000000..f7dd88df4bda42551b339c3492a29028511c3550 --- /dev/null +++ b/.github/scripts/cmd/cmd.py @@ -0,0 +1,238 @@ +#!/usr/bin/env python3 + +import os +import sys +import json +import argparse +import _help +import importlib.util + +_HelpAction = _help._HelpAction + +f = open('.github/workflows/runtimes-matrix.json', 'r') +runtimesMatrix = json.load(f) + +runtimeNames = list(map(lambda x: x['name'], runtimesMatrix)) + +common_args = { + '--continue-on-fail': {"action": "store_true", "help": "Won't exit(1) on failed command and continue with next steps. "}, + '--quiet': {"action": "store_true", "help": "Won't print start/end/failed messages in PR"}, + '--clean': {"action": "store_true", "help": "Clean up the previous bot's & author's comments in PR"}, + '--image': {"help": "Override docker image '--image docker.io/paritytech/ci-unified:latest'"}, +} + +parser = argparse.ArgumentParser(prog="/cmd ", description='A command runner for polkadot-sdk repo', add_help=False) +parser.add_argument('--help', action=_HelpAction, help='help for help if you need some help') # help for help +for arg, config in common_args.items(): + parser.add_argument(arg, **config) + +subparsers = parser.add_subparsers(help='a command to run', dest='command') + +""" +BENCH +""" + +bench_example = '''**Examples**: + Runs all benchmarks + %(prog)s + + Runs benchmarks for pallet_balances and pallet_multisig for all runtimes which have these pallets. **--quiet** makes it to output nothing to PR but reactions + %(prog)s --pallet pallet_balances pallet_xcm_benchmarks::generic --quiet + + Runs bench for all pallets for westend runtime and continues even if some benchmarks fail + %(prog)s --runtime westend --continue-on-fail + + Does not output anything and cleans up the previous bot's & author command triggering comments in PR + %(prog)s --runtime westend rococo --pallet pallet_balances pallet_multisig --quiet --clean +''' + +parser_bench = subparsers.add_parser('bench', help='Runs benchmarks', epilog=bench_example, formatter_class=argparse.RawDescriptionHelpFormatter) + +for arg, config in common_args.items(): + parser_bench.add_argument(arg, **config) + +parser_bench.add_argument('--runtime', help='Runtime(s) space separated', choices=runtimeNames, nargs='*', default=runtimeNames) +parser_bench.add_argument('--pallet', help='Pallet(s) space separated', nargs='*', default=[]) + +""" +FMT +""" +parser_fmt = subparsers.add_parser('fmt', help='Formats code (cargo +nightly-VERSION fmt) and configs (taplo format)') +for arg, config in common_args.items(): + parser_fmt.add_argument(arg, **config) + +""" +Update UI +""" +parser_ui = subparsers.add_parser('update-ui', help='Updates UI tests') +for arg, config in common_args.items(): + parser_ui.add_argument(arg, **config) + +""" +PRDOC +""" +# Import generate-prdoc.py dynamically +spec = importlib.util.spec_from_file_location("generate_prdoc", ".github/scripts/generate-prdoc.py") +generate_prdoc = importlib.util.module_from_spec(spec) +spec.loader.exec_module(generate_prdoc) + +parser_prdoc = subparsers.add_parser('prdoc', help='Generates PR documentation') +generate_prdoc.setup_parser(parser_prdoc) + +def main(): + global args, unknown, runtimesMatrix + args, unknown = parser.parse_known_args() + + print(f'args: {args}') + + if args.command == 'bench': + runtime_pallets_map = {} + failed_benchmarks = {} + successful_benchmarks = {} + + profile = "release" + + print(f'Provided runtimes: {args.runtime}') + # convert to mapped dict + runtimesMatrix = list(filter(lambda x: x['name'] in args.runtime, runtimesMatrix)) + runtimesMatrix = {x['name']: x for x in runtimesMatrix} + print(f'Filtered out runtimes: {runtimesMatrix}') + + # loop over remaining runtimes to collect available pallets + for runtime in runtimesMatrix.values(): + os.system(f"forklift cargo build -p {runtime['package']} --profile {profile} --features runtime-benchmarks") + print(f'-- listing pallets for benchmark for {runtime["name"]}') + wasm_file = f"target/{profile}/wbuild/{runtime['package']}/{runtime['package'].replace('-', '_')}.wasm" + output = os.popen( + f"frame-omni-bencher v1 benchmark pallet --no-csv-header --no-storage-info --no-min-squares --no-median-slopes --all --list --runtime={wasm_file}").read() + raw_pallets = output.strip().split('\n') + + all_pallets = set() + for pallet in raw_pallets: + if pallet: + all_pallets.add(pallet.split(',')[0].strip()) + + pallets = list(all_pallets) + print(f'Pallets in {runtime["name"]}: {pallets}') + runtime_pallets_map[runtime['name']] = pallets + + print(f'\n') + + # filter out only the specified pallets from collected runtimes/pallets + if args.pallet: + print(f'Pallets: {args.pallet}') + new_pallets_map = {} + # keep only specified pallets if they exist in the runtime + for runtime in runtime_pallets_map: + if set(args.pallet).issubset(set(runtime_pallets_map[runtime])): + new_pallets_map[runtime] = args.pallet + + runtime_pallets_map = new_pallets_map + + print(f'Filtered out runtimes & pallets: {runtime_pallets_map}\n') + + if not runtime_pallets_map: + if args.pallet and not args.runtime: + print(f"No pallets {args.pallet} found in any runtime") + elif args.runtime and not args.pallet: + print(f"{args.runtime} runtime does not have any pallets") + elif args.runtime and args.pallet: + print(f"No pallets {args.pallet} found in {args.runtime}") + else: + print('No runtimes found') + sys.exit(1) + + for runtime in runtime_pallets_map: + for pallet in runtime_pallets_map[runtime]: + config = runtimesMatrix[runtime] + header_path = os.path.abspath(config['header']) + template = None + + print(f'-- config: {config}') + if runtime == 'dev': + # to support sub-modules (https://github.com/paritytech/command-bot/issues/275) + search_manifest_path = f"cargo metadata --locked --format-version 1 --no-deps | jq -r '.packages[] | select(.name == \"{pallet.replace('_', '-')}\") | .manifest_path'" + print(f'-- running: {search_manifest_path}') + manifest_path = os.popen(search_manifest_path).read() + if not manifest_path: + print(f'-- pallet {pallet} not found in dev runtime') + exit(1) + package_dir = os.path.dirname(manifest_path) + print(f'-- package_dir: {package_dir}') + print(f'-- manifest_path: {manifest_path}') + output_path = os.path.join(package_dir, "src", "weights.rs") + template = config['template'] + else: + default_path = f"./{config['path']}/src/weights" + xcm_path = f"./{config['path']}/src/weights/xcm" + output_path = default_path + if pallet.startswith("pallet_xcm_benchmarks"): + template = config['template'] + output_path = xcm_path + + print(f'-- benchmarking {pallet} in {runtime} into {output_path}') + cmd = f"frame-omni-bencher v1 benchmark pallet " \ + f"--extrinsic=* " \ + f"--runtime=target/{profile}/wbuild/{config['package']}/{config['package'].replace('-', '_')}.wasm " \ + f"--pallet={pallet} " \ + f"--header={header_path} " \ + f"--output={output_path} " \ + f"--wasm-execution=compiled " \ + f"--steps=50 " \ + f"--repeat=20 " \ + f"--heap-pages=4096 " \ + f"{f'--template={template} ' if template else ''}" \ + f"--no-storage-info --no-min-squares --no-median-slopes" + print(f'-- Running: {cmd} \n') + status = os.system(cmd) + if status != 0 and not args.continue_on_fail: + print(f'Failed to benchmark {pallet} in {runtime}') + sys.exit(1) + + # Otherwise collect failed benchmarks and print them at the end + # push failed pallets to failed_benchmarks + if status != 0: + failed_benchmarks[f'{runtime}'] = failed_benchmarks.get(f'{runtime}', []) + [pallet] + else: + successful_benchmarks[f'{runtime}'] = successful_benchmarks.get(f'{runtime}', []) + [pallet] + + if failed_benchmarks: + print('❌ Failed benchmarks of runtimes/pallets:') + for runtime, pallets in failed_benchmarks.items(): + print(f'-- {runtime}: {pallets}') + + if successful_benchmarks: + print('✅ Successful benchmarks of runtimes/pallets:') + for runtime, pallets in successful_benchmarks.items(): + print(f'-- {runtime}: {pallets}') + + elif args.command == 'fmt': + command = f"cargo +nightly fmt" + print(f'Formatting with `{command}`') + nightly_status = os.system(f'{command}') + taplo_status = os.system('taplo format --config .config/taplo.toml') + + if (nightly_status != 0 or taplo_status != 0) and not args.continue_on_fail: + print('❌ Failed to format code') + sys.exit(1) + + elif args.command == 'update-ui': + command = 'sh ./scripts/update-ui-tests.sh' + print(f'Updating ui with `{command}`') + status = os.system(f'{command}') + + if status != 0 and not args.continue_on_fail: + print('❌ Failed to format code') + sys.exit(1) + + elif args.command == 'prdoc': + # Call the main function from ./github/scripts/generate-prdoc.py module + exit_code = generate_prdoc.main(args) + if exit_code != 0 and not args.continue_on_fail: + print('❌ Failed to generate prdoc') + sys.exit(exit_code) + + print('🚀 Done') + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/.github/scripts/cmd/test_cmd.py b/.github/scripts/cmd/test_cmd.py new file mode 100644 index 0000000000000000000000000000000000000000..a2f29b075daed94a0c7380e031bb84e9a6889558 --- /dev/null +++ b/.github/scripts/cmd/test_cmd.py @@ -0,0 +1,339 @@ +import unittest +from unittest.mock import patch, mock_open, MagicMock, call +import json +import sys +import os +import argparse + +# Mock data for runtimes-matrix.json +mock_runtimes_matrix = [ + {"name": "dev", "package": "kitchensink-runtime", "path": "substrate/frame", "header": "substrate/HEADER-APACHE2", "template": "substrate/.maintain/frame-weight-template.hbs"}, + {"name": "westend", "package": "westend-runtime", "path": "polkadot/runtime/westend", "header": "polkadot/file_header.txt", "template": "polkadot/xcm/pallet-xcm-benchmarks/template.hbs"}, + {"name": "rococo", "package": "rococo-runtime", "path": "polkadot/runtime/rococo", "header": "polkadot/file_header.txt", "template": "polkadot/xcm/pallet-xcm-benchmarks/template.hbs"}, + {"name": "asset-hub-westend", "package": "asset-hub-westend-runtime", "path": "cumulus/parachains/runtimes/assets/asset-hub-westend", "header": "cumulus/file_header.txt", "template": "cumulus/templates/xcm-bench-template.hbs"}, +] + +def get_mock_bench_output(runtime, pallets, output_path, header, template = None): + return f"frame-omni-bencher v1 benchmark pallet --extrinsic=* " \ + f"--runtime=target/release/wbuild/{runtime}-runtime/{runtime.replace('-', '_')}_runtime.wasm " \ + f"--pallet={pallets} --header={header} " \ + f"--output={output_path} " \ + f"--wasm-execution=compiled " \ + f"--steps=50 --repeat=20 --heap-pages=4096 " \ + f"{f'--template={template} ' if template else ''}" \ + f"--no-storage-info --no-min-squares --no-median-slopes" + +class TestCmd(unittest.TestCase): + + def setUp(self): + self.patcher1 = patch('builtins.open', new_callable=mock_open, read_data=json.dumps(mock_runtimes_matrix)) + self.patcher2 = patch('json.load', return_value=mock_runtimes_matrix) + self.patcher3 = patch('argparse.ArgumentParser.parse_known_args') + self.patcher4 = patch('os.system', return_value=0) + self.patcher5 = patch('os.popen') + self.patcher6 = patch('importlib.util.spec_from_file_location', return_value=MagicMock()) + self.patcher7 = patch('importlib.util.module_from_spec', return_value=MagicMock()) + self.patcher8 = patch('cmd.generate_prdoc.main', return_value=0) + + self.mock_open = self.patcher1.start() + self.mock_json_load = self.patcher2.start() + self.mock_parse_args = self.patcher3.start() + self.mock_system = self.patcher4.start() + self.mock_popen = self.patcher5.start() + self.mock_spec_from_file_location = self.patcher6.start() + self.mock_module_from_spec = self.patcher7.start() + self.mock_generate_prdoc_main = self.patcher8.start() + + # Ensure that cmd.py uses the mock_runtimes_matrix + import cmd + cmd.runtimesMatrix = mock_runtimes_matrix + + def tearDown(self): + self.patcher1.stop() + self.patcher2.stop() + self.patcher3.stop() + self.patcher4.stop() + self.patcher5.stop() + self.patcher6.stop() + self.patcher7.stop() + self.patcher8.stop() + + def test_bench_command_normal_execution_all_runtimes(self): + self.mock_parse_args.return_value = (argparse.Namespace( + command='bench', + runtime=list(map(lambda x: x['name'], mock_runtimes_matrix)), + pallet=['pallet_balances'], + continue_on_fail=False, + quiet=False, + clean=False, + image=None + ), []) + + self.mock_popen.return_value.read.side_effect = [ + "pallet_balances\npallet_staking\npallet_something\n", # Output for dev runtime + "pallet_balances\npallet_staking\npallet_something\n", # Output for westend runtime + "pallet_staking\npallet_something\n", # Output for rococo runtime - no pallet here + "pallet_balances\npallet_staking\npallet_something\n", # Output for asset-hub-westend runtime + "./substrate/frame/balances/Cargo.toml\n", # Mock manifest path for dev -> pallet_balances + ] + + with patch('sys.exit') as mock_exit: + import cmd + cmd.main() + mock_exit.assert_not_called() + + expected_calls = [ + # Build calls + call("forklift cargo build -p kitchensink-runtime --profile release --features runtime-benchmarks"), + call("forklift cargo build -p westend-runtime --profile release --features runtime-benchmarks"), + call("forklift cargo build -p rococo-runtime --profile release --features runtime-benchmarks"), + call("forklift cargo build -p asset-hub-westend-runtime --profile release --features runtime-benchmarks"), + + call(get_mock_bench_output('kitchensink', 'pallet_balances', './substrate/frame/balances/src/weights.rs', os.path.abspath('substrate/HEADER-APACHE2'), "substrate/.maintain/frame-weight-template.hbs")), + call(get_mock_bench_output('westend', 'pallet_balances', './polkadot/runtime/westend/src/weights', os.path.abspath('polkadot/file_header.txt'))), + # skips rococo benchmark + call(get_mock_bench_output('asset-hub-westend', 'pallet_balances', './cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights', os.path.abspath('cumulus/file_header.txt'))), + ] + self.mock_system.assert_has_calls(expected_calls, any_order=True) + + def test_bench_command_normal_execution(self): + self.mock_parse_args.return_value = (argparse.Namespace( + command='bench', + runtime=['westend'], + pallet=['pallet_balances', 'pallet_staking'], + continue_on_fail=False, + quiet=False, + clean=False, + image=None + ), []) + header_path = os.path.abspath('polkadot/file_header.txt') + self.mock_popen.return_value.read.side_effect = [ + "pallet_balances\npallet_staking\npallet_something\n", # Output for westend runtime + ] + + with patch('sys.exit') as mock_exit: + import cmd + cmd.main() + mock_exit.assert_not_called() + + expected_calls = [ + # Build calls + call("forklift cargo build -p westend-runtime --profile release --features runtime-benchmarks"), + + # Westend runtime calls + call(get_mock_bench_output('westend', 'pallet_balances', './polkadot/runtime/westend/src/weights', header_path)), + call(get_mock_bench_output('westend', 'pallet_staking', './polkadot/runtime/westend/src/weights', header_path)), + ] + self.mock_system.assert_has_calls(expected_calls, any_order=True) + + + def test_bench_command_normal_execution_xcm(self): + self.mock_parse_args.return_value = (argparse.Namespace( + command='bench', + runtime=['westend'], + pallet=['pallet_xcm_benchmarks::generic'], + continue_on_fail=False, + quiet=False, + clean=False, + image=None + ), []) + header_path = os.path.abspath('polkadot/file_header.txt') + self.mock_popen.return_value.read.side_effect = [ + "pallet_balances\npallet_staking\npallet_something\npallet_xcm_benchmarks::generic\n", # Output for westend runtime + ] + + with patch('sys.exit') as mock_exit: + import cmd + cmd.main() + mock_exit.assert_not_called() + + expected_calls = [ + # Build calls + call("forklift cargo build -p westend-runtime --profile release --features runtime-benchmarks"), + + # Westend runtime calls + call(get_mock_bench_output( + 'westend', + 'pallet_xcm_benchmarks::generic', + './polkadot/runtime/westend/src/weights/xcm', + header_path, + "polkadot/xcm/pallet-xcm-benchmarks/template.hbs" + )), + ] + self.mock_system.assert_has_calls(expected_calls, any_order=True) + + def test_bench_command_two_runtimes_two_pallets(self): + self.mock_parse_args.return_value = (argparse.Namespace( + command='bench', + runtime=['westend', 'rococo'], + pallet=['pallet_balances', 'pallet_staking'], + continue_on_fail=False, + quiet=False, + clean=False, + image=None + ), []) + self.mock_popen.return_value.read.side_effect = [ + "pallet_staking\npallet_balances\n", # Output for westend runtime + "pallet_staking\npallet_balances\n", # Output for rococo runtime + ] + + with patch('sys.exit') as mock_exit: + import cmd + cmd.main() + mock_exit.assert_not_called() + header_path = os.path.abspath('polkadot/file_header.txt') + + expected_calls = [ + # Build calls + call("forklift cargo build -p westend-runtime --profile release --features runtime-benchmarks"), + call("forklift cargo build -p rococo-runtime --profile release --features runtime-benchmarks"), + # Westend runtime calls + call(get_mock_bench_output('westend', 'pallet_staking', './polkadot/runtime/westend/src/weights', header_path)), + call(get_mock_bench_output('westend', 'pallet_balances', './polkadot/runtime/westend/src/weights', header_path)), + # Rococo runtime calls + call(get_mock_bench_output('rococo', 'pallet_staking', './polkadot/runtime/rococo/src/weights', header_path)), + call(get_mock_bench_output('rococo', 'pallet_balances', './polkadot/runtime/rococo/src/weights', header_path)), + ] + self.mock_system.assert_has_calls(expected_calls, any_order=True) + + def test_bench_command_one_dev_runtime(self): + self.mock_parse_args.return_value = (argparse.Namespace( + command='bench', + runtime=['dev'], + pallet=['pallet_balances'], + continue_on_fail=False, + quiet=False, + clean=False, + image=None + ), []) + manifest_dir = "substrate/frame/kitchensink" + self.mock_popen.return_value.read.side_effect = [ + "pallet_balances\npallet_something", # Output for dev runtime + manifest_dir + "/Cargo.toml" # Output for manifest path in dev runtime + ] + header_path = os.path.abspath('substrate/HEADER-APACHE2') + + with patch('sys.exit') as mock_exit: + import cmd + cmd.main() + mock_exit.assert_not_called() + + expected_calls = [ + # Build calls + call("forklift cargo build -p kitchensink-runtime --profile release --features runtime-benchmarks"), + # Westend runtime calls + call(get_mock_bench_output( + 'kitchensink', + 'pallet_balances', + manifest_dir + "/src/weights.rs", + header_path, + "substrate/.maintain/frame-weight-template.hbs" + )), + ] + self.mock_system.assert_has_calls(expected_calls, any_order=True) + + def test_bench_command_one_cumulus_runtime(self): + self.mock_parse_args.return_value = (argparse.Namespace( + command='bench', + runtime=['asset-hub-westend'], + pallet=['pallet_assets'], + continue_on_fail=False, + quiet=False, + clean=False, + image=None + ), []) + self.mock_popen.return_value.read.side_effect = [ + "pallet_assets\n", # Output for asset-hub-westend runtime + ] + header_path = os.path.abspath('cumulus/file_header.txt') + + with patch('sys.exit') as mock_exit: + import cmd + cmd.main() + mock_exit.assert_not_called() + + expected_calls = [ + # Build calls + call("forklift cargo build -p asset-hub-westend-runtime --profile release --features runtime-benchmarks"), + # Asset-hub-westend runtime calls + call(get_mock_bench_output( + 'asset-hub-westend', + 'pallet_assets', + './cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights', + header_path + )), + ] + + self.mock_system.assert_has_calls(expected_calls, any_order=True) + + def test_bench_command_one_cumulus_runtime_xcm(self): + self.mock_parse_args.return_value = (argparse.Namespace( + command='bench', + runtime=['asset-hub-westend'], + pallet=['pallet_xcm_benchmarks::generic', 'pallet_assets'], + continue_on_fail=False, + quiet=False, + clean=False, + image=None + ), []) + self.mock_popen.return_value.read.side_effect = [ + "pallet_assets\npallet_xcm_benchmarks::generic\n", # Output for asset-hub-westend runtime + ] + header_path = os.path.abspath('cumulus/file_header.txt') + + with patch('sys.exit') as mock_exit: + import cmd + cmd.main() + mock_exit.assert_not_called() + + expected_calls = [ + # Build calls + call("forklift cargo build -p asset-hub-westend-runtime --profile release --features runtime-benchmarks"), + # Asset-hub-westend runtime calls + call(get_mock_bench_output( + 'asset-hub-westend', + 'pallet_xcm_benchmarks::generic', + './cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm', + header_path, + "cumulus/templates/xcm-bench-template.hbs" + )), + call(get_mock_bench_output( + 'asset-hub-westend', + 'pallet_assets', + './cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights', + header_path + )), + ] + + self.mock_system.assert_has_calls(expected_calls, any_order=True) + + @patch('argparse.ArgumentParser.parse_known_args', return_value=(argparse.Namespace(command='fmt', continue_on_fail=False), [])) + @patch('os.system', return_value=0) + def test_fmt_command(self, mock_system, mock_parse_args): + with patch('sys.exit') as mock_exit: + import cmd + cmd.main() + mock_exit.assert_not_called() + mock_system.assert_any_call('cargo +nightly fmt') + mock_system.assert_any_call('taplo format --config .config/taplo.toml') + + @patch('argparse.ArgumentParser.parse_known_args', return_value=(argparse.Namespace(command='update-ui', continue_on_fail=False), [])) + @patch('os.system', return_value=0) + def test_update_ui_command(self, mock_system, mock_parse_args): + with patch('sys.exit') as mock_exit: + import cmd + cmd.main() + mock_exit.assert_not_called() + mock_system.assert_called_with('sh ./scripts/update-ui-tests.sh') + + @patch('argparse.ArgumentParser.parse_known_args', return_value=(argparse.Namespace(command='prdoc', continue_on_fail=False), [])) + @patch('os.system', return_value=0) + def test_prdoc_command(self, mock_system, mock_parse_args): + with patch('sys.exit') as mock_exit: + import cmd + cmd.main() + mock_exit.assert_not_called() + self.mock_generate_prdoc_main.assert_called_with(mock_parse_args.return_value[0]) + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/.github/scripts/common/lib.sh b/.github/scripts/common/lib.sh index 33ef2d3e7eda4d6b4b5b7eacc2e3ed2b1a24c29f..5361db398ae7bcaebd6717d726d50d50d5c5e301 100755 --- a/.github/scripts/common/lib.sh +++ b/.github/scripts/common/lib.sh @@ -299,22 +299,23 @@ function check_sha256() { } # Import GPG keys of the release team members -# This is done in parallel as it can take a while sometimes function import_gpg_keys() { - GPG_KEYSERVER=${GPG_KEYSERVER:-"keyserver.ubuntu.com"} + GPG_KEYSERVER=${GPG_KEYSERVER:-"hkps://keyserver.ubuntu.com"} SEC="9D4B2B6EB8F97156D19669A9FF0812D491B96798" EGOR="E6FC4D4782EB0FA64A4903CCDB7D3555DD3932D3" MORGAN="2E92A9D8B15D7891363D1AE8AF9E6C43F7F8C4CF" + PARITY_RELEASES="90BD75EBBB8E95CB3DA6078F94A4029AB4B35DAE" - echo "Importing GPG keys from $GPG_KEYSERVER in parallel" - for key in $SEC $EGOR $MORGAN; do + echo "Importing GPG keys from $GPG_KEYSERVER" + for key in $SEC $EGOR $MORGAN $PARITY_RELEASES; do ( echo "Importing GPG key $key" gpg --no-tty --quiet --keyserver $GPG_KEYSERVER --recv-keys $key echo -e "5\ny\n" | gpg --no-tty --command-fd 0 --expert --edit-key $key trust; - ) & + ) done wait + gpg -k } # Check the GPG signature for a given binary @@ -457,3 +458,15 @@ function get_polkadot_node_version_from_code() { # Remove the semicolon sed 's/;//g' } + +validate_stable_tag() { + tag="$1" + pattern='^stable[0-9]+(-[0-9]+)?$' + + if [[ $tag =~ $pattern ]]; then + echo $tag + else + echo "The input '$tag' does not match the pattern." + exit 1 + fi +} diff --git a/.github/scripts/generate-prdoc.py b/.github/scripts/generate-prdoc.py new file mode 100644 index 0000000000000000000000000000000000000000..d3b6b523ecfd32d32470381c0d7a548b2d289041 --- /dev/null +++ b/.github/scripts/generate-prdoc.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 + +""" +Generate the PrDoc for a Pull Request with a specific number, audience and bump level. + +It downloads and parses the patch from the GitHub API to opulate the prdoc with all modified crates. +This will delete any prdoc that already exists for the PR if `--force` is passed. + +Usage: + python generate-prdoc.py --pr 1234 --audience "TODO" --bump "TODO" +""" + +import argparse +import os +import re +import sys +import subprocess +import toml +import yaml +import requests + +from github import Github +import whatthepatch +from cargo_workspace import Workspace + +# Download the patch and pass the info into `create_prdoc`. +def from_pr_number(n, audience, bump, force): + print(f"Fetching PR '{n}' from GitHub") + g = Github() + + repo = g.get_repo("paritytech/polkadot-sdk") + pr = repo.get_pull(n) + + patch_url = pr.patch_url + patch = requests.get(patch_url).text + + create_prdoc(n, audience, pr.title, pr.body, patch, bump, force) + +def create_prdoc(pr, audience, title, description, patch, bump, force): + path = f"prdoc/pr_{pr}.prdoc" + + if os.path.exists(path): + if force == True: + print(f"Overwriting existing PrDoc for PR {pr}") + else: + print(f"PrDoc already exists for PR {pr}. Use --force to overwrite.") + sys.exit(1) + else: + print(f"No preexisting PrDoc for PR {pr}") + + prdoc = { "title": title, "doc": [{}], "crates": [] } + + prdoc["doc"][0]["audience"] = audience + prdoc["doc"][0]["description"] = description + + workspace = Workspace.from_path(".") + + modified_paths = [] + for diff in whatthepatch.parse_patch(patch): + new_path = diff.header.new_path + # Sometimes this lib returns `/dev/null` as the new path... + if not new_path.startswith("/dev"): + modified_paths.append(new_path) + + modified_crates = {} + for p in modified_paths: + # Go up until we find a Cargo.toml + p = os.path.join(workspace.path, p) + while not os.path.exists(os.path.join(p, "Cargo.toml")): + print(f"Could not find Cargo.toml in {p}") + if p == '/': + exit(1) + p = os.path.dirname(p) + + with open(os.path.join(p, "Cargo.toml")) as f: + manifest = toml.load(f) + + if not "package" in manifest: + print(f"File was not in any crate: {p}") + continue + + crate_name = manifest["package"]["name"] + if workspace.crate_by_name(crate_name).publish: + modified_crates[crate_name] = True + else: + print(f"Skipping unpublished crate: {crate_name}") + + print(f"Modified crates: {modified_crates.keys()}") + + for crate_name in modified_crates.keys(): + entry = { "name": crate_name } + + if bump == 'silent' or bump == 'ignore' or bump == 'no change': + entry["validate"] = False + else: + entry["bump"] = bump + + print(f"Adding crate {entry}") + prdoc["crates"].append(entry) + + # write the parsed PR documentation back to the file + with open(path, "w") as f: + yaml.dump(prdoc, f, sort_keys=False) + print(f"PrDoc for PR {pr} written to {path}") + +# Make the `description` a multiline string instead of escaping \r\n. +def setup_yaml(): + def yaml_multiline_string_presenter(dumper, data): + if len(data.splitlines()) > 1: + data = '\n'.join([line.rstrip() for line in data.strip().splitlines()]) + return dumper.represent_scalar('tag:yaml.org,2002:str', data, style='|') + return dumper.represent_scalar('tag:yaml.org,2002:str', data) + + yaml.add_representer(str, yaml_multiline_string_presenter) + +# parse_args is also used by cmd/cmd.py +def setup_parser(parser=None): + if parser is None: + parser = argparse.ArgumentParser() + parser.add_argument("--pr", type=int, required=True, help="The PR number to generate the PrDoc for." ) + parser.add_argument("--audience", type=str, default="TODO", help="The audience of whom the changes may concern.") + parser.add_argument("--bump", type=str, default="TODO", help="A default bump level for all crates.") + parser.add_argument("--force", type=str, help="Whether to overwrite any existing PrDoc.") + + return parser + +def main(args): + force = True if (args.force or "false").lower() == "true" else False + print(f"Args: {args}, force: {force}") + setup_yaml() + try: + from_pr_number(args.pr, args.audience, args.bump, force) + return 0 + except Exception as e: + print(f"Error generating prdoc: {e}") + return 1 + +if __name__ == "__main__": + args = setup_parser().parse_args() + main(args) \ No newline at end of file diff --git a/.github/scripts/generate-prdoc.requirements.txt b/.github/scripts/generate-prdoc.requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..c17aceff63a0fcd095ba7f66fd9dc39ac3eba2c4 --- /dev/null +++ b/.github/scripts/generate-prdoc.requirements.txt @@ -0,0 +1,6 @@ +requests +cargo-workspace +PyGithub +whatthepatch +pyyaml +toml \ No newline at end of file diff --git a/.github/scripts/generate-readmes.py b/.github/scripts/generate-readmes.py new file mode 100755 index 0000000000000000000000000000000000000000..f838eaa29a74daafe9616d779d070aff36891347 --- /dev/null +++ b/.github/scripts/generate-readmes.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python3 + +""" +A script to generate READMEs for all public crates, +if they do not already have one. + +It relies on functions from the `check-workspace.py` script. + +The resulting README is based on a template defined below, +and includes the crate name, description, license, +and optionally - the SDK release version. + +# Example + +```sh +python3 -m pip install toml +.github/scripts/generate-readmes.py . --sdk-version 1.15.0 +``` +""" + +import os +import toml +import importlib +import argparse + +check_workspace = importlib.import_module("check-workspace") + +README_TEMPLATE = """
@@ -74,7 +73,7 @@ jobs:
- name: install parity-publish
# Set the target dir to cache the build.
- run: CARGO_TARGET_DIR=./target/ cargo install parity-publish@0.8.0 -q
+ run: CARGO_TARGET_DIR=./target/ cargo install parity-publish@0.8.0 --locked -q
- name: check semver
run: |
diff --git a/.github/workflows/checks-quick.yml b/.github/workflows/checks-quick.yml
index ee4bd62a558d48b4d57be9a9208b2e4109f7a6ff..9e36d2bcb2e9eed6266bfe4a940a43ace7216518 100644
--- a/.github/workflows/checks-quick.yml
+++ b/.github/workflows/checks-quick.yml
@@ -15,34 +15,25 @@ concurrency:
permissions: {}
jobs:
- set-image:
- # GitHub Actions allows using 'env' in a container context.
- # However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322
- # This workaround sets the container image for each job using 'set-image' job output.
- runs-on: ubuntu-latest
- timeout-minutes: 20
- outputs:
- IMAGE: ${{ steps.set_image.outputs.IMAGE }}
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - id: set_image
- run: cat .github/env >> $GITHUB_OUTPUT
+
+ preflight:
+ uses: ./.github/workflows/reusable-preflight.yml
+
fmt:
runs-on: ubuntu-latest
timeout-minutes: 20
- needs: [set-image]
+ needs: [preflight]
container:
- image: ${{ needs.set-image.outputs.IMAGE }}
+ image: ${{ needs.preflight.outputs.IMAGE }}
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: Cargo fmt
run: cargo +nightly fmt --all -- --check
check-dependency-rules:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: check dependency rules
run: |
cd substrate/
@@ -50,11 +41,11 @@ jobs:
check-rust-feature-propagation:
runs-on: ubuntu-latest
timeout-minutes: 20
- needs: [set-image]
+ needs: [preflight]
container:
- image: ${{ needs.set-image.outputs.IMAGE }}
+ image: ${{ needs.preflight.outputs.IMAGE }}
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: fetch deps
run: |
# Pull all dependencies eagerly:
@@ -66,21 +57,21 @@ jobs:
test-rust-features:
runs-on: ubuntu-latest
timeout-minutes: 20
- needs: [set-image]
+ needs: [preflight]
container:
- image: ${{ needs.set-image.outputs.IMAGE }}
+ image: ${{ needs.preflight.outputs.IMAGE }}
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: run rust features
run: bash .gitlab/rust-features.sh .
check-toml-format:
runs-on: ubuntu-latest
timeout-minutes: 20
- needs: [set-image]
+ needs: [preflight]
container:
- image: ${{ needs.set-image.outputs.IMAGE }}
+ image: ${{ needs.preflight.outputs.IMAGE }}
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: check toml format
run: |
taplo format --check --config .config/taplo.toml
@@ -89,7 +80,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.0 (22. Sep 2023)
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.0 (22. Sep 2023)
- name: install python deps
run: |
sudo apt-get update && sudo apt-get install -y python3-pip python3
@@ -100,6 +91,8 @@ jobs:
--exclude
"substrate/frame/contracts/fixtures/build"
"substrate/frame/contracts/fixtures/contracts/common"
+ "substrate/frame/revive/fixtures/build"
+ "substrate/frame/revive/fixtures/contracts/common"
- name: deny git deps
run: python3 .github/scripts/deny-git-deps.py .
check-markdown:
@@ -107,7 +100,7 @@ jobs:
timeout-minutes: 20
steps:
- name: Checkout sources
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: Setup Node.js
uses: actions/setup-node@v4.0.3
with:
@@ -128,11 +121,11 @@ jobs:
check-umbrella:
runs-on: ubuntu-latest
timeout-minutes: 20
- needs: [set-image]
+ needs: [preflight]
container:
- image: ${{ needs.set-image.outputs.IMAGE }}
+ image: ${{ needs.preflight.outputs.IMAGE }}
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.0 (22. Sep 2023)
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.0 (22. Sep 2023)
- name: install python deps
run: pip3 install "cargo-workspace>=1.2.4" toml
- name: check umbrella correctness
@@ -154,3 +147,54 @@ jobs:
git diff
exit 1
fi
+ check-fail-ci:
+ runs-on: ubuntu-latest
+ container:
+ # there's no "rg" in ci-unified, and tools is a smaller image anyway
+ image: "paritytech/tools:latest"
+ # paritytech/tools uses "nonroot" user by default, which doesn't have enough
+ # permissions to create GHA context
+ options: --user root
+ steps:
+ - name: Fetch latest code
+ uses: actions/checkout@v4
+ - name: Check
+ run: |
+ set +e
+ rg --line-number --hidden --type rust --glob '!{.git,target}' "$ASSERT_REGEX" .; exit_status=$?
+ if [ $exit_status -eq 0 ]; then
+ echo "$ASSERT_REGEX was found, exiting with 1";
+ exit 1;
+ else
+ echo "No $ASSERT_REGEX was found, exiting with 0";
+ exit 0;
+ fi
+ env:
+ ASSERT_REGEX: "FAIL-CI"
+ GIT_DEPTH: 1
+
+ confirm-required-checks-quick-jobs-passed:
+ runs-on: ubuntu-latest
+ name: All quick checks passed
+ # If any new job gets added, be sure to add it to this array
+ needs:
+ - fmt
+ - check-dependency-rules
+ - check-rust-feature-propagation
+ - test-rust-features
+ - check-toml-format
+ - check-workspace
+ - check-markdown
+ - check-umbrella
+ - check-fail-ci
+ if: always() && !cancelled()
+ steps:
+ - run: |
+ tee resultfile <<< '${{ toJSON(needs) }}'
+ FAILURES=$(cat resultfile | grep '"result": "failure"' | wc -l)
+ if [ $FAILURES -gt 0 ]; then
+ echo "### At least one required job failed ❌" >> $GITHUB_STEP_SUMMARY
+ exit 1
+ else
+ echo '### Good job! All the required jobs passed 🚀' >> $GITHUB_STEP_SUMMARY
+ fi
diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f765d79254c856195271978942ea2eb550f3e7f6
--- /dev/null
+++ b/.github/workflows/checks.yml
@@ -0,0 +1,94 @@
+name: Checks
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
+ merge_group:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+permissions: {}
+
+jobs:
+
+ preflight:
+ uses: ./.github/workflows/reusable-preflight.yml
+
+ cargo-clippy:
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ needs: [preflight]
+ # if: ${{ needs.preflight.outputs.changes_rust }}
+ timeout-minutes: 40
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ env:
+ RUSTFLAGS: "-D warnings"
+ SKIP_WASM_BUILD: 1
+ steps:
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
+ - name: script
+ run: |
+ forklift cargo clippy --all-targets --locked --workspace
+ forklift cargo clippy --all-targets --all-features --locked --workspace
+ check-try-runtime:
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ needs: [preflight]
+ # if: ${{ needs.preflight.outputs.changes_rust }}
+ timeout-minutes: 40
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
+ - name: script
+ run: |
+ forklift cargo check --locked --all --features try-runtime
+ # this is taken from cumulus
+ # Check that parachain-template will compile with `try-runtime` feature flag.
+ forklift cargo check --locked -p parachain-template-node --features try-runtime
+ # add after https://github.com/paritytech/substrate/pull/14502 is merged
+ # experimental code may rely on try-runtime and vice-versa
+ forklift cargo check --locked --all --features try-runtime,experimental
+ # check-core-crypto-features works fast without forklift
+ check-core-crypto-features:
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ needs: [preflight]
+ # if: ${{ needs.preflight.outputs.changes_rust }}
+ timeout-minutes: 30
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
+ - name: script
+ run: |
+ cd substrate/primitives/core
+ ./check-features-variants.sh
+ cd -
+ cd substrate/primitives/application-crypto
+ ./check-features-variants.sh
+ cd -
+ cd substrate/primitives/keyring
+ ./check-features-variants.sh
+ cd -
+ # name of this job must be unique across all workflows
+ # otherwise GitHub will mark all these jobs as required
+ confirm-required-checks-passed:
+ runs-on: ubuntu-latest
+ name: All checks passed
+ # If any new job gets added, be sure to add it to this array
+ needs: [cargo-clippy, check-try-runtime, check-core-crypto-features]
+ if: always() && !cancelled()
+ steps:
+ - run: |
+ tee resultfile <<< '${{ toJSON(needs) }}'
+ FAILURES=$(cat resultfile | grep '"result": "failure"' | wc -l)
+ if [ $FAILURES -gt 0 ]; then
+ echo "### At least one required job failed ❌" >> $GITHUB_STEP_SUMMARY
+ exit 1
+ else
+ echo '### Good job! All the required jobs passed 🚀' >> $GITHUB_STEP_SUMMARY
+ fi
diff --git a/.github/workflows/cmd-tests.yml b/.github/workflows/cmd-tests.yml
new file mode 100644
index 0000000000000000000000000000000000000000..37f1747d0b9eac72cf8e6c10534a8c31402cd905
--- /dev/null
+++ b/.github/workflows/cmd-tests.yml
@@ -0,0 +1,18 @@
+name: Command Bot Tests
+
+on:
+ pull_request:
+
+permissions:
+ contents: read
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - run: python3 .github/scripts/cmd/test_cmd.py
diff --git a/.github/workflows/cmd.yml b/.github/workflows/cmd.yml
new file mode 100644
index 0000000000000000000000000000000000000000..5498beb50ccb16740cd3c8eae09dd85fc0ff6206
--- /dev/null
+++ b/.github/workflows/cmd.yml
@@ -0,0 +1,455 @@
+name: Command
+
+on:
+ issue_comment: # listen for comments on issues
+ types: [created]
+
+permissions: # allow the action to comment on the PR
+ contents: write
+ issues: write
+ pull-requests: write
+ actions: read
+
+jobs:
+ is-org-member:
+ if: startsWith(github.event.comment.body, '/cmd')
+ runs-on: ubuntu-latest
+ outputs:
+ member: ${{ steps.is-member.outputs.result }}
+ steps:
+ - name: Generate token
+ id: generate_token
+ uses: tibdex/github-app-token@v2.1.0
+ with:
+ app_id: ${{ secrets.CMD_BOT_APP_ID }}
+ private_key: ${{ secrets.CMD_BOT_APP_KEY }}
+
+ - name: Check if user is a member of the organization
+ id: is-member
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ steps.generate_token.outputs.token }}
+ result-encoding: string
+ script: |
+ const fs = require("fs");
+ try {
+ const org = '${{ github.event.repository.owner.login }}';
+ const username = '${{ github.event.comment.user.login }}';
+
+ const membership = await github.rest.orgs.checkMembershipForUser({
+ org: org,
+ username: username
+ });
+
+ console.log(membership, membership.status, membership.status === 204);
+
+ if (membership.status === 204) {
+ return 'true';
+ } else {
+ console.log(membership);
+ fs.appendFileSync(process.env["GITHUB_STEP_SUMMARY"], `${membership.data && membership.data.message || 'Unknown error happened, please check logs'}`);
+ }
+ } catch (error) {
+ console.log(error)
+ }
+
+ return 'false';
+
+ reject-non-members:
+ needs: is-org-member
+ if: ${{ startsWith(github.event.comment.body, '/cmd') && needs.is-org-member.outputs.member != 'true' }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Add reaction to rejected comment
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.reactions.createForIssueComment({
+ comment_id: ${{ github.event.comment.id }},
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ content: 'confused'
+ })
+
+ - name: Comment PR (Rejected)
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.issues.createComment({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ body: `Sorry, only members of the organization ${{ github.event.repository.owner.login }} members can run commands.`
+ })
+
+ acknowledge:
+ needs: is-org-member
+ if: ${{ startsWith(github.event.comment.body, '/cmd') && needs.is-org-member.outputs.member == 'true' }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Add reaction to triggered comment
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.reactions.createForIssueComment({
+ comment_id: ${{ github.event.comment.id }},
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ content: 'eyes'
+ })
+
+ clean:
+ needs: is-org-member
+ runs-on: ubuntu-latest
+ steps:
+ - name: Clean previous comments
+ if: ${{ startsWith(github.event.comment.body, '/cmd') && contains(github.event.comment.body, '--clean') && needs.is-org-member.outputs.member == 'true' }}
+ uses: actions/github-script@v7
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.issues.listComments({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo
+ }).then(comments => {
+ for (let comment of comments.data) {
+ console.log(comment)
+ if (
+ ${{ github.event.comment.id }} !== comment.id &&
+ (
+ (
+ (
+ comment.body.startsWith('Command') ||
+ comment.body.startsWith('Command') ||
+ comment.body.startsWith('Sorry, only ')
+ ) && comment.user.type === 'Bot'
+ ) ||
+ (comment.body.startsWith('/cmd') && comment.user.login === context.actor)
+ )
+ ) {
+ github.rest.issues.deleteComment({
+ comment_id: comment.id,
+ owner: context.repo.owner,
+ repo: context.repo.repo
+ })
+ }
+ }
+ })
+ help:
+ needs: [clean, is-org-member]
+ if: ${{ startsWith(github.event.comment.body, '/cmd') && contains(github.event.comment.body, '--help') && needs.is-org-member.outputs.member == 'true' }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Get command
+ uses: actions-ecosystem/action-regex-match@v2
+ id: get-pr-comment
+ with:
+ text: ${{ github.event.comment.body }}
+ regex: '^(\/cmd )([-\/\s\w.=:]+)$' # see explanation in docs/contributor/commands-readme.md#examples
+
+ - name: Save output of help
+ id: help
+ env:
+ CMD: ${{ steps.get-pr-comment.outputs.group2 }} # to avoid "" around the command
+ run: |
+ echo 'help<
Command help:
+
+ \`\`\`
+ ${{ steps.help.outputs.help }}
+ \`\`\`
+
+ Subweight results:
\n\n${subweight}\n\nCommand failed ❌
Run by @${{ github.actor }} for ${{ github.workflow }}
failed. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
- - run: git pull --rebase
- - uses: stefanzweifel/git-auto-commit-action@v5
- with:
- commit_message: cmd-action - ${{ github.workflow }}
- branch: ${{ steps.gh.outputs.branch }}
- - name: Report succeed
- run: gh pr comment ${{ inputs.pr }} --body "Action completed 🎉🎉
Run by @${{ github.actor }} for ${{ github.workflow }}
completed 🎉. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
diff --git a/.github/workflows/command-bench-overhead.yml b/.github/workflows/command-bench-overhead.yml
deleted file mode 100644
index fec8d37bb9ef80505c9569da08071ccee7275067..0000000000000000000000000000000000000000
--- a/.github/workflows/command-bench-overhead.yml
+++ /dev/null
@@ -1,78 +0,0 @@
-name: Command Bench Overhead
-
-on:
- workflow_dispatch:
- inputs:
- pr:
- description: Number of the Pull Request
- required: true
- benchmark:
- description: Pallet benchmark
- type: choice
- required: true
- options:
- - default
- - substrate
- - cumulus
- runtime:
- description: Runtime
- type: choice
- options:
- - rococo
- - westend
- - asset-hub-rococo
- - asset-hub-westend
- target_dir:
- description: Target directory
- type: choice
- options:
- - polkadot
- - substrate
- - cumulus
-
-jobs:
- set-image:
- runs-on: ubuntu-latest
- outputs:
- IMAGE: ${{ steps.set_image.outputs.IMAGE }}
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - id: set_image
- run: cat .github/env >> $GITHUB_OUTPUT
- cmd-bench-overhead:
- needs: [set-image]
- runs-on: arc-runners-polkadot-sdk-benchmark
- container:
- image: ${{ needs.set-image.outputs.IMAGE }}
- permissions:
- contents: write
- pull-requests: write
- steps:
- - name: Download repo
- uses: actions/checkout@v4
- - name: Install gh cli
- id: gh
- uses: ./.github/actions/set-up-gh
- with:
- pr-number: ${{ inputs.pr }}
- GH_TOKEN: ${{ github.token }}
- - name: Run bench overhead
- run: |
- "./scripts/bench.sh" "${{ inputs.benchmark }}" --subcommand "overhead" --runtime "${{ inputs.runtime }}" --target_dir "${{ inputs.target_dir }}"
- - name: Report failure
- if: ${{ failure() }}
- run: gh pr comment ${{ inputs.pr }} --body "Command failed ❌
Run by @${{ github.actor }} for ${{ github.workflow }}
failed. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
- - run: git pull --rebase
- - uses: stefanzweifel/git-auto-commit-action@v5
- with:
- commit_message: cmd-action - ${{ github.workflow }}
- branch: ${{ steps.gh.outputs.branch }}
- - name: Report succeed
- run: gh pr comment ${{ inputs.pr }} --body "Action completed 🎉🎉
Run by @${{ github.actor }} for ${{ github.workflow }}
completed 🎉. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
diff --git a/.github/workflows/command-bench.yml b/.github/workflows/command-bench.yml
deleted file mode 100644
index ac879f443755c65948c51f592dacc39ceb8f5c25..0000000000000000000000000000000000000000
--- a/.github/workflows/command-bench.yml
+++ /dev/null
@@ -1,124 +0,0 @@
-name: Command Bench
-
-on:
- workflow_dispatch:
- inputs:
- pr:
- description: Number of the Pull Request
- required: true
- benchmark:
- description: Pallet benchmark
- type: choice
- required: true
- options:
- - substrate-pallet
- - polkadot-pallet
- - cumulus-assets
- - cumulus-collectives
- - cumulus-coretime
- - cumulus-bridge-hubs
- - cumulus-contracts
- - cumulus-glutton
- - cumulus-starters
- - cumulus-people
- - cumulus-testing
- subcommand:
- description: Subcommand
- type: choice
- required: true
- options:
- - pallet
- - xcm
- runtime:
- description: Runtime
- type: choice
- options:
- - dev
- - rococo
- - westend
- - asset-hub-westend
- - asset-hub-rococo
- - collectives-westend
- - coretime-rococo
- - coretime-westend
- - bridge-hub-rococo
- - bridge-hub-westend
- - contracts-rococo
- - glutton-westend
- - glutton-westend-dev-1300
- - seedling
- - shell
- - people-westend
- - people-rococo
- - penpal
- - rococo-parachain
- pallet:
- description: Pallet
- type: string
- default: pallet_name
- target_dir:
- description: Target directory
- type: choice
- options:
- - substrate
- - polkadot
- - cumulus
- runtime_dir:
- description: Runtime directory
- type: choice
- options:
- - people
- - collectives
- - coretime
- - bridge-hubs
- - contracts
- - glutton
- - starters
- - testing
-
-jobs:
- set-image:
- runs-on: ubuntu-latest
- outputs:
- IMAGE: ${{ steps.set_image.outputs.IMAGE }}
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - id: set_image
- run: cat .github/env >> $GITHUB_OUTPUT
- cmd-bench:
- needs: [set-image]
- runs-on: arc-runners-polkadot-sdk-benchmark
- container:
- image: ${{ needs.set-image.outputs.IMAGE }}
- permissions:
- contents: write
- pull-requests: write
- steps:
- - name: Download repo
- uses: actions/checkout@v4
- - name: Install gh cli
- id: gh
- uses: ./.github/actions/set-up-gh
- with:
- pr-number: ${{ inputs.pr }}
- GH_TOKEN: ${{ github.token }}
- - name: Run bench
- run: |
- "./scripts/bench.sh" "${{ inputs.benchmark }}" --runtime "${{ inputs.runtime }}" --pallet "${{ inputs.pallet }}" --target_dir "${{ inputs.target_dir }}" --subcommand "${{ inputs.subcommand }}" --runtime_dir "${{ inputs.runtime_dir }}"
- - name: Report failure
- if: ${{ failure() }}
- run: gh pr comment ${{ inputs.pr }} --body "Command failed ❌
Run by @${{ github.actor }} for ${{ github.workflow }}
failed. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
- - run: git pull --rebase
- - uses: stefanzweifel/git-auto-commit-action@v5
- with:
- commit_message: cmd-action - ${{ github.workflow }}
- branch: ${{ steps.gh.outputs.branch }}
- - name: Report succeed
- run: gh pr comment ${{ inputs.pr }} --body "Action completed 🎉🎉
Run by @${{ github.actor }} for ${{ github.workflow }}
completed 🎉. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
diff --git a/.github/workflows/command-fmt.yml b/.github/workflows/command-fmt.yml
deleted file mode 100644
index fc37a17ac549b06e6850ea8a209ec4b27db8fb3f..0000000000000000000000000000000000000000
--- a/.github/workflows/command-fmt.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-name: Command FMT
-
-on:
- workflow_dispatch:
- inputs:
- pr:
- description: Number of the Pull Request
- required: true
-
-jobs:
- set-image:
- runs-on: ubuntu-latest
- outputs:
- IMAGE: ${{ steps.set_image.outputs.IMAGE }}
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - id: set_image
- run: cat .github/env >> $GITHUB_OUTPUT
- cmd-fmt:
- needs: [set-image]
- runs-on: ubuntu-latest
- timeout-minutes: 20
- container:
- image: ${{ needs.set-image.outputs.IMAGE }}
- permissions:
- contents: write
- pull-requests: write
- steps:
- - name: Download repo
- uses: actions/checkout@v4
- - name: Install gh cli
- id: gh
- uses: ./.github/actions/set-up-gh
- with:
- pr-number: ${{ inputs.pr }}
- GH_TOKEN: ${{ github.token }}
- - name: Run FMT
- run: |
- cargo --version
- rustc --version
- cargo +nightly --version
- rustc +nightly --version
-
- cargo +nightly fmt
-
- # format toml.
- # since paritytech/ci-unified:bullseye-1.73.0-2023-11-01-v20231204 includes taplo-cli
- taplo format --config .config/taplo.toml
- - name: Report failure
- if: ${{ failure() }}
- run: gh pr comment ${{ inputs.pr }} --body "Command failed ❌
Run by @${{ github.actor }} for ${{ github.workflow }}
failed. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
- - run: git pull --rebase
- - uses: stefanzweifel/git-auto-commit-action@v5
- with:
- commit_message: cmd-action - ${{ github.workflow }}
- branch: ${{ steps.gh.outputs.branch }}
- - name: Report succeed
- run: gh pr comment ${{ inputs.pr }} --body "Action completed 🎉🎉
Run by @${{ github.actor }} for ${{ github.workflow }}
completed 🎉. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
diff --git a/.github/workflows/command-inform.yml b/.github/workflows/command-inform.yml
index 2825f4a604605fea8465ce0646d664c9ef5d38f5..97346395319362b0455bcbcfbb490fa23e6b3b07 100644
--- a/.github/workflows/command-inform.yml
+++ b/.github/workflows/command-inform.yml
@@ -2,20 +2,21 @@ name: Inform of new command action
on:
issue_comment:
- types: [created]
+ types: [ created ]
jobs:
comment:
runs-on: ubuntu-latest
- if: github.event.issue.pull_request && startsWith(github.event.comment.body, 'bot ')
+ # Temporary disable the bot until the new command bot works properly
+ if: github.event.issue.pull_request && startsWith(github.event.comment.body, 'bot ') && false # disabled for now, until tested
steps:
- - name: Inform that the new command exist
- uses: actions/github-script@v7
- with:
- script: |
- github.rest.issues.createComment({
- issue_number: context.issue.number,
- owner: context.repo.owner,
- repo: context.repo.repo,
- body: 'We are migrating the command bot to be a GitHub Action
Please, see the documentation on how to use it'
- })
+ - name: Inform that the new command exist
+ uses: actions/github-script@v7
+ with:
+ script: |
+ github.rest.issues.createComment({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ body: 'We have migrated the command bot to GHA
Please, see the new usage instructions here. Soon the old commands will be disabled.'
+ })
\ No newline at end of file
diff --git a/.github/workflows/command-prdoc.yml b/.github/workflows/command-prdoc.yml
new file mode 100644
index 0000000000000000000000000000000000000000..aa9de9474a7b434deaab92821ab3b9bdad4b82e6
--- /dev/null
+++ b/.github/workflows/command-prdoc.yml
@@ -0,0 +1,84 @@
+name: Command PrDoc
+
+on:
+ workflow_dispatch:
+ inputs:
+ pr:
+ type: number
+ description: Number of the Pull Request
+ required: true
+ bump:
+ type: choice
+ description: Default bump level for all crates
+ default: "TODO"
+ required: true
+ options:
+ - "TODO"
+ - "no change"
+ - "patch"
+ - "minor"
+ - "major"
+ audience:
+ type: choice
+ description: Audience of the PrDoc
+ default: "TODO"
+ required: true
+ options:
+ - "TODO"
+ - "Runtime Dev"
+ - "Runtime User"
+ - "Node Dev"
+ - "Node User"
+ overwrite:
+ type: choice
+ description: Overwrite existing PrDoc
+ default: "true"
+ required: true
+ options:
+ - "true"
+ - "false"
+
+concurrency:
+ group: command-prdoc
+ cancel-in-progress: true
+
+jobs:
+ preflight:
+ uses: ./.github/workflows/reusable-preflight.yml
+
+ cmd-prdoc:
+ needs: [preflight]
+ runs-on: ubuntu-latest
+ timeout-minutes: 20
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ permissions:
+ contents: write
+ pull-requests: write
+ steps:
+ - name: Download repo
+ uses: actions/checkout@v4
+ - name: Install gh cli
+ id: gh
+ uses: ./.github/actions/set-up-gh
+ with:
+ pr-number: ${{ inputs.pr }}
+ GH_TOKEN: ${{ github.token }}
+ - name: Generate PrDoc
+ run: |
+ python3 -m pip install -q cargo-workspace PyGithub whatthepatch pyyaml toml
+
+ python3 .github/scripts/generate-prdoc.py --pr "${{ inputs.pr }}" --bump "${{ inputs.bump }}" --audience "${{ inputs.audience }}" --force "${{ inputs.overwrite }}"
+
+ - name: Report failure
+ if: ${{ failure() }}
+ run: gh pr comment ${{ inputs.pr }} --body "Command failed ❌
Run by @${{ github.actor }} for ${{ github.workflow }}
failed. See logs here."
+ env:
+ RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
+ GH_TOKEN: ${{ github.token }}
+ - name: Push Commit
+ uses: stefanzweifel/git-auto-commit-action@v5
+ with:
+ commit_message: Add PrDoc (auto generated)
+ branch: ${{ steps.gh.outputs.branch }}
+ file_pattern: 'prdoc/*.prdoc'
diff --git a/.github/workflows/command-sync.yml b/.github/workflows/command-sync.yml
deleted file mode 100644
index c610f4066a873e3fe7304bebd2f4b866fe837a91..0000000000000000000000000000000000000000
--- a/.github/workflows/command-sync.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-name: Command Sync
-
-on:
- workflow_dispatch:
- inputs:
- pr:
- description: Number of the Pull Request
- required: true
- chain:
- description: Chain
- type: choice
- required: true
- options:
- - westend
- - rococo
- sync-type:
- description: Sync type
- type: choice
- required: true
- options:
- - warp
- - full
- - fast
- - fast-unsafe
-
-jobs:
- set-image:
- runs-on: ubuntu-latest
- outputs:
- IMAGE: ${{ steps.set_image.outputs.IMAGE }}
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - id: set_image
- run: cat .github/env >> $GITHUB_OUTPUT
- cmd-sync:
- needs: [set-image]
- runs-on: arc-runners-polkadot-sdk-warpsync
- container:
- image: ${{ needs.set-image.outputs.IMAGE }}
- permissions:
- contents: write
- pull-requests: write
- steps:
- - name: Download repo
- uses: actions/checkout@v4
- - name: Install gh cli
- id: gh
- uses: ./.github/actions/set-up-gh
- with:
- pr-number: ${{ inputs.pr }}
- GH_TOKEN: ${{ github.token }}
- - name: Run sync
- run: |
- "./scripts/sync.sh" --chain "${{ inputs.chain }}" --type "${{ inputs.sync-type }}"
- - name: Report failure
- if: ${{ failure() }}
- run: gh pr comment ${{ inputs.pr }} --body "Command failed ❌
Run by @${{ github.actor }} for ${{ github.workflow }}
failed. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
- - run: git pull --rebase
- - uses: stefanzweifel/git-auto-commit-action@v5
- with:
- commit_message: cmd-action - ${{ github.workflow }}
- branch: ${{ steps.gh.outputs.branch }}
- - name: Report succeed
- run: gh pr comment ${{ inputs.pr }} --body "Action completed 🎉🎉
Run by @${{ github.actor }} for ${{ github.workflow }}
completed 🎉. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
diff --git a/.github/workflows/command-update-ui.yml b/.github/workflows/command-update-ui.yml
deleted file mode 100644
index 860177adc8790c28f7cd5873f4f8e0adf24a044f..0000000000000000000000000000000000000000
--- a/.github/workflows/command-update-ui.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-name: Command Update UI
-
-on:
- workflow_dispatch:
- inputs:
- pr:
- description: Number of the Pull Request
- required: true
- rust-version:
- description: Version of rust. Example 1.70
- required: false
-
-jobs:
- set-image:
- runs-on: ubuntu-latest
- outputs:
- IMAGE: ${{ steps.set_image.outputs.IMAGE }}
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - id: set_image
- run: cat .github/env >> $GITHUB_OUTPUT
- cmd-update-ui:
- needs: [set-image]
- runs-on: arc-runners-polkadot-sdk-beefy
- timeout-minutes: 90
- container:
- image: ${{ needs.set-image.outputs.IMAGE }}
- permissions:
- contents: write
- pull-requests: write
- steps:
- - name: Download repo
- uses: actions/checkout@v4
- - name: Install gh cli
- id: gh
- uses: ./.github/actions/set-up-gh
- with:
- pr-number: ${{ inputs.pr }}
- GH_TOKEN: ${{ github.token }}
- - name: Run update-ui
- run: |
- "./scripts/update-ui-tests.sh" "${{ inputs.rust-version }}"
- - name: Report failure
- if: ${{ failure() }}
- run: gh pr comment ${{ inputs.pr }} --body "Command failed ❌
Run by @${{ github.actor }} for ${{ github.workflow }}
failed. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
- - run: git pull --rebase
- - uses: stefanzweifel/git-auto-commit-action@v5
- with:
- commit_message: cmd-action - ${{ github.workflow }}
- branch: ${{ steps.gh.outputs.branch }}
- - name: Report succeed
- run: gh pr comment ${{ inputs.pr }} --body "Action completed 🎉🎉
Run by @${{ github.actor }} for ${{ github.workflow }}
completed 🎉. See logs here."
- env:
- RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- GH_TOKEN: ${{ github.token }}
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
new file mode 100644
index 0000000000000000000000000000000000000000..514bac3973bf76dbab6a8c246054400d3fb1c4e9
--- /dev/null
+++ b/.github/workflows/docs.yml
@@ -0,0 +1,130 @@
+name: Docs
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review, labeled]
+ merge_group:
+
+concurrency:
+ group: ${{ github.ref }}
+ cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}
+
+jobs:
+ preflight:
+ uses: ./.github/workflows/reusable-preflight.yml
+
+ test-rustdoc:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [preflight]
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@v4
+ - run: forklift cargo doc --workspace --all-features --no-deps
+ env:
+ SKIP_WASM_BUILD: 1
+ test-doc:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [preflight]
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@v4
+ - run: forklift cargo test --doc --workspace
+ env:
+ RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
+
+ build-rustdoc:
+ runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [preflight, test-rustdoc]
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ steps:
+ - uses: actions/checkout@v4
+ - run: forklift cargo doc --all-features --workspace --no-deps
+ env:
+ SKIP_WASM_BUILD: 1
+ RUSTDOCFLAGS: "-Dwarnings --default-theme=ayu --html-in-header ./docs/sdk/assets/header.html --extend-css ./docs/sdk/assets/theme.css --html-after-content ./docs/sdk/assets/after-content.html"
+ - run: rm -f ./target/doc/.lock
+ - run: mv ./target/doc ./crate-docs
+ - name: Inject Simple Analytics script
+ run: |
+ script_content=""
+ docs_dir="./crate-docs"
+
+ inject_simple_analytics() {
+ find "$1" -name '*.html' | xargs -I {} -P "$(nproc)" bash -c 'file="{}"; echo "Adding Simple Analytics script to $file"; sed -i "s||'"$2"'|" "$file";'
+ }
+
+ inject_simple_analytics "$docs_dir" "$script_content"
+ - run: echo "" > ./crate-docs/index.html
+ - uses: actions/upload-artifact@v4
+ with:
+ name: ${{ github.sha }}-doc
+ path: ./crate-docs/
+ retention-days: 1
+ if-no-files-found: error
+
+ build-implementers-guide:
+ runs-on: ubuntu-latest
+ container:
+ image: paritytech/mdbook-utils:e14aae4a-20221123
+ options: --user root
+ steps:
+ - uses: actions/checkout@v4
+ - run: mdbook build ./polkadot/roadmap/implementers-guide
+ - run: mkdir -p artifacts
+ - run: mv polkadot/roadmap/implementers-guide/book artifacts/
+ - uses: actions/upload-artifact@v4
+ with:
+ name: ${{ github.sha }}-guide
+ path: ./artifacts/
+ retention-days: 1
+ if-no-files-found: error
+
+ publish-rustdoc:
+ if: github.ref == 'refs/heads/master'
+ runs-on: ubuntu-latest
+ environment: subsystem-benchmarks
+ needs: [build-rustdoc, build-implementers-guide]
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ ref: gh-pages
+ - uses: actions/create-github-app-token@v1
+ id: app-token
+ with:
+ app-id: ${{ secrets.POLKADOTSDK_GHPAGES_APP_ID }}
+ private-key: ${{ secrets.POLKADOTSDK_GHPAGES_APP_KEY }}
+ - name: Ensure destination dir does not exist
+ run: |
+ rm -rf book/
+ rm -rf ${REF_NAME}
+ env:
+ REF_NAME: ${{ github.head_ref || github.ref_name }}
+ - name: Download rustdocs
+ uses: actions/download-artifact@v4
+ with:
+ name: ${{ github.sha }}-doc
+ path: ${{ github.head_ref || github.ref_name }}
+ - name: Download guide
+ uses: actions/download-artifact@v4
+ with:
+ name: ${{ github.sha }}-guide
+ path: /tmp
+ - run: mkdir -p book
+ - name: Move book files
+ run: mv /tmp/book/html/* book/
+ - name: Push to GH-Pages branch
+ uses: github-actions-x/commit@v2.9
+ with:
+ github-token: ${{ steps.app-token.outputs.token }}
+ push-branch: "gh-pages"
+ commit-message: "___Updated docs for ${{ github.head_ref || github.ref_name }}___"
+ force-add: "true"
+ files: ${{ github.head_ref || github.ref_name }}/ book/
+ name: devops-parity
+ email: devops-team@parity.io
diff --git a/.github/workflows/misc-sync-templates.yml b/.github/workflows/misc-sync-templates.yml
index d22dc8724f3790625139762abbef29aa3781af6c..658da4451dc2e05da218848c7ad1e26dbf52ef21 100644
--- a/.github/workflows/misc-sync-templates.yml
+++ b/.github/workflows/misc-sync-templates.yml
@@ -157,7 +157,7 @@ jobs:
timeout-minutes: 90
- name: Create PR on failure
if: failure() && steps.check-compilation.outcome == 'failure'
- uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v5
+ uses: peter-evans/create-pull-request@8867c4aba1b742c39f8d0ba35429c2dfa4b6cb20 # v5
with:
path: "${{ env.template-path }}"
token: ${{ steps.app_token.outputs.token }}
@@ -166,9 +166,13 @@ jobs:
title: "[Don't merge] Update the ${{ matrix.template }} template to ${{ github.event.inputs.stable_release_branch }}"
body: "The template has NOT been successfully built and needs to be inspected."
branch: "update-template/${{ github.event.inputs.stable_release_branch }}"
- - name: Push changes
- run: |
- git add -A .
- git commit --allow-empty -m "Update to ${{ github.event.inputs.stable_release_branch }} triggered by ${{ github.event_name }}"
- git push
- working-directory: "${{ env.template-path }}"
+ - name: Create PR on success
+ uses: peter-evans/create-pull-request@8867c4aba1b742c39f8d0ba35429c2dfa4b6cb20 # v5
+ with:
+ path: "${{ env.template-path }}"
+ token: ${{ steps.app_token.outputs.token }}
+ add-paths: |
+ ./*
+ title: "Update the ${{ matrix.template }} template to ${{ github.event.inputs.stable_release_branch }}"
+ body: "This synchronizes the template to the ${{ github.event.inputs.stable_release_branch }} branch."
+ branch: "update-template/${{ github.event.inputs.stable_release_branch }}"
diff --git a/.github/workflows/misc-update-wishlist-leaderboard.yml b/.github/workflows/misc-update-wishlist-leaderboard.yml
index 68625e5433ca42295920e7449f8b3bed616c24db..3261687176746841a57bf2d247aeb6f596310c8b 100644
--- a/.github/workflows/misc-update-wishlist-leaderboard.yml
+++ b/.github/workflows/misc-update-wishlist-leaderboard.yml
@@ -11,6 +11,7 @@ permissions:
jobs:
update-wishlist-leaderboard:
+ if: github.repository == 'paritytech/polkadot-sdk'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
diff --git a/.github/workflows/publish-check-crates.yml b/.github/workflows/publish-check-crates.yml
index 9f96b92e0ce73eb1874ff7e11c9e43d820eaa649..a5af041185728a3bba5bb9379d105a44efe46b29 100644
--- a/.github/workflows/publish-check-crates.yml
+++ b/.github/workflows/publish-check-crates.yml
@@ -8,11 +8,15 @@ on:
types: [opened, synchronize, reopened, ready_for_review]
merge_group:
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
jobs:
check-publish:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: Rust Cache
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
@@ -20,7 +24,7 @@ jobs:
cache-on-failure: true
- name: install parity-publish
- run: cargo install parity-publish@0.8.0
+ run: cargo install parity-publish@0.8.0 --locked -q
- name: parity-publish check
run: parity-publish --color always check --allow-unpublished
diff --git a/.github/workflows/publish-claim-crates.yml b/.github/workflows/publish-claim-crates.yml
index bee709a12076ed4a5ff212796f7691650f32ad7f..f9bc6ce4daeaa8b3c2f4ce9341fe03d5f9247188 100644
--- a/.github/workflows/publish-claim-crates.yml
+++ b/.github/workflows/publish-claim-crates.yml
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
environment: master
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: Rust Cache
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3
@@ -18,7 +18,7 @@ jobs:
cache-on-failure: true
- name: install parity-publish
- run: cargo install parity-publish@0.8.0
+ run: cargo install parity-publish@0.8.0 --locked -q
- name: parity-publish claim
env:
diff --git a/.github/workflows/publish-subsystem-benchmarks.yml b/.github/workflows/publish-subsystem-benchmarks.yml
deleted file mode 100644
index e5b9db0836f3f6a944778a30df49ea7f98b3af34..0000000000000000000000000000000000000000
--- a/.github/workflows/publish-subsystem-benchmarks.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-# The actions takes json file as input and runs github-action-benchmark for it.
-
-on:
- workflow_dispatch:
- inputs:
- benchmark-data-dir-path:
- description: "Path to the benchmark data directory"
- required: true
- type: string
- output-file-path:
- description: "Path to the benchmark data file"
- required: true
- type: string
-
-jobs:
- subsystem-benchmarks:
- runs-on: ubuntu-latest
- environment: subsystem-benchmarks
- steps:
- - name: Validate inputs
- run: |
- echo "${{ github.event.inputs.benchmark-data-dir-path }}" | grep -P '^[a-z\-]'
- echo "${{ github.event.inputs.output-file-path }}" | grep -P '^[a-z\-]+\.json'
-
- - name: Checkout Sources
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- ref: "gh-pages"
-
- - name: Copy bench results
- id: step_one
- run: |
- cp bench/gitlab/${{ github.event.inputs.output-file-path }} ${{ github.event.inputs.output-file-path }}
-
- - name: Switch branch
- id: step_two
- run: |
- git checkout master --
-
- - uses: actions/create-github-app-token@v1
- id: app-token
- with:
- app-id: ${{ secrets.POLKADOTSDK_GHPAGES_APP_ID }}
- private-key: ${{ secrets.POLKADOTSDK_GHPAGES_APP_KEY }}
-
- - name: Store benchmark result
- uses: benchmark-action/github-action-benchmark@v1
- with:
- tool: "customSmallerIsBetter"
- name: ${{ github.event.inputs.benchmark-data-dir-path }}
- output-file-path: ${{ github.event.inputs.output-file-path }}
- benchmark-data-dir-path: "bench/${{ github.event.inputs.benchmark-data-dir-path }}"
- github-token: ${{ steps.app-token.outputs.token }}
- auto-push: true
diff --git a/.github/workflows/release-10_rc-automation.yml b/.github/workflows/release-10_rc-automation.yml
index 2d91850b82c180e25bbf87dfef529f8ab4667edd..195c14dbd5ab9a102787221f19cecc6319bf46af 100644
--- a/.github/workflows/release-10_rc-automation.yml
+++ b/.github/workflows/release-10_rc-automation.yml
@@ -26,7 +26,7 @@ jobs:
steps:
- name: Checkout sources
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
with:
fetch-depth: 0
diff --git a/.github/workflows/release-30_publish_release_draft.yml b/.github/workflows/release-30_publish_release_draft.yml
index 6d31ca7a7365d77f6dd34c721b66acdc75ddbfa7..dd6a111d67e815077c0764368a63d29caf93a46b 100644
--- a/.github/workflows/release-30_publish_release_draft.yml
+++ b/.github/workflows/release-30_publish_release_draft.yml
@@ -26,6 +26,7 @@ jobs:
uses: "./.github/workflows/release-srtool.yml"
with:
excluded_runtimes: "substrate-test bp cumulus-test kitchensink minimal-template parachain-template penpal polkadot-test seedling shell frame-try sp solochain-template"
+ build_opts: "--features on-chain-release-build"
build-binaries:
runs-on: ubuntu-latest
@@ -35,7 +36,7 @@ jobs:
binary: [ [frame-omni-bencher, frame-omni-bencher], [staging-chain-spec-builder, chain-spec-builder] ]
steps:
- name: Checkout sources
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.0.0
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.0.0
- name: Install protobuf-compiler
run: |
@@ -62,7 +63,7 @@ jobs:
asset_upload_url: ${{ steps.create-release.outputs.upload_url }}
steps:
- name: Checkout
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.0.0
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.0.0
- name: Download artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
@@ -133,7 +134,7 @@ jobs:
steps:
- name: Checkout sources
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.0.0
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.0.0
- name: Download artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
diff --git a/.github/workflows/release-50_publish-docker.yml b/.github/workflows/release-50_publish-docker.yml
index cda10f2ebf15df72579508f3e4bb3252cb4bff1b..72e01a4833e254f0c329465a190206268397382e 100644
--- a/.github/workflows/release-50_publish-docker.yml
+++ b/.github/workflows/release-50_publish-docker.yml
@@ -45,7 +45,7 @@ on:
type: string
default: docker.io
- # The owner is often the same than the Docker Hub username but does ont have to be.
+ # The owner is often the same as the Docker Hub username but does ont have to be.
# In our case, it is not.
owner:
description: Owner of the container image repo
@@ -58,6 +58,10 @@ on:
default: v0.9.18
required: true
+ stable_tag:
+ description: Tag matching the actual stable release version in the format stableYYMM or stableYYMM-X for patch releases
+ required: true
+
permissions:
contents: write
@@ -71,16 +75,43 @@ env:
# EVENT_ACTION: ${{ github.event.action }}
EVENT_NAME: ${{ github.event_name }}
IMAGE_TYPE: ${{ inputs.image_type }}
- VERSION: ${{ inputs.version }}
jobs:
+ validate-inputs:
+ runs-on: ubuntu-latest
+ outputs:
+ version: ${{ steps.validate_inputs.outputs.VERSION }}
+ release_id: ${{ steps.validate_inputs.outputs.RELEASE_ID }}
+ stable_tag: ${{ steps.validate_inputs.outputs.stable_tag }}
+
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
+
+ - name: Validate inputs
+ id: validate_inputs
+ run: |
+ . ./.github/scripts/common/lib.sh
+
+ VERSION=$(filter_version_from_input "${{ inputs.version }}")
+ echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
+
+ RELEASE_ID=$(check_release_id "${{ inputs.release_id }}")
+ echo "RELEASE_ID=${RELEASE_ID}" >> $GITHUB_OUTPUT
+
+ echo "Release ID: $RELEASE_ID"
+
+ STABLE_TAG=$(validate_stable_tag ${{ inputs.stable_tag }})
+ echo "stable_tag=${STABLE_TAG}" >> $GITHUB_OUTPUT
+
fetch-artifacts: # this job will be triggered for the polkadot-parachain rc and release or polkadot rc image build
if: ${{ inputs.binary == 'polkadot-parachain' || inputs.binary == 'chain-spec-builder' || inputs.image_type == 'rc' }}
runs-on: ubuntu-latest
+ needs: [validate-inputs]
steps:
- name: Checkout sources
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
#TODO: this step will be needed when automated triggering will work
#this step runs only if the workflow is triggered automatically when new release is published
@@ -102,9 +133,7 @@ jobs:
run: |
. ./.github/scripts/common/lib.sh
- VERSION=$(filter_version_from_input "${{ inputs.version }}")
- echo "VERSION=${VERSION}" >> $GITHUB_ENV
-
+ VERSION="${{ needs.validate-inputs.outputs.VERSION }}"
fetch_release_artifacts_from_s3
- name: Fetch chain-spec-builder rc artifacts or release artifacts based on release id
@@ -112,7 +141,8 @@ jobs:
if: ${{ env.EVENT_NAME == 'workflow_dispatch' && inputs.binary == 'chain-spec-builder' }}
run: |
. ./.github/scripts/common/lib.sh
- RELEASE_ID=$(check_release_id "${{ inputs.release_id }}")
+
+ RELEASE_ID="${{ needs.validate-inputs.outputs.RELEASE_ID }}"
fetch_release_artifacts
- name: Upload artifacts
@@ -124,12 +154,12 @@ jobs:
build-container: # this job will be triggered for the polkadot-parachain rc and release or polkadot rc image build
if: ${{ inputs.binary == 'polkadot-parachain' || inputs.binary == 'chain-spec-builder' || inputs.image_type == 'rc' }}
runs-on: ubuntu-latest
- needs: fetch-artifacts
+ needs: [fetch-artifacts, validate-inputs]
environment: release
steps:
- name: Checkout sources
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: Download artifacts
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
@@ -157,8 +187,7 @@ jobs:
run: |
. ./.github/scripts/common/lib.sh
- RELEASE_ID=$(check_release_id "${{ inputs.release_id }}")
- release=release-$RELEASE_ID && \
+ release="release-${{ needs.validate-inputs.outputs.RELEASE_ID }}" && \
echo "release=${release}" >> $GITHUB_OUTPUT
commit=$(git rev-parse --short HEAD) && \
@@ -174,12 +203,17 @@ jobs:
id: fetch_release_refs
run: |
chmod a+rx $BINARY
- [[ $BINARY != 'chain-spec-builder' ]] && VERSION=$(./$BINARY --version | awk '{ print $2 }' )
- release=$( echo $VERSION | cut -f1 -d- )
+ if [[ $BINARY != 'chain-spec-builder' ]]; then
+ VERSION=$(./$BINARY --version | awk '{ print $2 }' )
+ release=$( echo $VERSION | cut -f1 -d- )
+ else
+ release=$(echo ${{ needs.validate-inputs.outputs.VERSION }} | sed 's/^v//')
+ fi
+
echo "tag=latest" >> $GITHUB_OUTPUT
echo "release=${release}" >> $GITHUB_OUTPUT
- echo "stable=stable" >> $GITHUB_OUTPUT
+ echo "stable=${{ needs.validate-inputs.outputs.stable_tag }}" >> $GITHUB_OUTPUT
- name: Build Injected Container image for polkadot rc or chain-spec-builder
if: ${{ env.BINARY == 'polkadot' || env.BINARY == 'chain-spec-builder' }}
@@ -257,14 +291,14 @@ jobs:
build-polkadot-release-container: # this job will be triggered for polkadot release build
if: ${{ inputs.binary == 'polkadot' && inputs.image_type == 'release' }}
runs-on: ubuntu-latest
- needs: fetch-latest-debian-package-version
+ needs: [fetch-latest-debian-package-version, validate-inputs]
environment: release
steps:
- name: Checkout sources
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@aa33708b10e362ff993539393ff100fa93ed6a27 # v3.5.0
+ uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1
- name: Cache Docker layers
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
@@ -288,14 +322,14 @@ jobs:
- name: Build and push
id: docker_build
- uses: docker/build-push-action@5176d81f87c23d6fc96624dfdbcd9f3830bbe445 # v6.5.0
+ uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 # v6.7.0
with:
push: true
file: docker/dockerfiles/polkadot/polkadot_injected_debian.Dockerfile
# TODO: The owner should be used below but buildx does not resolve the VARs
# TODO: It would be good to get rid of this GHA that we don't really need.
tags: |
- parity/polkadot:stable
+ parity/polkadot:${{ needs.validate-inputs.outputs.stable_tag }}
parity/polkadot:latest
parity/polkadot:${{ needs.fetch-latest-debian-package-version.outputs.polkadot_container_tag }}
build-args: |
diff --git a/.github/workflows/release-branchoff-stable.yml b/.github/workflows/release-branchoff-stable.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c4c50f5398e819fde478f333d00b10b176a7d507
--- /dev/null
+++ b/.github/workflows/release-branchoff-stable.yml
@@ -0,0 +1,105 @@
+name: Release - Branch off stable branch
+
+on:
+ workflow_dispatch:
+ inputs:
+ stable_version:
+ description: New stable version in the format stableYYMM
+ required: true
+ type: string
+
+ node_version:
+ description: Version of the polkadot node in the format vX.XX.X (e.g. 1.15.0)
+ required: true
+
+jobs:
+ # TODO: Activate this job when the pipeline is moved to the fork in the `paritytech-release` org
+ # check-workflow-can-run:
+ # uses: paritytech-release/sync-workflows/.github/workflows/check-syncronization.yml@latest
+
+
+ prepare-tooling:
+ runs-on: ubuntu-latest
+ outputs:
+ node_version: ${{ steps.validate_inputs.outputs.node_version }}
+ stable_version: ${{ steps.validate_inputs.outputs.stable_version }}
+
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
+
+ - name: Validate inputs
+ id: validate_inputs
+ run: |
+ . ./.github/scripts/common/lib.sh
+
+ node_version=$(filter_version_from_input "${{ inputs.node_version }}")
+ echo "node_version=${node_version}" >> $GITHUB_OUTPUT
+
+ stable_version=$(validate_stable_tag ${{ inputs.stable_version }})
+ echo "stable_version=${stable_version}" >> $GITHUB_OUTPUT
+
+ create-stable-branch:
+ # needs: [check-workflow-can-run, prepare-tooling]
+ needs: [prepare-tooling]
+ # if: needs. check-workflow-can-run.outputs.checks_passed == 'true'
+ runs-on: ubuntu-latest
+
+ env:
+ PGP_KMS_KEY: ${{ secrets.PGP_KMS_KEY }}
+ PGP_KMS_HASH: ${{ secrets.PGP_KMS_HASH }}
+ AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+ AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
+ STABLE_BRANCH_NAME: ${{ needs.prepare-tooling.outputs.stable_version }}
+
+ steps:
+ - name: Install pgpkkms
+ run: |
+ # Install pgpkms that is used to sign commits
+ pip install git+https://github.com/paritytech-release/pgpkms.git@5a8f82fbb607ea102d8c178e761659de54c7af69
+
+ - name: Checkout sources
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
+ with:
+ ref: master
+
+ - name: Import gpg keys
+ run: |
+ . ./.github/scripts/common/lib.sh
+
+ import_gpg_keys
+
+
+ - name: Config git
+ run: |
+ git config --global commit.gpgsign true
+ git config --global gpg.program /home/runner/.local/bin/pgpkms-git
+ git config --global user.name "ParityReleases"
+ git config --global user.email "release-team@parity.io"
+ git config --global user.signingKey "90BD75EBBB8E95CB3DA6078F94A4029AB4B35DAE"
+
+ - name: Create stable branch
+ run: |
+ git checkout -b "$STABLE_BRANCH_NAME"
+ git show-ref "$STABLE_BRANCH_NAME"
+
+ - name: Bump versions, reorder prdocs and push stable branch
+ run: |
+ . ./.github/scripts/release/release_lib.sh
+
+ NODE_VERSION="${{ needs.prepare-tooling.outputs.node_version }}"
+ set_version "\(NODE_VERSION[^=]*= \)\".*\"" $NODE_VERSION "polkadot/node/primitives/src/lib.rs"
+ commit_with_message "Bump node version to $NODE_VERSION in polkadot-cli"
+
+ SPEC_VERSION=$(get_spec_version $NODE_VERSION)
+ runtimes_list=$(get_filtered_runtimes_list)
+ set_spec_versions $SPEC_VERSION "${runtimes_list[@]}"
+
+ # TODO: clarify what to do with the polkadot-parachain binary
+ # Set new version for polkadot-parachain binary to match the polkadot node binary
+ # set_polkadot_parachain_binary_version $NODE_VERSION "cumulus/polkadot-parachain/Cargo.toml"
+
+ reorder_prdocs $NODE_VERSION
+
+ git push origin "$STABLE_BRANCH_NAME"
diff --git a/.github/workflows/release-check-runtimes.yml b/.github/workflows/release-check-runtimes.yml
index 930b8da772d0b6d19c0a723f9de09ff8fa5cd0b2..6666c115562f3f422639e6d4fdde74d9b169b71d 100644
--- a/.github/workflows/release-check-runtimes.yml
+++ b/.github/workflows/release-check-runtimes.yml
@@ -35,7 +35,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the repo
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: Get list
id: get-list
@@ -56,7 +56,7 @@ jobs:
steps:
- name: Checkout the repo
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: Fetch release artifacts based on release id
env:
diff --git a/.github/workflows/release-clobber-stable.yml b/.github/workflows/release-clobber-stable.yml
index 50c20563b4347334aa591f0f4f2e544f17f12afe..0d2ce78ab7816835cf4fcbe7a0213a2a1ae47980 100644
--- a/.github/workflows/release-clobber-stable.yml
+++ b/.github/workflows/release-clobber-stable.yml
@@ -24,7 +24,7 @@ jobs:
AUDITED: audited
steps:
- name: Checkout
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.1.7
- name: Prechecks
run: |
diff --git a/.github/workflows/release-srtool.yml b/.github/workflows/release-srtool.yml
index e1dc42afc6e98ded04c5689a28b224bb239114c0..83119dd4ed24363172c547b394f8a7d8e305e32b 100644
--- a/.github/workflows/release-srtool.yml
+++ b/.github/workflows/release-srtool.yml
@@ -9,6 +9,8 @@ on:
inputs:
excluded_runtimes:
type: string
+ build_opts:
+ type: string
outputs:
published_runtimes:
value: ${{ jobs.find-runtimes.outputs.runtime }}
@@ -26,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.0.0
+ uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.0.0
with:
fetch-depth: 0
@@ -67,13 +69,15 @@ jobs:
matrix: ${{ fromJSON(needs.find-runtimes.outputs.runtime) }}
steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.0.0
+ - uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.0.0
with:
fetch-depth: 0
- name: Srtool build
id: srtool_build
uses: chevdor/srtool-actions@v0.9.2
+ env:
+ BUILD_OPTS: ${{ inputs.build_opts }}
with:
chain: ${{ matrix.chain }}
runtime_dir: ${{ matrix.runtime_dir }}
diff --git a/.github/workflows/reusable-check-changed-files.yml b/.github/workflows/reusable-check-changed-files.yml
deleted file mode 100644
index 47f0620439c77f262c4fda1b68f0e250f2ec8ac6..0000000000000000000000000000000000000000
--- a/.github/workflows/reusable-check-changed-files.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# Reusable workflow to perform checks and generate conditions for other workflows.
-# Currently it checks if any Rust (build-related) file is changed
-# and if the current (caller) workflow file is changed.
-# Example:
-#
-# jobs:
-# changes:
-# permissions:
-# pull-requests: read
-# uses: ./.github/workflows/reusable-check-changed-files.yml
-# some-job:
-# needs: changes
-# if: ${{ needs.changes.outputs.rust }}
-# .......
-
-name: Check changes files
-
-on:
- workflow_call:
- # Map the workflow outputs to job outputs
- outputs:
- rust:
- value: ${{ jobs.changes.outputs.rust }}
- description: "true if any of the build-related OR current (caller) workflow files have changed"
- current-workflow:
- value: ${{ jobs.changes.outputs.current-workflow }}
- description: "true if current (caller) workflow file has changed"
-
-jobs:
- changes:
- runs-on: ubuntu-latest
- permissions:
- pull-requests: read
- outputs:
- # true if current workflow (caller) file is changed
- rust: ${{ steps.filter.outputs.rust == 'true' || steps.filter.outputs.current-workflow == 'true' }}
- current-workflow: ${{ steps.filter.outputs.current-workflow }}
- steps:
- - id: current-file
- run: echo "current-workflow-file=$(echo ${{ github.workflow_ref }} | sed -nE "s/.*(\.github\/workflows\/[a-zA-Z0-9_-]*\.y[a]?ml)@refs.*/\1/p")" >> $GITHUB_OUTPUT
- - run: echo "${{ steps.current-file.outputs.current-workflow-file }}"
- # For pull requests it's not necessary to checkout the code
- - name: Checkout
- if: github.event_name != 'pull_request'
- uses: actions/checkout@v4
- - id: filter
- uses: dorny/paths-filter@v3
- with:
- predicate-quantifier: "every"
- # current-workflow - check if the current (caller) workflow file is changed
- # rust - check if any Rust (build-related) file is changed
- filters: |
- current-workflow:
- - '${{ steps.current-file.outputs.current-workflow-file }}'
- rust:
- - '**/*'
- - '!.github/**/*'
- - '!prdoc/**/*'
- - '!docs/**/*'
diff --git a/.github/workflows/reusable-preflight.yml b/.github/workflows/reusable-preflight.yml
new file mode 100644
index 0000000000000000000000000000000000000000..71823a97ff2eb70206fd132541793dbc20dff799
--- /dev/null
+++ b/.github/workflows/reusable-preflight.yml
@@ -0,0 +1,131 @@
+# Reusable workflow to set various useful variables
+# and to perform checks and generate conditions for other workflows.
+# Currently it checks if any Rust (build-related) file is changed
+# and if the current (caller) workflow file is changed.
+# Example:
+#
+# jobs:
+# preflight:
+# uses: ./.github/workflows/reusable-preflight.yml
+# some-job:
+# needs: changes
+# if: ${{ needs.preflight.outputs.changes_rust }}
+# .......
+
+name: Preflight
+
+on:
+ workflow_call:
+ # Map the workflow outputs to job outputs
+ outputs:
+ changes_rust:
+ value: ${{ jobs.preflight.outputs.changes_rust }}
+ changes_currentWorkflow:
+ value: ${{ jobs.preflight.outputs.changes_currentWorkflow }}
+
+ IMAGE:
+ value: ${{ jobs.preflight.outputs.IMAGE }}
+ description: "CI image"
+ RUNNER:
+ value: ${{ jobs.preflight.outputs.RUNNER }}
+ description: |
+ Runner name.
+ By default we use spot machines that can be terminated at any time.
+ Merge queues use persistent runners to avoid kicking off from queue when the runner is terminated.
+ OLDLINUXRUNNER:
+ value: ${{ jobs.preflight.outputs.OLDLINUXRUNNER }}
+
+ SOURCE_REF_NAME:
+ value: ${{ jobs.preflight.outputs.SOURCE_REF_NAME }}
+ description: "Name of the current branch for `push` or source branch for `pull_request`"
+ COMMIT_SHA:
+ value: ${{ jobs.preflight.outputs.COMMIT_SHA }}
+ description: "Sha of the current commit for `push` or head of the source branch for `pull_request`"
+
+jobs:
+ preflight:
+ runs-on: ubuntu-latest
+ outputs:
+ changes_rust: ${{ steps.set_changes.outputs.rust_any_changed || steps.set_changes.outputs.currentWorkflow_any_changed }}
+ changes_currentWorkflow: ${{ steps.set_changes.outputs.currentWorkflow_any_changed }}
+
+ IMAGE: ${{ steps.set_image.outputs.IMAGE }}
+ RUNNER: ${{ steps.set_runner.outputs.RUNNER }}
+ OLDLINUXRUNNER: ${{ steps.set_runner.outputs.OLDLINUXRUNNER }}
+
+ SOURCE_REF_NAME: ${{ steps.set_vars.outputs.SOURCE_REF_NAME }}
+ COMMIT_SHA: ${{ steps.set_vars.outputs.COMMIT_SHA }}
+
+
+ steps:
+
+ - uses: actions/checkout@v4
+
+ #
+ # Set changes
+ #
+ - id: current_file
+ shell: bash
+ run: |
+ echo "currentWorkflowFile=$(echo ${{ github.workflow_ref }} | sed -nE "s/.*(\.github\/workflows\/[a-zA-Z0-9_-]*\.y[a]?ml)@refs.*/\1/p")" >> $GITHUB_OUTPUT
+ echo "currentActionDir=$(echo ${{ github.action_path }} | sed -nE "s/.*(\.github\/actions\/[a-zA-Z0-9_-]*)/\1/p")" >> $GITHUB_OUTPUT
+
+ - name: Set changes
+ id: set_changes
+ uses: tj-actions/changed-files@v45
+ with:
+ files_yaml: |
+ rust:
+ - '**/*'
+ - '!.github/**/*'
+ - '!prdoc/**/*'
+ - '!docs/**/*'
+ currentWorkflow:
+ - '${{ steps.current_file.outputs.currentWorkflowFile }}'
+ - '.github/workflows/reusable-preflight.yml'
+
+ #
+ # Set image
+ #
+ - name: Set image
+ id: set_image
+ shell: bash
+ run: cat .github/env >> $GITHUB_OUTPUT
+
+ #
+ # Set runner
+ #
+ # By default we use spot machines that can be terminated at any time.
+ # Merge queues use persistent runners to avoid kicking off from queue when the runner is terminated.
+ #
+ - id: set_runner
+ shell: bash
+ run: |
+ # Run merge queues on persistent runners
+ if [[ $GITHUB_REF_NAME == *"gh-readonly-queue"* ]]; then
+ echo "RUNNER=arc-runners-polkadot-sdk-beefy-persistent" >> $GITHUB_OUTPUT
+ echo "OLDLINUXRUNNER=oldlinux-persistent" >> $GITHUB_OUTPUT
+ else
+ echo "RUNNER=arc-runners-polkadot-sdk-beefy" >> $GITHUB_OUTPUT
+ echo "OLDLINUXRUNNER=oldlinux" >> $GITHUB_OUTPUT
+ fi
+
+ #
+ # Set vars
+ #
+ - id: set_vars
+ shell: bash
+ run: |
+ export BRANCH_NAME=${{ github.head_ref || github.ref_name }}
+ echo "SOURCE_REF_NAME=${BRANCH_NAME//\//-}" >> $GITHUB_OUTPUT
+ echo "COMMIT_SHA=${{ github.event.pull_request.head.sha || github.sha }}" >> $GITHUB_OUTPUT
+
+
+ - name: log
+ shell: bash
+ run: |
+ echo "workflow file: ${{ steps.current_file.outputs.currentWorkflowFile }}"
+ echo "Modified: ${{ steps.set_changes.outputs.modified_keys }}"
+ echo "github.ref: ${{ github.ref }}"
+ echo "github.ref_name: ${{ github.ref_name }}"
+ echo "github.sha: ${{ github.sha }}"
diff --git a/.github/workflows/review-bot.yml b/.github/workflows/review-bot.yml
index 80c96b0ef537fe3eaf368c7a39b2c5eddbb994e0..3dd5b1114813dbb2e151319293ade7ce44f4aae9 100644
--- a/.github/workflows/review-bot.yml
+++ b/.github/workflows/review-bot.yml
@@ -15,7 +15,6 @@ on:
jobs:
review-approvals:
runs-on: ubuntu-latest
- environment: master
steps:
- name: Generate token
id: app_token
diff --git a/.github/workflows/runtimes-matrix.json b/.github/workflows/runtimes-matrix.json
new file mode 100644
index 0000000000000000000000000000000000000000..102437876dafb207346ba9cce1de6935ed15c409
--- /dev/null
+++ b/.github/workflows/runtimes-matrix.json
@@ -0,0 +1,127 @@
+[
+ {
+ "name": "dev",
+ "package": "kitchensink-runtime",
+ "path": "substrate/frame",
+ "header": "substrate/HEADER-APACHE2",
+ "template": "substrate/.maintain/frame-weight-template.hbs",
+ "uri": null,
+ "is_relay": false
+ },
+ {
+ "name": "westend",
+ "package": "westend-runtime",
+ "path": "polkadot/runtime/westend",
+ "header": "polkadot/file_header.txt",
+ "template": "polkadot/xcm/pallet-xcm-benchmarks/template.hbs",
+ "uri": "wss://try-runtime-westend.polkadot.io:443",
+ "is_relay": true
+ },
+ {
+ "name": "rococo",
+ "package": "rococo-runtime",
+ "path": "polkadot/runtime/rococo",
+ "header": "polkadot/file_header.txt",
+ "template": "polkadot/xcm/pallet-xcm-benchmarks/template.hbs",
+ "uri": "wss://try-runtime-rococo.polkadot.io:443",
+ "is_relay": true
+ },
+ {
+ "name": "asset-hub-westend",
+ "package": "asset-hub-westend-runtime",
+ "path": "cumulus/parachains/runtimes/assets/asset-hub-westend",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": "wss://westend-asset-hub-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "asset-hub-rococo",
+ "package": "asset-hub-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/assets/asset-hub-rococo",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": "wss://rococo-asset-hub-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "bridge-hub-rococo",
+ "package": "bridge-hub-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/bridges/bridge-hub-rococo",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": "wss://rococo-bridge-hub-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "bridge-hub-westend",
+ "package": "bridge-hub-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/bridges/bridge-hub-westend",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": "wss://westend-bridge-hub-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "collectives-westend",
+ "package": "collectives-westend-runtime",
+ "path": "cumulus/parachains/runtimes/collectives/collectives-westend",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": "wss://westend-collectives-rpc.polkadot.io:443"
+ },
+ {
+ "name": "contracts-rococo",
+ "package": "contracts-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/contracts/contracts-rococo",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": "wss://rococo-contracts-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "coretime-rococo",
+ "package": "coretime-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/coretime/coretime-rococo",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": "wss://rococo-coretime-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "coretime-westend",
+ "package": "coretime-westend-runtime",
+ "path": "cumulus/parachains/runtimes/coretime/coretime-westend",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": "wss://westend-coretime-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "glutton-westend",
+ "package": "glutton-westend-runtime",
+ "path": "cumulus/parachains/runtimes/gluttons/glutton-westend",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": null,
+ "is_relay": false
+ },
+ {
+ "name": "people-rococo",
+ "package": "people-rococo-runtime",
+ "path": "cumulus/parachains/runtimes/people/people-rococo",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": "wss://rococo-people-rpc.polkadot.io:443",
+ "is_relay": false
+ },
+ {
+ "name": "people-westend",
+ "package": "people-westend-runtime",
+ "path": "cumulus/parachains/runtimes/people/people-westend",
+ "header": "cumulus/file_header.txt",
+ "template": "cumulus/templates/xcm-bench-template.hbs",
+ "uri": "wss://westend-people-rpc.polkadot.io:443",
+ "is_relay": false
+ }
+]
diff --git a/.github/workflows/subsystem-benchmarks.yml b/.github/workflows/subsystem-benchmarks.yml
new file mode 100644
index 0000000000000000000000000000000000000000..210714d847ff032dee89a4dfbd36e9a34b7f5940
--- /dev/null
+++ b/.github/workflows/subsystem-benchmarks.yml
@@ -0,0 +1,149 @@
+name: Subsystem Benchmarks
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
+ merge_group:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+permissions:
+ contents: read
+
+jobs:
+ preflight:
+ uses: ./.github/workflows/reusable-preflight.yml
+
+ build:
+ timeout-minutes: 80
+ needs: [preflight]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ strategy:
+ fail-fast: false
+ matrix:
+ features:
+ [
+ {
+ name: "polkadot-availability-recovery",
+ bench: "availability-recovery-regression-bench",
+ },
+ {
+ name: "polkadot-availability-distribution",
+ bench: "availability-distribution-regression-bench",
+ },
+ {
+ name: "polkadot-node-core-approval-voting",
+ bench: "approval-voting-regression-bench",
+ },
+ {
+ name: "polkadot-statement-distribution",
+ bench: "statement-distribution-regression-bench",
+ },
+ ]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Check Rust
+ run: |
+ rustup show
+ rustup +nightly show
+
+ - name: Run Benchmarks
+ id: run-benchmarks
+ run: |
+ forklift cargo bench -p ${{ matrix.features.name }} --bench ${{ matrix.features.bench }} --features subsystem-benchmarks || echo "Benchmarks failed"
+ ls -lsa ./charts
+
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v4.3.6
+ with:
+ name: ${{matrix.features.bench}}
+ path: ./charts
+
+ publish-benchmarks:
+ timeout-minutes: 60
+ needs: [build]
+ if: github.ref == 'refs/heads/master'
+ environment: subsystem-benchmarks
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: gh-pages
+ fetch-depth: 0
+
+ - run: git checkout master --
+
+ - name: Download artifacts
+ uses: actions/download-artifact@v4.1.8
+ with:
+ path: ./charts
+
+ - name: Setup git
+ run: |
+ # Fixes "detected dubious ownership" error in the ci
+ git config --global --add safe.directory '*'
+ ls -lsR ./charts
+
+ - uses: actions/create-github-app-token@v1
+ id: app-token
+ with:
+ app-id: ${{ secrets.POLKADOTSDK_GHPAGES_APP_ID }}
+ private-key: ${{ secrets.POLKADOTSDK_GHPAGES_APP_KEY }}
+
+ - name: Generate ${{ env.BENCH }}
+ env:
+ BENCH: availability-recovery-regression-bench
+ uses: benchmark-action/github-action-benchmark@v1
+ with:
+ tool: "customSmallerIsBetter"
+ name: ${{ env.BENCH }}
+ output-file-path: ./charts/${{ env.BENCH }}/${{ env.BENCH }}.json
+ benchmark-data-dir-path: ./bench/${{ env.BENCH }}
+ github-token: ${{ steps.app-token.outputs.token }}
+ auto-push: true
+
+ - name: Generate ${{ env.BENCH }}
+ env:
+ BENCH: availability-distribution-regression-bench
+ uses: benchmark-action/github-action-benchmark@v1
+ with:
+ tool: "customSmallerIsBetter"
+ name: ${{ env.BENCH }}
+ output-file-path: ./charts/${{ env.BENCH }}/${{ env.BENCH }}.json
+ benchmark-data-dir-path: ./bench/${{ env.BENCH }}
+ github-token: ${{ steps.app-token.outputs.token }}
+ auto-push: true
+
+ - name: Generate ${{ env.BENCH }}
+ env:
+ BENCH: approval-voting-regression-bench
+ uses: benchmark-action/github-action-benchmark@v1
+ with:
+ tool: "customSmallerIsBetter"
+ name: ${{ env.BENCH }}
+ output-file-path: ./charts/${{ env.BENCH }}/${{ env.BENCH }}.json
+ benchmark-data-dir-path: ./bench/${{ env.BENCH }}
+ github-token: ${{ steps.app-token.outputs.token }}
+ auto-push: true
+
+ - name: Generate ${{ env.BENCH }}
+ env:
+ BENCH: statement-distribution-regression-bench
+ uses: benchmark-action/github-action-benchmark@v1
+ with:
+ tool: "customSmallerIsBetter"
+ name: ${{ env.BENCH }}
+ output-file-path: ./charts/${{ env.BENCH }}/${{ env.BENCH }}.json
+ benchmark-data-dir-path: ./bench/${{ env.BENCH }}
+ github-token: ${{ steps.app-token.outputs.token }}
+ auto-push: true
diff --git a/.github/workflows/tests-linux-stable-coverage.yml b/.github/workflows/tests-linux-stable-coverage.yml
new file mode 100644
index 0000000000000000000000000000000000000000..90d7bc34a92602b30f4e210cc55dc450a49219d3
--- /dev/null
+++ b/.github/workflows/tests-linux-stable-coverage.yml
@@ -0,0 +1,123 @@
+# GHA for test-linux-stable-int, test-linux-stable, test-linux-stable-oldkernel
+name: tests linux stable coverage
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review, labeled]
+ merge_group:
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ preflight:
+ uses: ./.github/workflows/reusable-preflight.yml
+ if: contains(github.event.label.name, 'GHA-coverage') || contains(github.event.pull_request.labels.*.name, 'GHA-coverage')
+
+ #
+ #
+ #
+ test-linux-stable-coverage:
+ needs: [preflight]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ timeout-minutes: 120
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ env:
+ RUST_TOOLCHAIN: stable
+ # Enable debug assertions since we are running optimized builds for testing
+ # but still want to have debug assertions.
+ #
+ # -Cinstrument-coverage slows everything down but it is necessary for code coverage
+ # https://doc.rust-lang.org/rustc/instrument-coverage.html
+ RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings -Cinstrument-coverage"
+ LLVM_PROFILE_FILE: "/__w/polkadot-sdk/polkadot-sdk/target/coverage/cargo-test-${{ matrix.ci_node_index }}-%p-%m.profraw"
+ strategy:
+ fail-fast: false
+ matrix:
+ ci_node_index: [1, 2, 3, 4, 5]
+ ci_node_total: [5]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - run: rustup component add llvm-tools-preview
+ - run: cargo install cargo-llvm-cov
+
+ - run: mkdir -p target/coverage
+
+ # Some tests are excluded because they run very slowly or fail with -Cinstrument-coverage
+ - name: run tests
+ run: >
+ time cargo llvm-cov nextest
+ --no-report --release
+ --workspace
+ --locked --no-fail-fast
+ --features try-runtime,ci-only-tests,experimental,riscv
+ --filter-expr "
+ !test(/.*benchmark.*/)
+ - test(/recovers_from_only_chunks_if_pov_large::case_1/)
+ - test(/participation_requests_reprioritized_for_newly_included/)
+ - test(/availability_is_recovered_from_chunks_if_no_group_provided::case_1/)
+ - test(/rejects_missing_inherent_digest/)
+ - test(/availability_is_recovered_from_chunks_even_if_backing_group_supplied_if_chunks_only::case_1/)
+ - test(/availability_is_recovered_from_chunks_if_no_group_provided::case_2/)
+ - test(/all_security_features_work/)
+ - test(/nonexistent_cache_dir/)
+ - test(/recovers_from_only_chunks_if_pov_large::case_3/)
+ - test(/recovers_from_only_chunks_if_pov_large::case_2/)
+ - test(/authoring_blocks/)
+ - test(/rejects_missing_seals/)
+ - test(/generate_chain_spec/)
+ - test(/get_preset/)
+ - test(/list_presets/)
+ - test(/tests::receive_rate_limit_is_enforced/)
+ - test(/polkadot-availability-recovery/)
+ "
+ --partition count:${{ matrix.ci_node_index }}/${{ matrix.ci_node_total }}
+
+ - name: generate report
+ run: cargo llvm-cov report --release --codecov --output-path coverage-${{ matrix.ci_node_index }}.lcov
+ - name: upload report
+ uses: actions/upload-artifact@v4
+ with:
+ name: coverage-report-${{ matrix.ci_node_index }}.lcov
+ path: coverage-${{ matrix.ci_node_index }}.lcov
+
+ #
+ #
+ # Upload to codecov
+ upload-reports:
+ needs: [test-linux-stable-coverage]
+ runs-on: ubuntu-latest
+ steps:
+ - name: Download artifacts
+ uses: actions/download-artifact@v4
+ with:
+ path: reports
+ pattern: coverage-report-*
+ merge-multiple: true
+ - run: ls -al reports/
+ - name: Upload to Codecov
+ uses: codecov/codecov-action@v4
+ with:
+ token: ${{ secrets.CODECOV_TOKEN }}
+ verbose: true
+ directory: reports
+ root_dir: /__w/polkadot-sdk/polkadot-sdk/
+
+ #
+ #
+ #
+ remove-label:
+ runs-on: ubuntu-latest
+ needs: [upload-reports]
+ if: github.event_name == 'pull_request'
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions-ecosystem/action-remove-labels@v1
+ with:
+ labels: GHA-coverage
\ No newline at end of file
diff --git a/.github/workflows/tests-linux-stable.yml b/.github/workflows/tests-linux-stable.yml
index da4bb40a2e78fed9b09ce8d79438ef203a63efe8..6cf71422511cc3d5b698725c576707a732bc9645 100644
--- a/.github/workflows/tests-linux-stable.yml
+++ b/.github/workflows/tests-linux-stable.yml
@@ -6,40 +6,24 @@ on:
branches:
- master
pull_request:
- types: [ opened, synchronize, reopened, ready_for_review ]
+ types: [opened, synchronize, reopened, ready_for_review]
merge_group:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
- changes:
- permissions:
- pull-requests: read
- uses: ./.github/workflows/reusable-check-changed-files.yml
- set-image:
- # GitHub Actions allows using 'env' in a container context.
- # However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322
- # This workaround sets the container image for each job using 'set-image' job output.
- needs: changes
- if: ${{ needs.changes.outputs.rust }}
- runs-on: ubuntu-latest
- outputs:
- IMAGE: ${{ steps.set_image.outputs.IMAGE }}
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - id: set_image
- run: cat .github/env >> $GITHUB_OUTPUT
+ preflight:
+ uses: ./.github/workflows/reusable-preflight.yml
test-linux-stable-int:
- needs: [ set-image, changes ]
- if: ${{ needs.changes.outputs.rust }}
- runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [preflight]
+ # if: ${{ needs.preflight.outputs.changes_rust }}
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
timeout-minutes: 60
container:
- image: ${{ needs.set-image.outputs.IMAGE }}
+ image: ${{ needs.preflight.outputs.IMAGE }}
env:
RUSTFLAGS: "-C debug-assertions -D warnings"
RUST_BACKTRACE: 1
@@ -51,16 +35,16 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: script
- run: WASM_BUILD_NO_COLOR=1 time forklift cargo test -p staging-node-cli --release --locked -- --ignored
+ run: WASM_BUILD_NO_COLOR=1 forklift cargo test -p staging-node-cli --release --locked -- --ignored
# https://github.com/paritytech/ci_cd/issues/864
test-linux-stable-runtime-benchmarks:
- needs: [ set-image, changes ]
- if: ${{ needs.changes.outputs.rust }}
- runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [preflight]
+ # if: ${{ needs.preflight.outputs.changes_rust }}
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
timeout-minutes: 60
container:
- image: ${{ needs.set-image.outputs.IMAGE }}
+ image: ${{ needs.preflight.outputs.IMAGE }}
env:
RUST_TOOLCHAIN: stable
# Enable debug assertions since we are running optimized builds for testing
@@ -70,4 +54,68 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: script
- run: time forklift cargo nextest run --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet
+ run: forklift cargo nextest run --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet
+
+ test-linux-stable:
+ needs: [preflight]
+ # if: ${{ needs.preflight.outputs.changes_rust }}
+ runs-on: ${{ matrix.runners }}
+ timeout-minutes: 60
+ strategy:
+ fail-fast: false
+ matrix:
+ partition: [1/3, 2/3, 3/3]
+ runners:
+ [
+ "${{ needs.preflight.outputs.RUNNER }}",
+ "${{ needs.preflight.outputs.OLDLINUXRUNNER }}",
+ ]
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ # needed for tests that use unshare syscall
+ options: --security-opt seccomp=unconfined
+ env:
+ RUST_TOOLCHAIN: stable
+ # Enable debug assertions since we are running optimized builds for testing
+ # but still want to have debug assertions.
+ RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: script
+ run: |
+ # Fixes "detected dubious ownership" error in the ci
+ git config --global --add safe.directory '*'
+ forklift cargo nextest run \
+ --workspace \
+ --locked \
+ --release \
+ --no-fail-fast \
+ --features try-runtime,experimental,riscv,ci-only-tests \
+ --partition count:${{ matrix.partition }}
+ # run runtime-api tests with `enable-staging-api` feature on the 1st node
+ - name: runtime-api tests
+ if: ${{ matrix.partition == '1/3' }}
+ run: forklift cargo nextest run -p sp-api-test --features enable-staging-api
+
+ confirm-required-jobs-passed:
+ runs-on: ubuntu-latest
+ name: All tests passed
+ # If any new job gets added, be sure to add it to this array
+ needs:
+ [
+ test-linux-stable-int,
+ test-linux-stable-runtime-benchmarks,
+ test-linux-stable,
+ ]
+ if: always() && !cancelled()
+ steps:
+ - run: |
+ tee resultfile <<< '${{ toJSON(needs) }}'
+ FAILURES=$(cat resultfile | grep '"result": "failure"' | wc -l)
+ if [ $FAILURES -gt 0 ]; then
+ echo "### At least one required job failed ❌" >> $GITHUB_STEP_SUMMARY
+ exit 1
+ else
+ echo '### Good job! All the required jobs passed 🚀' >> $GITHUB_STEP_SUMMARY
+ fi
diff --git a/.github/workflows/tests-misc.yml b/.github/workflows/tests-misc.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0f2b617b847de584d3755b9c1e9cd9d3cb970e10
--- /dev/null
+++ b/.github/workflows/tests-misc.yml
@@ -0,0 +1,380 @@
+name: tests misc
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
+ merge_group:
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+# Jobs in this workflow depend on each other, only for limiting peak amount of spawned workers
+
+jobs:
+
+ preflight:
+ uses: ./.github/workflows/reusable-preflight.yml
+
+ # more information about this job can be found here:
+ # https://github.com/paritytech/substrate/pull/3778
+ test-full-crypto-feature:
+ needs: [preflight]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ timeout-minutes: 60
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ env:
+ # Enable debug assertions since we are running optimized builds for testing
+ # but still want to have debug assertions.
+ RUSTFLAGS: "-C debug-assertions"
+ RUST_BACKTRACE: 1
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: script
+ run: |
+ cd substrate/primitives/core/
+ forklift cargo build --locked --no-default-features --features full_crypto
+ cd ../application-crypto
+ forklift cargo build --locked --no-default-features --features full_crypto
+
+ test-frame-examples-compile-to-wasm:
+ timeout-minutes: 20
+ # into one job
+ needs: [preflight, test-full-crypto-feature]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ env:
+ # Enable debug assertions since we are running optimized builds for testing
+ # but still want to have debug assertions.
+ RUSTFLAGS: "-C debug-assertions"
+ RUST_BACKTRACE: 1
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: script
+ run: |
+ cd substrate/frame/examples/offchain-worker/
+ forklift cargo build --locked --target=wasm32-unknown-unknown --no-default-features
+ cd ../basic
+ forklift cargo build --locked --target=wasm32-unknown-unknown --no-default-features
+
+ test-frame-ui:
+ timeout-minutes: 60
+ needs: [preflight]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ env:
+ # Enable debug assertions since we are running optimized builds for testing
+ # but still want to have debug assertions.
+ RUSTFLAGS: "-C debug-assertions -D warnings"
+ RUST_BACKTRACE: 1
+ WASM_BUILD_NO_COLOR: 1
+ WASM_BUILD_RUSTFLAGS: "-C debug-assertions -D warnings"
+ # Ensure we run the UI tests.
+ RUN_UI_TESTS: 1
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: script
+ run: |
+ forklift cargo test --locked -q --profile testnet -p frame-support-test --features=frame-feature-testing,no-metadata-docs,try-runtime,experimental
+ forklift cargo test --locked -q --profile testnet -p frame-support-test --features=frame-feature-testing,frame-feature-testing-2,no-metadata-docs,try-runtime,experimental
+ forklift cargo test --locked -q --profile testnet -p xcm-procedural
+ forklift cargo test --locked -q --profile testnet -p frame-election-provider-solution-type
+ forklift cargo test --locked -q --profile testnet -p sp-api-test
+ # There is multiple version of sp-runtime-interface in the repo. So we point to the manifest.
+ forklift cargo test --locked -q --profile testnet --manifest-path substrate/primitives/runtime-interface/Cargo.toml
+
+ test-deterministic-wasm:
+ timeout-minutes: 20
+ needs: [preflight, test-frame-examples-compile-to-wasm]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ env:
+ WASM_BUILD_NO_COLOR: 1
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: script
+ run: |
+ # build runtime
+ forklift cargo build -q --locked --release -p westend-runtime -p rococo-runtime
+ # make checksum
+ sha256sum target/release/wbuild/*-runtime/target/wasm32-unknown-unknown/release/*.wasm > checksum.sha256
+ cargo clean
+ # build again
+ forklift cargo build -q --locked --release -p westend-runtime -p rococo-runtime
+ # confirm checksum
+ sha256sum -c checksum.sha256
+
+ cargo-check-benches:
+ needs: [preflight]
+ if: ${{ github.event_name == 'pull_request' || github.event_name == 'merge_group' }}
+ timeout-minutes: 60
+ strategy:
+ matrix:
+ branch: [master, current]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ # if branch is master, use the branch, otherwise set empty string, so it uses the current context
+ # either PR (including forks) or merge group (main repo)
+ ref: ${{ matrix.branch == 'master' && matrix.branch || '' }}
+
+ - name: script
+ run: |
+ ARTIFACTS_DIR=./artifacts
+ BENCH_TRIE_READ=::trie::read::small
+ BENCH_NODE_IMPORT=::node::import::sr25519::transfer_keep_alive::paritydb::small
+ mkdir -p $ARTIFACTS_DIR
+
+ SKIP_WASM_BUILD=1 forklift cargo check --locked --benches --all;
+ forklift cargo run --locked --release -p node-bench -- $BENCH_TRIE_READ --json | tee $ARTIFACTS_DIR/bench_trie_read_small.json;
+ forklift cargo run --locked --release -p node-bench -- $BENCH_NODE_IMPORT --json | tee $ARTIFACTS_DIR/bench_transfer_keep_alive.json
+
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v4.3.6
+ with:
+ path: ./artifacts
+ name: cargo-check-benches-${{ matrix.branch }}-${{ github.sha }}
+ retention-days: 1
+
+ node-bench-regression-guard:
+ timeout-minutes: 20
+ if: always() && !cancelled()
+ # runs-on: arc-runners-polkadot-sdk
+ runs-on: ubuntu-latest
+ needs: [preflight, cargo-check-benches]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Download artifact (master run)
+ uses: actions/download-artifact@v4.1.8
+ with:
+ name: cargo-check-benches-master-${{ github.sha }}
+ path: ./artifacts/master
+
+ - name: Download artifact (current run)
+ uses: actions/download-artifact@v4.1.8
+ with:
+ name: cargo-check-benches-current-${{ github.sha }}
+ path: ./artifacts/current
+
+ - name: script
+ id: compare
+ run: |
+ docker run --rm \
+ -v $PWD/artifacts/master:/artifacts/master \
+ -v $PWD/artifacts/current:/artifacts/current \
+ paritytech/node-bench-regression-guard:latest \
+ node-bench-regression-guard --reference /artifacts/master --compare-with /artifacts/current
+
+ if [ $? -ne 0 ]; then
+ FAILED_MSG='### node-bench-regression-guard failed ❌, check the regression in *cargo-check-benches* job'
+ echo $FAILED_MSG
+ echo $FAILED_MSG >> $GITHUB_STEP_SUMMARY
+ exit 1
+ else
+ echo "### node-bench-regression-guard passed ✅" >> $GITHUB_STEP_SUMMARY
+ fi
+
+ test-node-metrics:
+ needs: [preflight]
+ timeout-minutes: 30
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Run tests
+ id: tests
+ env:
+ RUST_TOOLCHAIN: stable
+ # Enable debug assertions since we are running optimized builds for testing
+ # but still want to have debug assertions.
+ RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
+ run: |
+ forklift cargo build --bin polkadot-execute-worker --bin polkadot-prepare-worker --profile testnet --verbose --locked
+ mkdir -p ./artifacts
+ forklift cargo test --profile testnet --locked --features=runtime-metrics -p polkadot-node-metrics > ./artifacts/log.txt
+ echo "Metrics test passed"
+
+ - name: Upload artifacts if failed
+ if: ${{ steps.tests.outcome != 'success' }}
+ uses: actions/upload-artifact@v4.3.6
+ with:
+ name: node-metrics-failed
+ path: ./artifacts
+
+ # more information about this job can be found here:
+ # https://github.com/paritytech/substrate/pull/6916
+ check-tracing:
+ timeout-minutes: 20
+ needs: [preflight, test-node-metrics]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: script
+ run: |
+ forklift cargo test --locked --manifest-path ./substrate/primitives/tracing/Cargo.toml --no-default-features
+ forklift cargo test --locked --manifest-path ./substrate/primitives/tracing/Cargo.toml --no-default-features --features=with-tracing
+
+ check-metadata-hash:
+ timeout-minutes: 20
+ needs: [preflight, check-tracing]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: script
+ run: |
+ forklift cargo build --locked -p westend-runtime --features metadata-hash
+
+ cargo-hfuzz:
+ timeout-minutes: 20
+ needs: [preflight, check-metadata-hash]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ env:
+ # max 10s per iteration, 60s per file
+ HFUZZ_RUN_ARGS: |
+ --exit_upon_crash
+ --exit_code_upon_crash 1
+ --timeout 10
+ --run_time 60
+
+ # use git version of honggfuzz-rs until v0.5.56 is out, we need a few recent changes:
+ # https://github.com/rust-fuzz/honggfuzz-rs/pull/75 to avoid breakage on debian
+ # https://github.com/rust-fuzz/honggfuzz-rs/pull/81 fix to the above pr
+ # https://github.com/rust-fuzz/honggfuzz-rs/pull/82 fix for handling absolute CARGO_TARGET_DIR
+ HFUZZ_BUILD_ARGS: |
+ --config=patch.crates-io.honggfuzz.git="https://github.com/altaua/honggfuzz-rs"
+ --config=patch.crates-io.honggfuzz.rev="205f7c8c059a0d98fe1cb912cdac84f324cb6981"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Run honggfuzz
+ run: |
+ cd substrate/primitives/arithmetic/fuzzer
+ forklift cargo hfuzz build
+ for target in $(cargo read-manifest | jq -r '.targets | .[] | .name');
+ do
+ forklift cargo hfuzz run "$target" || { printf "fuzzing failure for %s\n" "$target"; exit 1; };
+ done
+
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v4.3.6
+ with:
+ path: substrate/primitives/arithmetic/fuzzer/hfuzz_workspace/
+ name: hfuzz-${{ github.sha }}
+
+ cargo-check-each-crate:
+ timeout-minutes: 140
+ needs: [preflight]
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
+ container:
+ image: ${{ needs.preflight.outputs.IMAGE }}
+ env:
+ RUSTFLAGS: "-D warnings"
+ CI_JOB_NAME: cargo-check-each-crate
+ strategy:
+ matrix:
+ index: [1, 2, 3, 4, 5, 6, 7] # 7 parallel jobs
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Check Rust
+ run: |
+ rustup show
+ rustup +nightly show
+
+ - name: script
+ run: |
+ mkdir -p /github/home/.forklift
+ cp .forklift/config.toml /github/home/.forklift/config.toml
+ PYTHONUNBUFFERED=x .github/scripts/check-each-crate.py ${{ matrix.index }} ${{ strategy.job-total }}
+
+ cargo-check-all-crate-macos:
+ timeout-minutes: 30
+ needs: [ preflight ]
+ runs-on: parity-macos
+ env:
+ SKIP_WASM_BUILD: 1
+ steps:
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - name: Set rust version from env file
+ run: |
+ RUST_VERSION=$(cat .github/env | sed -E 's/.*ci-unified:([^-]+)-([^-]+).*/\2/')
+ echo $RUST_VERSION
+ echo "RUST_VERSION=${RUST_VERSION}" >> $GITHUB_ENV
+ - name: Set up Homebrew
+ uses: Homebrew/actions/setup-homebrew@1ccc07ccd54b6048295516a3eb89b192c35057dc # master from 12.09.2024
+ - name: Install rust ${{ env.RUST_VERSION }}
+ uses: actions-rust-lang/setup-rust-toolchain@1fbea72663f6d4c03efaab13560c8a24cfd2a7cc # v1.9.0
+ with:
+ cache: false
+ toolchain: ${{ env.RUST_VERSION }}
+ target: wasm32-unknown-unknown
+ components: cargo, clippy, rust-docs, rust-src, rustfmt, rustc, rust-std
+ - name: Install protobuf
+ run: brew install protobuf
+ - name: cargo info
+ run: |
+ echo "######## rustup show ########"
+ rustup show
+ echo "######## cargo --version ########"
+ cargo --version
+ - name: Run cargo check
+ run: cargo check --workspace --locked
+
+ confirm-required-test-misc-jobs-passed:
+ runs-on: ubuntu-latest
+ name: All test misc tests passed
+ # If any new job gets added, be sure to add it to this array
+ needs:
+ - test-full-crypto-feature
+ - test-frame-examples-compile-to-wasm
+ - test-frame-ui
+ - cargo-check-benches
+ - node-bench-regression-guard
+ - test-node-metrics
+ - check-tracing
+ - cargo-check-each-crate
+ - test-deterministic-wasm
+ # - cargo-hfuzz remove from required for now, as it's flaky
+ if: always() && !cancelled()
+ steps:
+ - run: |
+ tee resultfile <<< '${{ toJSON(needs) }}'
+ FAILURES=$(cat resultfile | grep '"result": "failure"' | wc -l)
+ if [ $FAILURES -gt 0 ]; then
+ echo "### At least one required job failed ❌" >> $GITHUB_STEP_SUMMARY
+ exit 1
+ else
+ echo '### Good job! All the required jobs passed 🚀' >> $GITHUB_STEP_SUMMARY
+ fi
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 1be2dd7921e0c521606556b3e567eab1661257d0..1132c2ca4dd5fc99ff14b8333633788a3ff36da5 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -12,31 +12,18 @@ concurrency:
cancel-in-progress: true
jobs:
- changes:
- permissions:
- pull-requests: read
- uses: ./.github/workflows/reusable-check-changed-files.yml
- set-image:
- # GitHub Actions allows using 'env' in a container context.
- # However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322
- # This workaround sets the container image for each job using 'set-image' job output.
- runs-on: ubuntu-latest
- outputs:
- IMAGE: ${{ steps.set_image.outputs.IMAGE }}
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - id: set_image
- run: cat .github/env >> $GITHUB_OUTPUT
+ preflight:
+ uses: ./.github/workflows/reusable-preflight.yml
+ # This job runs all benchmarks defined in the `/bin/node/runtime` once to check that there are no errors.
quick-benchmarks:
- needs: [ set-image, changes ]
- if: ${{ needs.changes.outputs.rust }}
- runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [ preflight ]
+ # if: ${{ needs.preflight.outputs.changes_rust }}
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
timeout-minutes: 60
container:
- image: ${{ needs.set-image.outputs.IMAGE }}
+ image: ${{ needs.preflight.outputs.IMAGE }}
env:
RUSTFLAGS: "-C debug-assertions -D warnings"
RUST_BACKTRACE: "full"
@@ -46,16 +33,16 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: script
- run: time forklift cargo run --locked --release -p staging-node-cli --bin substrate-node --features runtime-benchmarks -- benchmark pallet --chain dev --pallet "*" --extrinsic "*" --steps 2 --repeat 1 --quiet
+ run: forklift cargo run --locked --release -p staging-node-cli --bin substrate-node --features runtime-benchmarks -- benchmark pallet --chain dev --pallet "*" --extrinsic "*" --steps 2 --repeat 1 --quiet
# cf https://github.com/paritytech/polkadot-sdk/issues/1652
test-syscalls:
- needs: [ set-image, changes ]
- if: ${{ needs.changes.outputs.rust }}
- runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [ preflight ]
+ # if: ${{ needs.preflight.outputs.changes_rust }}
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
timeout-minutes: 60
container:
- image: ${{ needs.set-image.outputs.IMAGE }}
+ image: ${{ needs.preflight.outputs.IMAGE }}
continue-on-error: true # this rarely triggers in practice
env:
SKIP_WASM_BUILD: 1
@@ -63,28 +50,29 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: script
+ id: test
run: |
forklift cargo build --locked --profile production --target x86_64-unknown-linux-musl --bin polkadot-execute-worker --bin polkadot-prepare-worker
cd polkadot/scripts/list-syscalls
./list-syscalls.rb ../../../target/x86_64-unknown-linux-musl/production/polkadot-execute-worker --only-used-syscalls | diff -u execute-worker-syscalls -
./list-syscalls.rb ../../../target/x86_64-unknown-linux-musl/production/polkadot-prepare-worker --only-used-syscalls | diff -u prepare-worker-syscalls -
- # todo:
- # after_script:
- # - if [[ "$CI_JOB_STATUS" == "failed" ]]; then
- # printf "The x86_64 syscalls used by the worker binaries have changed. Please review if this is expected and update polkadot/scripts/list-syscalls/*-worker-syscalls as needed.\n";
- # fi
+ - name: on_failure
+ if: failure() && steps.test.outcome == 'failure'
+ run: |
+ echo "The x86_64 syscalls used by the worker binaries have changed. Please review if this is expected and update polkadot/scripts/list-syscalls/*-worker-syscalls as needed." >> $GITHUB_STEP_SUMMARY
+
cargo-check-all-benches:
- needs: [ set-image, changes ]
- if: ${{ needs.changes.outputs.rust }}
- runs-on: arc-runners-polkadot-sdk-beefy
+ needs: [ preflight ]
+ # if: ${{ needs.preflight.outputs.changes_rust }}
+ runs-on: ${{ needs.preflight.outputs.RUNNER }}
timeout-minutes: 60
container:
- image: ${{ needs.set-image.outputs.IMAGE }}
+ image: ${{ needs.preflight.outputs.IMAGE }}
env:
SKIP_WASM_BUILD: 1
steps:
- name: Checkout
uses: actions/checkout@v4
- name: script
- run: time forklift cargo check --all --benches
+ run: forklift cargo check --all --benches
diff --git a/.gitignore b/.gitignore
index e3e382af6195ed4692672285a14e1cf5f1600a85..0263626d832df2633a3c5fc9db18268c2cc9953b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,6 +23,7 @@
**/node_modules
**/target/
**/wip/*.stderr
+**/__pycache__/
/.cargo/config
/.envrc
artifacts
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7f2babc6bd47237032b941a6bf9de4a91b031932..43123cdbfc413fddc376a68afc099b5ec590ef51 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,7 +21,7 @@ workflow:
- if: $CI_COMMIT_BRANCH
variables:
- CI_IMAGE: !reference [.ci-unified, variables, CI_IMAGE]
+ CI_IMAGE: !reference [ .ci-unified, variables, CI_IMAGE ]
# BUILDAH_IMAGE is defined in group variables
BUILDAH_COMMAND: "buildah --storage-driver overlay2"
RELENG_SCRIPTS_BRANCH: "master"
@@ -39,7 +39,7 @@ default:
- runner_system_failure
- unknown_failure
- api_failure
- cache: {}
+ cache: { }
interruptible: true
.collect-artifacts:
@@ -68,8 +68,8 @@ default:
.common-before-script:
before_script:
- - !reference [.job-switcher, before_script]
- - !reference [.pipeline-stopper-vars, script]
+ - !reference [ .job-switcher, before_script ]
+ - !reference [ .pipeline-stopper-vars, script ]
.job-switcher:
before_script:
@@ -78,8 +78,8 @@ default:
.kubernetes-env:
image: "${CI_IMAGE}"
before_script:
- - !reference [.common-before-script, before_script]
- - !reference [.prepare-env, before_script]
+ - !reference [ .common-before-script, before_script ]
+ - !reference [ .prepare-env, before_script ]
tags:
- kubernetes-parity-build
@@ -107,12 +107,12 @@ default:
.docker-env:
image: "${CI_IMAGE}"
variables:
- FL_FORKLIFT_VERSION: !reference [.forklift, variables, FL_FORKLIFT_VERSION]
+ FL_FORKLIFT_VERSION: !reference [ .forklift, variables, FL_FORKLIFT_VERSION ]
before_script:
- - !reference [.common-before-script, before_script]
- - !reference [.prepare-env, before_script]
- - !reference [.rust-info-script, script]
- - !reference [.forklift-cache, before_script]
+ - !reference [ .common-before-script, before_script ]
+ - !reference [ .prepare-env, before_script ]
+ - !reference [ .rust-info-script, script ]
+ - !reference [ .forklift-cache, before_script ]
tags:
- linux-docker
@@ -268,82 +268,6 @@ remove-cancel-pipeline-message:
PR_NUM: "${CI_COMMIT_REF_NAME}"
trigger:
project: "parity/infrastructure/ci_cd/pipeline-stopper"
-# need to copy jobs this way because otherwise gitlab will wait
-# for all 3 jobs to finish instead of cancelling if one fails
-cancel-pipeline-test-linux-stable1:
- extends: .cancel-pipeline-template
- needs:
- - job: "test-linux-stable 1/3"
-
-cancel-pipeline-test-linux-stable2:
- extends: .cancel-pipeline-template
- needs:
- - job: "test-linux-stable 2/3"
-
-cancel-pipeline-test-linux-stable3:
- extends: .cancel-pipeline-template
- needs:
- - job: "test-linux-stable 3/3"
-
-cancel-pipeline-cargo-check-benches1:
- extends: .cancel-pipeline-template
- needs:
- - job: "cargo-check-benches 1/2"
-
-cancel-pipeline-cargo-check-benches2:
- extends: .cancel-pipeline-template
- needs:
- - job: "cargo-check-benches 2/2"
-
-cancel-pipeline-test-linux-stable-int:
- extends: .cancel-pipeline-template
- needs:
- - job: test-linux-stable-int
-
-cancel-pipeline-cargo-check-each-crate-1:
- extends: .cancel-pipeline-template
- needs:
- - job: "cargo-check-each-crate 1/6"
-
-cancel-pipeline-cargo-check-each-crate-2:
- extends: .cancel-pipeline-template
- needs:
- - job: "cargo-check-each-crate 2/6"
-
-cancel-pipeline-cargo-check-each-crate-3:
- extends: .cancel-pipeline-template
- needs:
- - job: "cargo-check-each-crate 3/6"
-
-cancel-pipeline-cargo-check-each-crate-4:
- extends: .cancel-pipeline-template
- needs:
- - job: "cargo-check-each-crate 4/6"
-
-cancel-pipeline-cargo-check-each-crate-5:
- extends: .cancel-pipeline-template
- needs:
- - job: "cargo-check-each-crate 5/6"
-
-cancel-pipeline-cargo-check-each-crate-6:
- extends: .cancel-pipeline-template
- needs:
- - job: "cargo-check-each-crate 6/6"
-
-cancel-pipeline-cargo-check-each-crate-macos:
- extends: .cancel-pipeline-template
- needs:
- - job: cargo-check-each-crate-macos
-
-cancel-pipeline-check-tracing:
- extends: .cancel-pipeline-template
- needs:
- - job: check-tracing
-
-cancel-pipeline-cargo-clippy:
- extends: .cancel-pipeline-template
- needs:
- - job: cargo-clippy
cancel-pipeline-build-linux-stable:
extends: .cancel-pipeline-template
@@ -360,42 +284,12 @@ cancel-pipeline-build-linux-substrate:
needs:
- job: build-linux-substrate
-cancel-pipeline-test-node-metrics:
- extends: .cancel-pipeline-template
- needs:
- - job: test-node-metrics
-
-cancel-pipeline-test-frame-ui:
- extends: .cancel-pipeline-template
- needs:
- - job: test-frame-ui
-
-cancel-pipeline-quick-benchmarks:
- extends: .cancel-pipeline-template
- needs:
- - job: quick-benchmarks
-
-cancel-pipeline-check-try-runtime:
- extends: .cancel-pipeline-template
- needs:
- - job: check-try-runtime
-
-cancel-pipeline-test-frame-examples-compile-to-wasm:
- extends: .cancel-pipeline-template
- needs:
- - job: test-frame-examples-compile-to-wasm
-
cancel-pipeline-build-short-benchmark:
extends: .cancel-pipeline-template
needs:
- job: build-short-benchmark
-cancel-pipeline-check-runtime-migration-rococo:
- extends: .cancel-pipeline-template
- needs:
- - job: check-runtime-migration-rococo
-
-cancel-pipeline-check-runtime-migration-westend:
+cancel-pipeline-cargo-check-each-crate-macos:
extends: .cancel-pipeline-template
needs:
- - job: check-runtime-migration-westend
+ - job: cargo-check-each-crate-macos
\ No newline at end of file
diff --git a/.gitlab/pipeline/build.yml b/.gitlab/pipeline/build.yml
index 8658e92efc8f9f7ae463a67a52eaf3d3d37df2f7..a5de2173a71ffcdb16504515492e086ea59fd6ca 100644
--- a/.gitlab/pipeline/build.yml
+++ b/.gitlab/pipeline/build.yml
@@ -313,7 +313,7 @@ build-linux-substrate:
# tldr: we need to checkout the branch HEAD explicitly because of our dynamic versioning approach while building the substrate binary
# see https://github.com/paritytech/ci_cd/issues/682#issuecomment-1340953589
- git checkout -B "$CI_COMMIT_REF_NAME" "$CI_COMMIT_SHA"
- - !reference [.forklift-cache, before_script]
+ - !reference [ .forklift-cache, before_script ]
script:
- time WASM_BUILD_NO_COLOR=1 cargo build --locked --release -p staging-node-cli
- mv $CARGO_TARGET_DIR/release/substrate-node ./artifacts/substrate/substrate
@@ -329,73 +329,6 @@ build-linux-substrate:
# - printf '\n# building node-template\n\n'
# - ./scripts/ci/node-template-release.sh ./artifacts/substrate/substrate-node-template.tar.gz
-build-runtimes-polkavm:
- stage: build
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- script:
- - SUBSTRATE_RUNTIME_TARGET=riscv cargo check -p minimal-template-runtime
- - SUBSTRATE_RUNTIME_TARGET=riscv cargo check -p westend-runtime
- - SUBSTRATE_RUNTIME_TARGET=riscv cargo check -p rococo-runtime
- - SUBSTRATE_RUNTIME_TARGET=riscv cargo check -p polkadot-test-runtime
-
-.build-subkey:
- stage: build
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- # - .collect-artifact
- variables:
- # this variable gets overridden by "rusty-cachier environment inject", use the value as default
- CARGO_TARGET_DIR: "$CI_PROJECT_DIR/target"
- before_script:
- - mkdir -p ./artifacts/subkey
- - !reference [.forklift-cache, before_script]
- script:
- - cd ./substrate/bin/utils/subkey
- - time SKIP_WASM_BUILD=1 cargo build --locked --release
- # - cd -
- # - mv $CARGO_TARGET_DIR/release/subkey ./artifacts/subkey/.
- # - echo -n "Subkey version = "
- # - ./artifacts/subkey/subkey --version |
- # sed -n -E 's/^subkey ([0-9.]+.*)/\1/p' |
- # tee ./artifacts/subkey/VERSION;
- # - sha256sum ./artifacts/subkey/subkey | tee ./artifacts/subkey/subkey.sha256
- # - cp -r ./scripts/ci/docker/subkey.Dockerfile ./artifacts/subkey/
-
-build-subkey-linux:
- extends: .build-subkey
- # DAG
- needs:
- - job: build-malus
- artifacts: false
-# tbd
-# build-subkey-macos:
-# extends: .build-subkey
-# # duplicating before_script & script sections from .build-subkey hidden job
-# # to overwrite rusty-cachier integration as it doesn't work on macos
-# before_script:
-# # skip timestamp script, the osx bash doesn't support printf %()T
-# - !reference [.job-switcher, before_script]
-# - mkdir -p ./artifacts/subkey
-# script:
-# - cd ./bin/utils/subkey
-# - SKIP_WASM_BUILD=1 time cargo build --locked --release
-# - cd -
-# - mv ./target/release/subkey ./artifacts/subkey/.
-# - echo -n "Subkey version = "
-# - ./artifacts/subkey/subkey --version |
-# sed -n -E 's/^subkey ([0-9.]+.*)/\1/p' |
-# tee ./artifacts/subkey/VERSION;
-# - sha256sum ./artifacts/subkey/subkey | tee ./artifacts/subkey/subkey.sha256
-# - cp -r ./scripts/ci/docker/subkey.Dockerfile ./artifacts/subkey/
-# after_script: [""]
-# tags:
-# - osx
-
# bridges
# we need some non-binary artifacts in our bridges+zombienet image
diff --git a/.gitlab/pipeline/check.yml b/.gitlab/pipeline/check.yml
index 2b8b90ef19a47874b3a9de065038faee376a01ae..7d1f37dddd5138a0c039af32f6b1b5e9c81654af 100644
--- a/.gitlab/pipeline/check.yml
+++ b/.gitlab/pipeline/check.yml
@@ -1,51 +1,3 @@
-cargo-clippy:
- stage: check
- extends:
- - .docker-env
- - .common-refs
- - .pipeline-stopper-artifacts
- variables:
- RUSTFLAGS: "-D warnings"
- script:
- - SKIP_WASM_BUILD=1 cargo clippy --all-targets --locked --workspace --quiet
- - SKIP_WASM_BUILD=1 cargo clippy --all-targets --all-features --locked --workspace --quiet
-
-check-try-runtime:
- stage: check
- extends:
- - .docker-env
- - .common-refs
- script:
- - time cargo check --locked --all --features try-runtime
- # this is taken from cumulus
- # Check that parachain-template will compile with `try-runtime` feature flag.
- - time cargo check --locked -p parachain-template-node --features try-runtime
- # add after https://github.com/paritytech/substrate/pull/14502 is merged
- # experimental code may rely on try-runtime and vice-versa
- - time cargo check --locked --all --features try-runtime,experimental
-
-# from substrate
-# not sure if it's needed in monorepo
-check-dependency-rules:
- stage: check
- extends:
- - .kubernetes-env
- - .test-refs-no-trigger-prs-only
- variables:
- CI_IMAGE: "paritytech/tools:latest"
- allow_failure: true
- script:
- - cd substrate/
- - ../.gitlab/ensure-deps.sh
-
-test-rust-features:
- stage: check
- extends:
- - .kubernetes-env
- - .test-refs-no-trigger-prs-only
- script:
- - bash .gitlab/rust-features.sh .
-
job-starter:
stage: check
image: paritytech/tools:latest
@@ -55,105 +7,3 @@ job-starter:
allow_failure: true
script:
- echo ok
-
-check-rust-feature-propagation:
- stage: check
- extends:
- - .kubernetes-env
- - .common-refs
- script:
- - zepter run check
-
-check-toml-format:
- stage: check
- extends:
- - .kubernetes-env
- - .common-refs
- script:
- - taplo format --check --config .config/taplo.toml
- - echo "Please run `taplo format --config .config/taplo.toml` to fix any toml formatting issues"
-
-# More info can be found here: https://github.com/paritytech/polkadot/pull/5865
-.check-runtime-migration:
- stage: check
- extends:
- - .docker-env
- - .test-pr-refs
- script:
- - export RUST_LOG=remote-ext=debug,runtime=debug
- - echo "---------- Downloading try-runtime CLI ----------"
- - curl -sL https://github.com/paritytech/try-runtime-cli/releases/download/v0.5.4/try-runtime-x86_64-unknown-linux-musl -o try-runtime
- - chmod +x ./try-runtime
- - echo "Using try-runtime-cli version:"
- - ./try-runtime --version
- - echo "---------- Building ${PACKAGE} runtime ----------"
- - time cargo build --release --locked -p "$PACKAGE" --features try-runtime
- - echo "---------- Executing on-runtime-upgrade for ${NETWORK} ----------"
- - >
- time ./try-runtime ${COMMAND_EXTRA_ARGS} \
- --runtime ./target/release/wbuild/"$PACKAGE"/"$WASM" \
- on-runtime-upgrade --disable-spec-version-check --checks=all ${SUBCOMMAND_EXTRA_ARGS} live --uri ${URI}
- - sleep 5
-
-# Check runtime migrations for Parity managed relay chains
-check-runtime-migration-westend:
- stage: check
- extends:
- - .docker-env
- - .test-pr-refs
- - .check-runtime-migration
- variables:
- NETWORK: "westend"
- PACKAGE: "westend-runtime"
- WASM: "westend_runtime.compact.compressed.wasm"
- URI: "wss://westend-try-runtime-node.parity-chains.parity.io:443"
- SUBCOMMAND_EXTRA_ARGS: "--no-weight-warnings"
-
-check-runtime-migration-rococo:
- stage: check
- extends:
- - .docker-env
- - .test-pr-refs
- - .check-runtime-migration
- variables:
- NETWORK: "rococo"
- PACKAGE: "rococo-runtime"
- WASM: "rococo_runtime.compact.compressed.wasm"
- URI: "wss://rococo-try-runtime-node.parity-chains.parity.io:443"
- SUBCOMMAND_EXTRA_ARGS: "--no-weight-warnings"
-
-find-fail-ci-phrase:
- stage: check
- variables:
- CI_IMAGE: "paritytech/tools:latest"
- ASSERT_REGEX: "FAIL-CI"
- GIT_DEPTH: 1
- extends:
- - .kubernetes-env
- - .test-pr-refs
- script:
- - set +e
- - rg --line-number --hidden --type rust --glob '!{.git,target}' "$ASSERT_REGEX" .; exit_status=$?
- - if [ $exit_status -eq 0 ]; then
- echo "$ASSERT_REGEX was found, exiting with 1";
- exit 1;
- else
- echo "No $ASSERT_REGEX was found, exiting with 0";
- exit 0;
- fi
-
-check-core-crypto-features:
- stage: check
- extends:
- - .docker-env
- - .common-refs
- script:
- - pushd substrate/primitives/core
- - ./check-features-variants.sh
- - popd
- - pushd substrate/primitives/application-crypto
- - ./check-features-variants.sh
- - popd
- - pushd substrate/primitives/keyring
- - ./check-features-variants.sh
- - popd
diff --git a/.gitlab/pipeline/publish.yml b/.gitlab/pipeline/publish.yml
index 44cd1933a9cfa0b3cbff384ff4184a36bf864021..5ad9ae9bfb36d4e4efb6c9cc41453f06afe7f93d 100644
--- a/.gitlab/pipeline/publish.yml
+++ b/.gitlab/pipeline/publish.yml
@@ -62,83 +62,6 @@ publish-rustdoc:
after_script:
- rm -rf .git/ ./*
-publish-subsystem-benchmarks:
- stage: publish
- variables:
- CI_IMAGE: "paritytech/tools:latest"
- extends:
- - .kubernetes-env
- - .publish-gh-pages-refs
- needs:
- - job: subsystem-benchmark-availability-recovery
- artifacts: true
- - job: subsystem-benchmark-availability-distribution
- artifacts: true
- - job: subsystem-benchmark-approval-voting
- artifacts: true
- - job: subsystem-benchmark-statement-distribution
- artifacts: true
- - job: publish-rustdoc
- artifacts: false
- script:
- # setup ssh
- - eval $(ssh-agent)
- - ssh-add - <<< ${GITHUB_SSH_PRIV_KEY}
- - mkdir ~/.ssh && touch ~/.ssh/known_hosts
- - ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
- # Set git config
- - rm -rf .git/config
- - git config user.email "devops-team@parity.io"
- - git config user.name "${GITHUB_USER}"
- - git config remote.origin.url "git@github.com:/paritytech/${CI_PROJECT_NAME}.git"
- - git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
- - git fetch origin gh-pages
- # Push result to github
- - git checkout gh-pages --force
- - mkdir -p bench/gitlab/ || echo "Directory exists"
- - rm -rf bench/gitlab/*.json || echo "No json files"
- - cp -r charts/*.json bench/gitlab/
- - git add bench/gitlab/
- - git commit -m "Add json files with benchmark results for ${CI_COMMIT_REF_NAME}"
- - git push origin gh-pages
- # artificial sleep to publish gh-pages
- - sleep 300
- allow_failure: true
- after_script:
- - rm -rf .git/ ./*
-
-trigger_workflow:
- stage: deploy
- extends:
- - .kubernetes-env
- - .publish-gh-pages-refs
- needs:
- - job: publish-subsystem-benchmarks
- artifacts: false
- - job: subsystem-benchmark-availability-recovery
- artifacts: true
- - job: subsystem-benchmark-availability-distribution
- artifacts: true
- - job: subsystem-benchmark-approval-voting
- artifacts: true
- - job: subsystem-benchmark-statement-distribution
- artifacts: true
- script:
- - echo "Triggering workflow"
- - >
- for benchmark in $(ls charts/*.json); do
- export benchmark_name=$(basename $benchmark);
- echo "Benchmark: $benchmark_name";
- export benchmark_dir=$(echo $benchmark_name | sed 's/\.json//');
- curl -q -X POST \
- -H "Accept: application/vnd.github.v3+json" \
- -H "Authorization: token $GITHUB_TOKEN" \
- https://api.github.com/repos/paritytech/${CI_PROJECT_NAME}/actions/workflows/publish-subsystem-benchmarks.yml/dispatches \
- -d "{\"ref\":\"refs/heads/master\",\"inputs\":{\"benchmark-data-dir-path\":\"$benchmark_dir\",\"output-file-path\":\"$benchmark_name\"}}";
- sleep 300;
- done
- allow_failure: true
-
# note: images are used not only in zombienet but also in rococo, wococo and versi
.build-push-image:
image: $BUILDAH_IMAGE
diff --git a/.gitlab/pipeline/test.yml b/.gitlab/pipeline/test.yml
index 0103c6b76a2dfac2bfd080aa516ae9c34886bf46..0879870ae13c97dd7044f9224584dadac00c2046 100644
--- a/.gitlab/pipeline/test.yml
+++ b/.gitlab/pipeline/test.yml
@@ -110,121 +110,6 @@ test-linux-stable-codecov:
codecovcli -v do-upload -f target/coverage/result/report-${CI_NODE_INDEX}.lcov --disable-search -t ${CODECOV_TOKEN} -r paritytech/polkadot-sdk --commit-sha ${CI_COMMIT_SHA} --fail-on-error --git-service github;
fi
- #
-
-test-linux-stable:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- - .pipeline-stopper-artifacts
- variables:
- RUST_TOOLCHAIN: stable
- # Enable debug assertions since we are running optimized builds for testing
- # but still want to have debug assertions.
- RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
- parallel: 3
- script:
- # Build all but only execute 'runtime' tests.
- - echo "Node index - ${CI_NODE_INDEX}. Total amount - ${CI_NODE_TOTAL}"
- - >
- time cargo nextest run \
- --workspace \
- --locked \
- --release \
- --no-fail-fast \
- --features try-runtime,experimental,riscv,ci-only-tests \
- --partition count:${CI_NODE_INDEX}/${CI_NODE_TOTAL}
- # Upload tests results to Elasticsearch
- - echo "Upload test results to Elasticsearch"
- - cat target/nextest/default/junit.xml | xq . > target/nextest/default/junit.json
- - >
- curl -v -XPOST --http1.1 \
- -u ${ELASTIC_USERNAME}:${ELASTIC_PASSWORD} \
- https://elasticsearch.parity-build.parity.io/unit-tests/_doc/${CI_JOB_ID} \
- -H 'Content-Type: application/json' \
- -d @target/nextest/default/junit.json || echo "failed to upload junit report"
- # run runtime-api tests with `enable-staging-api` feature on the 1st node
- - if [ ${CI_NODE_INDEX} == 1 ]; then time cargo nextest run -p sp-api-test --features enable-staging-api; fi
- artifacts:
- when: always
- paths:
- - target/nextest/default/junit.xml
- reports:
- junit: target/nextest/default/junit.xml
- timeout: 90m
-
-test-linux-oldkernel-stable:
- extends: test-linux-stable
- tags:
- - oldkernel-vm
-
-# https://github.com/paritytech/ci_cd/issues/864
-test-linux-stable-runtime-benchmarks:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- - .pipeline-stopper-artifacts
- variables:
- RUST_TOOLCHAIN: stable
- # Enable debug assertions since we are running optimized builds for testing
- # but still want to have debug assertions.
- RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
- script:
- - time cargo nextest run --workspace --features runtime-benchmarks benchmark --locked --cargo-profile testnet
-
-# can be used to run all tests
-# test-linux-stable-all:
-# stage: test
-# extends:
-# - .docker-env
-# - .common-refs
-# - .run-immediately
-# variables:
-# RUST_TOOLCHAIN: stable
-# # Enable debug assertions since we are running optimized builds for testing
-# # but still want to have debug assertions.
-# RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
-# parallel: 3
-# script:
-# # Build all but only execute 'runtime' tests.
-# - echo "Node index - ${CI_NODE_INDEX}. Total amount - ${CI_NODE_TOTAL}"
-# - >
-# time cargo nextest run \
-# --workspace \
-# --locked \
-# --release \
-# --no-fail-fast \
-# --features runtime-benchmarks,try-runtime \
-# --partition count:${CI_NODE_INDEX}/${CI_NODE_TOTAL}
-# # todo: add flacky-test collector
-
-# takes about 1,5h without cache
-# can be used to check that nextest works correctly
-# test-linux-stable-polkadot:
-# stage: test
-# timeout: 2h
-# extends:
-# - .docker-env
-# - .common-refs
-# - .run-immediately
-# - .collect-artifacts-short
-# variables:
-# RUST_TOOLCHAIN: stable
-# # Enable debug assertions since we are running optimized builds for testing
-# # but still want to have debug assertions.
-# RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
-# script:
-# - mkdir -p artifacts
-# - time cargo test --workspace
-# --locked
-# --profile testnet
-# --features=runtime-benchmarks,runtime-metrics,try-runtime --
-# --skip upgrade_version_checks_should_work
-
test-doc:
stage: test
extends:
@@ -252,176 +137,6 @@ test-rustdoc:
script:
- time cargo doc --workspace --all-features --no-deps
-test-node-metrics:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- - .collect-artifacts-short
- variables:
- RUST_TOOLCHAIN: stable
- # Enable debug assertions since we are running optimized builds for testing
- # but still want to have debug assertions.
- RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
- script:
- # Build the required workers.
- - cargo build --bin polkadot-execute-worker --bin polkadot-prepare-worker --profile testnet --verbose --locked
- - mkdir -p artifacts
- - time cargo test --profile testnet
- --locked
- --features=runtime-metrics -p polkadot-node-metrics > artifacts/log.txt
-
-test-deterministic-wasm:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- # DAG
- needs:
- - job: test-frame-ui
- artifacts: false
- script:
- # build runtime
- - WASM_BUILD_NO_COLOR=1 cargo build -q --locked --release -p westend-runtime -p rococo-runtime
- # make checksum
- - sha256sum target/release/wbuild/*-runtime/target/wasm32-unknown-unknown/release/*.wasm > checksum.sha256
- - cargo clean
- # build again
- - WASM_BUILD_NO_COLOR=1 cargo build -q --locked --release -p westend-runtime -p rococo-runtime
- # confirm checksum
- - sha256sum -c checksum.sha256
-
-cargo-check-benches:
- stage: test
- artifacts:
- expire_in: 10 days
- variables:
- CI_JOB_NAME: "cargo-check-benches"
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- - .collect-artifacts
- - .pipeline-stopper-artifacts
- before_script:
- # TODO: DON'T FORGET TO CHANGE FOR PROD VALUES!!!
- # merges in the master branch on PRs. skip if base is not master
- - 'if [ $CI_COMMIT_REF_NAME != "master" ]; then
- BASE=$(curl -s -H "Authorization: Bearer ${GITHUB_PR_TOKEN}" https://api.github.com/repos/paritytech-stg/polkadot-sdk/pulls/${CI_COMMIT_REF_NAME} | jq -r .base.ref);
- printf "Merging base branch %s\n" "${BASE:=master}";
- if [ $BASE != "master" ]; then
- echo "$BASE is not master, skipping merge";
- else
- git config user.email "ci@gitlab.parity.io";
- git fetch origin "refs/heads/${BASE}";
- git merge --verbose --no-edit FETCH_HEAD;
- fi
- fi'
- - !reference [.forklift-cache, before_script]
- parallel: 2
- script:
- - mkdir -p ./artifacts/benches/$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA
- # this job is executed in parallel on two runners
- - echo "___Running benchmarks___";
- - case ${CI_NODE_INDEX} in
- 1)
- SKIP_WASM_BUILD=1 time cargo check --locked --benches --all;
- cargo run --locked --release -p node-bench -- ::trie::read::small --json
- | tee ./artifacts/benches/$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA/::trie::read::small.json;
- echo "___Cache could be uploaded___";
- ;;
- 2)
- cargo run --locked --release -p node-bench -- ::node::import::sr25519::transfer_keep_alive::paritydb::small --json
- | tee ./artifacts/benches/$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA/::node::import::sr25519::transfer_keep_alive::paritydb::small.json
- ;;
- esac
-
-node-bench-regression-guard:
- # it's not belong to `build` semantically, but dag jobs can't depend on each other
- # within the single stage - https://gitlab.com/gitlab-org/gitlab/-/issues/30632
- # more: https://github.com/paritytech/substrate/pull/8519#discussion_r608012402
- stage: build
- extends:
- - .docker-env
- - .common-refs
- needs:
- # this is a DAG
- - job: cargo-check-benches
- artifacts: true
- # polls artifact from master to compare with current result
- # need to specify both parallel jobs from master because of the bug
- # https://gitlab.com/gitlab-org/gitlab/-/issues/39063
- - project: $CI_PROJECT_PATH
- job: "cargo-check-benches 1/2"
- ref: master
- artifacts: true
- - project: $CI_PROJECT_PATH
- job: "cargo-check-benches 2/2"
- ref: master
- artifacts: true
- variables:
- CI_IMAGE: "paritytech/node-bench-regression-guard:latest"
- before_script: [""]
- script:
- - if [ $(ls -la artifacts/benches/ | grep master | wc -l) == 0 ]; then
- echo "Couldn't find master artifacts";
- exit 1;
- fi
- - echo "------- IMPORTANT -------"
- - echo "node-bench-regression-guard depends on the results of a cargo-check-benches job"
- - echo "In case of this job failure, check your pipeline's cargo-check-benches"
- - "node-bench-regression-guard --reference artifacts/benches/master-*
- --compare-with artifacts/benches/$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA"
- after_script: [""]
-
-# if this fails run `bot update-ui` in the Pull Request or "./scripts/update-ui-tests.sh" locally
-# see ./docs/contributor/CONTRIBUTING.md#ui-tests
-test-frame-ui:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- # DAG
- needs:
- - job: test-frame-examples-compile-to-wasm
- artifacts: false
- variables:
- # Enable debug assertions since we are running optimized builds for testing
- # but still want to have debug assertions.
- RUSTFLAGS: "-C debug-assertions -D warnings"
- RUST_BACKTRACE: 1
- WASM_BUILD_NO_COLOR: 1
- WASM_BUILD_RUSTFLAGS: "-C debug-assertions -D warnings"
- # Ensure we run the UI tests.
- RUN_UI_TESTS: 1
- script:
- - time cargo test --locked -q --profile testnet -p frame-support-test --features=frame-feature-testing,no-metadata-docs,try-runtime,experimental
- - time cargo test --locked -q --profile testnet -p frame-support-test --features=frame-feature-testing,frame-feature-testing-2,no-metadata-docs,try-runtime,experimental
- - time cargo test --locked -q --profile testnet -p xcm-procedural
- - time cargo test --locked -q --profile testnet -p frame-election-provider-solution-type
- - time cargo test --locked -q --profile testnet -p sp-api-test
- # There is multiple version of sp-runtime-interface in the repo. So we point to the manifest.
- - time cargo test --locked -q --profile testnet --manifest-path substrate/primitives/runtime-interface/Cargo.toml
- - cat /cargo_target_dir/debug/.fingerprint/memory_units-759eddf317490d2b/lib-memory_units.json || true
-
-# This job runs all benchmarks defined in the `/bin/node/runtime` once to check that there are no errors.
-quick-benchmarks:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- variables:
- # Enable debug assertions since we are running optimized builds for testing
- # but still want to have debug assertions.
- RUSTFLAGS: "-C debug-assertions -D warnings"
- RUST_BACKTRACE: "full"
- WASM_BUILD_NO_COLOR: 1
- WASM_BUILD_RUSTFLAGS: "-C debug-assertions -D warnings"
- script:
- - time cargo run --locked --release -p staging-node-cli --bin substrate-node --features runtime-benchmarks --quiet -- benchmark pallet --chain dev --pallet "*" --extrinsic "*" --steps 2 --repeat 1 --quiet
-
quick-benchmarks-omni:
stage: test
extends:
@@ -439,110 +154,6 @@ quick-benchmarks-omni:
- time cargo build --locked --quiet --release -p asset-hub-westend-runtime --features runtime-benchmarks
- time cargo run --locked --release -p frame-omni-bencher --quiet -- v1 benchmark pallet --runtime target/release/wbuild/asset-hub-westend-runtime/asset_hub_westend_runtime.compact.compressed.wasm --all --steps 2 --repeat 1 --quiet
-test-frame-examples-compile-to-wasm:
- # into one job
- stage: test
- extends:
- - .docker-env
- - .common-refs
- # DAG
- needs:
- - job: test-full-crypto-feature
- artifacts: false
- variables:
- # Enable debug assertions since we are running optimized builds for testing
- # but still want to have debug assertions.
- RUSTFLAGS: "-C debug-assertions"
- RUST_BACKTRACE: 1
- script:
- - cd ./substrate/frame/examples/offchain-worker/
- - cargo build --locked --target=wasm32-unknown-unknown --no-default-features
- - cd ../basic
- - cargo build --locked --target=wasm32-unknown-unknown --no-default-features
- # FIXME
- allow_failure: true
-
-test-linux-stable-int:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- - .pipeline-stopper-artifacts
- variables:
- # Enable debug assertions since we are running optimized builds for testing
- # but still want to have debug assertions.
- RUSTFLAGS: "-C debug-assertions -D warnings"
- RUST_BACKTRACE: 1
- WASM_BUILD_NO_COLOR: 1
- WASM_BUILD_RUSTFLAGS: "-C debug-assertions -D warnings"
- # Ensure we run the UI tests.
- RUN_UI_TESTS: 1
- script:
- - WASM_BUILD_NO_COLOR=1
- time cargo test -p staging-node-cli --release --locked -- --ignored
-
-# more information about this job can be found here:
-# https://github.com/paritytech/substrate/pull/6916
-check-tracing:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- - .pipeline-stopper-artifacts
- script:
- # with-tracing must be explicitly activated, we run a test to ensure this works as expected in both cases
- - time cargo test --locked --manifest-path ./substrate/primitives/tracing/Cargo.toml --no-default-features
- - time cargo test --locked --manifest-path ./substrate/primitives/tracing/Cargo.toml --no-default-features --features=with-tracing
-
-# Check that `westend-runtime` compiles with the `metadata-hash` feature enabled.
-check-metadata-hash:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- - .pipeline-stopper-artifacts
- script:
- - time cargo build --locked -p westend-runtime --features metadata-hash
-
-# more information about this job can be found here:
-# https://github.com/paritytech/substrate/pull/3778
-test-full-crypto-feature:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- variables:
- # Enable debug assertions since we are running optimized builds for testing
- # but still want to have debug assertions.
- RUSTFLAGS: "-C debug-assertions"
- RUST_BACKTRACE: 1
- script:
- - cd substrate/primitives/core/
- - time cargo build --locked --no-default-features --features full_crypto
- - cd ../application-crypto
- - time cargo build --locked --no-default-features --features full_crypto
-
-cargo-check-each-crate:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- # - .collect-artifacts
- variables:
- RUSTFLAGS: "-D warnings"
- # $CI_JOB_NAME is set manually so that cache could be shared for all jobs
- # "cargo-check-each-crate I/N" jobs
- CI_JOB_NAME: cargo-check-each-crate
- timeout: 2h
- script:
- - PYTHONUNBUFFERED=x time .gitlab/check-each-crate.py "$CI_NODE_INDEX" "$CI_NODE_TOTAL"
- parallel: 6
-
cargo-check-each-crate-macos:
stage: test
extends:
@@ -564,81 +175,3 @@ cargo-check-each-crate-macos:
timeout: 2h
tags:
- osx
-
-cargo-hfuzz:
- stage: test
- extends:
- - .docker-env
- - .common-refs
- # DAG
- needs:
- - job: check-tracing
- artifacts: false
- variables:
- # max 10s per iteration, 60s per file
- HFUZZ_RUN_ARGS: >
- --exit_upon_crash
- --exit_code_upon_crash 1
- --timeout 10
- --run_time 60
- # use git version of honggfuzz-rs until v0.5.56 is out, we need a few recent changes:
- # https://github.com/rust-fuzz/honggfuzz-rs/pull/75 to avoid breakage on debian
- # https://github.com/rust-fuzz/honggfuzz-rs/pull/81 fix to the above pr
- # https://github.com/rust-fuzz/honggfuzz-rs/pull/82 fix for handling absolute CARGO_TARGET_DIR
- HFUZZ_BUILD_ARGS: >
- --config=patch.crates-io.honggfuzz.git="https://github.com/altaua/honggfuzz-rs"
- --config=patch.crates-io.honggfuzz.rev="205f7c8c059a0d98fe1cb912cdac84f324cb6981"
- artifacts:
- name: "hfuzz-$CI_COMMIT_SHORT_SHA"
- expire_in: 7 days
- when: on_failure
- paths:
- - substrate/primitives/arithmetic/fuzzer/hfuzz_workspace/
- script:
- - cd ./substrate/primitives/arithmetic/fuzzer
- - cargo hfuzz build
- - for target in $(cargo read-manifest | jq -r '.targets | .[] | .name'); do
- cargo hfuzz run "$target" || { printf "fuzzing failure for %s\n" "$target"; exit 1; }; done
-
-.subsystem-benchmark-template:
- stage: test
- artifacts:
- name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
- when: always
- expire_in: 1 hour
- paths:
- - charts/
- extends:
- - .docker-env
- - .common-refs
- - .run-immediately
- tags:
- - benchmark
-
-subsystem-benchmark-availability-recovery:
- extends:
- - .subsystem-benchmark-template
- script:
- - cargo bench -p polkadot-availability-recovery --bench availability-recovery-regression-bench --features subsystem-benchmarks
- allow_failure: true
-
-subsystem-benchmark-availability-distribution:
- extends:
- - .subsystem-benchmark-template
- script:
- - cargo bench -p polkadot-availability-distribution --bench availability-distribution-regression-bench --features subsystem-benchmarks
- allow_failure: true
-
-subsystem-benchmark-approval-voting:
- extends:
- - .subsystem-benchmark-template
- script:
- - cargo bench -p polkadot-node-core-approval-voting --bench approval-voting-regression-bench --features subsystem-benchmarks
- allow_failure: true
-
-subsystem-benchmark-statement-distribution:
- extends:
- - .subsystem-benchmark-template
- script:
- - cargo bench -p polkadot-statement-distribution --bench statement-distribution-regression-bench --features subsystem-benchmarks
- allow_failure: true
diff --git a/.gitlab/pipeline/zombienet/bridges.yml b/.gitlab/pipeline/zombienet/bridges.yml
index 9d7a8b9311934a148e855caf7c4315d8a281aed1..070bfc8472d5ab797141862bd0d0066d420bc922 100644
--- a/.gitlab/pipeline/zombienet/bridges.yml
+++ b/.gitlab/pipeline/zombienet/bridges.yml
@@ -52,12 +52,12 @@ zombienet-bridges-0001-asset-transfer-works:
extends:
- .zombienet-bridges-common
script:
- - /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-new-test.sh 0001-asset-transfer --docker
+ - /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-test.sh 0001-asset-transfer --docker
- echo "Done"
zombienet-bridges-0002-free-headers-synced-while-idle:
extends:
- .zombienet-bridges-common
script:
- - /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-new-test.sh 0002-free-headers-synced-while-idle --docker
+ - /home/nonroot/bridges-polkadot-sdk/bridges/testing/run-test.sh 0002-free-headers-synced-while-idle --docker
- echo "Done"
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 120000
index 0000000000000000000000000000000000000000..63b2a0dc1abc8daf348a8112688d254407837dd9
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1 @@
+docs/contributor/CODE_OF_CONDUCT.md
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 120000
index 0000000000000000000000000000000000000000..0f645512e8e47f744720a79767f0f78f919ea914
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1 @@
+docs/contributor/CONTRIBUTING.md
\ No newline at end of file
diff --git a/Cargo.lock b/Cargo.lock
index 54a01f12f35c1a39f26acd8e53884250f6cd3d02..1478a543d14c70fb7d06cd85cac0f0aa7b64b98c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -157,9 +157,9 @@ dependencies = [
"dunce",
"heck 0.4.1",
"proc-macro-error",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
"syn-solidity",
"tiny-keccak",
]
@@ -284,9 +284,9 @@ dependencies = [
"include_dir",
"itertools 0.10.5",
"proc-macro-error",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -484,7 +484,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44"
dependencies = [
- "quote 1.0.36",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -494,7 +494,7 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348"
dependencies = [
- "quote 1.0.36",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -506,7 +506,7 @@ checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20"
dependencies = [
"num-bigint",
"num-traits",
- "quote 1.0.36",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -518,8 +518,8 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565"
dependencies = [
"num-bigint",
"num-traits",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -620,8 +620,8 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -724,8 +724,8 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
"synstructure 0.12.6",
]
@@ -736,9 +736,9 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
"synstructure 0.13.1",
]
@@ -748,8 +748,8 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -759,9 +759,9 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -790,6 +790,7 @@ name = "asset-hub-rococo-emulated-chain"
version = "0.0.0"
dependencies = [
"asset-hub-rococo-runtime",
+ "bp-bridge-hub-rococo",
"cumulus-primitives-core",
"emulated-integration-tests-common",
"frame-support",
@@ -887,6 +888,7 @@ dependencies = [
"primitive-types",
"rococo-runtime-constants",
"scale-info",
+ "serde_json",
"snowbridge-router-primitives",
"sp-api",
"sp-block-builder",
@@ -915,6 +917,7 @@ name = "asset-hub-westend-emulated-chain"
version = "0.0.0"
dependencies = [
"asset-hub-westend-runtime",
+ "bp-bridge-hub-westend",
"cumulus-primitives-core",
"emulated-integration-tests-common",
"frame-support",
@@ -1079,6 +1082,7 @@ dependencies = [
"impl-trait-for-tuples",
"log",
"pallet-asset-conversion",
+ "pallet-assets",
"pallet-xcm",
"parachains-common",
"parity-scale-codec",
@@ -1097,7 +1101,7 @@ version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5"
dependencies = [
- "quote 1.0.36",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -1286,9 +1290,9 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -1299,13 +1303,13 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
[[package]]
name = "async-trait"
-version = "0.1.80"
+version = "0.1.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
+checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -1362,8 +1366,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89"
dependencies = [
"proc-macro-error",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -1465,15 +1469,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "beef"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1"
-dependencies = [
- "serde",
-]
-
[[package]]
name = "binary-merkle-tree"
version = "13.0.0"
@@ -1481,6 +1476,7 @@ dependencies = [
"array-bytes",
"hash-db",
"log",
+ "parity-scale-codec",
"sp-core",
"sp-runtime",
"sp-tracing 16.0.0",
@@ -1507,13 +1503,13 @@ dependencies = [
"lazy_static",
"lazycell",
"peeking_take_while",
- "prettyplease 0.2.12",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "prettyplease",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"regex",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"shlex",
- "syn 2.0.61",
+ "syn 2.0.65",
]
[[package]]
@@ -1622,13 +1618,13 @@ dependencies = [
[[package]]
name = "blake2b_simd"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc"
+checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780"
dependencies = [
"arrayref",
"arrayvec 0.7.4",
- "constant_time_eq 0.2.6",
+ "constant_time_eq 0.3.0",
]
[[package]]
@@ -1794,7 +1790,9 @@ dependencies = [
"bp-bridge-hub-cumulus",
"bp-messages",
"bp-runtime",
+ "bp-xcm-bridge-hub",
"frame-support",
+ "parity-scale-codec",
"sp-api",
"sp-runtime",
"sp-std 14.0.0",
@@ -1807,7 +1805,9 @@ dependencies = [
"bp-bridge-hub-cumulus",
"bp-messages",
"bp-runtime",
+ "bp-xcm-bridge-hub",
"frame-support",
+ "parity-scale-codec",
"sp-api",
"sp-runtime",
"sp-std 14.0.0",
@@ -1857,6 +1857,7 @@ dependencies = [
"scale-info",
"serde",
"sp-core",
+ "sp-io",
"sp-std 14.0.0",
]
@@ -1927,11 +1928,15 @@ dependencies = [
name = "bp-relayers"
version = "0.7.0"
dependencies = [
+ "bp-header-chain",
"bp-messages",
+ "bp-parachains",
"bp-runtime",
"frame-support",
+ "frame-system",
"hex",
"hex-literal",
+ "pallet-utility",
"parity-scale-codec",
"scale-info",
"sp-runtime",
@@ -2008,7 +2013,16 @@ dependencies = [
name = "bp-xcm-bridge-hub"
version = "0.2.0"
dependencies = [
+ "bp-messages",
+ "bp-runtime",
+ "frame-support",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
"sp-std 14.0.0",
+ "staging-xcm",
]
[[package]]
@@ -2019,6 +2033,7 @@ dependencies = [
"scale-info",
"sp-core",
"sp-runtime",
+ "staging-xcm",
]
[[package]]
@@ -2033,6 +2048,7 @@ dependencies = [
"snowbridge-core",
"sp-core",
"sp-runtime",
+ "sp-std 14.0.0",
"staging-xcm",
]
@@ -2063,6 +2079,7 @@ dependencies = [
"pallet-bridge-messages",
"pallet-message-queue",
"pallet-xcm",
+ "pallet-xcm-bridge-hub",
"parachains-common",
"parity-scale-codec",
"rococo-system-emulated-network",
@@ -2187,10 +2204,12 @@ dependencies = [
"asset-test-utils",
"bp-header-chain",
"bp-messages",
+ "bp-parachains",
"bp-polkadot-core",
"bp-relayers",
"bp-runtime",
"bp-test-utils",
+ "bp-xcm-bridge-hub",
"bridge-runtime-common",
"cumulus-pallet-parachain-system",
"cumulus-pallet-xcmp-queue",
@@ -2205,6 +2224,7 @@ dependencies = [
"pallet-bridge-relayers",
"pallet-timestamp",
"pallet-utility",
+ "pallet-xcm-bridge-hub",
"parachains-common",
"parachains-runtimes-test-utils",
"parity-scale-codec",
@@ -2248,6 +2268,7 @@ dependencies = [
"pallet-bridge-messages",
"pallet-message-queue",
"pallet-xcm",
+ "pallet-xcm-bridge-hub",
"parachains-common",
"parity-scale-codec",
"rococo-westend-system-emulated-network",
@@ -2375,7 +2396,6 @@ dependencies = [
"bp-runtime",
"bp-test-utils",
"bp-xcm-bridge-hub",
- "bp-xcm-bridge-hub-router",
"frame-support",
"frame-system",
"log",
@@ -2388,22 +2408,16 @@ dependencies = [
"pallet-utility",
"parity-scale-codec",
"scale-info",
+ "sp-core",
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
"sp-trie",
"staging-xcm",
- "staging-xcm-builder",
"static_assertions",
"tuplex",
]
-[[package]]
-name = "bs58"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
-
[[package]]
name = "bs58"
version = "0.5.1"
@@ -2465,9 +2479,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]]
name = "bytes"
-version = "1.6.0"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
+checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
[[package]]
name = "bzip2-sys"
@@ -2812,9 +2826,9 @@ dependencies = [
[[package]]
name = "clap_complete"
-version = "4.4.0"
+version = "4.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "586a385f7ef2f8b4d86bddaa0c094794e7ccbfe5ffef1f434fe928143fc783a5"
+checksum = "aa3c596da3cf0983427b0df0dba359df9182c13bd5b519b585a482b0c351f4e8"
dependencies = [
"clap 4.5.11",
]
@@ -2827,8 +2841,8 @@ checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008"
dependencies = [
"heck 0.4.1",
"proc-macro-error",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -2839,9 +2853,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e"
dependencies = [
"heck 0.5.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -2909,6 +2923,7 @@ dependencies = [
"pallet-message-queue",
"pallet-treasury",
"pallet-utility",
+ "pallet-whitelist",
"pallet-xcm",
"parachains-common",
"parity-scale-codec",
@@ -2999,9 +3014,9 @@ dependencies = [
[[package]]
name = "color-eyre"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204"
+checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5"
dependencies = [
"backtrace",
"eyre",
@@ -3026,8 +3041,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b"
dependencies = [
"nom",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -3285,7 +3300,7 @@ dependencies = [
[[package]]
name = "coretime-rococo-emulated-chain"
-version = "0.0.0"
+version = "0.1.0"
dependencies = [
"coretime-rococo-runtime",
"cumulus-primitives-core",
@@ -3298,14 +3313,17 @@ dependencies = [
[[package]]
name = "coretime-rococo-integration-tests"
-version = "0.1.0"
+version = "0.0.0"
dependencies = [
+ "cumulus-pallet-parachain-system",
"emulated-integration-tests-common",
"frame-support",
"pallet-balances",
+ "pallet-broker",
"pallet-identity",
"pallet-message-queue",
"polkadot-runtime-common",
+ "polkadot-runtime-parachains",
"rococo-runtime-constants",
"rococo-system-emulated-network",
"sp-runtime",
@@ -3343,6 +3361,7 @@ dependencies = [
"pallet-collator-selection",
"pallet-message-queue",
"pallet-multisig",
+ "pallet-proxy",
"pallet-session",
"pallet-sudo",
"pallet-timestamp",
@@ -3381,7 +3400,7 @@ dependencies = [
[[package]]
name = "coretime-westend-emulated-chain"
-version = "0.0.0"
+version = "0.1.0"
dependencies = [
"coretime-westend-runtime",
"cumulus-primitives-core",
@@ -3394,14 +3413,17 @@ dependencies = [
[[package]]
name = "coretime-westend-integration-tests"
-version = "0.1.0"
+version = "0.0.0"
dependencies = [
+ "cumulus-pallet-parachain-system",
"emulated-integration-tests-common",
"frame-support",
"pallet-balances",
+ "pallet-broker",
"pallet-identity",
"pallet-message-queue",
"polkadot-runtime-common",
+ "polkadot-runtime-parachains",
"sp-runtime",
"staging-xcm",
"staging-xcm-executor",
@@ -3439,6 +3461,7 @@ dependencies = [
"pallet-collator-selection",
"pallet-message-queue",
"pallet-multisig",
+ "pallet-proxy",
"pallet-session",
"pallet-timestamp",
"pallet-transaction-payment",
@@ -3609,21 +3632,6 @@ dependencies = [
"wasmtime-types",
]
-[[package]]
-name = "crc"
-version = "3.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2b432c56615136f8dba245fed7ec3d5518c500a31108661067e61e72fe7e6bc"
-dependencies = [
- "crc-catalog",
-]
-
-[[package]]
-name = "crc-catalog"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
-
[[package]]
name = "crc32fast"
version = "1.3.2"
@@ -4149,9 +4157,9 @@ name = "cumulus-pallet-parachain-system-proc-macro"
version = "0.6.0"
dependencies = [
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -4256,12 +4264,8 @@ dependencies = [
name = "cumulus-primitives-aura"
version = "0.7.0"
dependencies = [
- "parity-scale-codec",
- "polkadot-core-primitives",
- "polkadot-primitives",
"sp-api",
"sp-consensus-aura",
- "sp-runtime",
]
[[package]]
@@ -4289,8 +4293,6 @@ dependencies = [
"scale-info",
"sp-core",
"sp-inherents",
- "sp-runtime",
- "sp-state-machine",
"sp-trie",
]
@@ -4343,8 +4345,6 @@ dependencies = [
"pallet-asset-conversion",
"parity-scale-codec",
"polkadot-runtime-common",
- "polkadot-runtime-parachains",
- "sp-io",
"sp-runtime",
"staging-xcm",
"staging-xcm-builder",
@@ -4445,6 +4445,7 @@ dependencies = [
"parity-scale-codec",
"pin-project",
"polkadot-overseer",
+ "portpicker",
"rand",
"sc-client-api",
"sc-rpc-api",
@@ -4692,9 +4693,9 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -4731,10 +4732,10 @@ dependencies = [
"cc",
"codespan-reporting",
"once_cell",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"scratch",
- "syn 2.0.61",
+ "syn 2.0.65",
]
[[package]]
@@ -4749,9 +4750,9 @@ version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -4855,8 +4856,8 @@ version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -4866,9 +4867,9 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -4877,9 +4878,9 @@ version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -4889,8 +4890,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
dependencies = [
"convert_case",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"rustc_version 0.4.0",
"syn 1.0.109",
]
@@ -4985,9 +4986,9 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -5045,12 +5046,12 @@ dependencies = [
"common-path",
"derive-syn-parse",
"once_cell",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"regex",
- "syn 2.0.61",
+ "syn 2.0.65",
"termcolor",
- "toml 0.8.8",
+ "toml 0.8.12",
"walkdir",
]
@@ -5094,8 +5095,8 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -5192,6 +5193,7 @@ version = "3.0.0"
dependencies = [
"asset-test-utils",
"bp-messages",
+ "bp-xcm-bridge-hub",
"bridge-runtime-common",
"cumulus-pallet-parachain-system",
"cumulus-pallet-xcmp-queue",
@@ -5202,6 +5204,7 @@ dependencies = [
"pallet-bridge-messages",
"pallet-message-queue",
"pallet-xcm",
+ "pallet-xcm-bridge-hub",
"parachains-common",
"parity-scale-codec",
"paste",
@@ -5240,8 +5243,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
dependencies = [
"heck 0.4.1",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -5252,9 +5255,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
dependencies = [
"heck 0.4.1",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -5272,9 +5275,9 @@ version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -5283,9 +5286,9 @@ version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -5485,10 +5488,10 @@ dependencies = [
"blake2 0.10.6",
"file-guard",
"fs-err",
- "prettyplease 0.2.12",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "prettyplease",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -5558,9 +5561,9 @@ dependencies = [
"expander",
"indexmap 2.2.3",
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -5737,21 +5740,6 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
[[package]]
name = "fork-tree"
version = "12.0.0"
@@ -5890,11 +5878,11 @@ dependencies = [
"frame-support",
"parity-scale-codec",
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"scale-info",
"sp-arithmetic",
- "syn 2.0.61",
+ "syn 2.0.65",
"trybuild",
]
@@ -5998,7 +5986,7 @@ dependencies = [
"sc-cli",
"sp-runtime",
"sp-statement-store",
- "sp-tracing 16.0.0",
+ "tracing-subscriber 0.3.18",
]
[[package]]
@@ -6030,6 +6018,7 @@ dependencies = [
"aquamarine",
"array-bytes",
"assert_matches",
+ "binary-merkle-tree",
"bitflags 1.3.2",
"docify",
"environmental",
@@ -6063,6 +6052,7 @@ dependencies = [
"sp-std 14.0.0",
"sp-timestamp",
"sp-tracing 16.0.0",
+ "sp-trie",
"sp-weights",
"static_assertions",
"tt-call",
@@ -6085,8 +6075,8 @@ dependencies = [
"parity-scale-codec",
"pretty_assertions",
"proc-macro-warning 1.0.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"regex",
"scale-info",
"sp-core",
@@ -6095,7 +6085,7 @@ dependencies = [
"sp-metadata-ir",
"sp-runtime",
"static_assertions",
- "syn 2.0.61",
+ "syn 2.0.65",
]
[[package]]
@@ -6104,18 +6094,18 @@ version = "10.0.0"
dependencies = [
"frame-support-procedural-tools-derive",
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
name = "frame-support-procedural-tools-derive"
version = "11.0.0"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -6364,9 +6354,9 @@ version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -6776,11 +6766,56 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
+[[package]]
+name = "hickory-proto"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512"
+dependencies = [
+ "async-trait",
+ "cfg-if",
+ "data-encoding",
+ "enum-as-inner 0.6.0",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.4.0",
+ "ipnet",
+ "once_cell",
+ "rand",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "hickory-resolver"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243"
+dependencies = [
+ "cfg-if",
+ "futures-util",
+ "hickory-proto",
+ "ipconfig",
+ "lru-cache",
+ "once_cell",
+ "parking_lot 0.12.3",
+ "rand",
+ "resolv-conf",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
[[package]]
name = "hkdf"
-version = "0.12.3"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
dependencies = [
"hmac 0.12.1",
]
@@ -7157,8 +7192,8 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -7177,8 +7212,8 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
]
[[package]]
@@ -7366,6 +7401,23 @@ version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+[[package]]
+name = "jemalloc_pprof"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96368c0fc161a0a1a20b3952b6fd31ee342fffc87ed9e48ac1ed49fb25686655"
+dependencies = [
+ "anyhow",
+ "libc",
+ "mappings",
+ "once_cell",
+ "pprof_util",
+ "tempfile",
+ "tikv-jemalloc-ctl",
+ "tokio",
+ "tracing",
+]
+
[[package]]
name = "jni"
version = "0.19.0"
@@ -7423,9 +7475,9 @@ dependencies = [
[[package]]
name = "jsonrpsee"
-version = "0.23.2"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47"
+checksum = "5ec465b607a36dc5dd45d48b7689bc83f679f66a3ac6b6b21cc787a11e0f8685"
dependencies = [
"jsonrpsee-core",
"jsonrpsee-http-client",
@@ -7439,9 +7491,9 @@ dependencies = [
[[package]]
name = "jsonrpsee-client-transport"
-version = "0.23.2"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08163edd8bcc466c33d79e10f695cdc98c00d1e6ddfb95cec41b6b0279dd5432"
+checksum = "90f0977f9c15694371b8024c35ab58ca043dbbf4b51ccb03db8858a021241df1"
dependencies = [
"base64 0.22.1",
"futures-util",
@@ -7462,13 +7514,11 @@ dependencies = [
[[package]]
name = "jsonrpsee-core"
-version = "0.23.2"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79712302e737d23ca0daa178e752c9334846b08321d439fd89af9a384f8c830b"
+checksum = "e942c55635fbf5dc421938b8558a8141c7e773720640f4f1dbe1f4164ca4e221"
dependencies = [
- "anyhow",
"async-trait",
- "beef",
"bytes",
"futures-timer",
"futures-util",
@@ -7479,7 +7529,7 @@ dependencies = [
"parking_lot 0.12.3",
"pin-project",
"rand",
- "rustc-hash",
+ "rustc-hash 2.0.0",
"serde",
"serde_json",
"thiserror",
@@ -7490,9 +7540,9 @@ dependencies = [
[[package]]
name = "jsonrpsee-http-client"
-version = "0.23.2"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d90064e04fb9d7282b1c71044ea94d0bbc6eff5621c66f1a0bce9e9de7cf3ac"
+checksum = "e33774602df12b68a2310b38a535733c477ca4a498751739f89fe8dbbb62ec4c"
dependencies = [
"async-trait",
"base64 0.22.1",
@@ -7515,24 +7565,23 @@ dependencies = [
[[package]]
name = "jsonrpsee-proc-macros"
-version = "0.23.2"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7895f186d5921065d96e16bd795e5ca89ac8356ec423fafc6e3d7cf8ec11aee4"
+checksum = "6b07a2daf52077ab1b197aea69a5c990c060143835bf04c77070e98903791715"
dependencies = [
"heck 0.5.0",
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
name = "jsonrpsee-server"
-version = "0.23.2"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "654afab2e92e5d88ebd8a39d6074483f3f2bfdf91c5ac57fe285e7127cdd4f51"
+checksum = "038fb697a709bec7134e9ccbdbecfea0e2d15183f7140254afef7c5610a3f488"
dependencies = [
- "anyhow",
"futures-util",
"http 1.1.0",
"http-body 1.0.0",
@@ -7556,11 +7605,10 @@ dependencies = [
[[package]]
name = "jsonrpsee-types"
-version = "0.23.2"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af"
+checksum = "23b67d6e008164f027afbc2e7bb79662650158d26df200040282d2aa1cbb093b"
dependencies = [
- "beef",
"http 1.1.0",
"serde",
"serde_json",
@@ -7569,9 +7617,9 @@ dependencies = [
[[package]]
name = "jsonrpsee-ws-client"
-version = "0.23.2"
+version = "0.24.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c28759775f5cb2f1ea9667672d3fe2b0e701d1f4b7b67954e60afe7fd058b5e"
+checksum = "992bf67d1132f88edf4a4f8cff474cf01abb2be203004a2b8e11c2b20795b99e"
dependencies = [
"http 1.1.0",
"jsonrpsee-client-transport",
@@ -7701,9 +7749,9 @@ dependencies = [
[[package]]
name = "lazy_static"
-version = "1.4.0"
+version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "lazycell"
@@ -7719,9 +7767,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
[[package]]
name = "libc"
-version = "0.2.155"
+version = "0.2.158"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
[[package]]
name = "libflate"
@@ -7910,11 +7958,11 @@ dependencies = [
[[package]]
name = "libp2p-identity"
-version = "0.2.8"
+version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "999ec70441b2fb35355076726a6bc466c932e9bdc66f6a11c6c0aa17c7ab9be0"
+checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8"
dependencies = [
- "bs58 0.5.1",
+ "bs58",
"ed25519-dalek",
"hkdf",
"multihash 0.19.1",
@@ -8051,7 +8099,7 @@ dependencies = [
"libp2p-tls",
"log",
"parking_lot 0.12.3",
- "quinn 0.10.2",
+ "quinn",
"rand",
"ring 0.16.20",
"rustls 0.21.7",
@@ -8109,9 +8157,9 @@ checksum = "c4d5ec2a3df00c7836d7696c136274c9c59705bac69133253696a6c932cd1d74"
dependencies = [
"heck 0.4.1",
"proc-macro-warning 0.4.2",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -8372,21 +8420,22 @@ dependencies = [
[[package]]
name = "litep2p"
-version = "0.6.2"
+version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f46c51c205264b834ceed95c8b195026e700494bc3991aaba3b4ea9e20626d9"
+checksum = "d4ab2528b02b6dbbc3e6ec4b55ccde885647c622a315b7da45081ed2dfe4b813"
dependencies = [
"async-trait",
- "bs58 0.4.0",
+ "bs58",
"bytes",
"cid 0.10.1",
"ed25519-dalek",
"futures",
"futures-timer",
"hex-literal",
+ "hickory-resolver",
"indexmap 2.2.3",
"libc",
- "mockall 0.12.1",
+ "mockall 0.13.0",
"multiaddr 0.17.1",
"multihash 0.17.0",
"network-interface",
@@ -8394,8 +8443,7 @@ dependencies = [
"parking_lot 0.12.3",
"pin-project",
"prost 0.12.6",
- "prost-build 0.11.9",
- "quinn 0.9.4",
+ "prost-build 0.13.2",
"rand",
"rcgen",
"ring 0.16.20",
@@ -8407,18 +8455,15 @@ dependencies = [
"snow",
"socket2 0.5.7",
"static_assertions",
- "str0m",
"thiserror",
"tokio",
"tokio-stream",
"tokio-tungstenite",
"tokio-util",
"tracing",
- "trust-dns-resolver",
"uint",
"unsigned-varint 0.8.0",
"url",
- "webpki",
"x25519-dalek",
"x509-parser 0.16.0",
"yasna",
@@ -8524,8 +8569,8 @@ checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d"
dependencies = [
"macro_magic_core",
"macro_magic_macros",
- "quote 1.0.36",
- "syn 2.0.61",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -8537,9 +8582,9 @@ dependencies = [
"const-random",
"derive-syn-parse",
"macro_magic_core_macros",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -8548,9 +8593,9 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -8560,8 +8605,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869"
dependencies = [
"macro_magic_core",
- "quote 1.0.36",
- "syn 2.0.61",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -8570,6 +8615,19 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+[[package]]
+name = "mappings"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fa2605f461115ef6336342b12f0d8cabdfd7b258fed86f5f98c725535843601"
+dependencies = [
+ "anyhow",
+ "libc",
+ "once_cell",
+ "pprof_util",
+ "tracing",
+]
+
[[package]]
name = "match_cfg"
version = "0.1.0"
@@ -8736,19 +8794,6 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-[[package]]
-name = "minimal-template"
-version = "0.0.0"
-dependencies = [
- "docify",
- "minimal-template-node",
- "minimal-template-runtime",
- "pallet-minimal-template",
- "polkadot-sdk-docs",
- "polkadot-sdk-frame",
- "simple-mermaid 0.1.1",
-]
-
[[package]]
name = "minimal-template-node"
version = "0.0.0"
@@ -8759,48 +8804,18 @@ dependencies = [
"futures-timer",
"jsonrpsee",
"minimal-template-runtime",
- "polkadot-sdk-frame",
- "sc-basic-authorship",
- "sc-cli",
- "sc-client-api",
- "sc-consensus",
- "sc-consensus-manual-seal",
- "sc-executor",
- "sc-network",
- "sc-offchain",
- "sc-rpc-api",
- "sc-service",
- "sc-telemetry",
- "sc-transaction-pool",
- "sc-transaction-pool-api",
+ "polkadot-sdk",
"serde_json",
- "sp-api",
- "sp-block-builder",
- "sp-blockchain",
- "sp-io",
- "sp-keyring",
- "sp-runtime",
- "sp-timestamp",
- "substrate-build-script-utils",
- "substrate-frame-rpc-system",
]
[[package]]
name = "minimal-template-runtime"
version = "0.0.0"
dependencies = [
- "pallet-balances",
"pallet-minimal-template",
- "pallet-sudo",
- "pallet-timestamp",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc-runtime-api",
"parity-scale-codec",
- "polkadot-sdk-frame",
+ "polkadot-sdk",
"scale-info",
- "sp-genesis-builder",
- "sp-runtime",
- "substrate-wasm-builder",
]
[[package]]
@@ -8903,15 +8918,14 @@ dependencies = [
[[package]]
name = "mockall"
-version = "0.12.1"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48"
+checksum = "d4c28b3fb6d753d28c20e826cd46ee611fda1cf3cde03a443a974043247c065a"
dependencies = [
"cfg-if",
"downcast",
"fragile",
- "lazy_static",
- "mockall_derive 0.12.1",
+ "mockall_derive 0.13.0",
"predicates 3.0.3",
"predicates-tree",
]
@@ -8923,21 +8937,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb"
dependencies = [
"cfg-if",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
[[package]]
name = "mockall_derive"
-version = "0.12.1"
+version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2"
+checksum = "341014e7f530314e9a1fdbc7400b244efea7122662c96bfa248c31da5bfb2020"
dependencies = [
"cfg-if",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -9047,8 +9061,8 @@ checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro-error",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
"synstructure 0.12.6",
]
@@ -9095,8 +9109,8 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -9303,7 +9317,6 @@ dependencies = [
"sc-consensus-grandpa-rpc",
"sc-mixnet",
"sc-rpc",
- "sc-rpc-api",
"sc-sync-state-rpc",
"sc-transaction-pool-api",
"sp-api",
@@ -9487,9 +9500,9 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -9591,6 +9604,15 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "object"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "oid-registry"
version = "0.6.1"
@@ -9634,46 +9656,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
[[package]]
-name = "openssl"
-version = "0.10.64"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
-dependencies = [
- "bitflags 2.6.0",
- "cfg-if",
- "foreign-types",
- "libc",
- "once_cell",
- "openssl-macros",
- "openssl-sys",
-]
-
-[[package]]
-name = "openssl-macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
-dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
-]
-
-[[package]]
-name = "openssl-probe"
-version = "0.1.5"
+name = "openssl-probe"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-[[package]]
-name = "openssl-src"
-version = "300.2.3+3.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
-dependencies = [
- "cc",
-]
-
[[package]]
name = "openssl-sys"
version = "0.9.102"
@@ -9682,7 +9669,6 @@ checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
dependencies = [
"cc",
"libc",
- "openssl-src",
"pkg-config",
"vcpkg",
]
@@ -9721,8 +9707,8 @@ dependencies = [
"itertools 0.11.0",
"petgraph",
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -9882,7 +9868,6 @@ dependencies = [
"sp-core",
"sp-io",
"sp-runtime",
- "sp-std 14.0.0",
]
[[package]]
@@ -10089,6 +10074,7 @@ version = "28.0.0"
dependencies = [
"array-bytes",
"binary-merkle-tree",
+ "frame-benchmarking",
"frame-support",
"frame-system",
"log",
@@ -10217,18 +10203,27 @@ dependencies = [
name = "pallet-bridge-relayers"
version = "0.7.0"
dependencies = [
+ "bp-header-chain",
"bp-messages",
+ "bp-parachains",
+ "bp-polkadot-core",
"bp-relayers",
"bp-runtime",
+ "bp-test-utils",
"frame-benchmarking",
"frame-support",
"frame-system",
"log",
"pallet-balances",
+ "pallet-bridge-grandpa",
"pallet-bridge-messages",
+ "pallet-bridge-parachains",
+ "pallet-transaction-payment",
+ "pallet-utility",
"parity-scale-codec",
"scale-info",
"sp-arithmetic",
+ "sp-core",
"sp-io",
"sp-runtime",
"sp-std 14.0.0",
@@ -10300,10 +10295,12 @@ dependencies = [
name = "pallet-collective"
version = "28.0.0"
dependencies = [
+ "docify",
"frame-benchmarking",
"frame-support",
"frame-system",
"log",
+ "pallet-balances",
"parity-scale-codec",
"scale-info",
"sp-core",
@@ -10377,10 +10374,9 @@ dependencies = [
"anyhow",
"frame-system",
"parity-wasm",
- "polkavm-linker",
"sp-runtime",
"tempfile",
- "toml 0.8.8",
+ "toml 0.8.12",
"twox-hash",
]
@@ -10425,9 +10421,9 @@ dependencies = [
name = "pallet-contracts-proc-macro"
version = "18.0.0"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -10437,7 +10433,6 @@ dependencies = [
"bitflags 1.3.2",
"parity-scale-codec",
"paste",
- "polkavm-derive",
"scale-info",
]
@@ -10496,6 +10491,7 @@ dependencies = [
"frame-election-provider-support",
"frame-support",
"frame-system",
+ "log",
"pallet-balances",
"pallet-nomination-pools",
"pallet-staking",
@@ -10982,7 +10978,7 @@ name = "pallet-minimal-template"
version = "0.0.0"
dependencies = [
"parity-scale-codec",
- "polkadot-sdk-frame",
+ "polkadot-sdk",
"scale-info",
]
@@ -11431,6 +11427,119 @@ dependencies = [
"sp-runtime",
]
+[[package]]
+name = "pallet-revive"
+version = "0.1.0"
+dependencies = [
+ "array-bytes",
+ "assert_matches",
+ "bitflags 1.3.2",
+ "environmental",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-message-queue",
+ "pallet-proxy",
+ "pallet-revive-fixtures",
+ "pallet-revive-proc-macro",
+ "pallet-revive-uapi",
+ "pallet-timestamp",
+ "pallet-utility",
+ "parity-scale-codec",
+ "paste",
+ "polkavm 0.10.0",
+ "pretty_assertions",
+ "rlp",
+ "scale-info",
+ "serde",
+ "sp-api",
+ "sp-core",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-tracing 16.0.0",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "wat",
+]
+
+[[package]]
+name = "pallet-revive-fixtures"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "frame-system",
+ "log",
+ "parity-wasm",
+ "polkavm-linker 0.10.0",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "tempfile",
+ "toml 0.8.12",
+]
+
+[[package]]
+name = "pallet-revive-mock-network"
+version = "0.1.0"
+dependencies = [
+ "assert_matches",
+ "frame-support",
+ "frame-system",
+ "pallet-assets",
+ "pallet-balances",
+ "pallet-message-queue",
+ "pallet-proxy",
+ "pallet-revive",
+ "pallet-revive-fixtures",
+ "pallet-revive-proc-macro",
+ "pallet-revive-uapi",
+ "pallet-timestamp",
+ "pallet-utility",
+ "pallet-xcm",
+ "parity-scale-codec",
+ "polkadot-parachain-primitives",
+ "polkadot-primitives",
+ "polkadot-runtime-parachains",
+ "pretty_assertions",
+ "scale-info",
+ "sp-api",
+ "sp-core",
+ "sp-io",
+ "sp-keystore",
+ "sp-runtime",
+ "sp-tracing 16.0.0",
+ "staging-xcm",
+ "staging-xcm-builder",
+ "staging-xcm-executor",
+ "xcm-simulator",
+]
+
+[[package]]
+name = "pallet-revive-proc-macro"
+version = "0.1.0"
+dependencies = [
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
+]
+
+[[package]]
+name = "pallet-revive-uapi"
+version = "0.1.0"
+dependencies = [
+ "bitflags 1.3.2",
+ "parity-scale-codec",
+ "paste",
+ "polkavm-derive 0.10.0",
+ "scale-info",
+]
+
[[package]]
name = "pallet-root-offences"
version = "25.0.0"
@@ -11659,10 +11768,10 @@ name = "pallet-staking-reward-curve"
version = "11.0.0"
dependencies = [
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"sp-runtime",
- "syn 2.0.61",
+ "syn 2.0.65",
]
[[package]]
@@ -12013,7 +12122,6 @@ dependencies = [
"bp-messages",
"bp-runtime",
"bp-xcm-bridge-hub",
- "bridge-runtime-common",
"frame-support",
"frame-system",
"log",
@@ -12021,6 +12129,7 @@ dependencies = [
"pallet-bridge-messages",
"pallet-xcm-bridge-hub-router",
"parity-scale-codec",
+ "polkadot-parachain-primitives",
"scale-info",
"sp-core",
"sp-io",
@@ -12150,6 +12259,7 @@ dependencies = [
"polkadot-parachain-primitives",
"polkadot-runtime-common",
"scale-info",
+ "serde_json",
"smallvec",
"sp-api",
"sp-block-builder",
@@ -12304,8 +12414,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c"
dependencies = [
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -12333,7 +12443,7 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2"
dependencies = [
- "proc-macro2 1.0.82",
+ "proc-macro2 1.0.86",
"syn 1.0.109",
"synstructure 0.12.6",
]
@@ -12480,6 +12590,7 @@ dependencies = [
"frame-try-runtime",
"hex-literal",
"log",
+ "pallet-asset-conversion",
"pallet-asset-tx-payment",
"pallet-assets",
"pallet-aura",
@@ -12498,6 +12609,7 @@ dependencies = [
"polkadot-parachain-primitives",
"polkadot-primitives",
"polkadot-runtime-common",
+ "primitive-types",
"scale-info",
"smallvec",
"sp-api",
@@ -12583,6 +12695,7 @@ dependencies = [
"pallet-identity",
"pallet-message-queue",
"pallet-multisig",
+ "pallet-proxy",
"pallet-session",
"pallet-timestamp",
"pallet-transaction-payment",
@@ -12641,6 +12754,7 @@ dependencies = [
"pallet-balances",
"pallet-identity",
"pallet-message-queue",
+ "pallet-xcm",
"parachains-common",
"parity-scale-codec",
"polkadot-runtime-common",
@@ -12681,6 +12795,7 @@ dependencies = [
"pallet-identity",
"pallet-message-queue",
"pallet-multisig",
+ "pallet-proxy",
"pallet-session",
"pallet-timestamp",
"pallet-transaction-payment",
@@ -12750,9 +12865,9 @@ checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929"
dependencies = [
"pest",
"pest_meta",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -12791,9 +12906,9 @@ version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -12901,7 +13016,9 @@ dependencies = [
"rand",
"rand_chacha",
"rand_core",
+ "sc-keystore",
"schnorrkel 0.11.4",
+ "sp-application-crypto",
"sp-authority-discovery",
"sp-core",
"sp-tracing 16.0.0",
@@ -13057,6 +13174,7 @@ dependencies = [
"rstest",
"sc-keystore",
"sc-network",
+ "schnellru",
"sp-core",
"sp-keyring",
"sp-keystore",
@@ -13443,23 +13561,17 @@ name = "polkadot-node-core-prospective-parachains"
version = "6.0.0"
dependencies = [
"assert_matches",
- "bitvec",
"fatality",
"futures",
- "parity-scale-codec",
- "polkadot-node-primitives",
"polkadot-node-subsystem",
"polkadot-node-subsystem-test-helpers",
- "polkadot-node-subsystem-types",
"polkadot-node-subsystem-util",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "rand",
"rstest",
- "sc-keystore",
- "sp-application-crypto",
"sp-core",
- "sp-keyring",
- "sp-keystore",
+ "sp-tracing 16.0.0",
"thiserror",
"tracing-gum",
]
@@ -13589,8 +13701,10 @@ dependencies = [
"nix 0.28.0",
"parity-scale-codec",
"polkadot-node-core-pvf-common",
+ "polkadot-node-primitives",
"polkadot-parachain-primitives",
"polkadot-primitives",
+ "sp-maybe-compressed-blob",
"tracing-gum",
]
@@ -13605,6 +13719,7 @@ dependencies = [
"nix 0.28.0",
"parity-scale-codec",
"polkadot-node-core-pvf-common",
+ "polkadot-node-primitives",
"polkadot-primitives",
"rayon",
"rococo-runtime",
@@ -13661,7 +13776,7 @@ name = "polkadot-node-metrics"
version = "7.0.0"
dependencies = [
"assert_cmd",
- "bs58 0.5.1",
+ "bs58",
"futures",
"futures-timer",
"http-body-util",
@@ -13717,14 +13832,17 @@ dependencies = [
"bitvec",
"bounded-vec",
"futures",
+ "futures-timer",
"parity-scale-codec",
"polkadot-erasure-coding",
"polkadot-parachain-primitives",
"polkadot-primitives",
+ "sc-keystore",
"schnorrkel 0.11.4",
"serde",
"sp-application-crypto",
"sp-consensus-babe",
+ "sp-consensus-slots",
"sp-core",
"sp-keystore",
"sp-maybe-compressed-blob",
@@ -13865,19 +13983,48 @@ dependencies = [
name = "polkadot-parachain-bin"
version = "4.0.0"
dependencies = [
- "assert_cmd",
"asset-hub-rococo-runtime",
"asset-hub-westend-runtime",
- "async-trait",
"bridge-hub-rococo-runtime",
"bridge-hub-westend-runtime",
- "clap 4.5.11",
"collectives-westend-runtime",
"color-eyre",
- "color-print",
"contracts-rococo-runtime",
"coretime-rococo-runtime",
"coretime-westend-runtime",
+ "cumulus-primitives-core",
+ "glutton-westend-runtime",
+ "hex-literal",
+ "log",
+ "parachains-common",
+ "penpal-runtime",
+ "people-rococo-runtime",
+ "people-westend-runtime",
+ "polkadot-parachain-lib",
+ "polkadot-service",
+ "rococo-parachain-runtime",
+ "sc-chain-spec",
+ "sc-cli",
+ "sc-service",
+ "seedling-runtime",
+ "serde",
+ "serde_json",
+ "shell-runtime",
+ "sp-core",
+ "sp-runtime",
+ "staging-xcm",
+ "substrate-build-script-utils",
+ "testnet-parachains-constants",
+]
+
+[[package]]
+name = "polkadot-parachain-lib"
+version = "0.1.0"
+dependencies = [
+ "assert_cmd",
+ "async-trait",
+ "clap 4.5.11",
+ "color-print",
"cumulus-client-cli",
"cumulus-client-collator",
"cumulus-client-consensus-aura",
@@ -13896,8 +14043,6 @@ dependencies = [
"frame-system-rpc-runtime-api",
"frame-try-runtime",
"futures",
- "glutton-westend-runtime",
- "hex-literal",
"jsonrpsee",
"log",
"nix 0.28.0",
@@ -13906,56 +14051,40 @@ dependencies = [
"pallet-transaction-payment-rpc-runtime-api",
"parachains-common",
"parity-scale-codec",
- "penpal-runtime",
- "people-rococo-runtime",
- "people-westend-runtime",
"polkadot-cli",
"polkadot-primitives",
- "polkadot-service",
- "rococo-parachain-runtime",
"sc-basic-authorship",
"sc-chain-spec",
"sc-cli",
"sc-client-api",
+ "sc-client-db",
"sc-consensus",
"sc-executor",
"sc-network",
- "sc-network-sync",
"sc-rpc",
"sc-service",
"sc-sysinfo",
"sc-telemetry",
"sc-tracing",
"sc-transaction-pool",
- "sc-transaction-pool-api",
- "seedling-runtime",
"serde",
"serde_json",
- "shell-runtime",
"sp-api",
"sp-block-builder",
- "sp-blockchain",
"sp-consensus-aura",
"sp-core",
"sp-genesis-builder",
"sp-inherents",
- "sp-io",
"sp-keystore",
- "sp-offchain",
"sp-runtime",
"sp-session",
- "sp-std 14.0.0",
"sp-timestamp",
- "sp-tracing 16.0.0",
"sp-transaction-pool",
"sp-version",
- "staging-xcm",
- "substrate-build-script-utils",
+ "sp-weights",
"substrate-frame-rpc-system",
"substrate-prometheus-endpoint",
"substrate-state-trie-migration-rpc",
- "tempfile",
- "testnet-parachains-constants",
"tokio",
"wait-timeout",
]
@@ -13985,6 +14114,7 @@ dependencies = [
"parity-scale-codec",
"polkadot-core-primitives",
"polkadot-parachain-primitives",
+ "polkadot-primitives-test-helpers",
"scale-info",
"serde",
"sp-api",
@@ -13998,6 +14128,7 @@ dependencies = [
"sp-keystore",
"sp-runtime",
"sp-staking",
+ "sp-std 14.0.0",
]
[[package]]
@@ -14105,7 +14236,7 @@ dependencies = [
name = "polkadot-runtime-metrics"
version = "7.0.0"
dependencies = [
- "bs58 0.5.1",
+ "bs58",
"frame-benchmarking",
"parity-scale-codec",
"polkadot-primitives",
@@ -14315,6 +14446,11 @@ dependencies = [
"pallet-recovery",
"pallet-referenda",
"pallet-remark",
+ "pallet-revive",
+ "pallet-revive-fixtures",
+ "pallet-revive-mock-network",
+ "pallet-revive-proc-macro",
+ "pallet-revive-uapi",
"pallet-root-offences",
"pallet-root-testing",
"pallet-safe-mode",
@@ -14387,6 +14523,7 @@ dependencies = [
"polkadot-node-subsystem-types",
"polkadot-node-subsystem-util",
"polkadot-overseer",
+ "polkadot-parachain-lib",
"polkadot-parachain-primitives",
"polkadot-primitives",
"polkadot-rpc",
@@ -14573,6 +14710,7 @@ dependencies = [
"pallet-balances",
"pallet-broker",
"pallet-collective",
+ "pallet-contracts",
"pallet-default-config-example",
"pallet-democracy",
"pallet-example-offchain-worker",
@@ -14856,6 +14994,7 @@ dependencies = [
"futures-timer",
"hex",
"itertools 0.11.0",
+ "jemalloc_pprof",
"kvdb-memorydb",
"log",
"orchestra",
@@ -14879,6 +15018,7 @@ dependencies = [
"polkadot-overseer",
"polkadot-primitives",
"polkadot-primitives-test-helpers",
+ "polkadot-service",
"polkadot-statement-distribution",
"prometheus",
"pyroscope",
@@ -14907,6 +15047,7 @@ dependencies = [
"sp-tracing 16.0.0",
"strum 0.26.2",
"substrate-prometheus-endpoint",
+ "tikv-jemallocator",
"tokio",
"tracing-gum",
]
@@ -15102,9 +15243,22 @@ checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94"
dependencies = [
"libc",
"log",
- "polkavm-assembler",
- "polkavm-common",
- "polkavm-linux-raw",
+ "polkavm-assembler 0.9.0",
+ "polkavm-common 0.9.0",
+ "polkavm-linux-raw 0.9.0",
+]
+
+[[package]]
+name = "polkavm"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7ec0c5935f2eff23cfc4653002f4f8d12b37f87a720e0631282d188c32089d6"
+dependencies = [
+ "libc",
+ "log",
+ "polkavm-assembler 0.10.0",
+ "polkavm-common 0.10.0",
+ "polkavm-linux-raw 0.10.0",
]
[[package]]
@@ -15116,6 +15270,15 @@ dependencies = [
"log",
]
+[[package]]
+name = "polkavm-assembler"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8e4fd5a43100bf1afe9727b8130d01f966f5cfc9144d5604b21e795c2bcd80e"
+dependencies = [
+ "log",
+]
+
[[package]]
name = "polkavm-common"
version = "0.9.0"
@@ -15125,13 +15288,32 @@ dependencies = [
"log",
]
+[[package]]
+name = "polkavm-common"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0097b48bc0bedf9f3f537ce8f37e8f1202d8d83f9b621bdb21ff2c59b9097c50"
+dependencies = [
+ "log",
+ "polkavm-assembler 0.10.0",
+]
+
[[package]]
name = "polkavm-derive"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606"
dependencies = [
- "polkavm-derive-impl-macro",
+ "polkavm-derive-impl-macro 0.9.0",
+]
+
+[[package]]
+name = "polkavm-derive"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dcc701385c08c31bdb0569f0c51a290c580d892fa77f1dd88a7352a62679ecf"
+dependencies = [
+ "polkavm-derive-impl-macro 0.10.0",
]
[[package]]
@@ -15140,10 +15322,22 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c"
dependencies = [
- "polkavm-common",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "polkavm-common 0.9.0",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
+]
+
+[[package]]
+name = "polkavm-derive-impl"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7855353a5a783dd5d09e3b915474bddf66575f5a3cf45dec8d1c5e051ba320dc"
+dependencies = [
+ "polkavm-common 0.10.0",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -15152,8 +15346,18 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429"
dependencies = [
- "polkavm-derive-impl",
- "syn 2.0.61",
+ "polkavm-derive-impl 0.9.0",
+ "syn 2.0.65",
+]
+
+[[package]]
+name = "polkavm-derive-impl-macro"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9324fe036de37c17829af233b46ef6b5562d4a0c09bb7fdb9f8378856dee30cf"
+dependencies = [
+ "polkavm-derive-impl 0.10.0",
+ "syn 2.0.65",
]
[[package]]
@@ -15166,7 +15370,22 @@ dependencies = [
"hashbrown 0.14.3",
"log",
"object 0.32.2",
- "polkavm-common",
+ "polkavm-common 0.9.0",
+ "regalloc2 0.9.3",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "polkavm-linker"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d704edfe7bdcc876784f19436d53d515b65eb07bc9a0fae77085d552c2dbbb5"
+dependencies = [
+ "gimli 0.28.0",
+ "hashbrown 0.14.3",
+ "log",
+ "object 0.36.1",
+ "polkavm-common 0.10.0",
"regalloc2 0.9.3",
"rustc-demangle",
]
@@ -15177,6 +15396,12 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120"
+[[package]]
+name = "polkavm-linux-raw"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26e45fa59c7e1bb12ef5289080601e9ec9b31435f6e32800a5c90c132453d126"
+
[[package]]
name = "polling"
version = "2.8.0"
@@ -15271,6 +15496,19 @@ dependencies = [
"thiserror",
]
+[[package]]
+name = "pprof_util"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c620a1858d6ebf10d7c60256629078b2d106968d0e6ff63b850d9ecd84008fbe"
+dependencies = [
+ "anyhow",
+ "flate2",
+ "num",
+ "paste",
+ "prost 0.11.9",
+]
+
[[package]]
name = "ppv-lite86"
version = "0.2.17"
@@ -15329,24 +15567,14 @@ dependencies = [
"yansi",
]
-[[package]]
-name = "prettyplease"
-version = "0.1.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
-dependencies = [
- "proc-macro2 1.0.82",
- "syn 1.0.109",
-]
-
[[package]]
name = "prettyplease"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62"
dependencies = [
- "proc-macro2 1.0.82",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "syn 2.0.65",
]
[[package]]
@@ -15406,8 +15634,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
"version_check",
]
@@ -15418,8 +15646,8 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"version_check",
]
@@ -15435,9 +15663,9 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -15446,9 +15674,9 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -15462,9 +15690,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.82"
+version = "1.0.86"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
dependencies = [
"unicode-ident",
]
@@ -15527,9 +15755,9 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -15584,33 +15812,42 @@ dependencies = [
"prost-derive 0.12.6",
]
+[[package]]
+name = "prost"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b2ecbe40f08db5c006b5764a2645f7f3f141ce756412ac9e1dd6087e6d32995"
+dependencies = [
+ "bytes",
+ "prost-derive 0.13.2",
+]
+
[[package]]
name = "prost-build"
-version = "0.11.9"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270"
+checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1"
dependencies = [
"bytes",
- "heck 0.4.1",
- "itertools 0.10.5",
- "lazy_static",
+ "heck 0.5.0",
+ "itertools 0.11.0",
"log",
"multimap",
+ "once_cell",
"petgraph",
- "prettyplease 0.1.25",
- "prost 0.11.9",
- "prost-types 0.11.9",
+ "prettyplease",
+ "prost 0.12.6",
+ "prost-types 0.12.4",
"regex",
- "syn 1.0.109",
+ "syn 2.0.65",
"tempfile",
- "which",
]
[[package]]
name = "prost-build"
-version = "0.12.4"
+version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1"
+checksum = "f8650aabb6c35b860610e9cff5dc1af886c9e25073b7b1712a68972af4281302"
dependencies = [
"bytes",
"heck 0.5.0",
@@ -15619,11 +15856,11 @@ dependencies = [
"multimap",
"once_cell",
"petgraph",
- "prettyplease 0.2.12",
- "prost 0.12.6",
- "prost-types 0.12.4",
+ "prettyplease",
+ "prost 0.13.2",
+ "prost-types 0.13.2",
"regex",
- "syn 2.0.61",
+ "syn 2.0.65",
"tempfile",
]
@@ -15635,8 +15872,8 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
dependencies = [
"anyhow",
"itertools 0.10.5",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -15648,18 +15885,22 @@ checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
dependencies = [
"anyhow",
"itertools 0.11.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
-name = "prost-types"
-version = "0.11.9"
+name = "prost-derive"
+version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13"
+checksum = "acf0c195eebb4af52c752bec4f52f645da98b6e92077a04110c7f349477ae5ac"
dependencies = [
- "prost 0.11.9",
+ "anyhow",
+ "itertools 0.11.0",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -15671,6 +15912,15 @@ dependencies = [
"prost 0.12.6",
]
+[[package]]
+name = "prost-types"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60caa6738c7369b940c3d49246a8d1749323674c65cb13010134f5c9bad5b519"
+dependencies = [
+ "prost 0.13.2",
+]
+
[[package]]
name = "psm"
version = "0.1.21"
@@ -15776,24 +16026,6 @@ dependencies = [
"rand",
]
-[[package]]
-name = "quinn"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e"
-dependencies = [
- "bytes",
- "pin-project-lite",
- "quinn-proto 0.9.6",
- "quinn-udp 0.3.2",
- "rustc-hash",
- "rustls 0.20.9",
- "thiserror",
- "tokio",
- "tracing",
- "webpki",
-]
-
[[package]]
name = "quinn"
version = "0.10.2"
@@ -15803,33 +16035,15 @@ dependencies = [
"bytes",
"futures-io",
"pin-project-lite",
- "quinn-proto 0.10.6",
- "quinn-udp 0.4.1",
- "rustc-hash",
+ "quinn-proto",
+ "quinn-udp",
+ "rustc-hash 1.1.0",
"rustls 0.21.7",
"thiserror",
"tokio",
"tracing",
]
-[[package]]
-name = "quinn-proto"
-version = "0.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863"
-dependencies = [
- "bytes",
- "rand",
- "ring 0.16.20",
- "rustc-hash",
- "rustls 0.20.9",
- "slab",
- "thiserror",
- "tinyvec",
- "tracing",
- "webpki",
-]
-
[[package]]
name = "quinn-proto"
version = "0.10.6"
@@ -15839,7 +16053,7 @@ dependencies = [
"bytes",
"rand",
"ring 0.16.20",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"rustls 0.21.7",
"slab",
"thiserror",
@@ -15847,19 +16061,6 @@ dependencies = [
"tracing",
]
-[[package]]
-name = "quinn-udp"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4"
-dependencies = [
- "libc",
- "quinn-proto 0.9.6",
- "socket2 0.4.9",
- "tracing",
- "windows-sys 0.42.0",
-]
-
[[package]]
name = "quinn-udp"
version = "0.4.1"
@@ -15884,11 +16085,11 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.36"
+version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
- "proc-macro2 1.0.82",
+ "proc-macro2 1.0.86",
]
[[package]]
@@ -16087,9 +16288,9 @@ version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -16112,7 +16313,7 @@ checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6"
dependencies = [
"hashbrown 0.13.2",
"log",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"slice-group-by",
"smallvec",
]
@@ -16637,12 +16838,12 @@ checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
dependencies = [
"cfg-if",
"glob",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"regex",
"relative-path",
"rustc_version 0.4.0",
- "syn 2.0.61",
+ "syn 2.0.65",
"unicode-ident",
]
@@ -16673,9 +16874,9 @@ dependencies = [
[[package]]
name = "ruint"
-version = "1.11.1"
+version = "1.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "608a5726529f2f0ef81b8fde9873c4bb829d6b5b5ca6be4d97345ddf0749c825"
+checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286"
dependencies = [
"alloy-rlp",
"ark-ff 0.3.0",
@@ -16697,9 +16898,9 @@ dependencies = [
[[package]]
name = "ruint-macro"
-version = "1.1.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e666a5496a0b2186dbcd0ff6106e29e093c15591bde62c20d3842007c6978a09"
+checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18"
[[package]]
name = "rustc-demangle"
@@ -16713,6 +16914,12 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+[[package]]
+name = "rustc-hash"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
+
[[package]]
name = "rustc-hex"
version = "2.1.0"
@@ -16934,9 +17141,9 @@ dependencies = [
[[package]]
name = "rustversion"
-version = "1.0.14"
+version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
[[package]]
name = "rusty-fork"
@@ -17125,9 +17332,9 @@ name = "sc-chain-spec-derive"
version = "11.0.0"
dependencies = [
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -17647,7 +17854,7 @@ dependencies = [
name = "sc-executor-common"
version = "0.29.0"
dependencies = [
- "polkavm",
+ "polkavm 0.9.3",
"sc-allocator",
"sp-maybe-compressed-blob",
"sp-wasm-interface 20.0.0",
@@ -17660,7 +17867,7 @@ name = "sc-executor-polkavm"
version = "0.29.0"
dependencies = [
"log",
- "polkavm",
+ "polkavm 0.9.3",
"sc-executor-common",
"sp-wasm-interface 20.0.0",
]
@@ -17985,7 +18192,7 @@ dependencies = [
name = "sc-network-types"
version = "0.10.0"
dependencies = [
- "bs58 0.5.1",
+ "bs58",
"ed25519-dalek",
"libp2p-identity",
"litep2p",
@@ -18083,11 +18290,9 @@ dependencies = [
"sp-runtime",
"sp-session",
"sp-statement-store",
- "sp-tracing 16.0.0",
"sp-version",
"substrate-test-runtime-client",
"tokio",
- "tracing-subscriber 0.3.18",
]
[[package]]
@@ -18113,6 +18318,7 @@ dependencies = [
name = "sc-rpc-server"
version = "11.0.0"
dependencies = [
+ "dyn-clone",
"forwarded-header-value",
"futures",
"governor",
@@ -18122,6 +18328,7 @@ dependencies = [
"ip_network",
"jsonrpsee",
"log",
+ "sc-rpc-api",
"serde",
"serde_json",
"substrate-prometheus-endpoint",
@@ -18399,7 +18606,7 @@ dependencies = [
"parity-scale-codec",
"parking_lot 0.12.3",
"regex",
- "rustc-hash",
+ "rustc-hash 1.1.0",
"sc-client-api",
"sc-tracing-proc-macro",
"serde",
@@ -18420,9 +18627,9 @@ name = "sc-tracing-proc-macro"
version = "11.0.0"
dependencies = [
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -18534,8 +18741,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62"
dependencies = [
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -18572,17 +18779,17 @@ version = "0.8.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"serde_derive_internals",
"syn 1.0.109",
]
[[package]]
name = "schnellru"
-version = "0.2.1"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d"
+checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367"
dependencies = [
"ahash 0.8.11",
"cfg-if",
@@ -18652,21 +18859,6 @@ dependencies = [
"untrusted 0.7.1",
]
-[[package]]
-name = "sctp-proto"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6220f78bb44c15f326b0596113305f6101097a18755d53727a575c97e09fb24"
-dependencies = [
- "bytes",
- "crc",
- "fxhash",
- "log",
- "rand",
- "slab",
- "thiserror",
-]
-
[[package]]
name = "sec1"
version = "0.7.3"
@@ -18841,9 +19033,9 @@ checksum = "f97841a747eef040fcd2e7b3b9a220a7205926e60488e673d9e4926d27772ce5"
[[package]]
name = "serde"
-version = "1.0.204"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
dependencies = [
"serde_derive",
]
@@ -18868,13 +19060,13 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.204"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -18883,8 +19075,8 @@ version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -18899,9 +19091,9 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.121"
+version = "1.0.128"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
dependencies = [
"indexmap 2.2.3",
"itoa",
@@ -18912,9 +19104,9 @@ dependencies = [
[[package]]
name = "serde_spanned"
-version = "0.6.4"
+version = "0.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
dependencies = [
"serde",
]
@@ -18974,9 +19166,9 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -18992,18 +19184,6 @@ dependencies = [
"opaque-debug 0.3.0",
]
-[[package]]
-name = "sha-1"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest 0.10.7",
- "sha1-asm",
-]
-
[[package]]
name = "sha1"
version = "0.10.6"
@@ -19015,15 +19195,6 @@ dependencies = [
"digest 0.10.7",
]
-[[package]]
-name = "sha1-asm"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ba6947745e7f86be3b8af00b7355857085dbdf8901393c89514510eb61f4e21"
-dependencies = [
- "cc",
-]
-
[[package]]
name = "sha2"
version = "0.9.9"
@@ -19153,9 +19324,9 @@ dependencies = [
[[package]]
name = "simple-dns"
-version = "0.5.7"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694"
+checksum = "4c80e565e7dcc4f1ef247e2f395550d4cf7d777746d5988e7e4e3156b71077fc"
dependencies = [
"bitflags 2.6.0",
]
@@ -19266,7 +19437,7 @@ dependencies = [
"base64 0.21.2",
"bip39",
"blake2-rfc",
- "bs58 0.5.1",
+ "bs58",
"chacha20",
"crossbeam-queue",
"derive_more",
@@ -19420,6 +19591,7 @@ dependencies = [
"sp-std 14.0.0",
"staging-xcm",
"staging-xcm-builder",
+ "staging-xcm-executor",
]
[[package]]
@@ -19719,7 +19891,7 @@ dependencies = [
"httparse",
"log",
"rand",
- "sha-1 0.9.8",
+ "sha-1",
]
[[package]]
@@ -19759,7 +19931,6 @@ dependencies = [
"sc-executor",
"sc-network",
"sc-offchain",
- "sc-rpc-api",
"sc-service",
"sc-telemetry",
"sc-transaction-pool",
@@ -19850,9 +20021,9 @@ dependencies = [
"blake2 0.10.6",
"expander",
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -20048,6 +20219,7 @@ dependencies = [
"sp-keystore",
"sp-mmr-primitives",
"sp-runtime",
+ "sp-weights",
"strum 0.26.2",
"w3f-bls",
]
@@ -20111,7 +20283,7 @@ dependencies = [
"bitflags 1.3.2",
"blake2 0.10.6",
"bounded-collections",
- "bs58 0.5.1",
+ "bs58",
"criterion",
"dyn-clonable",
"ed25519-zebra",
@@ -20234,9 +20406,9 @@ dependencies = [
name = "sp-crypto-hashing-proc-macro"
version = "0.1.0"
dependencies = [
- "quote 1.0.36",
+ "quote 1.0.37",
"sp-crypto-hashing",
- "syn 2.0.61",
+ "syn 2.0.65",
]
[[package]]
@@ -20252,18 +20424,18 @@ name = "sp-debug-derive"
version = "8.0.0"
source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf590a34fca09b72dc5f"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
name = "sp-debug-derive"
version = "14.0.0"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -20320,7 +20492,7 @@ dependencies = [
"libsecp256k1",
"log",
"parity-scale-codec",
- "polkavm-derive",
+ "polkavm-derive 0.9.1",
"rustversion",
"secp256k1",
"sp-core",
@@ -20447,7 +20619,7 @@ dependencies = [
name = "sp-rpc"
version = "26.0.0"
dependencies = [
- "rustc-hash",
+ "rustc-hash 1.1.0",
"serde",
"serde_json",
"sp-core",
@@ -20478,6 +20650,7 @@ dependencies = [
"sp-state-machine",
"sp-std 14.0.0",
"sp-tracing 16.0.0",
+ "sp-trie",
"sp-weights",
"substrate-test-runtime-client",
"tracing",
@@ -20509,7 +20682,7 @@ dependencies = [
"bytes",
"impl-trait-for-tuples",
"parity-scale-codec",
- "polkavm-derive",
+ "polkavm-derive 0.9.1",
"primitive-types",
"rustversion",
"sp-core",
@@ -20533,9 +20706,9 @@ source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf5
dependencies = [
"Inflector",
"proc-macro-crate 1.3.1",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -20545,9 +20718,9 @@ dependencies = [
"Inflector",
"expander",
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -20806,10 +20979,11 @@ name = "sp-version-proc-macro"
version = "13.0.0"
dependencies = [
"parity-scale-codec",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro-warning 1.0.0",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"sp-version",
- "syn 2.0.61",
+ "syn 2.0.65",
]
[[package]]
@@ -20891,8 +21065,8 @@ checksum = "5e6915280e2d0db8911e5032a5c275571af6bdded2916abd691a659be25d3439"
dependencies = [
"Inflector",
"num-format",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"serde",
"serde_json",
"unicode-xid 0.2.4",
@@ -20916,8 +21090,8 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -20934,8 +21108,10 @@ dependencies = [
"clap 4.5.11",
"log",
"sc-chain-spec",
+ "serde",
"serde_json",
"sp-tracing 16.0.0",
+ "substrate-test-runtime",
]
[[package]]
@@ -21109,31 +21285,11 @@ checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf"
dependencies = [
"cfg_aliases",
"memchr",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
-[[package]]
-name = "str0m"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d"
-dependencies = [
- "combine",
- "crc",
- "fastrand 2.1.0",
- "hmac 0.12.1",
- "once_cell",
- "openssl",
- "openssl-sys",
- "sctp-proto",
- "serde",
- "sha-1 0.10.1",
- "thiserror",
- "tracing",
-]
-
[[package]]
name = "string-interner"
version = "0.17.0"
@@ -21182,8 +21338,8 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
dependencies = [
"heck 0.3.3",
"proc-macro-error",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -21218,8 +21374,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
dependencies = [
"heck 0.4.1",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"rustversion",
"syn 1.0.109",
]
@@ -21231,10 +21387,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
dependencies = [
"heck 0.4.1",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"rustversion",
- "syn 2.0.61",
+ "syn 2.0.65",
]
[[package]]
@@ -21244,10 +21400,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
dependencies = [
"heck 0.4.1",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"rustversion",
- "syn 2.0.61",
+ "syn 2.0.65",
]
[[package]]
@@ -21379,6 +21535,7 @@ dependencies = [
"rbtag",
"relay-substrate-client",
"relay-utils",
+ "rustc-hex",
"scale-info",
"sp-consensus-grandpa",
"sp-core",
@@ -21554,7 +21711,7 @@ dependencies = [
"merkleized-metadata",
"parity-scale-codec",
"parity-wasm",
- "polkavm-linker",
+ "polkavm-linker 0.9.2",
"sc-executor",
"sp-core",
"sp-io",
@@ -21563,7 +21720,7 @@ dependencies = [
"sp-version",
"strum 0.26.2",
"tempfile",
- "toml 0.8.8",
+ "toml 0.8.12",
"walkdir",
"wasm-opt",
]
@@ -21694,19 +21851,19 @@ version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"unicode-ident",
]
[[package]]
name = "syn"
-version = "2.0.61"
+version = "2.0.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9"
+checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"unicode-ident",
]
@@ -21717,9 +21874,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86b837ef12ab88835251726eb12237655e61ec8dc8a280085d1961cdc3dfd047"
dependencies = [
"paste",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -21728,8 +21885,8 @@ version = "0.12.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
"unicode-xid 0.2.4",
]
@@ -21740,9 +21897,9 @@ version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -21859,9 +22016,9 @@ version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -22023,8 +22180,8 @@ version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"syn 1.0.109",
]
@@ -22034,9 +22191,9 @@ version = "1.0.61"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -22200,9 +22357,9 @@ version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -22302,14 +22459,14 @@ dependencies = [
[[package]]
name = "toml"
-version = "0.8.8"
+version = "0.8.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.12",
]
[[package]]
@@ -22329,7 +22486,7 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
dependencies = [
"indexmap 2.2.3",
"toml_datetime",
- "winnow",
+ "winnow 0.5.15",
]
[[package]]
@@ -22337,12 +22494,23 @@ name = "toml_edit"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+dependencies = [
+ "indexmap 2.2.3",
+ "toml_datetime",
+ "winnow 0.5.15",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
dependencies = [
"indexmap 2.2.3",
"serde",
"serde_spanned",
"toml_datetime",
- "winnow",
+ "winnow 0.6.18",
]
[[package]]
@@ -22407,9 +22575,9 @@ version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -22449,9 +22617,9 @@ dependencies = [
"assert_matches",
"expander",
"proc-macro-crate 3.1.0",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -22547,9 +22715,9 @@ dependencies = [
[[package]]
name = "trie-db"
-version = "0.29.0"
+version = "0.29.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65ed83be775d85ebb0e272914fff6462c39b3ddd6dc67b5c1c41271aad280c69"
+checksum = "0c992b4f40c234a074d48a757efeabb1a6be88af84c0c23f7ca158950cb0ae7f"
dependencies = [
"hash-db",
"log",
@@ -23000,11 +23168,12 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.92"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
dependencies = [
"cfg-if",
+ "once_cell",
"serde",
"serde_json",
"wasm-bindgen-macro",
@@ -23012,16 +23181,16 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.92"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
dependencies = [
"bumpalo",
"log",
"once_cell",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
"wasm-bindgen-shared",
]
@@ -23039,32 +23208,32 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.92"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
dependencies = [
- "quote 1.0.36",
+ "quote 1.0.37",
"wasm-bindgen-macro-support",
]
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.92"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.92"
+version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
[[package]]
name = "wasm-bindgen-test"
@@ -23086,8 +23255,8 @@ version = "0.3.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
]
[[package]]
@@ -23664,17 +23833,6 @@ dependencies = [
"westend-emulated-chain",
]
-[[package]]
-name = "which"
-version = "4.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
-dependencies = [
- "either",
- "libc",
- "once_cell",
-]
-
[[package]]
name = "wide"
version = "0.7.11"
@@ -23769,21 +23927,6 @@ dependencies = [
"windows-targets 0.52.0",
]
-[[package]]
-name = "windows-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
-]
-
[[package]]
name = "windows-sys"
version = "0.45.0"
@@ -23991,6 +24134,15 @@ dependencies = [
"memchr",
]
+[[package]]
+name = "winnow"
+version = "0.6.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "winreg"
version = "0.50.0"
@@ -24152,10 +24304,10 @@ name = "xcm-procedural"
version = "7.0.0"
dependencies = [
"Inflector",
- "proc-macro2 1.0.82",
- "quote 1.0.36",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
"staging-xcm",
- "syn 2.0.61",
+ "syn 2.0.65",
"trybuild",
]
@@ -24318,9 +24470,9 @@ version = "0.7.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
@@ -24338,9 +24490,9 @@ version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
- "proc-macro2 1.0.82",
- "quote 1.0.36",
- "syn 2.0.61",
+ "proc-macro2 1.0.86",
+ "quote 1.0.37",
+ "syn 2.0.65",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 7ae7c3bd1811b651339569f9fe794b611fd12cc2..7e48fa14ccc227e92f9545c489d9932d91c62098 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -136,6 +136,7 @@ members = [
"cumulus/parachains/runtimes/testing/penpal",
"cumulus/parachains/runtimes/testing/rococo-parachain",
"cumulus/polkadot-parachain",
+ "cumulus/polkadot-parachain/polkadot-parachain-lib",
"cumulus/primitives/aura",
"cumulus/primitives/core",
"cumulus/primitives/parachain-inherent",
@@ -394,6 +395,11 @@ members = [
"substrate/frame/recovery",
"substrate/frame/referenda",
"substrate/frame/remark",
+ "substrate/frame/revive",
+ "substrate/frame/revive/fixtures",
+ "substrate/frame/revive/mock-network",
+ "substrate/frame/revive/proc-macro",
+ "substrate/frame/revive/uapi",
"substrate/frame/root-offences",
"substrate/frame/root-testing",
"substrate/frame/safe-mode",
@@ -522,7 +528,6 @@ members = [
"substrate/utils/prometheus",
"substrate/utils/substrate-bip39",
"substrate/utils/wasm-builder",
- "templates/minimal",
"templates/minimal/node",
"templates/minimal/pallets/template",
"templates/minimal/runtime",
@@ -536,6 +541,7 @@ members = [
]
default-members = [
+ "cumulus/polkadot-parachain",
"polkadot",
"substrate/bin/node/cli",
]
@@ -578,7 +584,7 @@ ahash = { version = "0.8.2" }
alloy-primitives = { version = "0.4.2", default-features = false }
alloy-sol-types = { version = "0.4.2", default-features = false }
always-assert = { version = "0.1" }
-anyhow = { version = "1.0.81" }
+anyhow = { version = "1.0.81", default-features = false }
aquamarine = { version = "0.5.0" }
arbitrary = { version = "1.3.2" }
ark-bls12-377 = { version = "0.4.0", default-features = false }
@@ -615,7 +621,7 @@ bip39 = { version = "2.0.0" }
bitflags = { version = "1.3.2" }
bitvec = { version = "1.0.1", default-features = false }
blake2 = { version = "0.10.4", default-features = false }
-blake2b_simd = { version = "1.0.1", default-features = false }
+blake2b_simd = { version = "1.0.2", default-features = false }
blake3 = { version = "1.5" }
bounded-collections = { version = "0.2.0", default-features = false }
bounded-vec = { version = "0.7" }
@@ -662,12 +668,12 @@ chrono = { version = "0.4.31" }
cid = { version = "0.9.0" }
clap = { version = "4.5.10" }
clap-num = { version = "1.0.2" }
-clap_complete = { version = "4.0.2" }
+clap_complete = { version = "4.5.13" }
coarsetime = { version = "0.1.22" }
codec = { version = "3.6.12", default-features = false, package = "parity-scale-codec" }
collectives-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/collectives/collectives-westend" }
collectives-westend-runtime = { path = "cumulus/parachains/runtimes/collectives/collectives-westend" }
-color-eyre = { version = "0.6.1", default-features = false }
+color-eyre = { version = "0.6.3", default-features = false }
color-print = { version = "0.3.4" }
colored = { version = "2.0.4" }
comfy-table = { version = "7.1.0", default-features = false }
@@ -804,10 +810,11 @@ is-terminal = { version = "0.4.9" }
is_executable = { version = "1.0.1" }
isahc = { version = "1.2" }
itertools = { version = "0.11" }
+jemalloc_pprof = { version = "0.4" }
jobserver = { version = "0.1.26" }
jsonpath_lib = { version = "0.3" }
-jsonrpsee = { version = "0.23.2" }
-jsonrpsee-core = { version = "0.23.2" }
+jsonrpsee = { version = "0.24.3" }
+jsonrpsee-core = { version = "0.24.3" }
k256 = { version = "0.13.3", default-features = false }
kitchensink-runtime = { path = "substrate/bin/node/runtime" }
kvdb = { version = "0.13.0" }
@@ -815,17 +822,17 @@ kvdb-memorydb = { version = "0.13.0" }
kvdb-rocksdb = { version = "0.19.0" }
kvdb-shared-tests = { version = "0.11.0" }
landlock = { version = "0.3.0" }
-lazy_static = { version = "1.4.0" }
+lazy_static = { version = "1.5.0" }
libc = { version = "0.2.155" }
libfuzzer-sys = { version = "0.4" }
libp2p = { version = "0.52.4" }
-libp2p-identity = { version = "0.2.3" }
+libp2p-identity = { version = "0.2.9" }
libsecp256k1 = { version = "0.7.0", default-features = false }
linked-hash-map = { version = "0.5.4" }
linked_hash_set = { version = "0.1.4" }
linregress = { version = "0.5.1" }
lite-json = { version = "0.2.0", default-features = false }
-litep2p = { version = "0.6.2" }
+litep2p = { version = "0.7.0", features = ["websocket"] }
log = { version = "0.4.22", default-features = false }
macro_magic = { version = "0.5.1" }
maplit = { version = "1.0.2" }
@@ -893,7 +900,7 @@ pallet-collator-selection = { path = "cumulus/pallets/collator-selection", defau
pallet-collective = { path = "substrate/frame/collective", default-features = false }
pallet-collective-content = { path = "cumulus/parachains/pallets/collective-content", default-features = false }
pallet-contracts = { path = "substrate/frame/contracts", default-features = false }
-pallet-contracts-fixtures = { path = "substrate/frame/contracts/fixtures" }
+pallet-contracts-fixtures = { path = "substrate/frame/contracts/fixtures", default-features = false }
pallet-contracts-mock-network = { default-features = false, path = "substrate/frame/contracts/mock-network" }
pallet-contracts-proc-macro = { path = "substrate/frame/contracts/proc-macro", default-features = false }
pallet-contracts-uapi = { path = "substrate/frame/contracts/uapi", default-features = false }
@@ -949,6 +956,11 @@ pallet-ranked-collective = { path = "substrate/frame/ranked-collective", default
pallet-recovery = { path = "substrate/frame/recovery", default-features = false }
pallet-referenda = { path = "substrate/frame/referenda", default-features = false }
pallet-remark = { default-features = false, path = "substrate/frame/remark" }
+pallet-revive = { path = "substrate/frame/revive", default-features = false }
+pallet-revive-fixtures = { path = "substrate/frame/revive/fixtures", default-features = false }
+pallet-revive-mock-network = { default-features = false, path = "substrate/frame/revive/mock-network" }
+pallet-revive-proc-macro = { path = "substrate/frame/revive/proc-macro", default-features = false }
+pallet-revive-uapi = { path = "substrate/frame/revive/uapi", default-features = false }
pallet-root-offences = { default-features = false, path = "substrate/frame/root-offences" }
pallet-root-testing = { path = "substrate/frame/root-testing", default-features = false }
pallet-safe-mode = { default-features = false, path = "substrate/frame/safe-mode" }
@@ -1042,6 +1054,7 @@ polkadot-node-subsystem-test-helpers = { path = "polkadot/node/subsystem-test-he
polkadot-node-subsystem-types = { path = "polkadot/node/subsystem-types", default-features = false }
polkadot-node-subsystem-util = { path = "polkadot/node/subsystem-util", default-features = false }
polkadot-overseer = { path = "polkadot/node/overseer", default-features = false }
+polkadot-parachain-lib = { path = "cumulus/polkadot-parachain/polkadot-parachain-lib", default-features = false }
polkadot-parachain-primitives = { path = "polkadot/parachain", default-features = false }
polkadot-primitives = { path = "polkadot/primitives", default-features = false }
polkadot-primitives-test-helpers = { path = "polkadot/primitives/test-helpers" }
@@ -1058,7 +1071,7 @@ polkadot-subsystem-bench = { path = "polkadot/node/subsystem-bench" }
polkadot-test-client = { path = "polkadot/node/test/client" }
polkadot-test-runtime = { path = "polkadot/runtime/test-runtime" }
polkadot-test-service = { path = "polkadot/node/test/service" }
-polkavm = "0.9.3"
+polkavm = { version = "0.9.3", default-features = false }
polkavm-derive = "0.9.1"
polkavm-linker = "0.9.2"
portpicker = { version = "0.1.1" }
@@ -1066,7 +1079,7 @@ pretty_assertions = { version = "1.3.0" }
primitive-types = { version = "0.12.1", default-features = false }
proc-macro-crate = { version = "3.0.0" }
proc-macro-warning = { version = "1.0.0", default-features = false }
-proc-macro2 = { version = "1.0.64" }
+proc-macro2 = { version = "1.0.86" }
procfs = { version = "0.16.0" }
prometheus = { version = "0.13.0", default-features = false }
prometheus-endpoint = { path = "substrate/utils/prometheus", default-features = false, package = "substrate-prometheus-endpoint" }
@@ -1077,7 +1090,7 @@ pyroscope = { version = "0.5.7" }
pyroscope_pprofrs = { version = "0.2.7" }
quick_cache = { version = "0.3" }
quickcheck = { version = "1.0.3", default-features = false }
-quote = { version = "1.0.36" }
+quote = { version = "1.0.37" }
rand = { version = "0.8.5", default-features = false }
rand_chacha = { version = "0.3.1", default-features = false }
rand_core = { version = "0.6.2" }
@@ -1103,7 +1116,7 @@ rstest = { version = "0.18.2" }
rustc-hash = { version = "1.1.0" }
rustc-hex = { version = "2.1.0", default-features = false }
rustix = { version = "0.36.7", default-features = false }
-rustversion = { version = "1.0.6" }
+rustversion = { version = "1.0.17" }
rusty-fork = { version = "0.3.0", default-features = false }
safe-mix = { version = "1.0", default-features = false }
sc-allocator = { path = "substrate/client/allocator", default-features = false }
@@ -1165,17 +1178,17 @@ sc-transaction-pool-api = { path = "substrate/client/transaction-pool/api", defa
sc-utils = { path = "substrate/client/utils", default-features = false }
scale-info = { version = "2.11.1", default-features = false }
schemars = { version = "0.8.13", default-features = false }
-schnellru = { version = "0.2.1" }
+schnellru = { version = "0.2.3" }
schnorrkel = { version = "0.11.4", default-features = false }
seccompiler = { version = "0.4.0" }
secp256k1 = { version = "0.28.0", default-features = false }
secrecy = { version = "0.8.0", default-features = false }
seedling-runtime = { path = "cumulus/parachains/runtimes/starters/seedling" }
separator = { version = "0.4.1" }
-serde = { version = "1.0.204", default-features = false }
+serde = { version = "1.0.210", default-features = false }
serde-big-array = { version = "0.3.2" }
serde_derive = { version = "1.0.117" }
-serde_json = { version = "1.0.121", default-features = false }
+serde_json = { version = "1.0.128", default-features = false }
serde_yaml = { version = "0.9" }
serial_test = { version = "2.0.0" }
sha1 = { version = "0.10.6" }
@@ -1284,7 +1297,7 @@ substrate-test-runtime-client = { path = "substrate/test-utils/runtime/client" }
substrate-test-runtime-transaction-pool = { path = "substrate/test-utils/runtime/transaction-pool" }
substrate-test-utils = { path = "substrate/test-utils" }
substrate-wasm-builder = { path = "substrate/utils/wasm-builder", default-features = false }
-syn = { version = "2.0.53" }
+syn = { version = "2.0.65" }
sysinfo = { version = "0.30" }
tar = { version = "0.4" }
tempfile = { version = "3.8.1" }
@@ -1308,7 +1321,7 @@ tokio-stream = { version = "0.1.14" }
tokio-test = { version = "0.4.2" }
tokio-tungstenite = { version = "0.20.1" }
tokio-util = { version = "0.7.8" }
-toml = { version = "0.8.8" }
+toml = { version = "0.8.12" }
toml_edit = { version = "0.19" }
tower = { version = "0.4.13" }
tower-http = { version = "0.5.2" }
@@ -1319,7 +1332,7 @@ tracing-log = { version = "0.2.0" }
tracing-subscriber = { version = "0.3.18" }
tracking-allocator = { path = "polkadot/node/tracking-allocator", default-features = false, package = "staging-tracking-allocator" }
trie-bench = { version = "0.39.0" }
-trie-db = { version = "0.29.0", default-features = false }
+trie-db = { version = "0.29.1", default-features = false }
trie-root = { version = "0.18.0", default-features = false }
trie-standardmap = { version = "0.16.0" }
trybuild = { version = "1.0.89" }
diff --git a/README.md b/README.md
index 34d657194daa67de18088fb04d3ae878421c6d9f..702c853684cda347fe6c9f7ec7d2e6fcedc25ae6 100644
--- a/README.md
+++ b/README.md
@@ -38,27 +38,15 @@ curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/paritytec
## 🚀 Releases
-> [!NOTE]
-> Our release process is still Work-In-Progress and may not yet reflect the aspired outline
-> here.
-
-The Polkadot-SDK has two release channels: `stable` and `nightly`. Production software is advised to
-only use `stable`. `nightly` is meant for tinkerers to try out the latest features. The detailed
-release process is described in [RELEASE.md](docs/RELEASE.md).
-
-You can use [`psvm`](https://github.com/paritytech/psvm) to manage your Polkadot-SDK dependency
-versions in downstream projects.
-
-### 😌 Stable
-
-`stable` releases have a support duration of **three months**. In this period, the release will not
-have any breaking changes. It will receive bug fixes, security fixes, performance fixes and new
-non-breaking features on a **two week** cadence.
+
+![Current Stable Release](https://raw.githubusercontent.com/paritytech/release-registry/main/badges/polkadot-sdk-latest.svg) ![Next Stable Release](https://raw.githubusercontent.com/paritytech/release-registry/main/badges/polkadot-sdk-next.svg)
-### 🤠 Nightly
+The Polkadot-SDK is released every three months as a `stableYYMMDD` release. They are supported for
+one year with patches. See the next upcoming versions in the [Release
+Registry](https://github.com/paritytech/release-registry/).
-`nightly` releases are released every night from the `master` branch, potentially with breaking
-changes. They have pre-release version numbers in the format `major.0.0-nightlyYYMMDD`.
+You can use [`psvm`](https://github.com/paritytech/psvm) to update all dependencies to a specific
+version without needing to manually select the correct version for each crate.
## 🛠️ Tooling
diff --git a/bridges/bin/runtime-common/Cargo.toml b/bridges/bin/runtime-common/Cargo.toml
index 36f27b6aa0358fcb8027bbfe6e571bc1a50962e6..b8835d55f0da2ad9a88a94f10539f4312950600a 100644
--- a/bridges/bin/runtime-common/Cargo.toml
+++ b/bridges/bin/runtime-common/Cargo.toml
@@ -25,7 +25,6 @@ bp-polkadot-core = { workspace = true }
bp-relayers = { workspace = true }
bp-runtime = { workspace = true }
bp-xcm-bridge-hub = { workspace = true }
-bp-xcm-bridge-hub-router = { workspace = true }
pallet-bridge-grandpa = { workspace = true }
pallet-bridge-messages = { workspace = true }
pallet-bridge-parachains = { workspace = true }
@@ -43,12 +42,15 @@ sp-trie = { optional = true, workspace = true }
# Polkadot dependencies
xcm = { workspace = true }
-xcm-builder = { workspace = true }
[dev-dependencies]
bp-test-utils = { workspace = true }
pallet-balances = { workspace = true }
-pallet-bridge-messages = { features = ["std", "test-helpers"], workspace = true }
+pallet-bridge-messages = { features = [
+ "std",
+ "test-helpers",
+], workspace = true }
+sp-core = { workspace = true }
[features]
default = ["std"]
@@ -60,7 +62,6 @@ std = [
"bp-relayers/std",
"bp-runtime/std",
"bp-test-utils/std",
- "bp-xcm-bridge-hub-router/std",
"bp-xcm-bridge-hub/std",
"codec/std",
"frame-support/std",
@@ -74,12 +75,12 @@ std = [
"pallet-transaction-payment/std",
"pallet-utility/std",
"scale-info/std",
+ "sp-core/std",
"sp-io/std",
"sp-runtime/std",
"sp-std/std",
"sp-trie/std",
"tuplex/std",
- "xcm-builder/std",
"xcm/std",
]
runtime-benchmarks = [
@@ -95,10 +96,6 @@ runtime-benchmarks = [
"pallet-utility/runtime-benchmarks",
"sp-runtime/runtime-benchmarks",
"sp-trie",
- "xcm-builder/runtime-benchmarks",
]
integrity-test = ["static_assertions"]
-test-helpers = [
- "bp-runtime/test-helpers",
- "sp-trie",
-]
+test-helpers = ["bp-runtime/test-helpers", "sp-trie"]
diff --git a/bridges/bin/runtime-common/src/extensions/check_obsolete_extension.rs b/bridges/bin/runtime-common/src/extensions.rs
similarity index 76%
rename from bridges/bin/runtime-common/src/extensions/check_obsolete_extension.rs
rename to bridges/bin/runtime-common/src/extensions.rs
index df75092af6e8b89fb76003cf0bfff508214ea825..dc7e14de28f311817b7bced78e62ff1b5b037b1d 100644
--- a/bridges/bin/runtime-common/src/extensions/check_obsolete_extension.rs
+++ b/bridges/bin/runtime-common/src/extensions.rs
@@ -18,23 +18,20 @@
//! obsolete (duplicated) data or do not pass some additional pallet-specific
//! checks.
-use crate::{
- extensions::refund_relayer_extension::RefundableParachainId,
- messages_call_ext::MessagesCallSubType,
-};
+use bp_parachains::SubmitParachainHeadsInfo;
use bp_relayers::ExplicitOrAccountParams;
use bp_runtime::Parachain;
use pallet_bridge_grandpa::{
BridgedBlockNumber, CallSubType as GrandpaCallSubType, SubmitFinalityProofHelper,
};
-use pallet_bridge_parachains::{
- CallSubType as ParachainsCallSubtype, SubmitParachainHeadsHelper, SubmitParachainHeadsInfo,
-};
+use pallet_bridge_messages::CallSubType as MessagesCallSubType;
+use pallet_bridge_parachains::{CallSubType as ParachainsCallSubtype, SubmitParachainHeadsHelper};
use pallet_bridge_relayers::Pallet as RelayersPallet;
use sp_runtime::{
- traits::{Get, PhantomData, UniqueSaturatedInto},
+ traits::{Get, UniqueSaturatedInto},
transaction_validity::{TransactionPriority, TransactionValidity, ValidTransactionBuilder},
};
+use sp_std::marker::PhantomData;
// Re-export to avoid include tuplex dependency everywhere.
#[doc(hidden)]
@@ -126,17 +123,27 @@ where
/// `(BundledHeaderNumber - 1 - BestKnownHeaderNumber) * Priority::get()`.
/// The boost is only applied if submitter has active registration in the relayers
/// pallet.
-pub struct CheckAndBoostBridgeParachainsTransactions