From 86955eef90138941beabf4143b645d652ac98d14 Mon Sep 17 00:00:00 2001
From: Sergejs Kostjucenko <85877331+sergejparity@users.noreply.github.com>
Date: Thu, 5 Oct 2023 18:05:42 +0300
Subject: [PATCH] Remove deprecated CI config files (#1799)

This PR removes deprecated CI config files
---
 cumulus/.gitattributes                        |   2 -
 cumulus/.github/dependabot.yml                |  31 --
 cumulus/.github/pr-custom-review.yml          |  48 --
 cumulus/.github/workflows/check-D-labels.yml  |  47 --
 cumulus/.github/workflows/check-labels.yml    |  45 --
 cumulus/.github/workflows/docs.yml            |  39 --
 cumulus/.github/workflows/fmt-check.yml       |  22 -
 .../.github/workflows/pr-custom-review.yml    |  42 --
 .../workflows/release-01_branch-check.yml     |  22 -
 .../workflows/release-10_rc-automation.yml    |  87 ----
 ...e-20_extrinsic-ordering-check-from-bin.yml |  86 ----
 ...e-21_extrinsic-ordering-check-from-two.yml | 120 -----
 .../workflows/release-30_create-draft.yml     | 311 -------------
 .../workflows/release-99_bot-announce.yml     |  39 --
 cumulus/.github/workflows/srtool.yml          | 122 ------
 cumulus/.gitlab-ci.yml                        | 201 ---------
 cumulus/scripts/ci/changelog/README.md        |  77 ----
 polkadot/.gitattributes                       |   2 -
 polkadot/.github/dependabot.yml               |  26 --
 polkadot/.github/pr-custom-review.yml         |  42 --
 .../workflows/burnin-label-notification.yml   |  24 -
 polkadot/.github/workflows/check-D-labels.yml |  50 ---
 .../.github/workflows/check-bootnodes.yml     |  31 --
 polkadot/.github/workflows/check-labels.yml   |  45 --
 polkadot/.github/workflows/check-licenses.yml |  26 --
 .../.github/workflows/check-new-bootnodes.yml |  28 --
 polkadot/.github/workflows/check-weights.yml  |  49 ---
 polkadot/.github/workflows/honggfuzz.yml      | 137 ------
 .../.github/workflows/pr-custom-review.yml    |  42 --
 .../workflows/release-01_branch-check.yml     |  21 -
 .../workflows/release-10_candidate.yml        |  71 ---
 ...e-20_extrinsic-ordering-check-from-bin.yml |  81 ----
 ...e-21_extrinsic-ordering-check-from-two.yml |  97 -----
 .../release-30_publish-draft-release.yml      | 199 ---------
 polkadot/.github/workflows/release-99_bot.yml |  49 ---
 polkadot/.gitlab-ci.yml                       | 287 ------------
 substrate/.gitattributes                      |   2 -
 substrate/.github/dependabot.yml              |  12 -
 substrate/.github/pr-custom-review.yml        |  39 --
 substrate/.github/stale.yml                   |  18 -
 .../.github/workflows/auto-label-issues.yml   |  17 -
 .../workflows/burnin-label-notification.yml   |  24 -
 .../.github/workflows/check-D-labels.yml      |  48 --
 substrate/.github/workflows/check-labels.yml  |  45 --
 substrate/.github/workflows/md-link-check.yml |  19 -
 substrate/.github/workflows/mlc_config.json   |   7 -
 substrate/.github/workflows/monthly-tag.yml   |  43 --
 .../.github/workflows/pr-custom-review.yml    |  42 --
 substrate/.github/workflows/release-bot.yml   |  31 --
 .../.github/workflows/release-tagging.yml     |  20 -
 substrate/.gitlab-ci.yml                      | 412 ------------------
 51 files changed, 3427 deletions(-)
 delete mode 100644 cumulus/.gitattributes
 delete mode 100644 cumulus/.github/dependabot.yml
 delete mode 100644 cumulus/.github/pr-custom-review.yml
 delete mode 100644 cumulus/.github/workflows/check-D-labels.yml
 delete mode 100644 cumulus/.github/workflows/check-labels.yml
 delete mode 100644 cumulus/.github/workflows/docs.yml
 delete mode 100644 cumulus/.github/workflows/fmt-check.yml
 delete mode 100644 cumulus/.github/workflows/pr-custom-review.yml
 delete mode 100644 cumulus/.github/workflows/release-01_branch-check.yml
 delete mode 100644 cumulus/.github/workflows/release-10_rc-automation.yml
 delete mode 100644 cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml
 delete mode 100644 cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml
 delete mode 100644 cumulus/.github/workflows/release-30_create-draft.yml
 delete mode 100644 cumulus/.github/workflows/release-99_bot-announce.yml
 delete mode 100644 cumulus/.github/workflows/srtool.yml
 delete mode 100644 cumulus/.gitlab-ci.yml
 delete mode 100644 cumulus/scripts/ci/changelog/README.md
 delete mode 100644 polkadot/.gitattributes
 delete mode 100644 polkadot/.github/dependabot.yml
 delete mode 100644 polkadot/.github/pr-custom-review.yml
 delete mode 100644 polkadot/.github/workflows/burnin-label-notification.yml
 delete mode 100644 polkadot/.github/workflows/check-D-labels.yml
 delete mode 100644 polkadot/.github/workflows/check-bootnodes.yml
 delete mode 100644 polkadot/.github/workflows/check-labels.yml
 delete mode 100644 polkadot/.github/workflows/check-licenses.yml
 delete mode 100644 polkadot/.github/workflows/check-new-bootnodes.yml
 delete mode 100644 polkadot/.github/workflows/check-weights.yml
 delete mode 100644 polkadot/.github/workflows/honggfuzz.yml
 delete mode 100644 polkadot/.github/workflows/pr-custom-review.yml
 delete mode 100644 polkadot/.github/workflows/release-01_branch-check.yml
 delete mode 100644 polkadot/.github/workflows/release-10_candidate.yml
 delete mode 100644 polkadot/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml
 delete mode 100644 polkadot/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml
 delete mode 100644 polkadot/.github/workflows/release-30_publish-draft-release.yml
 delete mode 100644 polkadot/.github/workflows/release-99_bot.yml
 delete mode 100644 polkadot/.gitlab-ci.yml
 delete mode 100644 substrate/.github/dependabot.yml
 delete mode 100644 substrate/.github/pr-custom-review.yml
 delete mode 100644 substrate/.github/stale.yml
 delete mode 100644 substrate/.github/workflows/auto-label-issues.yml
 delete mode 100644 substrate/.github/workflows/burnin-label-notification.yml
 delete mode 100644 substrate/.github/workflows/check-D-labels.yml
 delete mode 100644 substrate/.github/workflows/check-labels.yml
 delete mode 100644 substrate/.github/workflows/md-link-check.yml
 delete mode 100644 substrate/.github/workflows/mlc_config.json
 delete mode 100644 substrate/.github/workflows/monthly-tag.yml
 delete mode 100644 substrate/.github/workflows/pr-custom-review.yml
 delete mode 100644 substrate/.github/workflows/release-bot.yml
 delete mode 100644 substrate/.github/workflows/release-tagging.yml
 delete mode 100644 substrate/.gitlab-ci.yml

diff --git a/cumulus/.gitattributes b/cumulus/.gitattributes
deleted file mode 100644
index 2ea1ab2d6b9..00000000000
--- a/cumulus/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-/.gitlab-ci.yml filter=ci-prettier
-/scripts/ci/gitlab/pipeline/*.yml filter=ci-prettier
diff --git a/cumulus/.github/dependabot.yml b/cumulus/.github/dependabot.yml
deleted file mode 100644
index 349a34690d4..00000000000
--- a/cumulus/.github/dependabot.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-version: 2
-updates:
-  - package-ecosystem: "cargo"
-    directory: "/"
-    labels: ["A2-insubstantial", "B0-silent", "C1-low"]
-    # Handle updates for crates from github.com/paritytech/substrate manually.
-    ignore:
-      - dependency-name: "substrate-*"
-      - dependency-name: "sc-*"
-      - dependency-name: "sp-*"
-      - dependency-name: "frame-*"
-      - dependency-name: "fork-tree"
-      - dependency-name: "frame-remote-externalities"
-      - dependency-name: "pallet-*"
-      - dependency-name: "beefy-*"
-      - dependency-name: "try-runtime-*"
-      - dependency-name: "test-runner"
-      - dependency-name: "generate-bags"
-      - dependency-name: "sub-tokens"
-      - dependency-name: "polkadot-*"
-      - dependency-name: "xcm*"
-      - dependency-name: "kusama-*"
-      - dependency-name: "westend-*"
-      - dependency-name: "rococo-*"
-    schedule:
-      interval: "daily"
-  - package-ecosystem: github-actions
-    directory: '/'
-    labels: ["A2-insubstantial", "B0-silent", "C1-low", "E2-dependencies"]
-    schedule:
-      interval: daily
diff --git a/cumulus/.github/pr-custom-review.yml b/cumulus/.github/pr-custom-review.yml
deleted file mode 100644
index fc26ee677f0..00000000000
--- a/cumulus/.github/pr-custom-review.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-# 🔒 PROTECTED: Changes to locks-review-team should be approved by the current locks-review-team
-locks-review-team: cumulus-locks-review
-team-leads-team: polkadot-review
-action-review-team: ci
-
-rules:
-  - name: Runtime files
-    check_type: changed_files
-    condition: ^parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^parachains/common/src/[^/]+\.rs$
-    all_distinct:
-      - min_approvals: 1
-        teams:
-          - cumulus-locks-review
-      - min_approvals: 1
-        teams:
-          - polkadot-review
-
-  - name: Core developers
-    check_type: changed_files
-    condition:
-      include: .*
-      # excluding files from 'Runtime files' and 'CI files' rules and `Bridges subtree files`
-      exclude: ^parachains/runtimes/assets/(asset-hub-kusama|asset-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/bridge-hubs/(bridge-hub-kusama|bridge-hub-polkadot)/src/[^/]+\.rs$|^parachains/runtimes/collectives/collectives-polkadot/src/[^/]+\.rs$|^parachains/common/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^scripts/ci/.*|^\.github/.*
-    min_approvals: 2
-    teams:
-      - core-devs
-
-  # if there are any changes in the bridges subtree (in case of backport changes back to bridges repo)
-  - name: Bridges subtree files
-    check_type: changed_files
-    condition: ^bridges/.*
-    min_approvals: 1
-    teams:
-      - bridges-core
-
-  - name: CI files
-    check_type: changed_files
-    condition:
-      include: ^\.gitlab-ci\.yml|^scripts/ci/.*|^\.github/.*
-      exclude: ^scripts/ci/gitlab/pipeline/zombienet.yml$
-    min_approvals: 2
-    teams:
-      - ci
-      - release-engineering
-
-prevent-review-request:
-  teams:
-    - core-devs
diff --git a/cumulus/.github/workflows/check-D-labels.yml b/cumulus/.github/workflows/check-D-labels.yml
deleted file mode 100644
index 91062720931..00000000000
--- a/cumulus/.github/workflows/check-D-labels.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-name: Check D labels
-
-on:
-  pull_request:
-    types: [labeled, opened, synchronize, unlabeled]
-    paths:
-      - primitives/**
-
-jobs:
-  check-labels:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Pull image
-        env:
-          IMAGE: paritytech/ruled_labels:0.4.0
-        run: docker pull $IMAGE
-
-      - name: Check labels
-        env:
-          IMAGE: paritytech/ruled_labels:0.4.0
-          MOUNT: /work
-          GITHUB_PR: ${{ github.event.pull_request.number }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          API_BASE: https://api.github.com/repos
-          REPO: ${{ github.repository }}
-          RULES_PATH: labels/ruled_labels
-          CHECK_SPECS: specs_cumulus.yaml
-        run: |
-          echo "REPO: ${REPO}"
-          echo "GITHUB_PR: ${GITHUB_PR}"
-          # Clone repo with labels specs
-          git clone https://github.com/paritytech/labels
-          # Fetch the labels for the PR under test
-          labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
-
-          if [ -z "${labels}" ]; then
-            docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --tags audit --no-label
-          fi
-
-          labels_args=${labels: :-1}
-          printf "Checking labels: %s\n" "${labels_args}"
-
-          # Prevent the shell from splitting labels with spaces
-          IFS=","
-
-          # --dev is more useful to debug mode to debug
-          docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --labels ${labels_args} --dev --tags audit
diff --git a/cumulus/.github/workflows/check-labels.yml b/cumulus/.github/workflows/check-labels.yml
deleted file mode 100644
index 004271d7788..00000000000
--- a/cumulus/.github/workflows/check-labels.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-name: Check labels
-
-on:
-  pull_request:
-    types: [labeled, opened, synchronize, unlabeled]
-
-jobs:
-  check-labels:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Pull image
-        env:
-          IMAGE: paritytech/ruled_labels:0.4.0
-        run: docker pull $IMAGE
-
-      - name: Check labels
-        env:
-          IMAGE: paritytech/ruled_labels:0.4.0
-          MOUNT: /work
-          GITHUB_PR: ${{ github.event.pull_request.number }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          API_BASE: https://api.github.com/repos
-          REPO: ${{ github.repository }}
-          RULES_PATH: labels/ruled_labels
-          CHECK_SPECS: specs_cumulus.yaml
-        run: |
-          echo "REPO: ${REPO}"
-          echo "GITHUB_PR: ${GITHUB_PR}"
-          # Clone repo with labels specs
-          git clone https://github.com/paritytech/labels
-          # Fetch the labels for the PR under test
-          labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
-
-          if [ -z "${labels}" ]; then
-            docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --tags audit --no-label
-          fi
-
-          labels_args=${labels: :-1}
-          printf "Checking labels: %s\n" "${labels_args}"
-
-          # Prevent the shell from splitting labels with spaces
-          IFS=","
-
-          # --dev is more useful to debug mode to debug
-          docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --labels ${labels_args} --dev --tags PR
diff --git a/cumulus/.github/workflows/docs.yml b/cumulus/.github/workflows/docs.yml
deleted file mode 100644
index 6aab3f27be6..00000000000
--- a/cumulus/.github/workflows/docs.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: Publish Rust Docs
-
-on:
-  push:
-    branches:
-      - master
-
-jobs:
-  deploy-docs:
-    name: Deploy docs
-    runs-on: ubuntu-latest
-
-    steps:
-      - name: Install tooling
-        run: |
-          sudo apt-get install -y protobuf-compiler
-          protoc --version
-
-      - name: Checkout repository
-        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
-
-      - name: Rust versions
-        run:  rustup show
-
-      - name: Rust cache
-        uses: Swatinem/rust-cache@e207df5d269b42b69c8bc5101da26f7d31feddb4 # v2.6.2
-
-      - name: Build rustdocs
-        run:  SKIP_WASM_BUILD=1 cargo doc --all --no-deps
-
-      - name: Make index.html
-        run:  echo "<meta http-equiv=refresh content=0;url=cumulus_client_collator/index.html>" > ./target/doc/index.html
-
-      - name: Deploy documentation
-        uses: peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 # v3.9.3
-        with:
-          github_token: ${{ secrets.GITHUB_TOKEN }}
-          publish_branch: gh-pages
-          publish_dir: ./target/doc
diff --git a/cumulus/.github/workflows/fmt-check.yml b/cumulus/.github/workflows/fmt-check.yml
deleted file mode 100644
index 7571c51116b..00000000000
--- a/cumulus/.github/workflows/fmt-check.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-name: Rustfmt check
-
-on:
-  push:
-    branches:
-      - master
-  pull_request:
-    types: [opened, synchronize, reopened, ready_for_review]
-
-jobs:
-  quick_check:
-    strategy:
-      matrix:
-        os: ["ubuntu-latest"]
-    runs-on: ${{ matrix.os }}
-    container:
-      image: paritytech/ci-linux:production
-    steps:
-      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
-
-      - name: Cargo fmt
-        run: cargo +nightly fmt --all -- --check
diff --git a/cumulus/.github/workflows/pr-custom-review.yml b/cumulus/.github/workflows/pr-custom-review.yml
deleted file mode 100644
index 8e40c9ee729..00000000000
--- a/cumulus/.github/workflows/pr-custom-review.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-name: Assign reviewers
-
-on:
-  pull_request:
-    branches:
-      - master
-      - main
-    types:
-      - opened
-      - reopened
-      - synchronize
-      - review_requested
-      - review_request_removed
-      - ready_for_review
-      - converted_to_draft
-  pull_request_review:
-
-jobs:
-  pr-custom-review:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Skip if pull request is in Draft
-        # `if: github.event.pull_request.draft == true` should be kept here, at
-        # the step level, rather than at the job level. The latter is not
-        # recommended because when the PR is moved from "Draft" to "Ready to
-        # review" the workflow will immediately be passing (since it was skipped),
-        # even though it hasn't actually ran, since it takes a few seconds for
-        # the workflow to start. This is also disclosed in:
-        # https://github.community/t/dont-run-actions-on-draft-pull-requests/16817/17
-        # That scenario would open an opportunity for the check to be bypassed:
-        # 1. Get your PR approved
-        # 2. Move it to Draft
-        # 3. Push whatever commits you want
-        # 4. Move it to "Ready for review"; now the workflow is passing (it was
-        #    skipped) and "Check reviews" is also passing (it won't be updated
-        #    until the workflow is finished)
-        if: github.event.pull_request.draft == true
-        run: exit 1
-      - name: pr-custom-review
-        uses: paritytech/pr-custom-review@action-v3
-        with:
-          checks-reviews-api: http://pcr.parity-prod.parity.io/api/v1/check_reviews
diff --git a/cumulus/.github/workflows/release-01_branch-check.yml b/cumulus/.github/workflows/release-01_branch-check.yml
deleted file mode 100644
index afcd4580f17..00000000000
--- a/cumulus/.github/workflows/release-01_branch-check.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-name: Release branch check
-on:
-  push:
-    branches:
-      - release-**v[0-9]+.[0-9]+.[0-9]+ # client
-      - release-**v[0-9]+               # runtimes
-      - polkadot-v[0-9]+.[0-9]+.[0-9]+  # cumulus code
-
-  workflow_dispatch:
-
-jobs:
-  check_branch:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
-        with:
-          fetch-depth: 0
-
-      - name: Run check
-        shell: bash
-        run: ./scripts/ci/github/check-rel-br
diff --git a/cumulus/.github/workflows/release-10_rc-automation.yml b/cumulus/.github/workflows/release-10_rc-automation.yml
deleted file mode 100644
index d1795faef09..00000000000
--- a/cumulus/.github/workflows/release-10_rc-automation.yml
+++ /dev/null
@@ -1,87 +0,0 @@
-name: Release - RC automation
-on:
-  push:
-    branches:
-      - release-v[0-9]+.[0-9]+.[0-9]+
-      - release-parachains-v[0-9]+
-  workflow_dispatch:
-
-jobs:
-  tag_rc:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        channel:
-          - name: 'RelEng: Cumulus Release Coordination'
-            room: '!NAEMyPAHWOiOQHsvus:parity.io'
-            pre-releases: true
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
-        with:
-          fetch-depth: 0
-      - id: compute_tag
-        name: Compute next rc tag
-        shell: bash
-        run: |
-          # Get last rc tag if exists, else set it to {version}-rc1
-          version=${GITHUB_REF#refs/heads/release-}
-          echo "$version"
-          echo "version=$version" >> $GITHUB_OUTPUT
-          git tag -l
-          last_rc=$(git tag -l "$version-rc*" | sort -V | tail -n 1)
-          if [ -n "$last_rc" ]; then
-            suffix=$(echo "$last_rc" | grep -Eo '[0-9]+$')
-            echo $suffix
-            ((suffix++))
-            echo $suffix
-            echo "new_tag=$version-rc$suffix" >> $GITHUB_OUTPUT
-            echo "first_rc=false" >> $GITHUB_OUTPUT
-          else
-            echo "new_tag=$version-rc1" >> $GITHUB_OUTPUT
-            echo "first_rc=true" >> $GITHUB_OUTPUT
-          fi
-
-      - name: Apply new tag
-        uses: tvdias/github-tagger@ed7350546e3e503b5e942dffd65bc8751a95e49d # v0.0.2
-        with:
-          # We can't use the normal GITHUB_TOKEN for the following reason:
-          # https://docs.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token
-          # RELEASE_BRANCH_TOKEN requires public_repo OAuth scope
-          repo-token: "${{ secrets.RELEASE_BRANCH_TOKEN }}"
-          tag: ${{ steps.compute_tag.outputs.new_tag }}
-
-      - id: create-issue-checklist-client
-        uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd # v2.9.1
-        # Only create the issue if it's the first release candidate
-        if: steps.compute_tag.outputs.first_rc == 'true'
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          VERSION: ${{ steps.compute_tag.outputs.version }}
-        with:
-          assignees: EgorPopelyaev, coderobe, chevdor
-          filename: .github/ISSUE_TEMPLATE/release-client.md
-
-      - id: create-issue-checklist-runtime
-        uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd # v2.9.1
-        # Only create the issue if it's the first release candidate
-        if: steps.compute_tag.outputs.first_rc == 'true'
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          VERSION: ${{ steps.compute_tag.outputs.version }}
-        with:
-          assignees: EgorPopelyaev, coderobe, chevdor
-          filename: .github/ISSUE_TEMPLATE/release-runtime.md
-
-      - name: Matrix notification to ${{ matrix.channel.name }}
-        uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
-        if: steps.create-issue-checklist-client.outputs.url != '' && steps.create-issue-checklist-runtime.outputs.url != ''
-        with:
-          room_id: ${{ matrix.channel.room }}
-          access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
-          server: "m.parity.io"
-          message: |
-            The Release Process for Cumulus ${{ steps.compute_tag.outputs.version }} has been started.<br/>
-            Tracking issues:
-              - client: ${{ steps.create-issue-checklist-client.outputs.url }}"
-              - runtime: ${{ steps.create-issue-checklist-runtime.outputs.url }}"
diff --git a/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml b/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml
deleted file mode 100644
index d902e57ac9e..00000000000
--- a/cumulus/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml
+++ /dev/null
@@ -1,86 +0,0 @@
-# This workflow performs the Extrinsic Ordering Check on demand using a binary
-
-name: Release - Extrinsic Ordering Check from Binary
-on:
-  workflow_dispatch:
-    inputs:
-      reference_url:
-        description: The WebSocket url of the reference node
-        default: wss://kusama-asset-hub-rpc.polkadot.io
-        required: true
-      binary_url:
-        description: A url to a Linux binary for the node containing the runtime to test
-        default: https://releases.parity.io/cumulus/polkadot-v0.9.21/polkadot-parachain
-        required: true
-      chain:
-        description: The name of the chain under test. Usually, you would pass a local chain
-        default: asset-hub-kusama-local
-        required: true
-
-jobs:
-  check:
-    name: Run check
-    runs-on: ubuntu-latest
-    env:
-      CHAIN: ${{github.event.inputs.chain}}
-      BIN: node-bin
-      BIN_PATH: ./tmp/$BIN
-      BIN_URL: ${{github.event.inputs.binary_url}}
-      REF_URL: ${{github.event.inputs.reference_url}}
-
-    steps:
-      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
-
-      - name: Fetch binary
-        run: |
-          echo Creating a temp dir to download and run binary
-          mkdir -p tmp
-          echo Fetching $BIN_URL
-          wget $BIN_URL -O $BIN_PATH
-          chmod a+x $BIN_PATH
-          $BIN_PATH --version
-
-      - name: Start local node
-        run: |
-          echo Running on $CHAIN
-          $BIN_PATH --chain=$CHAIN -- --chain polkadot-local &
-
-      - name: Prepare output
-        run: |
-          VERSION=$($BIN_PATH --version)
-          echo "Metadata comparison:" >> output.txt
-          echo "Date: $(date)" >> output.txt
-          echo "Reference: $REF_URL" >> output.txt
-          echo "Target version: $VERSION" >> output.txt
-          echo "Chain: $CHAIN" >> output.txt
-          echo "----------------------------------------------------------------------" >> output.txt
-
-      - name: Pull polkadot-js-tools image
-        run: docker pull jacogr/polkadot-js-tools
-
-      - name: Compare the metadata
-        run: |
-          CMD="docker run --pull always --network host jacogr/polkadot-js-tools metadata $REF_URL ws://localhost:9944"
-          echo -e "Running:\n$CMD"
-          $CMD >> output.txt
-          sed -z -i 's/\n\n/\n/g' output.txt
-          cat output.txt | egrep -n -i ''
-          SUMMARY=$(./scripts/ci/github/extrinsic-ordering-filter.sh output.txt)
-          echo -e $SUMMARY
-          echo -e $SUMMARY >> output.txt
-
-      - name: Show result
-        run: |
-          cat output.txt
-
-      - name: Stop our local node
-        run: |
-          pkill $BIN
-        continue-on-error: true
-
-      - name: Save output as artifact
-        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
-        with:
-          name: ${{ env.CHAIN }}
-          path: |
-            output.txt
diff --git a/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml b/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml
deleted file mode 100644
index 93c0050ff6f..00000000000
--- a/cumulus/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml
+++ /dev/null
@@ -1,120 +0,0 @@
-# This workflow performs the Extrinsic Ordering Check on demand using two reference binaries
-
-name: Release - Extrinsic API Check with reference bins
-on:
-  workflow_dispatch:
-    inputs:
-      reference_binary_url:
-        description: A url to a Linux binary for the node containing the reference runtime to test against
-        default: https://releases.parity.io/cumulus/v0.9.230/polkadot-parachain
-        required: true
-      binary_url:
-        description: A url to a Linux binary for the node containing the runtime to test
-        default: https://releases.parity.io/cumulus/v0.9.270-rc7/polkadot-parachain
-        required: true
-
-jobs:
-  check:
-    name: Run check
-    runs-on: ubuntu-latest
-    timeout-minutes: 10
-    env:
-      REF_URL: ${{github.event.inputs.reference_binary_url}}
-      BIN_REF: polkadot-parachain-ref
-      BIN_URL: ${{github.event.inputs.binary_url}}
-      BIN_BASE: polkadot-parachain
-      TMP: ./tmp
-    strategy:
-      fail-fast: false
-      matrix:
-        include:
-          - runtime: asset-hub-kusama
-            local: asset-hub-kusama-local
-            relay: kusama-local
-          - runtime: asset-hub-polkadot
-            local: asset-hub-polkadot-local
-            relay: polkadot-local
-          - runtime: asset-hub-westend
-            local: asset-hub-westend-local
-            relay: polkadot-local
-          - runtime: contracts-rococo
-            local: contracts-rococo-local
-            relay: polkadot-local
-
-    steps:
-      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
-
-      - name: Create tmp dir
-        run: |
-          mkdir -p $TMP
-          pwd
-
-      - name: Fetch reference binary for ${{ matrix.runtime }}
-        run: |
-          echo Fetching $REF_URL
-          curl $REF_URL -o $TMP/$BIN_REF
-          chmod a+x  $TMP/$BIN_REF
-          $TMP/$BIN_REF --version
-
-      - name: Fetch test binary for ${{ matrix.runtime }}
-        run: |
-          echo Fetching $BIN_URL
-          curl $BIN_URL -o $TMP/$BIN_BASE
-          chmod a+x  $TMP/$BIN_BASE
-          $TMP/$BIN_BASE --version
-
-      - name: Start local reference node for ${{ matrix.runtime }}
-        run: |
-          echo Running reference on ${{ matrix.local }}
-          $TMP/$BIN_REF --chain=${{ matrix.local }} --ws-port=9954 --tmp -- --chain ${{ matrix.relay }} &
-          sleep 15
-
-      - name: Start local test node for ${{ matrix.runtime }}
-        run: |
-          echo Running test on ${{ matrix.local }}
-          $TMP/$BIN_BASE --chain=${{ matrix.local }} --ws-port=9944 --tmp -- --chain ${{ matrix.relay }} &
-          sleep 15
-
-      - name: Prepare output
-        run: |
-          REF_VERSION=$($TMP/$BIN_REF --version)
-          BIN_VERSION=$($TMP/$BIN_BASE --version)
-          echo "Metadata comparison:" >> output.txt
-          echo "Date: $(date)" >> output.txt
-          echo "Ref. binary: $REF_URL" >> output.txt
-          echo "Test binary: $BIN_URL" >> output.txt
-          echo "Ref. version: $REF_VERSION" >> output.txt
-          echo "Test version: $BIN_VERSION" >> output.txt
-          echo "Chain: ${{ matrix.local }}" >> output.txt
-          echo "Relay: ${{ matrix.relay }}" >> output.txt
-          echo "----------------------------------------------------------------------" >> output.txt
-
-      - name: Pull polkadot-js-tools image
-        run: docker pull jacogr/polkadot-js-tools
-
-      - name: Compare the metadata
-        run: |
-          CMD="docker run --pull always --network host jacogr/polkadot-js-tools metadata ws://localhost:9954 ws://localhost:9944"
-          echo -e "Running:\n$CMD"
-          $CMD >> output.txt
-          sed -z -i 's/\n\n/\n/g' output.txt
-          cat output.txt | egrep -n -i ''
-          SUMMARY=$(./scripts/ci/github/extrinsic-ordering-filter.sh output.txt)
-          echo -e $SUMMARY
-          echo -e $SUMMARY >> output.txt
-
-      - name: Show result
-        run: |
-          cat output.txt
-
-      - name: Save output as artifact
-        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
-        with:
-          name: ${{ matrix.runtime }}
-          path: |
-            output.txt
-
-      - name: Stop our local nodes
-        run: |
-          pkill $BIN_REF || true
-          pkill $BIN_BASE || true
diff --git a/cumulus/.github/workflows/release-30_create-draft.yml b/cumulus/.github/workflows/release-30_create-draft.yml
deleted file mode 100644
index 2d11dfe18ce..00000000000
--- a/cumulus/.github/workflows/release-30_create-draft.yml
+++ /dev/null
@@ -1,311 +0,0 @@
-name: Release - Create draft
-
-on:
-  workflow_dispatch:
-    inputs:
-      ref1:
-        description: The 'from' tag to use for the diff
-        default: parachains-v9.0.0
-        required: true
-      ref2:
-        description: The 'to' tag to use for the diff
-        default: release-parachains-v10.0.0
-        required: true
-      release_type:
-        description: Pass "client" for client releases, leave empty otherwise
-        required: false
-      pre_release:
-        description: For pre-releases
-        default: "true"
-        required: true
-      notification:
-        description: Whether or not to notify over Matrix
-        default: "true"
-        required: true
-
-jobs:
-  get-rust-versions:
-    runs-on: ubuntu-latest
-    container:
-      image: paritytech/ci-linux:production
-    outputs:
-      rustc-stable: ${{ steps.get-rust-versions.outputs.stable }}
-      rustc-nightly: ${{ steps.get-rust-versions.outputs.nightly }}
-    steps:
-      - id: get-rust-versions
-        run: |
-          echo "stable=$(rustc +stable --version)" >> $GITHUB_OUTPUT
-          echo "nightly=$(rustc +nightly --version)" >> $GITHUB_OUTPUT
-
-  # We do not skip the entire job for client builds (although we don't need it)
-  # because it is a dep of the next job. However we skip the time consuming steps.
-  build-runtimes:
-    runs-on: ubuntu-latest
-    strategy:
-       matrix:
-        include:
-          - category: assets
-            runtime: asset-hub-kusama
-          - category: assets
-            runtime: asset-hub-polkadot
-          - category: assets
-            runtime: asset-hub-westend
-          - category: bridge-hubs
-            runtime: bridge-hub-polkadot
-          - category: bridge-hubs
-            runtime: bridge-hub-kusama
-          - category: bridge-hubs
-            runtime: bridge-hub-rococo
-          - category: collectives
-            runtime: collectives-polkadot
-          - category: contracts
-            runtime: contracts-rococo
-          - category: starters
-            runtime: seedling
-          - category: starters
-            runtime: shell
-          - category: testing
-            runtime: rococo-parachain
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
-        with:
-          ref: ${{ github.event.inputs.ref2 }}
-
-      - name: Cache target dir
-        if: ${{ github.event.inputs.release_type != 'client' }}
-        uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
-        with:
-          path: "${{ github.workspace }}/runtime/${{ matrix.runtime }}/target"
-          key: srtool-target-${{ matrix.runtime }}-${{ github.sha }}
-          restore-keys: |
-            srtool-target-${{ matrix.runtime }}-
-            srtool-target-
-
-      - name: Build ${{ matrix.runtime }} runtime
-        if: ${{ github.event.inputs.release_type != 'client' }}
-        id: srtool_build
-        uses: chevdor/srtool-actions@v0.7.0
-        with:
-          image: paritytech/srtool
-          chain: ${{ matrix.runtime }}
-          runtime_dir: parachains/runtimes/${{ matrix.category }}/${{ matrix.runtime }}
-
-      - name: Store srtool digest to disk
-        if: ${{ github.event.inputs.release_type != 'client' }}
-        run: |
-          echo '${{ steps.srtool_build.outputs.json }}' | \
-            jq > ${{ matrix.runtime }}-srtool-digest.json
-
-      - name: Upload ${{ matrix.runtime }} srtool json
-        if: ${{ github.event.inputs.release_type != 'client' }}
-        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
-        with:
-          name: ${{ matrix.runtime }}-srtool-json
-          path: ${{ matrix.runtime }}-srtool-digest.json
-
-      - name: Upload ${{ matrix.runtime }} runtime
-        if: ${{ github.event.inputs.release_type != 'client' }}
-        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
-        with:
-          name: ${{ matrix.runtime }}-runtime
-          path: |
-            ${{ steps.srtool_build.outputs.wasm_compressed }}
-
-  publish-draft-release:
-    runs-on: ubuntu-latest
-    needs: ["get-rust-versions", "build-runtimes"]
-    outputs:
-      release_url: ${{ steps.create-release.outputs.html_url }}
-      asset_upload_url: ${{ steps.create-release.outputs.upload_url }}
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
-        with:
-          fetch-depth: 0
-          path: cumulus
-          ref: ${{ github.event.inputs.ref2 }}
-
-      - uses: ruby/setup-ruby@250fcd6a742febb1123a77a841497ccaa8b9e939 # v1.152.0
-        with:
-          ruby-version: 3.0.0
-
-      - name: Download srtool json output
-        uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
-
-      - name: Prepare tooling
-        run: |
-          cd cumulus/scripts/ci/changelog
-          gem install bundler changelogerator:0.9.1
-          bundle install
-          changelogerator --help
-
-          URL=https://github.com/chevdor/tera-cli/releases/download/v0.2.1/tera-cli_linux_amd64.deb
-          wget $URL -O tera.deb
-          sudo dpkg -i tera.deb
-          tera --version
-
-      - name: Generate release notes
-        env:
-          RUSTC_STABLE: ${{ needs.get-rust-versions.outputs.rustc-stable }}
-          RUSTC_NIGHTLY: ${{ needs.get-rust-versions.outputs.rustc-nightly }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          NO_CACHE: 1
-          DEBUG: 1
-          SHELL_DIGEST: ${{ github.workspace}}/shell-srtool-json/shell-srtool-digest.json
-          ASSET_HUB_WESTEND_DIGEST: ${{ github.workspace}}/asset-hub-westend-srtool-json/asset-hub-westend-srtool-digest.json
-          ASSET_HUB_KUSAMA_DIGEST: ${{ github.workspace}}/asset-hub-kusama-srtool-json/asset-hub-kusama-srtool-digest.json
-          ASSET_HUB_POLKADOT_DIGEST: ${{ github.workspace}}/asset-hub-polkadot-srtool-json/asset-hub-polkadot-srtool-digest.json
-          BRIDGE_HUB_ROCOCO_DIGEST: ${{ github.workspace}}/bridge-hub-rococo-srtool-json/bridge-hub-rococo-srtool-digest.json
-          BRIDGE_HUB_KUSAMA_DIGEST: ${{ github.workspace}}/bridge-hub-kusama-srtool-json/bridge-hub-kusama-srtool-digest.json
-          BRIDGE_HUB_POLKADOT_DIGEST: ${{ github.workspace}}/bridge-hub-polkadot-srtool-json/bridge-hub-polkadot-srtool-digest.json
-          COLLECTIVES_POLKADOT_DIGEST: ${{ github.workspace}}/collectives-polkadot-srtool-json/collectives-polkadot-srtool-digest.json
-          ROCOCO_PARA_DIGEST: ${{ github.workspace}}/rococo-parachain-srtool-json/rococo-parachain-srtool-digest.json
-          CANVAS_KUSAMA_DIGEST: ${{ github.workspace}}/contracts-rococo-srtool-json/contracts-rococo-srtool-digest.json
-          REF1: ${{ github.event.inputs.ref1 }}
-          REF2: ${{ github.event.inputs.ref2 }}
-          PRE_RELEASE: ${{ github.event.inputs.pre_release }}
-          RELEASE_TYPE: ${{ github.event.inputs.release_type }}
-        run: |
-          find ${{env.GITHUB_WORKSPACE}} -type f -name "*-srtool-digest.json"
-
-          if [ "$RELEASE_TYPE" != "client" ]; then
-            ls -al $SHELL_DIGEST || true
-            ls -al $ASSET_HUB_WESTEND_DIGEST || true
-            ls -al $ASSET_HUB_KUSAMA_DIGEST || true
-            ls -al $ASSET_HUB_POLKADOT_DIGEST || true
-            ls -al $BRIDGE_HUB_ROCOCO_DIGEST || true
-            ls -al $BRIDGE_HUB_KUSAMA_DIGEST || true
-            ls -al $BRIDGE_HUB_POLKADOT_DIGEST || true
-            ls -al $COLLECTIVES_POLKADOT_DIGEST || true
-            ls -al $ROCOCO_PARA_DIGEST || true
-            ls -al $CANVAS_KUSAMA_DIGEST || true
-          fi
-
-          echo "The diff will be computed from $REF1 to $REF2"
-          cd cumulus/scripts/ci/changelog
-          ./bin/changelog $REF1 $REF2 release-notes.md
-          ls -al {release-notes.md,context.json} || true
-
-      - name: Archive srtool json
-        if: ${{ github.event.inputs.release_type != 'client' }}
-        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
-        with:
-          name: srtool-json
-          path: |
-            **/*-srtool-digest.json
-
-      - name: Archive context artifact
-        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
-        with:
-          name: release-notes-context
-          path: |
-            cumulus/scripts/ci/changelog/context.json
-
-      - name: Create draft release
-        id: create-release
-        uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          body_path: ./cumulus/scripts/ci/changelog/release-notes.md
-          tag_name: ${{ github.event.inputs.ref2 }}
-          release_name: ${{ github.event.inputs.ref2 }}
-          draft: true
-
-  publish-runtimes:
-    if: ${{ github.event.inputs.release_type != 'client' }}
-    runs-on: ubuntu-latest
-    needs: ["publish-draft-release"]
-    env:
-      RUNTIME_DIR: parachains/runtimes
-    strategy:
-       matrix:
-        include:
-          - category: assets
-            runtime: asset-hub-kusama
-          - category: assets
-            runtime: asset-hub-polkadot
-          - category: assets
-            runtime: asset-hub-westend
-          - category: bridge-hubs
-            runtime: bridge-hub-polkadot
-          - category: bridge-hubs
-            runtime: bridge-hub-kusama
-          - category: bridge-hubs
-            runtime: bridge-hub-rococo
-          - category: collectives
-            runtime: collectives-polkadot
-          - category: contracts
-            runtime: contracts-rococo
-          - category: starters
-            runtime: seedling
-          - category: starters
-            runtime: shell
-          - category: testing
-            runtime: rococo-parachain
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
-        with:
-          ref: ${{ github.event.inputs.ref2 }}
-
-      - name: Download artifacts
-        uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
-
-      - uses: ruby/setup-ruby@250fcd6a742febb1123a77a841497ccaa8b9e939 # v1.152.0
-        with:
-          ruby-version: 3.0.0
-
-      - name: Get runtime version for ${{ matrix.runtime }}
-        id: get-runtime-ver
-        run: |
-          echo "require './scripts/ci/github/runtime-version.rb'" > script.rb
-          echo "puts get_runtime(runtime: \"${{ matrix.runtime }}\", runtime_dir: \"$RUNTIME_DIR/${{ matrix.category }}\")" >> script.rb
-
-          echo "Current folder: $PWD"
-          ls "$RUNTIME_DIR/${{ matrix.category }}/${{ matrix.runtime }}"
-          runtime_ver=$(ruby script.rb)
-          echo "Found version: >$runtime_ver<"
-          echo "runtime_ver=$runtime_ver" >> $GITHUB_OUTPUT
-
-      - name: Fix runtime name
-        id: fix-runtime-path
-        run: |
-          cd "${{ matrix.runtime }}-runtime/"
-          mv "$(sed -E 's/- */_/g' <<< ${{ matrix.runtime }})_runtime.compact.compressed.wasm" "${{ matrix.runtime }}_runtime.compact.compressed.wasm" || true
-
-      - name: Upload compressed ${{ matrix.runtime }} wasm
-        uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ needs.publish-draft-release.outputs.asset_upload_url }}
-          asset_path: "${{ matrix.runtime }}-runtime/${{ matrix.runtime }}_runtime.compact.compressed.wasm"
-          asset_name: ${{ matrix.runtime }}_runtime-v${{ steps.get-runtime-ver.outputs.runtime_ver }}.compact.compressed.wasm
-          asset_content_type: application/wasm
-
-  post_to_matrix:
-    if: ${{ github.event.inputs.notification == 'true' }}
-    runs-on: ubuntu-latest
-    needs: publish-draft-release
-    strategy:
-      matrix:
-        channel:
-          - name: 'RelEng: Cumulus Release Coordination'
-            room: '!NAEMyPAHWOiOQHsvus:parity.io'
-            pre-releases: true
-    steps:
-      - name: Matrix notification to ${{ matrix.channel.name }}
-        uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
-        with:
-          room_id: ${{ matrix.channel.room }}
-          access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
-          server: "m.parity.io"
-          message: |
-            **New draft for ${{ github.repository }}**: ${{ github.event.inputs.ref2 }}<br/>
-
-            Draft release created: [draft](${{ needs.publish-draft-release.outputs.release_url }})
-
-            NOTE: The link above will no longer be valid if the draft is edited. You can then use the following link:
-            [${{ github.server_url }}/${{ github.repository }}/releases](${{ github.server_url }}/${{ github.repository }}/releases)
diff --git a/cumulus/.github/workflows/release-99_bot-announce.yml b/cumulus/.github/workflows/release-99_bot-announce.yml
deleted file mode 100644
index 5c2604924c4..00000000000
--- a/cumulus/.github/workflows/release-99_bot-announce.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: Release - Pushes release notes to a Matrix room
-on:
-  release:
-    types:
-      - published
-
-jobs:
-  ping_matrix:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        channel:
-          - name: 'RelEng: Cumulus Release Coordination'
-            room: '!NAEMyPAHWOiOQHsvus:parity.io'
-            pre-releases: true
-          - name: 'Ledger <> Polkadot Coordination'
-            room: '!EoIhaKfGPmFOBrNSHT:web3.foundation'
-            pre-release: true
-          - name: 'General: Rust, Polkadot, Substrate'
-            room: '!aJymqQYtCjjqImFLSb:parity.io'
-            pre-release: false
-          - name: 'Team: DevOps'
-            room: '!lUslSijLMgNcEKcAiE:parity.io'
-            pre-release: true
-
-    steps:
-      - name: Matrix notification to ${{ matrix.channel.name }}
-        uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
-        with:
-          room_id: ${{ matrix.channel.room }}
-          access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
-          server: "m.parity.io"
-          message: |
-            A (pre)release has been ${{github.event.action}} in **${{github.event.repository.full_name}}:**<br/>
-            Release version: [${{github.event.release.tag_name}}](${{github.event.release.html_url}})
-
-            -----
-
-            ${{github.event.release.body}}
diff --git a/cumulus/.github/workflows/srtool.yml b/cumulus/.github/workflows/srtool.yml
deleted file mode 100644
index ae473b48137..00000000000
--- a/cumulus/.github/workflows/srtool.yml
+++ /dev/null
@@ -1,122 +0,0 @@
-name: Srtool build
-
-env:
-  SUBWASM_VERSION: 0.20.0
-
-on:
-  push:
-    tags:
-      - "*"
-
-    # paths-ignore:
-    #   - "docker"
-    #   - "docs"
-    #   - "scripts"
-    #   - "test"
-    #   - "client"
-    paths:
-      - parachains/runtimes/**/*
-
-    branches:
-      - "release*"
-
-  schedule:
-    - cron: "00 02 * * 1" # 2AM weekly on monday
-
-  workflow_dispatch:
-
-jobs:
-  srtool:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        include:
-          - category: assets
-            runtime: asset-hub-kusama
-          - category: assets
-            runtime: asset-hub-polkadot
-          - category: assets
-            runtime: asset-hub-westend
-          - category: bridge-hubs
-            runtime: bridge-hub-polkadot
-          - category: bridge-hubs
-            runtime: bridge-hub-kusama
-          - category: bridge-hubs
-            runtime: bridge-hub-rococo
-          - category: collectives
-            runtime: collectives-polkadot
-          - category: contracts
-            runtime: contracts-rococo
-          - category: starters
-            runtime: seedling
-          - category: starters
-            runtime: shell
-          - category: testing
-            runtime: rococo-parachain
-    steps:
-      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
-        with:
-          fetch-depth: 0
-
-      - name: Srtool build
-        id: srtool_build
-        uses: chevdor/srtool-actions@v0.7.0
-        with:
-          chain: ${{ matrix.runtime }}
-          runtime_dir: parachains/runtimes/${{ matrix.category }}/${{ matrix.runtime }}
-
-      - name: Summary
-        run: |
-          echo '${{ steps.srtool_build.outputs.json }}' | jq > ${{ matrix.runtime }}-srtool-digest.json
-          cat ${{ matrix.runtime }}-srtool-digest.json
-          echo "Compact Runtime: ${{ steps.srtool_build.outputs.wasm }}"
-          echo "Compressed Runtime: ${{ steps.srtool_build.outputs.wasm_compressed }}"
-
-      # it takes a while to build the runtime, so let's save the artifact as soon as we have it
-      - name: Archive Artifacts for ${{ matrix.runtime }}
-        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
-        with:
-          name: ${{ matrix.runtime }}-runtime
-          path: |
-            ${{ steps.srtool_build.outputs.wasm }}
-            ${{ steps.srtool_build.outputs.wasm_compressed }}
-            ${{ matrix.runtime }}-srtool-digest.json
-
-      # We now get extra information thanks to subwasm
-      - name: Install subwasm
-        run: |
-          wget https://github.com/chevdor/subwasm/releases/download/v${{ env.SUBWASM_VERSION }}/subwasm_linux_amd64_v${{ env.SUBWASM_VERSION }}.deb
-          sudo dpkg -i subwasm_linux_amd64_v${{ env.SUBWASM_VERSION }}.deb
-          subwasm --version
-
-      - name: Show Runtime information
-        shell: bash
-        run: |
-          subwasm info ${{ steps.srtool_build.outputs.wasm }}
-          subwasm info ${{ steps.srtool_build.outputs.wasm_compressed }}
-          subwasm --json info ${{ steps.srtool_build.outputs.wasm }} > ${{ matrix.runtime }}-info.json
-          subwasm --json info ${{ steps.srtool_build.outputs.wasm_compressed }} > ${{ matrix.runtime }}-compressed-info.json
-
-      - name: Extract the metadata
-        shell: bash
-        run: |
-          subwasm meta ${{ steps.srtool_build.outputs.wasm }}
-          subwasm --json meta ${{ steps.srtool_build.outputs.wasm }} > ${{ matrix.runtime }}-metadata.json
-
-      - name: Check the metadata diff
-        shell: bash
-        # the following subwasm call will error for chains that are not known and/or live, that includes shell for instance
-        run: |
-          subwasm diff ${{ steps.srtool_build.outputs.wasm }} --chain-b ${{ matrix.runtime }} || \
-            echo "Subwasm call failed, check the logs. This is likely because ${{ matrix.runtime }} is not known by subwasm" | \
-            tee ${{ matrix.runtime }}-diff.txt
-
-      - name: Archive Subwasm results
-        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
-        with:
-          name: ${{ matrix.runtime }}-runtime
-          path: |
-            ${{ matrix.runtime }}-info.json
-            ${{ matrix.runtime }}-compressed-info.json
-            ${{ matrix.runtime }}-metadata.json
-            ${{ matrix.runtime }}-diff.txt
diff --git a/cumulus/.gitlab-ci.yml b/cumulus/.gitlab-ci.yml
deleted file mode 100644
index f032901c6f4..00000000000
--- a/cumulus/.gitlab-ci.yml
+++ /dev/null
@@ -1,201 +0,0 @@
-# .gitlab-ci.yml
-#
-# cumulus
-#
-# pipelines can be triggered manually in the web
-
-stages:
-  - test
-  - build
-  # used for manual job run for regenerate weights for release-* branches (not needed anymore, just leave it here for a while as PlanB)
-  - benchmarks-build
-  # used for manual job run for regenerate weights for release-* branches (not needed anymore, just leave it here for a while as PlanB)
-  - benchmarks-run
-  - publish
-  - integration-tests
-  - zombienet
-  - short-benchmarks
-
-default:
-  interruptible: true
-  retry:
-    max: 2
-    when:
-      - runner_system_failure
-      - unknown_failure
-      - api_failure
-
-variables:
-  GIT_STRATEGY: fetch
-  GIT_DEPTH: 100
-  CARGO_INCREMENTAL: 0
-  CI_IMAGE: !reference [.ci-unified, variables, CI_IMAGE]  
-  DOCKER_OS: "debian:stretch"
-  ARCH: "x86_64"
-  ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.55"
-  BUILDAH_IMAGE: "quay.io/buildah/stable:v1.29"
-  BUILDAH_COMMAND: "buildah --storage-driver overlay2"
-
-.common-before-script:
-  before_script:
-    - !reference [.job-switcher, before_script]
-    - !reference [.timestamp, before_script]
-
-.collect-artifacts:
-  artifacts:
-    name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
-    when: on_success
-    expire_in: 1 days
-    paths:
-      - ./artifacts/
-
-# collecting vars for pipeline stopper
-# they will be used if the job fails
-.pipeline-stopper-vars:
-  before_script:
-    - echo "FAILED_JOB_URL=${CI_JOB_URL}" > pipeline-stopper.env
-    - echo "FAILED_JOB_NAME=${CI_JOB_NAME}" >> pipeline-stopper.env
-    - echo "FAILED_JOB_NAME=${CI_JOB_NAME}" >> pipeline-stopper.env
-    - echo "PR_NUM=${CI_COMMIT_REF_NAME}" >> pipeline-stopper.env
-
-.pipeline-stopper-artifacts:
-  artifacts:
-    reports:
-      dotenv: pipeline-stopper.env
-
-.common-refs:
-  # these jobs run always*
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
-    - if: $CI_COMMIT_REF_NAME =~ /^release-parachains-v[0-9].*$/ # i.e. release-parachains-v1.0, release-parachains-v2.1rc1, release-parachains-v3000
-    - if: $CI_COMMIT_REF_NAME =~ /^polkadot-v[0-9]+\.[0-9]+.*$/ # i.e. polkadot-v1.0.99, polkadot-v2.1rc1
-
-.pr-refs:
-  # these jobs run always*
-  rules:
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-
-.publish-refs:
-  rules:
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
-
-# run benchmarks manually only on release-parachains-v* branch
-.benchmarks-manual-refs:
-  rules:
-    - if: $CI_COMMIT_REF_NAME =~ /^release-parachains-v[0-9].*$/ # i.e. release-parachains-v1.0, release-parachains-v2.1rc1, release-parachains-v3000
-      when: manual
-
-# run benchmarks only on release-parachains-v* branch
-.benchmarks-refs:
-  rules:
-    - if: $CI_COMMIT_REF_NAME =~ /^release-parachains-v[0-9].*$/ # i.e. release-parachains-v1.0, release-parachains-v2.1rc1, release-parachains-v3000
-
-.zombienet-refs:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-      when: never
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-      when: never
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-
-.job-switcher:
-  before_script:
-    - if echo "$CI_DISABLED_JOBS" | grep -xF "$CI_JOB_NAME"; then echo "The job has been cancelled in CI settings"; exit 0; fi
-
-.docker-env:
-  image: "${CI_IMAGE}"
-  before_script:
-    - !reference [.common-before-script, before_script]
-    - rustup show
-    - cargo --version
-    - bash --version
-  tags:
-    - linux-docker-vm-c2
-
-.kubernetes-env:
-  image: "${CI_IMAGE}"
-  before_script:
-    - !reference [.common-before-script, before_script]
-  tags:
-    - kubernetes-parity-build
-
-.git-commit-push:
-  script:
-    - git status
-    # Set git config
-    - rm -rf .git/config
-    - git config --global user.email "${GITHUB_EMAIL}"
-    - git config --global user.name "${GITHUB_USER}"
-    - git config remote.origin.url "https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/paritytech/${CI_PROJECT_NAME}.git"
-    - git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
-    # push results to github
-    - git checkout -b $BRANCHNAME
-    - git add parachains/*
-    - git commit -m "[benchmarks] pr with weights"
-    - git push origin $BRANCHNAME
-
-include:
-  # test jobs
-  - scripts/ci/gitlab/pipeline/test.yml
-  # # build jobs
-  - scripts/ci/gitlab/pipeline/build.yml
-  # short-benchmarks jobs
-  - scripts/ci/gitlab/pipeline/short-benchmarks.yml
-  # # benchmarks jobs
-  # # used for manual job run for regenerate weights for release-* branches (not needed anymore, just leave it here for a while as PlanB)
-  - scripts/ci/gitlab/pipeline/benchmarks.yml
-  # # publish jobs
-  - scripts/ci/gitlab/pipeline/publish.yml
-  # zombienet jobs
-  - scripts/ci/gitlab/pipeline/zombienet.yml
-  # timestamp handler
-  - project: parity/infrastructure/ci_cd/shared
-    ref: main
-    file: /common/timestamp.yml
-  - project: parity/infrastructure/ci_cd/shared
-    ref: main
-    file: /common/ci-unified.yml  
-
-
-#### stage:                        .post
-
-# This job cancels the whole pipeline if any of provided jobs fail.
-# In a DAG, every jobs chain is executed independently of others. The `fail_fast` principle suggests
-# to fail the pipeline as soon as possible to shorten the feedback loop.
-cancel-pipeline:
-  stage: .post
-  needs:
-    - job: test-linux-stable
-  rules:
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-      when: on_failure
-  variables:
-    PROJECT_ID: "${CI_PROJECT_ID}"
-    PROJECT_NAME: "${CI_PROJECT_NAME}"
-    PIPELINE_ID: "${CI_PIPELINE_ID}"
-    FAILED_JOB_URL: "${FAILED_JOB_URL}"
-    FAILED_JOB_NAME: "${FAILED_JOB_NAME}"
-    PR_NUM: "${PR_NUM}"
-  trigger:
-    project: "parity/infrastructure/ci_cd/pipeline-stopper"
-    branch: "as-improve"
-
-remove-cancel-pipeline-message:
-  stage: .post
-  rules:
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-  variables:
-    PROJECT_ID: "${CI_PROJECT_ID}"
-    PROJECT_NAME: "${CI_PROJECT_NAME}"
-    PIPELINE_ID: "${CI_PIPELINE_ID}"
-    FAILED_JOB_URL: "https://gitlab.com"
-    FAILED_JOB_NAME: "nope"
-    PR_NUM: "${CI_COMMIT_REF_NAME}"
-  trigger:
-    project: "parity/infrastructure/ci_cd/pipeline-stopper"
diff --git a/cumulus/scripts/ci/changelog/README.md b/cumulus/scripts/ci/changelog/README.md
deleted file mode 100644
index 5c8ee9c9b91..00000000000
--- a/cumulus/scripts/ci/changelog/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# Changelog
-
-Currently, the changelog is built locally. It will be moved to CI once labels stabilize.
-
-For now, a bit of preparation is required before you can run the script:
-- fetch the srtool digests
-- store them under the `digests` folder as `<chain>-srtool-digest.json`
-- ensure the `.env` file is up to date with correct information
-
-The content of the release notes is generated from the template files under the `scripts/ci/changelog/templates` folder.
-For readability and maintenance, the template is split into several small snippets.
-
-Run:
-```
-./bin/changelog <ref_since> [<ref_until>=HEAD]
-```
-
-For instance:
-```
-./bin/changelog parachains-v7.0.0-rc8
-```
-
-A file called `release-notes.md` will be generated and can be used for the release.
-
-## ENV
-
-You may use the following ENV for testing:
-
-```
-RUSTC_STABLE="rustc 1.56.1 (59eed8a2a 2021-11-01)"
-RUSTC_NIGHTLY="rustc 1.57.0-nightly (51e514c0f 2021-09-12)"
-PRE_RELEASE=true
-HIDE_SRTOOL_ROCOCO=true
-HIDE_SRTOOL_SHELL=true
-REF1=statemine-v5.0.0
-REF2=HEAD
-DEBUG=1
-NO_CACHE=1
-```
-
-By default, the template will include all the information, including the runtime data. For clients releases, we don't
-need those and they can be skipped by setting the following env:
-```
-RELEASE_TYPE=client
-```
-
-## Considered labels
-
-The following list will likely evolve over time and it will be hard to keep it in sync. In any case, if you want to find
-all the labels that are used, search for `meta` in the templates. Currently, the considered labels are:
-
-- Priority: C<N> labels
-- Audit: D<N> labels
-- E4 => new host function
-- B0 => silent, not showing up
-- B1-releasenotes (misc unless other labels)
-- B5-client (client changes)
-- B7-runtimenoteworthy (runtime changes)
-- T6-XCM
-
-Note that labels with the same letter are mutually exclusive. A PR should not have both `B0` and `B5`, or both `C1` and
-`C9`. In case of conflicts, the template will decide which label will be considered.
-
-## Dev and debugging
-
-### Hot Reload
-
-The following command allows **Hot Reload**:
-```
-fswatch templates -e ".*\.md$" | xargs -n1 -I{} ./bin/changelog statemine-v5.0.0
-```
-### Caching
-
-By default, if the changelog data from Github is already present, the calls to the Github API will be skipped and the
-local version of the data will be used. This is much faster. If you know that some labels have changed in Github, you
-probably want to refresh the data. You can then either delete manually the `cumulus.json` file or `export NO_CACHE=1` to
-force refreshing the data.
diff --git a/polkadot/.gitattributes b/polkadot/.gitattributes
deleted file mode 100644
index 2ea1ab2d6b9..00000000000
--- a/polkadot/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-/.gitlab-ci.yml filter=ci-prettier
-/scripts/ci/gitlab/pipeline/*.yml filter=ci-prettier
diff --git a/polkadot/.github/dependabot.yml b/polkadot/.github/dependabot.yml
deleted file mode 100644
index a1fa925970b..00000000000
--- a/polkadot/.github/dependabot.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-version: 2
-updates:
-  - package-ecosystem: "cargo"
-    directory: "/"
-    labels: ["A2-insubstantial", "B0-silent", "C1-low", "E2-dependencies"]
-    # Handle updates for crates from github.com/paritytech/substrate manually.
-    ignore:
-      - dependency-name: "substrate-*"
-      - dependency-name: "sc-*"
-      - dependency-name: "sp-*"
-      - dependency-name: "frame-*"
-      - dependency-name: "fork-tree"
-      - dependency-name: "frame-remote-externalities"
-      - dependency-name: "pallet-*"
-      - dependency-name: "beefy-*"
-      - dependency-name: "try-runtime-*"
-      - dependency-name: "test-runner"
-      - dependency-name: "generate-bags"
-      - dependency-name: "sub-tokens"
-    schedule:
-      interval: "daily"
-  - package-ecosystem: github-actions
-    directory: '/'
-    labels: ["A2-insubstantial", "B0-silent", "C1-low", "E2-dependencies"]
-    schedule:
-      interval: daily
diff --git a/polkadot/.github/pr-custom-review.yml b/polkadot/.github/pr-custom-review.yml
deleted file mode 100644
index 136c9e75ff2..00000000000
--- a/polkadot/.github/pr-custom-review.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-# 🔒 PROTECTED: Changes to locks-review-team should be approved by the current locks-review-team
-locks-review-team: locks-review
-team-leads-team: polkadot-review
-action-review-team: ci
-
-rules:
-  - name: Runtime files
-    check_type: changed_files
-    condition:
-      include: ^runtime\/(kusama|polkadot)\/src\/.+\.rs$
-      exclude: ^runtime\/(kusama|polkadot)\/src\/weights\/.+\.rs$
-    all_distinct:
-      - min_approvals: 1
-        teams:
-          - locks-review
-      - min_approvals: 1
-        teams:
-          - polkadot-review
-
-  - name: Core developers
-    check_type: changed_files
-    condition:
-      include: .*
-      # excluding files from 'Runtime files' and 'CI files' rules
-      exclude: ^runtime/(kusama|polkadot)/src/[^/]+\.rs$|^\.gitlab-ci\.yml|^(?!.*\.dic$|.*spellcheck\.toml$)scripts/ci/.*|^\.github/.*
-    min_approvals: 3
-    teams:
-      - core-devs
-
-  - name: CI files
-    check_type: changed_files
-    condition:
-      # dictionary files are excluded
-      include: ^\.gitlab-ci\.yml|^(?!.*\.dic$|.*spellcheck\.toml$)scripts/ci/.*|^\.github/.*
-    min_approvals: 2
-    teams:
-      - ci
-      - release-engineering
-
-prevent-review-request:
-  teams:
-    - core-devs
diff --git a/polkadot/.github/workflows/burnin-label-notification.yml b/polkadot/.github/workflows/burnin-label-notification.yml
deleted file mode 100644
index 536f8fa2a3f..00000000000
--- a/polkadot/.github/workflows/burnin-label-notification.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: Notify devops when burn-in label applied
-on:
-  pull_request:
-    types: [labeled]
-
-jobs:
-  notify-devops:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        channel:
-          - name: 'Team: DevOps'
-            room: '!lUslSijLMgNcEKcAiE:parity.io'
-
-    steps:
-      - name: Send Matrix message to ${{ matrix.channel.name }}
-        if: startsWith(github.event.label.name, 'A1-')
-        uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
-        with:
-          room_id: ${{ matrix.channel.room }}
-          access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
-          server: m.parity.io
-          message: |
-            @room Burn-in request received for the following PR: ${{ github.event.pull_request.html_url }}
diff --git a/polkadot/.github/workflows/check-D-labels.yml b/polkadot/.github/workflows/check-D-labels.yml
deleted file mode 100644
index 9abefaa6fa1..00000000000
--- a/polkadot/.github/workflows/check-D-labels.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: Check D labels
-
-on:
-  pull_request:
-    types: [labeled, opened, synchronize, unlabeled]
-    paths:
-      - runtime/polkadot/**
-      - runtime/kusama/**
-      - runtime/common/**
-      - primitives/src/**
-
-jobs:
-  check-labels:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Pull image
-        env:
-          IMAGE: paritytech/ruled_labels:0.4.0
-        run: docker pull $IMAGE
-
-      - name: Check labels
-        env:
-          IMAGE: paritytech/ruled_labels:0.4.0
-          MOUNT: /work
-          GITHUB_PR: ${{ github.event.pull_request.number }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          API_BASE: https://api.github.com/repos
-          REPO: ${{ github.repository }}
-          RULES_PATH: labels/ruled_labels
-          CHECK_SPECS: specs_polkadot.yaml
-        run: |
-          echo "REPO: ${REPO}"
-          echo "GITHUB_PR: ${GITHUB_PR}"
-          # Clone repo with labels specs
-          git clone https://github.com/paritytech/labels
-          # Fetch the labels for the PR under test
-          labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
-
-          if [ -z "${labels}" ]; then
-            docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --tags audit --no-label
-          fi
-
-          labels_args=${labels: :-1}
-          printf "Checking labels: %s\n" "${labels_args}"
-
-          # Prevent the shell from splitting labels with spaces
-          IFS=","
-
-          # --dev is more useful to debug mode to debug
-          docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --labels ${labels_args} --dev --tags audit
diff --git a/polkadot/.github/workflows/check-bootnodes.yml b/polkadot/.github/workflows/check-bootnodes.yml
deleted file mode 100644
index 897a90d3ae9..00000000000
--- a/polkadot/.github/workflows/check-bootnodes.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-# checks all networks we care about (kusama, polkadot, westend) and ensures
-# the bootnodes in their respective chainspecs are contactable
-
-name: Check all bootnodes
-on:
-  push:
-    branches:
-      # Catches v1.2.3 and v1.2.3-rc1
-      - release-v[0-9]+.[0-9]+.[0-9]+*
-
-jobs:
-  check_bootnodes:
-    strategy:
-      fail-fast: false
-      matrix:
-        runtime: [westend, kusama, polkadot]
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-      - name: Install polkadot
-        shell: bash
-        run: |
-          curl -L "$(curl -s https://api.github.com/repos/paritytech/polkadot/releases/latest \
-          | jq -r '.assets | .[] | select(.name == "polkadot").browser_download_url')" \
-          | sudo tee /usr/local/bin/polkadot > /dev/null
-          sudo chmod +x /usr/local/bin/polkadot
-          polkadot --version
-      - name: Check ${{ matrix.runtime }} bootnodes
-        shell: bash
-        run: scripts/ci/github/check_bootnodes.sh node/service/chain-specs/${{ matrix.runtime }}.json
diff --git a/polkadot/.github/workflows/check-labels.yml b/polkadot/.github/workflows/check-labels.yml
deleted file mode 100644
index df0a0e9cf02..00000000000
--- a/polkadot/.github/workflows/check-labels.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-name: Check labels
-
-on:
-  pull_request:
-    types: [labeled, opened, synchronize, unlabeled]
-
-jobs:
-  check-labels:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Pull image
-        env:
-          IMAGE: paritytech/ruled_labels:0.4.0
-        run: docker pull $IMAGE
-
-      - name: Check labels
-        env:
-          IMAGE: paritytech/ruled_labels:0.4.0
-          MOUNT: /work
-          GITHUB_PR: ${{ github.event.pull_request.number }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          API_BASE: https://api.github.com/repos
-          REPO: ${{ github.repository }}
-          RULES_PATH: labels/ruled_labels
-          CHECK_SPECS: specs_polkadot.yaml
-        run: |
-          echo "REPO: ${REPO}"
-          echo "GITHUB_PR: ${GITHUB_PR}"
-          # Clone repo with labels specs
-          git clone https://github.com/paritytech/labels
-          # Fetch the labels for the PR under test
-          labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
-
-          if [ -z "${labels}" ]; then
-            docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --tags PR --no-label
-          fi
-
-          labels_args=${labels: :-1}
-          printf "Checking labels: %s\n" "${labels_args}"
-
-          # Prevent the shell from splitting labels with spaces
-          IFS=","
-
-          # --dev is more useful to debug mode to debug
-          docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --labels ${labels_args} --dev --tags PR
diff --git a/polkadot/.github/workflows/check-licenses.yml b/polkadot/.github/workflows/check-licenses.yml
deleted file mode 100644
index 1e654f7b307..00000000000
--- a/polkadot/.github/workflows/check-licenses.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: Check licenses
-
-on:
-  pull_request:
-
-jobs:
-  check-licenses:
-    runs-on: ubuntu-22.04
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-      - uses: actions/setup-node@v3.8.1
-        with:
-          node-version: '18.x'
-          registry-url: 'https://npm.pkg.github.com'
-          scope: '@paritytech'
-      - name: Check the licenses
-        run: |
-          shopt -s globstar
-
-          npx @paritytech/license-scanner@0.0.5 scan \
-            --ensure-licenses=Apache-2.0 \
-            --ensure-licenses=GPL-3.0-only \
-            ./**/*.rs
-        env:
-          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/polkadot/.github/workflows/check-new-bootnodes.yml b/polkadot/.github/workflows/check-new-bootnodes.yml
deleted file mode 100644
index 25b2a0a56fe..00000000000
--- a/polkadot/.github/workflows/check-new-bootnodes.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-# If a chainspec file is updated with new bootnodes, we check to make sure those bootnodes are contactable
-
-name: Check new bootnodes
-on:
-  pull_request:
-    paths:
-      - 'node/service/chain-specs/*.json'
-
-jobs:
-  check_bootnodes:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 0
-      - name: Install polkadot
-        shell: bash
-        run: |
-          curl -L "$(curl -s https://api.github.com/repos/paritytech/polkadot/releases/latest \
-          | jq -r '.assets | .[] | select(.name == "polkadot").browser_download_url')" \
-          | sudo tee /usr/local/bin/polkadot > /dev/null
-          sudo chmod +x /usr/local/bin/polkadot
-          polkadot --version
-      - name: Check new bootnodes
-        shell: bash
-        run: |
-          scripts/ci/github/check_new_bootnodes.sh
diff --git a/polkadot/.github/workflows/check-weights.yml b/polkadot/.github/workflows/check-weights.yml
deleted file mode 100644
index e6a6c43e0a6..00000000000
--- a/polkadot/.github/workflows/check-weights.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-name: Check updated weights
-
-on:
-  pull_request:
-    paths:
-      - 'runtime/*/src/weights/**'
-
-jobs:
-  check_weights_files:
-    strategy:
-      fail-fast: false
-      matrix:
-        runtime: [westend, kusama, polkadot, rococo]
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-      - name: Check weights files
-        shell: bash
-        run: |
-          scripts/ci/github/verify_updated_weights.sh ${{ matrix.runtime }}
-
-  # This job uses https://github.com/ggwpez/substrate-weight-compare to compare the weights of the current
-  # release with the last release, then adds them as a comment to the PR.
-  check_weight_changes:
-    strategy:
-      fail-fast: false
-      matrix:
-        runtime: [westend, kusama, polkadot, rococo]
-    runs-on: ubuntu-latest
-    steps:
-      - name: Get latest release
-        run: |
-          LAST_RELEASE=$(curl -s https://api.github.com/repos/paritytech/polkadot/releases/latest | jq -r .tag_name)
-          echo "LAST_RELEASE=$LAST_RELEASE" >> $GITHUB_ENV
-      - name: Checkout current sources
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 0
-      - name: Check weight changes
-        shell: bash
-        run: |
-          cargo install --git https://github.com/ggwpez/substrate-weight-compare swc
-          ./scripts/ci/github/check_weights_swc.sh ${{ matrix.runtime }} "$LAST_RELEASE" | tee swc_output_${{ matrix.runtime }}.md
-      - name: Add comment
-        uses: thollander/actions-comment-pull-request@v2
-        with:
-          filePath: ./swc_output_${{ matrix.runtime }}.md
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/polkadot/.github/workflows/honggfuzz.yml b/polkadot/.github/workflows/honggfuzz.yml
deleted file mode 100644
index 27fa0d9967f..00000000000
--- a/polkadot/.github/workflows/honggfuzz.yml
+++ /dev/null
@@ -1,137 +0,0 @@
-name: Run nightly fuzzer jobs
-
-on:
-  schedule:
-    - cron: '0 0 * * *'
-
-jobs:
-  xcm-fuzzer:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 1
-
-      - name: Install minimal stable Rust
-        uses: actions-rs/toolchain@v1
-        with:
-          profile: minimal
-          toolchain: stable
-          override: true
-
-      - name: Install minimal nightly Rust
-        uses: actions-rs/toolchain@v1
-        with:
-          profile: minimal
-          toolchain: nightly
-          target: wasm32-unknown-unknown
-
-      - name: Install honggfuzz deps
-        run: sudo apt-get install --no-install-recommends binutils-dev libunwind8-dev
-
-      - name: Install honggfuzz
-        uses: actions-rs/cargo@v1
-        with:
-          command: install
-          args: honggfuzz --version "0.5.54"
-
-      - name: Build fuzzer binaries
-        working-directory: xcm/xcm-simulator/fuzzer/
-        run: cargo hfuzz build
-
-      - name: Run fuzzer
-        working-directory: xcm/xcm-simulator/fuzzer/
-        run: bash $GITHUB_WORKSPACE/scripts/ci/github/run_fuzzer.sh xcm-fuzzer
-
-  erasure-coding-round-trip:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 1
-
-      - name: Cache Seed
-        id: cache-seed-round-trip
-        uses: actions/cache@v3
-        with:
-          path: erasure-coding/fuzzer/hfuzz_workspace
-          key: ${{ runner.os }}-erasure-coding
-
-      - name: Install minimal stable Rust
-        uses: actions-rs/toolchain@v1
-        with:
-          profile: minimal
-          toolchain: stable
-          override: true
-
-      - name: Install minimal nightly Rust
-        uses: actions-rs/toolchain@v1
-        with:
-          profile: minimal
-          toolchain: nightly
-          target: wasm32-unknown-unknown
-
-      - name: Install honggfuzz deps
-        run: sudo apt-get install --no-install-recommends binutils-dev libunwind8-dev
-
-      - name: Install honggfuzz
-        uses: actions-rs/cargo@v1
-        with:
-          command: install
-          args: honggfuzz --version "0.5.54"
-
-      - name: Build fuzzer binaries
-        working-directory: erasure-coding/fuzzer
-        run: cargo hfuzz build
-
-      - name: Run fuzzer
-        working-directory: erasure-coding/fuzzer
-        run: bash $GITHUB_WORKSPACE/scripts/ci/github/run_fuzzer.sh round_trip
-
-  erasure-coding-reconstruct:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 1
-
-      - name: Cache Seed
-        id: cache-seed-reconstruct
-        uses: actions/cache@v3
-        with:
-          path: erasure-coding/fuzzer/hfuzz_workspace
-          key: ${{ runner.os }}-erasure-coding
-
-      - name: Install minimal stable Rust
-        uses: actions-rs/toolchain@v1
-        with:
-          profile: minimal
-          toolchain: stable
-          override: true
-
-      - name: Install minimal nightly Rust
-        uses: actions-rs/toolchain@v1
-        with:
-          profile: minimal
-          toolchain: nightly
-          target: wasm32-unknown-unknown
-
-      - name: Install honggfuzz deps
-        run: sudo apt-get install --no-install-recommends binutils-dev libunwind8-dev
-
-      - name: Install honggfuzz
-        uses: actions-rs/cargo@v1
-        with:
-          command: install
-          args: honggfuzz --version "0.5.54"
-
-      - name: Build fuzzer binaries
-        working-directory: erasure-coding/fuzzer
-        run: cargo hfuzz build
-
-      - name: Run fuzzer
-        working-directory: erasure-coding/fuzzer
-        run: bash $GITHUB_WORKSPACE/scripts/ci/github/run_fuzzer.sh reconstruct
diff --git a/polkadot/.github/workflows/pr-custom-review.yml b/polkadot/.github/workflows/pr-custom-review.yml
deleted file mode 100644
index 8e40c9ee729..00000000000
--- a/polkadot/.github/workflows/pr-custom-review.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-name: Assign reviewers
-
-on:
-  pull_request:
-    branches:
-      - master
-      - main
-    types:
-      - opened
-      - reopened
-      - synchronize
-      - review_requested
-      - review_request_removed
-      - ready_for_review
-      - converted_to_draft
-  pull_request_review:
-
-jobs:
-  pr-custom-review:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Skip if pull request is in Draft
-        # `if: github.event.pull_request.draft == true` should be kept here, at
-        # the step level, rather than at the job level. The latter is not
-        # recommended because when the PR is moved from "Draft" to "Ready to
-        # review" the workflow will immediately be passing (since it was skipped),
-        # even though it hasn't actually ran, since it takes a few seconds for
-        # the workflow to start. This is also disclosed in:
-        # https://github.community/t/dont-run-actions-on-draft-pull-requests/16817/17
-        # That scenario would open an opportunity for the check to be bypassed:
-        # 1. Get your PR approved
-        # 2. Move it to Draft
-        # 3. Push whatever commits you want
-        # 4. Move it to "Ready for review"; now the workflow is passing (it was
-        #    skipped) and "Check reviews" is also passing (it won't be updated
-        #    until the workflow is finished)
-        if: github.event.pull_request.draft == true
-        run: exit 1
-      - name: pr-custom-review
-        uses: paritytech/pr-custom-review@action-v3
-        with:
-          checks-reviews-api: http://pcr.parity-prod.parity.io/api/v1/check_reviews
diff --git a/polkadot/.github/workflows/release-01_branch-check.yml b/polkadot/.github/workflows/release-01_branch-check.yml
deleted file mode 100644
index f2b559b7c17..00000000000
--- a/polkadot/.github/workflows/release-01_branch-check.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-name: Release - Branch check
-on:
-  push:
-    branches:
-      # Catches v1.2.3 and v1.2.3-rc1
-      - release-v[0-9]+.[0-9]+.[0-9]+*
-
-  workflow_dispatch:
-
-jobs:
-  check_branch:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 0
-
-      - name: Run check
-        shell: bash
-        run: ./scripts/ci/github/check-rel-br
diff --git a/polkadot/.github/workflows/release-10_candidate.yml b/polkadot/.github/workflows/release-10_candidate.yml
deleted file mode 100644
index 54a937a7819..00000000000
--- a/polkadot/.github/workflows/release-10_candidate.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-name: Release - RC automation
-on:
-  push:
-    branches:
-      # Catches v1.2.3 and v1.2.3-rc1
-      - release-v[0-9]+.[0-9]+.[0-9]+*
-jobs:
-  tag_rc:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        channel:
-          - name: "RelEng: Polkadot Release Coordination"
-            room: '!cqAmzdIcbOFwrdrubV:parity.io'
-
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 0
-      - id: compute_tag
-        name: Compute next rc tag
-        shell: bash
-        run: |
-          # Get last rc tag if exists, else set it to {version}-rc1
-          version=${GITHUB_REF#refs/heads/release-}
-          echo "$version"
-          echo "version=$version" >> $GITHUB_OUTPUT
-          git tag -l
-          last_rc=$(git tag -l "$version-rc*" | sort -V | tail -n 1)
-          if [ -n "$last_rc" ]; then
-            suffix=$(echo "$last_rc" | grep -Eo '[0-9]+$')
-            echo $suffix
-            ((suffix++))
-            echo $suffix
-            echo "new_tag=$version-rc$suffix" >> $GITHUB_OUTPUT
-            echo "first_rc=false" >> $GITHUB_OUTPUT
-          else
-            echo "new_tag=$version-rc1" >> $GITHUB_OUTPUT
-            echo "first_rc=true" >> $GITHUB_OUTPUT
-          fi
-
-      - name: Apply new tag
-        uses: tvdias/github-tagger@ed7350546e3e503b5e942dffd65bc8751a95e49d # v0.0.2
-        with:
-          # We can't use the normal GITHUB_TOKEN for the following reason:
-          # https://docs.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token
-          # RELEASE_BRANCH_TOKEN requires public_repo OAuth scope
-          repo-token: "${{ secrets.RELEASE_BRANCH_TOKEN }}"
-          tag: ${{ steps.compute_tag.outputs.new_tag }}
-
-      - id: create-issue
-        uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd # v2.9.1
-        # Only create the issue if it's the first release candidate
-        if: steps.compute_tag.outputs.first_rc == 'true'
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          VERSION: ${{ steps.compute_tag.outputs.version }}
-        with:
-          filename: .github/ISSUE_TEMPLATE/release.md
-
-      - name: Send Matrix message to ${{ matrix.channel.name }}
-        uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
-        if: steps.create-issue.outputs.url != ''
-        with:
-          room_id: ${{ matrix.channel.room }}
-          access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
-          server: m.parity.io
-          message: |
-            Release process for polkadot ${{ steps.compute_tag.outputs.version }} has been started.<br/>
-            Tracking issue: ${{ steps.create-issue.outputs.url }}
diff --git a/polkadot/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml b/polkadot/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml
deleted file mode 100644
index 0613ed04d35..00000000000
--- a/polkadot/.github/workflows/release-20_extrinsic-ordering-check-from-bin.yml
+++ /dev/null
@@ -1,81 +0,0 @@
-# This workflow performs the Extrinsic Ordering Check on demand using a binary
-
-name: Release - Extrinsic Ordering Check
-on:
-  workflow_dispatch:
-    inputs:
-      reference_url:
-        description: The WebSocket url of the reference node
-        default: wss://kusama-rpc.polkadot.io
-        required: true
-      binary_url:
-        description: A url to a Linux binary for the node containing the runtime to test
-        default: https://releases.parity.io/polkadot/x86_64-debian:stretch/v0.9.10/polkadot
-        required: true
-      chain:
-        description: The name of the chain under test. Usually, you would pass a local chain
-        default: kusama-local
-        required: true
-
-jobs:
-  check:
-    name: Run check
-    runs-on: ubuntu-latest
-    env:
-      CHAIN: ${{github.event.inputs.chain}}
-      BIN_URL: ${{github.event.inputs.binary_url}}
-      REF_URL: ${{github.event.inputs.reference_url}}
-
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-
-      - name: Fetch binary
-        run: |
-          echo Fetching $BIN_URL
-          wget $BIN_URL
-          chmod a+x polkadot
-          ./polkadot --version
-
-      - name: Start local node
-        run: |
-          echo Running on $CHAIN
-          ./polkadot --chain=$CHAIN &
-
-      - name: Prepare output
-        run: |
-          VERSION=$(./polkadot --version)
-          echo "Metadata comparison:" >> output.txt
-          echo "Date: $(date)" >> output.txt
-          echo "Reference: $REF_URL" >> output.txt
-          echo "Target version: $VERSION" >> output.txt
-          echo "Chain: $CHAIN" >> output.txt
-          echo "----------------------------------------------------------------------" >> output.txt
-
-      - name: Pull polkadot-js-tools image
-        run: docker pull jacogr/polkadot-js-tools
-
-      - name: Compare the metadata
-        run: |
-          CMD="docker run --pull always --network host jacogr/polkadot-js-tools metadata $REF_URL ws://localhost:9944"
-          echo -e "Running:\n$CMD"
-          $CMD >> output.txt
-          sed -z -i 's/\n\n/\n/g' output.txt
-          cat output.txt | egrep -n -i ''
-          SUMMARY=$(./scripts/ci/github/extrinsic-ordering-filter.sh output.txt)
-          echo -e $SUMMARY
-          echo -e $SUMMARY >> output.txt
-
-      - name: Show result
-        run: |
-          cat output.txt
-
-      - name: Stop our local node
-        run: pkill polkadot
-
-      - name: Save output as artifact
-        uses: actions/upload-artifact@v3
-        with:
-          name: ${{ env.CHAIN }}
-          path: |
-            output.txt
diff --git a/polkadot/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml b/polkadot/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml
deleted file mode 100644
index 6513897f4a1..00000000000
--- a/polkadot/.github/workflows/release-21_extrinsic-ordering-check-from-two.yml
+++ /dev/null
@@ -1,97 +0,0 @@
-# This workflow performs the Extrinsic Ordering Check on demand using two reference binaries
-
-name: Release - Extrinsic API Check with reference bins
-on:
-  workflow_dispatch:
-    inputs:
-      reference_binary_url:
-        description: A url to a Linux binary for the node containing the reference runtime to test against
-        default: https://releases.parity.io/polkadot/x86_64-debian:stretch/v0.9.26/polkadot
-        required: true
-      binary_url:
-        description: A url to a Linux binary for the node containing the runtime to test
-        default: https://releases.parity.io/polkadot/x86_64-debian:stretch/v0.9.27-rc1/polkadot
-        required: true
-
-jobs:
-  check:
-    name: Run check
-    runs-on: ubuntu-latest
-    env:
-      BIN_URL: ${{github.event.inputs.binary_url}}
-      REF_URL: ${{github.event.inputs.reference_binary_url}}
-    strategy:
-      fail-fast: false
-      matrix:
-        chain: [polkadot, kusama, westend, rococo]
-
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-
-      - name: Fetch reference binary
-        run: |
-          echo Fetching $REF_URL
-          curl $REF_URL -o polkadot-ref
-          chmod a+x polkadot-ref
-          ./polkadot-ref --version
-
-      - name: Fetch test binary
-        run: |
-          echo Fetching $BIN_URL
-          curl $BIN_URL -o polkadot
-          chmod a+x polkadot
-          ./polkadot --version
-
-      - name: Start local reference node
-        run: |
-          echo Running reference on ${{ matrix.chain }}-local
-          ./polkadot-ref --chain=${{ matrix.chain }}-local --rpc-port=9934 --ws-port=9945 --base-path=polkadot-ref-base/ &
-
-      - name: Start local test node
-        run: |
-          echo Running test on ${{ matrix.chain }}-local
-          ./polkadot --chain=${{ matrix.chain }}-local &
-
-      - name: Prepare output
-        run: |
-          REF_VERSION=$(./polkadot-ref --version)
-          BIN_VERSION=$(./polkadot --version)
-          echo "Metadata comparison:" >> output.txt
-          echo "Date: $(date)" >> output.txt
-          echo "Ref. binary: $REF_URL" >> output.txt
-          echo "Test binary: $BIN_URL" >> output.txt
-          echo "Ref. version: $REF_VERSION" >> output.txt
-          echo "Test version: $BIN_VERSION" >> output.txt
-          echo "Chain: ${{ matrix.chain }}-local" >> output.txt
-          echo "----------------------------------------------------------------------" >> output.txt
-
-      - name: Pull polkadot-js-tools image
-        run: docker pull jacogr/polkadot-js-tools
-
-      - name: Compare the metadata
-        run: |
-          CMD="docker run --pull always --network host jacogr/polkadot-js-tools metadata ws://localhost:9945 ws://localhost:9944"
-          echo -e "Running:\n$CMD"
-          $CMD >> output.txt
-          sed -z -i 's/\n\n/\n/g' output.txt
-          cat output.txt | egrep -n -i ''
-          SUMMARY=$(./scripts/ci/github/extrinsic-ordering-filter.sh output.txt)
-          echo -e $SUMMARY
-          echo -e $SUMMARY >> output.txt
-
-      - name: Show result
-        run: |
-          cat output.txt
-
-      - name: Save output as artifact
-        uses: actions/upload-artifact@v3
-        with:
-          name: ${{ matrix.chain }}
-          path: |
-            output.txt
-
-      - name: Stop our local nodes
-        run: |
-          pkill polkadot-ref
-          pkill polkadot
diff --git a/polkadot/.github/workflows/release-30_publish-draft-release.yml b/polkadot/.github/workflows/release-30_publish-draft-release.yml
deleted file mode 100644
index 206b1871d80..00000000000
--- a/polkadot/.github/workflows/release-30_publish-draft-release.yml
+++ /dev/null
@@ -1,199 +0,0 @@
-name: Release - Publish draft
-
-on:
-  push:
-    tags:
-      # Catches v1.2.3 and v1.2.3-rc1
-      - v[0-9]+.[0-9]+.[0-9]+*
-
-jobs:
-  get-rust-versions:
-    runs-on: ubuntu-latest
-    container:
-      image: paritytech/ci-linux:production
-    outputs:
-      rustc-stable: ${{ steps.get-rust-versions.outputs.stable }}
-      rustc-nightly: ${{ steps.get-rust-versions.outputs.nightly }}
-    steps:
-      - id: get-rust-versions
-        run: |
-          echo "stable=$(rustc +stable --version)" >> $GITHUB_OUTPUT
-          echo "nightly=$(rustc +nightly --version)" >> $GITHUB_OUTPUT
-
-  build-runtimes:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        runtime: ["polkadot", "kusama", "westend", "rococo"]
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-
-      - name: Cache target dir
-        uses: actions/cache@v3
-        with:
-          path: "${{ github.workspace }}/runtime/${{ matrix.runtime }}/target"
-          key: srtool-target-${{ matrix.runtime }}-${{ github.sha }}
-          restore-keys: |
-            srtool-target-${{ matrix.runtime }}-
-            srtool-target-
-
-      - name: Build ${{ matrix.runtime }} runtime
-        id: srtool_build
-        uses: chevdor/srtool-actions@v0.8.0
-        with:
-          image: paritytech/srtool
-          chain: ${{ matrix.runtime }}
-
-      - name: Store srtool digest to disk
-        run: |
-          echo '${{ steps.srtool_build.outputs.json }}' | jq > ${{ matrix.runtime }}_srtool_output.json
-
-      - name: Upload ${{ matrix.runtime }} srtool json
-        uses: actions/upload-artifact@v3
-        with:
-          name: ${{ matrix.runtime }}-srtool-json
-          path: ${{ matrix.runtime }}_srtool_output.json
-
-      - name: Upload ${{ matrix.runtime }} runtime
-        uses: actions/upload-artifact@v3
-        with:
-          name: ${{ matrix.runtime }}-runtime
-          path: |
-            ${{ steps.srtool_build.outputs.wasm_compressed }}
-
-  publish-draft-release:
-    runs-on: ubuntu-latest
-    needs: ["get-rust-versions", "build-runtimes"]
-    outputs:
-      release_url: ${{ steps.create-release.outputs.html_url }}
-      asset_upload_url: ${{ steps.create-release.outputs.upload_url }}
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 0
-          path: polkadot
-
-      - name: Set up Ruby
-        uses: ruby/setup-ruby@v1
-        with:
-          ruby-version: 3.0.0
-
-      - name: Download srtool json output
-        uses: actions/download-artifact@v3
-
-      - name: Prepare tooling
-        run: |
-          cd polkadot/scripts/ci/changelog
-          gem install bundler changelogerator:0.9.1
-          bundle install
-          changelogerator --help
-
-          URL=https://github.com/chevdor/tera-cli/releases/download/v0.2.1/tera-cli_linux_amd64.deb
-          wget $URL -O tera.deb
-          sudo dpkg -i tera.deb
-          tera --version
-
-      - name: Generate release notes
-        env:
-          RUSTC_STABLE: ${{ needs.get-rust-versions.outputs.rustc-stable }}
-          RUSTC_NIGHTLY: ${{ needs.get-rust-versions.outputs.rustc-nightly }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          NO_CACHE: 1
-          DEBUG: 1
-          ROCOCO_DIGEST: ${{ github.workspace}}/rococo-srtool-json/rococo_srtool_output.json
-          WESTEND_DIGEST: ${{ github.workspace}}/westend-srtool-json/westend_srtool_output.json
-          KUSAMA_DIGEST: ${{ github.workspace}}/kusama-srtool-json/kusama_srtool_output.json
-          POLKADOT_DIGEST: ${{ github.workspace}}/polkadot-srtool-json/polkadot_srtool_output.json
-          PRE_RELEASE: ${{ github.event.inputs.pre_release }}
-        run: |
-          find ${{env.GITHUB_WORKSPACE}} -type f -name "*_srtool_output.json"
-          ls -al $ROCOCO_DIGEST
-          ls -al $WESTEND_DIGEST
-          ls -al $KUSAMA_DIGEST
-          ls -al $POLKADOT_DIGEST
-
-          cd polkadot/scripts/ci/changelog
-
-          ./bin/changelog ${GITHUB_REF}
-          ls -al release-notes.md
-          ls -al context.json
-
-      - name: Archive artifact context.json
-        uses: actions/upload-artifact@v3
-        with:
-          name: release-notes-context
-          path: |
-            polkadot/scripts/ci/changelog/context.json
-            **/*_srtool_output.json
-
-      - name: Create draft release
-        id: create-release
-        uses: actions/create-release@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          tag_name: ${{ github.ref }}
-          release_name: Polkadot ${{ github.ref }}
-          body_path: ./polkadot/scripts/ci/changelog/release-notes.md
-          draft: true
-
-  publish-runtimes:
-    runs-on: ubuntu-latest
-    needs: ["publish-draft-release"]
-    env:
-      RUNTIME_DIR: runtime
-    strategy:
-      matrix:
-        runtime: ["polkadot", "kusama", "westend", "rococo"]
-    steps:
-      - name: Checkout sources
-        uses: actions/checkout@v3
-      - name: Download artifacts
-        uses: actions/download-artifact@v3
-      - name: Set up Ruby
-        uses: ruby/setup-ruby@v1
-        with:
-          ruby-version: 3.0.0
-      - name: Get runtime version
-        id: get-runtime-ver
-        run: |
-          echo "require './scripts/ci/github/lib.rb'" > script.rb
-          echo "puts get_runtime(runtime: \"${{ matrix.runtime }}\", runtime_dir: \"$RUNTIME_DIR\")" >> script.rb
-
-          echo "Current folder: $PWD"
-          ls "$RUNTIME_DIR/${{ matrix.runtime }}"
-          runtime_ver=$(ruby script.rb)
-          echo "Found version: >$runtime_ver<"
-          echo "runtime_ver=$runtime_ver" >> $GITHUB_OUTPUT
-
-      - name: Upload compressed ${{ matrix.runtime }} wasm
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ needs.publish-draft-release.outputs.asset_upload_url }}
-          asset_path: "${{ matrix.runtime }}-runtime/${{ matrix.runtime }}_runtime.compact.compressed.wasm"
-          asset_name: ${{ matrix.runtime }}_runtime-v${{ steps.get-runtime-ver.outputs.runtime_ver }}.compact.compressed.wasm
-          asset_content_type: application/wasm
-
-  post_to_matrix:
-    runs-on: ubuntu-latest
-    needs: publish-draft-release
-    strategy:
-      matrix:
-        channel:
-          - name: "RelEng: Polkadot Release Coordination"
-            room: '!cqAmzdIcbOFwrdrubV:parity.io'
-
-    steps:
-      - name: Send Matrix message to ${{ matrix.channel.name }}
-        uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
-        with:
-          room_id: ${{ matrix.channel.room }}
-          access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
-          server: m.parity.io
-          message: |
-            **New version of polkadot tagged**: ${{ github.ref }}<br/>
-            Draft release created: ${{ needs.publish-draft-release.outputs.release_url }}
diff --git a/polkadot/.github/workflows/release-99_bot.yml b/polkadot/.github/workflows/release-99_bot.yml
deleted file mode 100644
index 5d45c0d44ed..00000000000
--- a/polkadot/.github/workflows/release-99_bot.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-name: Release - Send new release notification to matrix channels
-on:
-  release:
-    types:
-      - published
-
-jobs:
-  ping_matrix:
-    strategy:
-      matrix:
-        channel:
-          - name: '#KusamaValidatorLounge:polkadot.builders'
-            room: '!LhjZccBOqFNYKLdmbb:polkadot.builders'
-            pre-releases: false
-          - name: '#kusama-announcements:matrix.parity.io'
-            room: '!FMwxpQnYhRCNDRsYGI:matrix.parity.io'
-            pre-release: false
-          - name: '#polkadotvalidatorlounge:web3.foundation'
-            room: '!NZrbtteFeqYKCUGQtr:matrix.parity.io'
-            pre-release: false
-          - name: '#polkadot-announcements:matrix.parity.io'
-            room: '!UqHPWiCBGZWxrmYBkF:matrix.parity.io'
-            pre-release: false
-          - name: "RelEng: Polkadot Release Coordination"
-            room: '!cqAmzdIcbOFwrdrubV:parity.io'
-            pre-release: true
-          - name: 'Ledger <> Polkadot Coordination'
-            room: '!EoIhaKfGPmFOBrNSHT:web3.foundation'
-            pre-release: true
-          - name: 'General: Rust, Polkadot, Substrate'
-            room: '!aJymqQYtCjjqImFLSb:parity.io'
-            pre-release: false
-          - name: 'Team: DevOps'
-            room: '!lUslSijLMgNcEKcAiE:parity.io'
-            pre-release: true
-
-    runs-on: ubuntu-latest
-    steps:
-      - name: Send Matrix message to ${{ matrix.channel.name }}
-        if: github.event.release.prerelease == false || matrix.channel.pre-release
-        uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
-        with:
-          room_id: ${{ matrix.channel.room }}
-          access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
-          server: m.parity.io
-          message: |
-            ***Polkadot ${{github.event.release.tag_name}} has been released!***<br/>
-            ${{github.event.release.html_url}}<br/><br/>
-            ${{github.event.release.body}}<br/>
diff --git a/polkadot/.gitlab-ci.yml b/polkadot/.gitlab-ci.yml
deleted file mode 100644
index b2d91e61da9..00000000000
--- a/polkadot/.gitlab-ci.yml
+++ /dev/null
@@ -1,287 +0,0 @@
-# .gitlab-ci.yml
-#
-# polkadot
-#
-# Pipelines can be triggered manually in the web.
-#
-# Please do not add new jobs without "rules:" and "*-env". There are &test-refs for everything,
-# "docker-env" is used for Rust jobs.
-# And "kubernetes-env" for everything else. Please mention "image:" container name to be used
-# with it, as there's no default one.
-
-# All jobs are sorted according to their duration using DAG mechanism
-# Currently, test-linux-stable job is the longest one and other jobs are
-# sorted in order to complete during this job and occupy less runners in one
-# moment of time.
-
-stages:
-  - .pre
-  - weights
-  - check
-  - test
-  - build
-  - publish
-  - zombienet
-  - short-benchmarks
-
-workflow:
-  rules:
-    - if: $CI_COMMIT_TAG
-    - if: $CI_COMMIT_BRANCH
-
-variables:
-  GIT_STRATEGY: fetch
-  GIT_DEPTH: 100
-  CI_SERVER_NAME: "GitLab CI"
-  CI_IMAGE: !reference [.ci-unified, variables, CI_IMAGE]
-  BUILDAH_IMAGE: "quay.io/buildah/stable:v1.29"
-  BUILDAH_COMMAND: "buildah --storage-driver overlay2"
-  DOCKER_OS: "debian:stretch"
-  ARCH: "x86_64"
-  ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.65"
-
-default:
-  cache: {}
-  retry:
-    max: 2
-    when:
-      - runner_system_failure
-      - unknown_failure
-      - api_failure
-  interruptible: true
-
-.common-before-script:
-  before_script:
-    - !reference [.job-switcher, before_script]
-    - !reference [.timestamp, before_script]
-
-.collect-artifacts:
-  artifacts:
-    name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
-    when: on_success
-    expire_in: 7 days
-    paths:
-      - ./artifacts/
-
-.collect-artifacts-short:
-  artifacts:
-    name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
-    when: on_success
-    expire_in: 1 days
-    paths:
-      - ./artifacts/
-
-# collecting vars for pipeline stopper
-# they will be used if the job fails
-.pipeline-stopper-vars:
-  before_script:
-    - echo "FAILED_JOB_URL=${CI_JOB_URL}" > pipeline-stopper.env
-    - echo "FAILED_JOB_NAME=${CI_JOB_NAME}" >> pipeline-stopper.env
-    - echo "FAILED_JOB_NAME=${CI_JOB_NAME}" >> pipeline-stopper.env
-    - echo "PR_NUM=${CI_COMMIT_REF_NAME}" >> pipeline-stopper.env
-
-.pipeline-stopper-artifacts:
-  artifacts:
-    reports:
-      dotenv: pipeline-stopper.env
-
-.job-switcher:
-  before_script:
-    - if echo "$CI_DISABLED_JOBS" | grep -xF "$CI_JOB_NAME"; then echo "The job has been cancelled in CI settings"; exit 0; fi
-
-.kubernetes-env:
-  image: "${CI_IMAGE}"
-  before_script:
-    - !reference [.common-before-script, before_script]
-  tags:
-    - kubernetes-parity-build
-
-.docker-env:
-  image: "${CI_IMAGE}"
-  before_script:
-    - !reference [.common-before-script, before_script]
-  tags:
-    - linux-docker-vm-c2
-
-.compiler-info:
-  before_script:
-    - !reference [.common-before-script, before_script]
-    - rustup show
-    - cargo --version
-
-.test-refs:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "web"
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-
-.common-refs:
-  # these jobs run always*
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "web"
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
-    - if: $CI_COMMIT_REF_NAME =~ /^release-v[0-9]+\.[0-9]+.*$/ # i.e. release-v0.9.27
-
-.test-pr-refs:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-      when: never
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-
-.zombienet-refs:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-      when: never
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-      when: never
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-
-.deploy-testnet-refs:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-      when: never
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME == "master"
-
-.publish-refs:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-      when: never
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_PIPELINE_SOURCE == "web" &&
-        $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
-
-.build-push-image:
-  variables:
-    CI_IMAGE: "${BUILDAH_IMAGE}"
-
-    REGISTRY: "docker.io"
-    DOCKER_OWNER: "paritypr"
-    DOCKER_USER: "${PARITYPR_USER}"
-    DOCKER_PASS: "${PARITYPR_PASS}"
-    IMAGE: "${REGISTRY}/${DOCKER_OWNER}/${IMAGE_NAME}"
-
-    ENGINE: "${BUILDAH_COMMAND}"
-    BUILDAH_FORMAT: "docker"
-    SKIP_IMAGE_VALIDATION: 1
-
-    PROJECT_ROOT: "."
-    BIN_FOLDER: "./artifacts"
-    VCS_REF: "${CI_COMMIT_SHA}"
-
-  before_script:
-    - !reference [.common-before-script, before_script]
-    - test -s ./artifacts/VERSION || exit 1
-    - test -s ./artifacts/EXTRATAG || exit 1
-    - export VERSION="$(cat ./artifacts/VERSION)"
-    - EXTRATAG="$(cat ./artifacts/EXTRATAG)"
-    - echo "Polkadot version = ${VERSION} (EXTRATAG = ${EXTRATAG})"
-  script:
-    - test "$DOCKER_USER" -a "$DOCKER_PASS" ||
-      ( echo "no docker credentials provided"; exit 1 )
-    - TAGS="${VERSION},${EXTRATAG}" scripts/ci/dockerfiles/build-injected.sh
-    - echo "$DOCKER_PASS" |
-      buildah login --username "$DOCKER_USER" --password-stdin "${REGISTRY}"
-    - $BUILDAH_COMMAND info
-    - $BUILDAH_COMMAND push --format=v2s2 "$IMAGE:$VERSION"
-    - $BUILDAH_COMMAND push --format=v2s2 "$IMAGE:$EXTRATAG"
-  after_script:
-    - buildah logout --all
-
-#### stage:                       .pre
-
-# By default our pipelines are interruptible, but some special pipelines shouldn't be interrupted:
-# * multi-project pipelines such as the ones triggered by the scripts repo
-#
-# In those cases, we add an uninterruptible .pre job; once that one has started,
-# the entire pipeline becomes uninterruptible.
-uninterruptible-pipeline:
-  extends: .kubernetes-env
-  variables:
-    CI_IMAGE: "paritytech/tools:latest"
-  stage: .pre
-  interruptible: false
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-  script: "true"
-
-include:
-  # weights jobs
-  - scripts/ci/gitlab/pipeline/weights.yml
-  # check jobs
-  - scripts/ci/gitlab/pipeline/check.yml
-  # test jobs
-  - scripts/ci/gitlab/pipeline/test.yml
-  # build jobs
-  - scripts/ci/gitlab/pipeline/build.yml
-  # short-benchmarks jobs
-  - scripts/ci/gitlab/pipeline/short-benchmarks.yml
-  # publish jobs
-  - scripts/ci/gitlab/pipeline/publish.yml
-  # zombienet jobs
-  - scripts/ci/gitlab/pipeline/zombienet.yml
-  # timestamp handler
-  - project: parity/infrastructure/ci_cd/shared
-    ref: main
-    file: /common/timestamp.yml
-  - project: parity/infrastructure/ci_cd/shared
-    ref: main
-    file: /common/ci-unified.yml
-
-
-#### stage:                        .post
-
-deploy-parity-testnet:
-  stage: .post
-  extends:
-    - .deploy-testnet-refs
-  variables:
-    POLKADOT_CI_COMMIT_NAME: "${CI_COMMIT_REF_NAME}"
-    POLKADOT_CI_COMMIT_REF: "${CI_COMMIT_SHORT_SHA}"
-  allow_failure: false
-  trigger: "parity/infrastructure/parity-testnet"
-
-# This job cancels the whole pipeline if any of provided jobs fail.
-# In a DAG, every jobs chain is executed independently of others. The `fail_fast` principle suggests
-# to fail the pipeline as soon as possible to shorten the feedback loop.
-.cancel-pipeline-template:
-  stage: .post
-  rules:
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-      when: on_failure
-  variables:
-    PROJECT_ID: "${CI_PROJECT_ID}"
-    PROJECT_NAME: "${CI_PROJECT_NAME}"
-    PIPELINE_ID: "${CI_PIPELINE_ID}"
-    FAILED_JOB_URL: "${FAILED_JOB_URL}"
-    FAILED_JOB_NAME: "${FAILED_JOB_NAME}"
-    PR_NUM: "${PR_NUM}"
-  trigger:
-    project: "parity/infrastructure/ci_cd/pipeline-stopper"
-    branch: "as-improve"
-
-remove-cancel-pipeline-message:
-  stage: .post
-  rules:
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-  variables:
-    PROJECT_ID: "${CI_PROJECT_ID}"
-    PROJECT_NAME: "${CI_PROJECT_NAME}"
-    PIPELINE_ID: "${CI_PIPELINE_ID}"
-    FAILED_JOB_URL: "https://gitlab.com"
-    FAILED_JOB_NAME: "nope"
-    PR_NUM: "${CI_COMMIT_REF_NAME}"
-  trigger:
-    project: "parity/infrastructure/ci_cd/pipeline-stopper"
-
-cancel-pipeline-test-linux-stable:
-  extends: .cancel-pipeline-template
-  needs:
-    - job: test-linux-stable
diff --git a/substrate/.gitattributes b/substrate/.gitattributes
index a77c52fccdb..4cb3ef4972f 100644
--- a/substrate/.gitattributes
+++ b/substrate/.gitattributes
@@ -1,4 +1,2 @@
 Cargo.lock linguist-generated=true
-/.gitlab-ci.yml filter=ci-prettier
-/scripts/ci/gitlab/pipeline/*.yml filter=ci-prettier
 frame/**/src/weights.rs linguist-generated=true
diff --git a/substrate/.github/dependabot.yml b/substrate/.github/dependabot.yml
deleted file mode 100644
index 04cf0d1e1a5..00000000000
--- a/substrate/.github/dependabot.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-version: 2
-updates:
-  - package-ecosystem: "cargo"
-    directory: "/"
-    labels: ["A2-insubstantial", "B0-silent", "C1-low", "E2-dependencies"]
-    schedule:
-      interval: "daily"
-  - package-ecosystem: github-actions
-    directory: '/'
-    labels: ["A2-insubstantial", "B0-silent", "C1-low", "E2-dependencies"]
-    schedule:
-      interval: daily
diff --git a/substrate/.github/pr-custom-review.yml b/substrate/.github/pr-custom-review.yml
deleted file mode 100644
index 059f4a283af..00000000000
--- a/substrate/.github/pr-custom-review.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-# 🔒 PROTECTED: Changes to locks-review-team should be approved by the current locks-review-team
-locks-review-team: locks-review
-team-leads-team: polkadot-review
-action-review-team: ci
-
-rules:
-  - name: Core developers
-    check_type: changed_files
-    condition:
-      include: .*
-      # excluding files from 'CI team' and 'FRAME coders' rules
-      exclude: ^\.gitlab-ci\.yml|^scripts/ci/.*|^\.github/.*|^\.config/nextest.toml|^frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|election|nomination-pools/.*|staking/.*|aura/.*))
-    min_approvals: 2
-    teams:
-      - core-devs
-
-  - name: FRAME coders
-    check_type: changed_files
-    condition:
-      include: ^frame/(?!.*(nfts/.*|uniques/.*|babe/.*|grandpa/.*|beefy|merkle-mountain-range/.*|contracts/.*|election|nomination-pools/.*|staking/.*|aura/.*))
-    all:
-      - min_approvals: 2
-        teams:
-          - core-devs
-      - min_approvals: 1
-        teams:
-          - frame-coders
-
-  - name: CI team
-    check_type: changed_files
-    condition:
-      include: ^\.gitlab-ci\.yml|^scripts/ci/.*|^\.github/.*|^\.config/nextest.toml
-    min_approvals: 2
-    teams:
-      - ci
-
-prevent-review-request:
-  teams:
-    - core-devs
diff --git a/substrate/.github/stale.yml b/substrate/.github/stale.yml
deleted file mode 100644
index 61d0fd0228d..00000000000
--- a/substrate/.github/stale.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Number of days of inactivity before an issue becomes stale
-daysUntilStale: 30
-# Number of days of inactivity before a stale issue is closed
-daysUntilClose: 14
-# Issues with these labels will never be considered stale
-exemptLabels:
-  - "D9-needsaudit 👮"
-# Label to use when marking an issue as stale
-staleLabel: "A3-stale"
-# we only bother with pull requests
-only: pulls
-# Comment to post when marking an issue as stale. Set to `false` to disable
-markComment: >
-  Hey, is anyone still working on this? Due to the inactivity this issue has
-  been automatically marked as stale. It will be closed if no further activity
-  occurs. Thank you for your contributions.
-# Comment to post when closing a stale issue. Set to `false` to disable
-closeComment: false
diff --git a/substrate/.github/workflows/auto-label-issues.yml b/substrate/.github/workflows/auto-label-issues.yml
deleted file mode 100644
index 12ffce702cd..00000000000
--- a/substrate/.github/workflows/auto-label-issues.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-# If the author of the issues is not a contributor to the project, label
-# the issue with 'Z0-unconfirmed'
-
-name: Label New Issues
-on:
-  issues:
-    types: [opened]
-
-jobs:
-  label-new-issues:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Label drafts
-        uses: andymckay/labeler@e6c4322d0397f3240f0e7e30a33b5c5df2d39e90 # 1.0.4
-        if: github.event.issue.author_association == 'NONE'
-        with:
-          add-labels: "I10-unconfirmed"
diff --git a/substrate/.github/workflows/burnin-label-notification.yml b/substrate/.github/workflows/burnin-label-notification.yml
deleted file mode 100644
index f45455d31db..00000000000
--- a/substrate/.github/workflows/burnin-label-notification.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: Notify devops when burn-in label applied
-on:
-  pull_request:
-    types: [labeled]
-
-jobs:
-  notify-devops:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        channel:
-          - name: 'Team: DevOps'
-            room: '!lUslSijLMgNcEKcAiE:parity.io'
-
-    steps:
-      - name: Notify devops
-        if: startsWith(github.event.label.name, 'A1-')
-        uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
-        with:
-          room_id: ${{ matrix.channel.room }}
-          access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
-          server: "m.parity.io"
-          message: |
-            @room Burn-in request received for [${{ github.event.pull_request.title }}](${{ github.event.pull_request.html_url }})
diff --git a/substrate/.github/workflows/check-D-labels.yml b/substrate/.github/workflows/check-D-labels.yml
deleted file mode 100644
index 7bb358ce118..00000000000
--- a/substrate/.github/workflows/check-D-labels.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-name: Check D labels
-
-on:
-  pull_request:
-    types: [labeled, opened, synchronize, unlabeled]
-    paths:
-      - frame/**
-      - primitives/**
-
-env:
-  IMAGE: paritytech/ruled_labels:0.4.0
-
-jobs:
-  check-labels:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Pull image
-        run: docker pull $IMAGE
-
-      - name: Check labels
-        env:
-          MOUNT: /work
-          GITHUB_PR: ${{ github.event.pull_request.number }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          API_BASE: https://api.github.com/repos
-          REPO: ${{ github.repository }}
-          RULES_PATH: labels/ruled_labels
-          CHECK_SPECS: specs_substrate.yaml
-        run: |
-          echo "REPO: ${REPO}"
-          echo "GITHUB_PR: ${GITHUB_PR}"
-          # Clone repo with labels specs
-          git clone https://github.com/paritytech/labels
-          # Fetch the labels for the PR under test
-          labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
-
-          if [ -z "${labels}" ]; then
-            docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --tags audit --no-label
-          fi
-
-          labels_args=${labels: :-1}
-          printf "Checking labels: %s\n" "${labels_args}"
-
-          # Prevent the shell from splitting labels with spaces
-          IFS=","
-
-          # --dev is more useful to debug mode to debug
-          docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --labels ${labels_args} --dev --tags audit
diff --git a/substrate/.github/workflows/check-labels.yml b/substrate/.github/workflows/check-labels.yml
deleted file mode 100644
index 55b8f7389fa..00000000000
--- a/substrate/.github/workflows/check-labels.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-name: Check labels
-
-on:
-  pull_request:
-    types: [labeled, opened, synchronize, unlabeled]
-
-env:
-  IMAGE: paritytech/ruled_labels:0.4.0
-
-jobs:
-  check-labels:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Pull image
-        run: docker pull $IMAGE
-
-      - name: Check labels
-        env:
-          MOUNT: /work
-          GITHUB_PR: ${{ github.event.pull_request.number }}
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-          API_BASE: https://api.github.com/repos
-          REPO: ${{ github.repository }}
-          RULES_PATH: labels/ruled_labels
-          CHECK_SPECS: specs_substrate.yaml
-        run: |
-          echo "REPO: ${REPO}"
-          echo "GITHUB_PR: ${GITHUB_PR}"
-          # Clone repo with labels specs
-          git clone https://github.com/paritytech/labels
-          # Fetch the labels for the PR under test
-          labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
-
-          if [ -z "${labels}" ]; then
-            docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --tags PR --no-label
-          fi
-
-          labels_args=${labels: :-1}
-          printf "Checking labels: %s\n" "${labels_args}"
-
-          # Prevent the shell from splitting labels with spaces
-          IFS=","
-
-          # --dev is more useful to debug mode to debug
-          docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --labels ${labels_args} --dev --tags PR
diff --git a/substrate/.github/workflows/md-link-check.yml b/substrate/.github/workflows/md-link-check.yml
deleted file mode 100644
index e1387f6da13..00000000000
--- a/substrate/.github/workflows/md-link-check.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Check Links
-
-on:
-  pull_request:
-    branches:
-    - master
-  push:
-    branches:
-    - master
-
-jobs:
-  markdown-link-check:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@v3
-    - uses: gaurav-nelson/github-action-markdown-link-check@0a51127e9955b855a9bbfa1ff5577f1d1338c9a5 # 1.0.14
-      with:
-        use-quiet-mode: 'yes'
-        config-file: '.github/workflows/mlc_config.json'
diff --git a/substrate/.github/workflows/mlc_config.json b/substrate/.github/workflows/mlc_config.json
deleted file mode 100644
index e7e620b39e0..00000000000
--- a/substrate/.github/workflows/mlc_config.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-    "ignorePatterns": [
-        {
-            "pattern": "^https://crates.io",
-        }
-    ]
-}
diff --git a/substrate/.github/workflows/monthly-tag.yml b/substrate/.github/workflows/monthly-tag.yml
deleted file mode 100644
index 055207d85a4..00000000000
--- a/substrate/.github/workflows/monthly-tag.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-name: Monthly Snapshot Tag
-
-on:
-  schedule:
-    - cron: "0 1 1 * *"
-  workflow_dispatch:
-
-jobs:
-  build:
-    name: Take Snapshot
-    runs-on: ubuntu-latest
-    steps:
-      - name: Get the tags by date
-        id: tags
-        run: |
-          echo "new=$(date +'monthly-%Y-%m')" >> $GITHUB_OUTPUT
-          echo "old=$(date -d'1 month ago' +'monthly-%Y-%m')" >> $GITHUB_OUTPUT
-      - name: Checkout branch "master"
-        uses: actions/checkout@v3
-        with:
-          ref: 'master'
-          fetch-depth: 0
-      - name: Generate changelog
-        id: changelog
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        run: |
-          echo "# Automatic snapshot pre-release ${{ steps.tags.outputs.new }}" > Changelog.md
-          echo "" >> Changelog.md
-          echo "## Changes since last snapshot (${{ steps.tags.outputs.old }})" >> Changelog.md
-          echo "" >> Changelog.md
-          ./scripts/ci/github/generate_changelog.sh ${{ steps.tags.outputs.old }} >>  Changelog.md
-      - name: Release snapshot
-        id: release-snapshot
-        uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4 latest version, repo archived
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          tag_name: ${{ steps.tags.outputs.new }}
-          release_name: ${{ steps.tags.outputs.new }}
-          draft: false
-          prerelease: true
-          body_path: Changelog.md
diff --git a/substrate/.github/workflows/pr-custom-review.yml b/substrate/.github/workflows/pr-custom-review.yml
deleted file mode 100644
index 8e40c9ee729..00000000000
--- a/substrate/.github/workflows/pr-custom-review.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-name: Assign reviewers
-
-on:
-  pull_request:
-    branches:
-      - master
-      - main
-    types:
-      - opened
-      - reopened
-      - synchronize
-      - review_requested
-      - review_request_removed
-      - ready_for_review
-      - converted_to_draft
-  pull_request_review:
-
-jobs:
-  pr-custom-review:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Skip if pull request is in Draft
-        # `if: github.event.pull_request.draft == true` should be kept here, at
-        # the step level, rather than at the job level. The latter is not
-        # recommended because when the PR is moved from "Draft" to "Ready to
-        # review" the workflow will immediately be passing (since it was skipped),
-        # even though it hasn't actually ran, since it takes a few seconds for
-        # the workflow to start. This is also disclosed in:
-        # https://github.community/t/dont-run-actions-on-draft-pull-requests/16817/17
-        # That scenario would open an opportunity for the check to be bypassed:
-        # 1. Get your PR approved
-        # 2. Move it to Draft
-        # 3. Push whatever commits you want
-        # 4. Move it to "Ready for review"; now the workflow is passing (it was
-        #    skipped) and "Check reviews" is also passing (it won't be updated
-        #    until the workflow is finished)
-        if: github.event.pull_request.draft == true
-        run: exit 1
-      - name: pr-custom-review
-        uses: paritytech/pr-custom-review@action-v3
-        with:
-          checks-reviews-api: http://pcr.parity-prod.parity.io/api/v1/check_reviews
diff --git a/substrate/.github/workflows/release-bot.yml b/substrate/.github/workflows/release-bot.yml
deleted file mode 100644
index 05bea32abc6..00000000000
--- a/substrate/.github/workflows/release-bot.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-name: Pushes release updates to a pre-defined Matrix room
-on:
-  release:
-    types:
-      - edited
-      - prereleased
-      - published
-jobs:
-  ping_matrix:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        channel:
-          - name: 'General: Rust, Polkadot, Substrate'
-            room: '!aJymqQYtCjjqImFLSb:parity.io'
-            pre-release: false
-
-    steps:
-      - name: send message
-        uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3
-        with:
-          room_id: ${{ matrix.channel.room }}
-          access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }}
-          server: "m.parity.io"
-          message: |
-            ***${{github.event.repository.full_name}}:*** A release has been ${{github.event.action}}<br/>
-            Release version [${{github.event.release.tag_name}}](${{github.event.release.html_url}})
-
-            -----
-
-            ${{github.event.release.body}}<br/>
diff --git a/substrate/.github/workflows/release-tagging.yml b/substrate/.github/workflows/release-tagging.yml
deleted file mode 100644
index 1862582f40e..00000000000
--- a/substrate/.github/workflows/release-tagging.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-# Github action to ensure the `release` tag always tracks latest release
-
-name: Retag release
-
-on:
-  release:
-    types: [ published ]
-
-jobs:
-  build:
-    runs-on: ubuntu-latest
-
-    steps:
-      - name: Set Git tag
-        uses: s3krit/walking-tag-action@d04f7a53b72ceda4e20283736ce3627011275178 # latest version from master
-        with:
-          tag-name: release
-          tag-message: Latest release
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/substrate/.gitlab-ci.yml b/substrate/.gitlab-ci.yml
deleted file mode 100644
index f0083652897..00000000000
--- a/substrate/.gitlab-ci.yml
+++ /dev/null
@@ -1,412 +0,0 @@
-# .gitlab-ci.yml
-#
-# substrate
-#
-# pipelines can be triggered manually in the web
-#
-# Currently the file is divided into subfiles. Each stage has a different file which
-# can be found here: scripts/ci/gitlab/pipeline/<stage_name>.yml
-#
-# Instead of YAML anchors "extends" is used.
-# Useful links:
-#    https://docs.gitlab.com/ee/ci/yaml/index.html#extends
-#    https://docs.gitlab.com/ee/ci/yaml/yaml_optimization.html#reference-tags
-#
-# SAMPLE JOB TEMPLATE - This is not a complete example but is enough to build a
-# simple CI job. For full documentation, visit https://docs.gitlab.com/ee/ci/yaml/
-#
-# my-example-job:
-#   stage:                           test # One of the stages listed below this job (required)
-#   image:                           paritytech/tools:latest # Any docker image (required)
-#   allow_failure:                   true # Allow the pipeline to continue if this job fails (default: false)
-#   needs:
-#     - job:                         test-linux # Any jobs that are required to run before this job (optional)
-#   variables:
-#     MY_ENVIRONMENT_VARIABLE:       "some useful value" # Environment variables passed to the job (optional)
-#   script:
-#     - echo "List of shell commands to run in your job"
-#     - echo "You can also just specify a script here, like so:"
-#     - ./scripts/ci/gitlab/my_amazing_script.sh
-
-stages:
-  - check
-  - test
-  - build
-  - publish
-  - notify
-  - zombienet
-  - deploy
-
-workflow:
-  rules:
-    - if: $CI_COMMIT_TAG
-    - if: $CI_COMMIT_BRANCH
-
-variables:
-  GIT_STRATEGY: fetch
-  GIT_DEPTH: 100
-  CARGO_INCREMENTAL: 0
-  DOCKER_OS: "debian:bullseye"
-  ARCH: "x86_64"
-  CI_IMAGE: !reference [.ci-unified, variables, CI_IMAGE]
-  BUILDAH_IMAGE: "quay.io/buildah/stable:v1.29"
-  BUILDAH_COMMAND: "buildah --storage-driver overlay2"
-  RELENG_SCRIPTS_BRANCH: "master"
-
-  RUSTY_CACHIER_SINGLE_BRANCH: master
-  RUSTY_CACHIER_DONT_OPERATE_ON_MAIN_BRANCH: "true"
-  RUSTY_CACHIER_MINIO_ALIAS: rustycachier_gcs
-  RUSTY_CACHIER_MINIO_BUCKET: parity-build-rusty-cachier
-  RUSTY_CACHIER_COMPRESSION_METHOD: zstd
-
-  NEXTEST_FAILURE_OUTPUT: immediate-final
-  NEXTEST_SUCCESS_OUTPUT: final
-  ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.55"
-
-default:
-  retry:
-    max: 2
-    when:
-      - runner_system_failure
-      - unknown_failure
-      - api_failure
-  cache: {}
-  interruptible: true
-
-.collect-artifacts:
-  artifacts:
-    name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
-    when: on_success
-    expire_in: 7 days
-    paths:
-      - artifacts/
-
-.collect-artifacts-short:
-  artifacts:
-    name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
-    when: on_success
-    expire_in: 3 hours
-    paths:
-      - artifacts/
-
-.prepare-env:
-  before_script:
-    # TODO: remove unset invocation when we'll be free from 'ENV RUSTC_WRAPPER=sccache' & sccache
-    # itself in all images
-    - unset RUSTC_WRAPPER
-    # $WASM_BUILD_WORKSPACE_HINT enables wasm-builder to find the Cargo.lock from within generated
-    # packages
-    - export WASM_BUILD_WORKSPACE_HINT="$PWD"
-    # ensure that RUSTFLAGS are set correctly
-    - echo $RUSTFLAGS
-
-.job-switcher:
-  before_script:
-    - if echo "$CI_DISABLED_JOBS" | grep -xF "$CI_JOB_NAME"; then echo "The job has been cancelled in CI settings"; exit 0; fi
-
-.kubernetes-env:
-  image: "${CI_IMAGE}"
-  before_script:
-    - !reference [.timestamp, before_script]
-    - !reference [.job-switcher, before_script]
-    - !reference [.prepare-env, before_script]
-  tags:
-    - kubernetes-parity-build
-
-.rust-info-script:
-  script:
-    - rustup show
-    - cargo --version
-    - rustup +nightly show
-    - cargo +nightly --version
-
-.pipeline-stopper-vars:
-  script:
-    - !reference [.job-switcher, before_script]
-    - echo "Collecting env variables for the cancel-pipeline job"
-    - echo "FAILED_JOB_URL=${CI_JOB_URL}" > pipeline-stopper.env
-    - echo "FAILED_JOB_NAME=${CI_JOB_NAME}" >> pipeline-stopper.env
-    - echo "PR_NUM=${CI_COMMIT_REF_NAME}" >> pipeline-stopper.env
-
-.pipeline-stopper-artifacts:
-  artifacts:
-    reports:
-      dotenv: pipeline-stopper.env
-
-.docker-env:
-  image: "${CI_IMAGE}"
-  before_script:
-    - !reference [.timestamp, before_script]
-    - !reference [.job-switcher, before_script]
-    - !reference [.prepare-env, before_script]
-    - !reference [.rust-info-script, script]
-    - !reference [.rusty-cachier, before_script]
-    - !reference [.pipeline-stopper-vars, script]
-  after_script:
-    - !reference [.rusty-cachier, after_script]
-  tags:
-    - linux-docker-vm-c2
-
-# rusty-cachier's hidden job. Parts of this job are used to instrument the pipeline's other real jobs with rusty-cachier
-# Description of the commands is available here - https://gitlab.parity.io/parity/infrastructure/ci_cd/rusty-cachier/client#description
-.rusty-cachier:
-  before_script:
-    - curl -s https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.parity.io/parity/infrastructure/ci_cd/rusty-cachier/client/-/raw/release/util/install.sh | bash
-    - rusty-cachier environment check --gracefully
-    - $(rusty-cachier environment inject)
-    - rusty-cachier project mtime
-  after_script:
-    - env RUSTY_CACHIER_SUPRESS_OUTPUT=true rusty-cachier snapshot destroy
-
-.test-refs:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "web"
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
-
-# handle the specific case where benches could store incorrect bench data because of the downstream staging runs
-# exclude cargo-check-benches from such runs
-.test-refs-check-benches:
-  rules:
-    - if: $CI_COMMIT_REF_NAME == "master" && $CI_PIPELINE_SOURCE == "pipeline"  && $CI_IMAGE =~ /staging$/
-      when: never
-    - if: $CI_PIPELINE_SOURCE == "web"
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
-
-.test-refs-no-trigger:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-      when: never
-    - if: $CI_PIPELINE_SOURCE == "web"
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
-    - if: $CI_COMMIT_REF_NAME =~ /^ci-release-.*$/
-
-.test-refs-no-trigger-prs-only:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-      when: never
-    - if: $CI_PIPELINE_SOURCE == "web"
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-
-.publish-refs:
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-      when: never
-    - if: $CI_PIPELINE_SOURCE == "web"
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
-
-.build-refs:
-  # publish-refs + PRs
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-      when: never
-    - if: $CI_PIPELINE_SOURCE == "web"
-    - if: $CI_PIPELINE_SOURCE == "schedule"
-    - if: $CI_COMMIT_REF_NAME == "master"
-    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-
-.zombienet-refs:
-  extends: .build-refs
-
-.crates-publishing-variables:
-  variables:
-    CRATESIO_CRATES_OWNER: parity-crate-owner
-    REPO: substrate
-    REPO_OWNER: paritytech
-
-.crates-publishing-pipeline:
-  extends: .crates-publishing-variables
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_REF_NAME == "master" && $PIPELINE == "automatic-crate-publishing"
-
-.crates-publishing-template:
-  extends:
-    - .docker-env
-    - .crates-publishing-variables
-  # collect artifacts even on failure so that we know how the crates were generated (they'll be
-  # generated to the artifacts folder according to SPUB_TMP further down)
-  artifacts:
-    name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
-    when: always
-    expire_in: 7 days
-    paths:
-      - artifacts/
-  variables:
-    SPUB_TMP: artifacts
-    # disable timestamping for the crate publishing jobs, they leave stray child processes behind
-    # which don't interact well with the timestamping script
-    CI_DISABLE_TIMESTAMP: 1
-
-#### stage:                       .pre
-
-check-crates-publishing-pipeline:
-  stage: .pre
-  extends:
-    - .kubernetes-env
-    - .crates-publishing-pipeline
-  script:
-    - git clone
-      --depth 1
-      --branch "$RELENG_SCRIPTS_BRANCH"
-      https://github.com/paritytech/releng-scripts.git
-    - ONLY_CHECK_PIPELINE=true ./releng-scripts/publish-crates
-
-# By default our pipelines are interruptible, but some special pipelines shouldn't be interrupted:
-# * multi-project pipelines such as the ones triggered by the scripts repo
-# * the scheduled automatic-crate-publishing pipeline
-#
-# In those cases, we add an uninterruptible .pre job; once that one has started,
-# the entire pipeline becomes uninterruptible
-uninterruptible-pipeline:
-  extends: .kubernetes-env
-  variables:
-    CI_IMAGE: "paritytech/tools:latest"
-  stage: .pre
-  interruptible: false
-  rules:
-    - if: $CI_PIPELINE_SOURCE == "pipeline"
-    - if: $CI_PIPELINE_SOURCE == "schedule" && $PIPELINE == "automatic-crate-publishing"
-  script: "true"
-
-include:
-  # check jobs
-  - scripts/ci/gitlab/pipeline/check.yml
-  # tests jobs
-  - scripts/ci/gitlab/pipeline/test.yml
-  # build jobs
-  - scripts/ci/gitlab/pipeline/build.yml
-  # publish jobs
-  - scripts/ci/gitlab/pipeline/publish.yml
-  # zombienet jobs
-  - scripts/ci/gitlab/pipeline/zombienet.yml
-  # The crate-publishing pipeline requires a customized `interruptible` configuration. Unfortunately
-  # `interruptible` can't currently be dynamically set based on variables as per:
-  # - https://gitlab.com/gitlab-org/gitlab/-/issues/38349
-  # - https://gitlab.com/gitlab-org/gitlab/-/issues/194023
-  # Thus we work around that limitation by using conditional includes.
-  # For crate-publishing pipelines: run it with defaults + `interruptible: false`. The WHOLE
-  # pipeline is made uninterruptible to ensure that test jobs also get a chance to run to
-  # completion, because the publishing jobs depends on them AS INTENDED: crates should not be
-  # published before their source code is checked.
-  - project: parity/infrastructure/ci_cd/shared
-    ref: main
-    file: /common/timestamp.yml
-  - project: parity/infrastructure/ci_cd/shared
-    ref: main
-    file: /common/ci-unified.yml
-
-
-#### stage:                        notify
-
-# This job notifies rusty-cachier about the latest commit with the cache.
-# This info is later used for the cache distribution and an overlay creation.
-# Note that we don't use any .rusty-cachier references as we assume that a pipeline has reached this stage with working rusty-cachier.
-rusty-cachier-notify:
-  stage: notify
-  extends: .kubernetes-env
-  variables:
-    CI_IMAGE: paritytech/rusty-cachier-env:latest
-    GIT_STRATEGY: none
-  dependencies: []
-  script:
-    - curl -s https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.parity.io/parity/infrastructure/ci_cd/rusty-cachier/client/-/raw/release/util/install.sh | bash
-    - rusty-cachier cache notify
-
-#### stage:                        .post
-
-# This job cancels the whole pipeline if any of provided jobs fail.
-# In a DAG, every jobs chain is executed independently of others. The `fail_fast` principle suggests
-# to fail the pipeline as soon as possible to shorten the feedback loop.
-.cancel-pipeline-template:
-  stage: .post
-  rules:
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-      when: on_failure
-  variables:
-    PROJECT_ID: "${CI_PROJECT_ID}"
-    PROJECT_NAME: "${CI_PROJECT_NAME}"
-    PIPELINE_ID: "${CI_PIPELINE_ID}"
-    FAILED_JOB_URL: "${FAILED_JOB_URL}"
-    FAILED_JOB_NAME: "${FAILED_JOB_NAME}"
-    PR_NUM: "${PR_NUM}"
-  trigger:
-    project: "parity/infrastructure/ci_cd/pipeline-stopper"
-
-remove-cancel-pipeline-message:
-  stage: .post
-  rules:
-    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs
-  variables:
-    PROJECT_ID: "${CI_PROJECT_ID}"
-    PROJECT_NAME: "${CI_PROJECT_NAME}"
-    PIPELINE_ID: "${CI_PIPELINE_ID}"
-    FAILED_JOB_URL: "https://gitlab.com"
-    FAILED_JOB_NAME: "nope"
-    PR_NUM: "${CI_COMMIT_REF_NAME}"
-  trigger:
-    project: "parity/infrastructure/ci_cd/pipeline-stopper"
-    branch: "as-improve"
-
-# 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/2"
-
-cancel-pipeline-cargo-check-each-crate-2:
-  extends: .cancel-pipeline-template
-  needs:
-    - job: "cargo-check-each-crate 2/2"
-
-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
-- 
GitLab