From 24e94dc7cf58be17c96ba76bc0a1029ce1cd6109 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 3 Aug 2026 17:29:54 +0100 Subject: [PATCH 01/10] ci: use shared external types action --- .github/workflows/external-types.yml | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/.github/workflows/external-types.yml b/.github/workflows/external-types.yml index 041b7f6..e03813e 100644 --- a/.github/workflows/external-types.yml +++ b/.github/workflows/external-types.yml @@ -22,11 +22,6 @@ jobs: with: persist-credentials: false - - name: Install cargo-check-external-types,just - uses: taiki-e/install-action@6a1bd70eaac3c8bdf093356838d7ee09fda951cf # v2.85.5 - with: - tool: cargo-check-external-types,just - - name: Install Nix uses: nixbuild/nix-quick-install-action@9f63be77f412a248c9d9a65a4c82cf066cdf8f0c # v35 @@ -35,14 +30,7 @@ jobs: with: arguments: .#ci - - name: Resolve external types toolchain - id: toolchain - run: echo "toolchain=$(just --evaluate external-types-toolchain)" >> "$GITHUB_OUTPUT" - - - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1.17.0 - with: - toolchain: ${{ steps.toolchain.outputs.toolchain }} + - uses: x52dev/actions/setup-external-types@master - name: Check external types run: just check-external-types From 7d0890f201add1ddf8832e0a7cf71514e12f5934 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 3 Aug 2026 17:35:36 +0100 Subject: [PATCH 02/10] ci: consolidate external types tests --- .github/workflows/external-types.yml | 36 -------------------------- .github/workflows/{ci.yml => test.yml} | 24 ++++++++++++++++- 2 files changed, 23 insertions(+), 37 deletions(-) delete mode 100644 .github/workflows/external-types.yml rename .github/workflows/{ci.yml => test.yml} (62%) diff --git a/.github/workflows/external-types.yml b/.github/workflows/external-types.yml deleted file mode 100644 index e03813e..0000000 --- a/.github/workflows/external-types.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: External Types - -on: - pull_request: - types: [opened, synchronize, reopened] - push: - branches: [main] - -permissions: - contents: read - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - check-external-types: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - - name: Install Nix - uses: nixbuild/nix-quick-install-action@9f63be77f412a248c9d9a65a4c82cf066cdf8f0c # v35 - - - name: Enter Nix devshell - uses: nicknovitski/nix-develop@9be7cfb4b10451d3390a75dc18ad0465bed4932a # v1.2.1 - with: - arguments: .#ci - - - uses: x52dev/actions/setup-external-types@master - - - name: Check external types - run: just check-external-types diff --git a/.github/workflows/ci.yml b/.github/workflows/test.yml similarity index 62% rename from .github/workflows/ci.yml rename to .github/workflows/test.yml index 7f3b48d..c7bb442 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: CI +name: Test on: pull_request: @@ -42,3 +42,25 @@ jobs: - name: Run tests run: just test + + external-types: + name: External types + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Install Nix + uses: nixbuild/nix-quick-install-action@9f63be77f412a248c9d9a65a4c82cf066cdf8f0c # v35 + + - name: Enter Nix devshell + uses: nicknovitski/nix-develop@9be7cfb4b10451d3390a75dc18ad0465bed4932a # v1.2.1 + with: + arguments: .#ci + + - uses: x52dev/actions/setup-external-types@master + + - name: Check external types + run: just check-external-types From 1ab10ef9fb1e84f5b38f3a499271d7827c111297 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 3 Aug 2026 17:37:55 +0100 Subject: [PATCH 03/10] ci: pin shared external types action --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c7bb442..f21b95b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -60,7 +60,7 @@ jobs: with: arguments: .#ci - - uses: x52dev/actions/setup-external-types@master + - uses: x52dev/actions/setup-external-types@5b150f6dba9d62eefdf334f60b7ad240cb16750f - name: Check external types run: just check-external-types From cf78721c82236d0476c9f001fbb94d631abbd388 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 3 Aug 2026 17:47:27 +0100 Subject: [PATCH 04/10] ci: use complete external types action --- .github/workflows/test.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f21b95b..5c91ec1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,15 +52,4 @@ jobs: with: persist-credentials: false - - name: Install Nix - uses: nixbuild/nix-quick-install-action@9f63be77f412a248c9d9a65a4c82cf066cdf8f0c # v35 - - - name: Enter Nix devshell - uses: nicknovitski/nix-develop@9be7cfb4b10451d3390a75dc18ad0465bed4932a # v1.2.1 - with: - arguments: .#ci - - - uses: x52dev/actions/setup-external-types@5b150f6dba9d62eefdf334f60b7ad240cb16750f - - - name: Check external types - run: just check-external-types + - uses: x52dev/actions/setup-external-types@dcac20665d3bfbaa72d15479a5c8e0f4b92e990c From d46acc6021e0e65f539b442eda0def63d941f1df Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 3 Aug 2026 18:37:27 +0100 Subject: [PATCH 05/10] ci: use full external types action --- .github/workflows/{test.yml => ci.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{test.yml => ci.yml} (93%) diff --git a/.github/workflows/test.yml b/.github/workflows/ci.yml similarity index 93% rename from .github/workflows/test.yml rename to .github/workflows/ci.yml index 5c91ec1..1d92914 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/ci.yml @@ -52,4 +52,4 @@ jobs: with: persist-credentials: false - - uses: x52dev/actions/setup-external-types@dcac20665d3bfbaa72d15479a5c8e0f4b92e990c + - uses: x52dev/actions/full-cargo-check-external-types@7dd0074f21658b0588ebda3deff9245accfa5d83 From 5df073a11b210a49040544c899a8c882209db377 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 3 Aug 2026 18:39:37 +0100 Subject: [PATCH 06/10] ci: preserve workflow name --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d92914..855c24d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: Test +name: CI on: pull_request: From bd72906503f15b8cbc4278a964c47dfd2272b380 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 3 Aug 2026 18:54:28 +0100 Subject: [PATCH 07/10] ci: use shared external types recipe --- justfile | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/justfile b/justfile index 77c32f8..5217eff 100644 --- a/justfile +++ b/justfile @@ -4,7 +4,6 @@ _list: @just --list toolchain := "" -external-types-toolchain := "nightly-2026-03-20" # Format project fmt: just --unstable --fmt @@ -22,18 +21,6 @@ check: fd --hidden -e=toml --exec-batch taplo lint cargo shear -[private] -workspace-crate-manifests: - @cargo metadata --no-deps --format-version=1 \ - | jq -r '(.workspace_root + "/") as $root | .workspace_members as $members | .packages[] | select(.id as $id | $members | index($id)) | .manifest_path | ltrimstr($root)' - -# Check crates are not leaking unexpected external types -check-external-types: - just workspace-crate-manifests \ - | while IFS= read -r manifest; do \ - cargo +{{ external-types-toolchain }} check-external-types --manifest-path "$manifest"; \ - done - # Lint workspace with Clippy clippy: cargo {{ toolchain }} clippy --workspace --all-targets --all-features From 4275676171e57aaad869a27c25fb2845ed5a647e Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 3 Aug 2026 19:04:15 +0100 Subject: [PATCH 08/10] ci: update external types action ref --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 855c24d..f6494b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,4 +52,4 @@ jobs: with: persist-credentials: false - - uses: x52dev/actions/full-cargo-check-external-types@7dd0074f21658b0588ebda3deff9245accfa5d83 + - uses: x52dev/actions/cargo-workspace-check-external-types@8dc0274800321d780097bc9b3b1ffa9f8dfb1e8b From 36c9ac95333403eaf9c7f064a9339f69b81904e5 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 3 Aug 2026 19:27:13 +0100 Subject: [PATCH 09/10] ci: keep external types job name implicit --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6494b2..af2c530 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,6 @@ jobs: run: just test external-types: - name: External types runs-on: ubuntu-latest steps: - name: Checkout From 96a9f4338010cd48a9c97f767e97d58aea130ab7 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 3 Aug 2026 19:31:47 +0100 Subject: [PATCH 10/10] ci: move external-types job --- .github/workflows/ci.yml | 10 ---------- .github/workflows/lint.yml | 10 ++++++++++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index af2c530..7f3b48d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,13 +42,3 @@ jobs: - name: Run tests run: just test - - external-types: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - - uses: x52dev/actions/cargo-workspace-check-external-types@8dc0274800321d780097bc9b3b1ffa9f8dfb1e8b diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 32d2312..16ef9f9 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -72,3 +72,13 @@ jobs: env: RUSTDOCFLAGS: "-D warnings" run: cargo doc --no-deps --all-features --workspace + + external-types: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - uses: x52dev/actions/cargo-workspace-check-external-types@8dc0274800321d780097bc9b3b1ffa9f8dfb1e8b