From b6512be748e3dbf26d5ef56020b40bdb4772b1ab Mon Sep 17 00:00:00 2001
From: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Date: Tue, 18 Feb 2025 16:31:13 +0900
Subject: [PATCH] Make all prdoc valid and add CI job to check prdoc with
 `prdoc check` (#7543)

Some prdoc are invalid, `prdoc check` is failing for them. This also
broke usage of parity-publish.

This PR fixes the invalid prdoc, and add a ci job to check the prdoc are
valid. I don't think the check is unstable considering it is a simple
yaml check, so I put the job as required.

---------

Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com>
---
 .github/workflows/check-prdoc.yml |  42 ++---
 prdoc/pr_6440.prdoc               |   1 +
 prdoc/pr_6455.prdoc               |   1 +
 prdoc/pr_6549.prdoc               | 247 ------------------------------
 prdoc/pr_6636.prdoc               |   1 +
 prdoc/pr_6988.prdoc               |   5 -
 6 files changed, 16 insertions(+), 281 deletions(-)
 delete mode 100644 prdoc/pr_6549.prdoc
 delete mode 100644 prdoc/pr_6988.prdoc

diff --git a/.github/workflows/check-prdoc.yml b/.github/workflows/check-prdoc.yml
index 8af1dd8cef7..2b68e011268 100644
--- a/.github/workflows/check-prdoc.yml
+++ b/.github/workflows/check-prdoc.yml
@@ -22,49 +22,33 @@ jobs:
   check-prdoc:
     runs-on: ubuntu-latest
     timeout-minutes: 10
-    if: github.event.pull_request.number != ''
     steps:
       - name: Checkout repo
         uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc #v4.1.7
-      # we cannot show the version in this step (ie before checking out the repo)
-      # due to https://github.com/paritytech/prdoc/issues/15
-      - name: Check if PRdoc is required
-        id: get-labels
+      - name: Check prdoc format
         run: |
           echo "Pulling $IMAGE"
           $ENGINE pull $IMAGE
 
-          # Fetch the labels for the PR under test
-          echo "Fetch the labels for $API_BASE/${REPO}/pulls/${GITHUB_PR}"
-          labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
-          echo "Labels: ${labels}"
-          echo "labels=${labels}" >> "$GITHUB_OUTPUT"
-
           echo "Checking PRdoc version"
           $ENGINE run --rm -v $PWD:/repo $IMAGE --version
 
-      - name: Early exit if PR is silent
-        if: ${{ contains(steps.get-labels.outputs.labels, 'R0') }}
-        run: |
-          hits=$(find prdoc -name "pr_$GITHUB_PR*.prdoc" | wc -l)
-          if (( hits > 0 )); then
-            echo "PR detected as silent, but a PRDoc was found, checking it as information"
-            $ENGINE run --rm -v $PWD:/repo $IMAGE check -n ${GITHUB_PR} || echo "Ignoring failure"
-          else
-            echo "PR detected as silent, no PRDoc found, exiting..."
-          fi
-          echo "If you want to add a PRDoc, please refer to $PRDOC_DOC"
-          exit 0
+          echo "Check prdoc format"
+          echo "For PRDoc format, please refer to $PRDOC_DOC"
+          $ENGINE run --rm -v $PWD:/repo -e RUST_LOG=info $IMAGE check
 
-      - name: PRdoc check for PR#${{ github.event.pull_request.number }}
-        if: ${{ !contains(steps.get-labels.outputs.labels, 'R0') }}
+      - name: Check if PRdoc is required
+        if: github.event.pull_request.number != ''
+        id: get-labels
         run: |
-          echo "Checking for PR#${GITHUB_PR}"
-          echo "You can find more information about PRDoc at $PRDOC_DOC"
-          $ENGINE run --rm -v $PWD:/repo -e RUST_LOG=info $IMAGE check -n ${GITHUB_PR}
+          # Fetch the labels for the PR under test
+          echo "Fetch the labels for $API_BASE/${REPO}/pulls/${GITHUB_PR}"
+          labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",")
+          echo "Labels: ${labels}"
+          echo "labels=${labels}" >> "$GITHUB_OUTPUT"
 
       - name: Validate prdoc for PR#${{ github.event.pull_request.number }}
-        if: ${{ !contains(steps.get-labels.outputs.labels, 'R0') }}
+        if: ${{ github.event.pull_request.number != '' && !contains(steps.get-labels.outputs.labels, 'R0') }}
         run: |
           echo "Validating PR#${GITHUB_PR}"
           python3 --version
diff --git a/prdoc/pr_6440.prdoc b/prdoc/pr_6440.prdoc
index 376e59fa752..406050bbf6a 100644
--- a/prdoc/pr_6440.prdoc
+++ b/prdoc/pr_6440.prdoc
@@ -6,3 +6,4 @@ doc:
 crates:
 - name: polkadot-node-core-pvf
   validate: false
+  bump: none
diff --git a/prdoc/pr_6455.prdoc b/prdoc/pr_6455.prdoc
index 9a83048e2fd..d9984731335 100644
--- a/prdoc/pr_6455.prdoc
+++ b/prdoc/pr_6455.prdoc
@@ -6,3 +6,4 @@ doc:
 crates:
 - name: sc-network
   validate: false
+  bump: none
diff --git a/prdoc/pr_6549.prdoc b/prdoc/pr_6549.prdoc
deleted file mode 100644
index 61a64c72418..00000000000
--- a/prdoc/pr_6549.prdoc
+++ /dev/null
@@ -1,247 +0,0 @@
-doc: []
-
-crates:
-  - name: polkadot-sdk
-    bump: none
-  - name: asset-test-utils
-    bump: none
-  - name: cumulus-pallet-parachain-system
-    bump: none
-  - name: cumulus-pallet-parachain-system-proc-macro
-    bump: none
-  - name: cumulus-primitives-core
-    bump: none
-  - name: polkadot-core-primitives
-    bump: none
-  - name: polkadot-parachain-primitives
-    bump: none
-  - name: polkadot-primitives
-    bump: none
-  - name: staging-xcm
-    bump: none
-  - name: xcm-procedural
-    bump: none
-  - name: cumulus-primitives-parachain-inherent
-    bump: none
-  - name: cumulus-primitives-proof-size-hostfunction
-    bump: none
-  - name: polkadot-runtime-common
-    bump: none
-  - name: polkadot-runtime-parachains
-    bump: none
-  - name: polkadot-runtime-metrics
-    bump: none
-  - name: staging-xcm-executor
-    bump: none
-  - name: slot-range-helper
-    bump: none
-  - name: staging-xcm-builder
-    bump: none
-  - name: pallet-xcm
-    bump: none
-  - name: cumulus-primitives-storage-weight-reclaim
-    bump: none
-  - name: cumulus-pallet-aura-ext
-    bump: none
-  - name: cumulus-primitives-aura
-    bump: none
-  - name: staging-parachain-info
-    bump: none
-  - name: cumulus-test-relay-sproof-builder
-    bump: none
-  - name: cumulus-client-cli
-    bump: none
-  - name: cumulus-client-collator
-    bump: none
-  - name: cumulus-client-consensus-common
-    bump: none
-  - name: cumulus-client-pov-recovery
-    bump: none
-  - name: cumulus-relay-chain-interface
-    bump: none
-  - name: polkadot-overseer
-    bump: none
-  - name: tracing-gum
-    bump: none
-  - name: tracing-gum-proc-macro
-    bump: none
-  - name: polkadot-node-metrics
-    bump: none
-  - name: polkadot-node-primitives
-    bump: none
-  - name: polkadot-erasure-coding
-    bump: none
-  - name: polkadot-node-subsystem
-    bump: none
-  - name: polkadot-node-subsystem-types
-    bump: none
-  - name: polkadot-node-network-protocol
-    bump: none
-  - name: polkadot-statement-table
-    bump: none
-  - name: polkadot-rpc
-    bump: none
-  - name: polkadot-service
-    bump: none
-  - name: cumulus-client-parachain-inherent
-    bump: none
-  - name: westend-runtime
-    bump: none
-  - name: pallet-xcm-benchmarks
-    bump: none
-  - name: westend-runtime-constants
-    bump: none
-  - name: polkadot-approval-distribution
-    bump: none
-  - name: polkadot-node-subsystem-util
-    bump: none
-  - name: polkadot-availability-bitfield-distribution
-    bump: none
-  - name: polkadot-availability-distribution
-    bump: none
-  - name: polkadot-availability-recovery
-    bump: none
-  - name: polkadot-node-core-approval-voting
-    bump: none
-  - name: polkadot-node-core-approval-voting-parallel
-    bump: none
-  - name: polkadot-node-core-av-store
-    bump: none
-  - name: polkadot-node-core-chain-api
-    bump: none
-  - name: polkadot-statement-distribution
-    bump: none
-  - name: polkadot-collator-protocol
-    bump: none
-  - name: polkadot-dispute-distribution
-    bump: none
-  - name: polkadot-gossip-support
-    bump: none
-  - name: polkadot-network-bridge
-    bump: none
-  - name: polkadot-node-collation-generation
-    bump: none
-  - name: polkadot-node-core-backing
-    bump: none
-  - name: polkadot-node-core-bitfield-signing
-    bump: none
-  - name: polkadot-node-core-candidate-validation
-    bump: none
-  - name: polkadot-node-core-pvf
-    bump: none
-  - name: polkadot-node-core-pvf-common
-    bump: none
-  - name: polkadot-node-core-pvf-execute-worker
-    bump: none
-  - name: polkadot-node-core-pvf-prepare-worker
-    bump: none
-  - name: staging-tracking-allocator
-    bump: none
-  - name: rococo-runtime
-    bump: none
-  - name: rococo-runtime-constants
-    bump: none
-  - name: polkadot-node-core-chain-selection
-    bump: none
-  - name: polkadot-node-core-dispute-coordinator
-    bump: none
-  - name: polkadot-node-core-parachains-inherent
-    bump: none
-  - name: polkadot-node-core-prospective-parachains
-    bump: none
-  - name: polkadot-node-core-provisioner
-    bump: none
-  - name: polkadot-node-core-pvf-checker
-    bump: none
-  - name: polkadot-node-core-runtime-api
-    bump: none
-  - name: cumulus-client-network
-    bump: none
-  - name: cumulus-relay-chain-inprocess-interface
-    bump: none
-  - name: polkadot-cli
-    bump: none
-  - name: cumulus-client-consensus-aura
-    bump: none
-  - name: cumulus-client-consensus-proposer
-    bump: none
-  - name: cumulus-client-consensus-relay-chain
-    bump: none
-  - name: cumulus-client-service
-    bump: none
-  - name: cumulus-relay-chain-minimal-node
-    bump: none
-  - name: cumulus-relay-chain-rpc-interface
-    bump: none
-  - name: parachains-common
-    bump: none
-  - name: cumulus-primitives-utility
-    bump: none
-  - name: cumulus-pallet-xcmp-queue
-    bump: none
-  - name: parachains-runtimes-test-utils
-    bump: none
-  - name: assets-common
-    bump: none
-  - name: bridge-hub-common
-    bump: none
-  - name: bridge-hub-test-utils
-    bump: none
-  - name: cumulus-pallet-solo-to-para
-    bump: none
-  - name: cumulus-pallet-xcm
-    bump: none
-  - name: cumulus-ping
-    bump: none
-  - name: cumulus-primitives-timestamp
-    bump: none
-  - name: emulated-integration-tests-common
-    bump: none
-  - name: xcm-emulator
-    bump: none
-  - name: pallet-collective-content
-    bump: none
-  - name: xcm-simulator
-    bump: none
-  - name: pallet-revive-fixtures
-    bump: none
-  - name: polkadot-omni-node-lib
-    bump: none
-  - name: snowbridge-runtime-test-common
-    bump: none
-  - name: testnet-parachains-constants
-    bump: none
-  - name: asset-hub-rococo-runtime
-    bump: none
-  - name: asset-hub-westend-runtime
-    bump: none
-  - name: bridge-hub-rococo-runtime
-    bump: none
-  - name: bridge-hub-westend-runtime
-    bump: none
-  - name: collectives-westend-runtime
-    bump: none
-  - name: coretime-rococo-runtime
-    bump: none
-  - name: coretime-westend-runtime
-    bump: none
-  - name: people-rococo-runtime
-    bump: none
-  - name: people-westend-runtime
-    bump: none
-  - name: contracts-rococo-runtime
-    bump: none
-  - name: glutton-westend-runtime
-    bump: none
-  - name: rococo-parachain-runtime
-    bump: none
-  - name: polkadot-omni-node
-    bump: none
-  - name: polkadot-parachain-bin
-    bump: none
-  - name: polkadot
-    bump: none
-  - name: polkadot-voter-bags
-    bump: none
-  - name: xcm-simulator-example
-    bump: none
diff --git a/prdoc/pr_6636.prdoc b/prdoc/pr_6636.prdoc
index 1db5fd54d97..159685f5a5c 100644
--- a/prdoc/pr_6636.prdoc
+++ b/prdoc/pr_6636.prdoc
@@ -7,3 +7,4 @@ doc:
 crates:
 - name: sc-network
   validate: false
+  bump: none
diff --git a/prdoc/pr_6988.prdoc b/prdoc/pr_6988.prdoc
deleted file mode 100644
index 18f70f9fd97..00000000000
--- a/prdoc/pr_6988.prdoc
+++ /dev/null
@@ -1,5 +0,0 @@
-doc: []
-
-crates:
-  - name: polkadot
-    bump: none
\ No newline at end of file
-- 
GitLab