From 9a376abf77f5050f95d1e88bc6c03c54d6ea6382 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 12 Aug 2026 20:07:38 +0000 Subject: [PATCH 1/2] ci: merge all Rust core verification into dirsql-rust-ci, delete conventions.yml One workflow now owns PR verification for packages/rust, replacing rust-test.yml (deleted) and absorbing the `rust` conventions lane (job id preserved). Five jobs: the gate suite, unit, integration, the bespoke nightly coverage job, and clippy/fmt lint. The binding crates fan in (packages/ts/napi, packages/python/src) -- they are cargo workspace members compiled by the workspace-wide jobs. rust-test.yml already carried those paths; testing-conventions.toml joins them because the lane reads it as config and the coverage job takes its floors from [rust.coverage]. packages/rust's fragment dirs and README are excluded -- rust-test.yml ran on fragment edits, which was the over-trigger this epic removes; fragments belong to changelog-check and the README to release-ci. conventions.yml is deleted: its eight lanes now live in the per-domain CI files (plugin, internals x2, python, typescript, rust) and no lanes remain. skip-changelog: CI configuration only, no packages/** change Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01GECJQGPKgycnh4hrhzrDYP --- .github/workflows/conventions.yml | 23 ---------- .../{rust-test.yml => dirsql-rust-ci.yml} | 44 ++++++++++++++++--- 2 files changed, 37 insertions(+), 30 deletions(-) delete mode 100644 .github/workflows/conventions.yml rename .github/workflows/{rust-test.yml => dirsql-rust-ci.yml} (78%) diff --git a/.github/workflows/conventions.yml b/.github/workflows/conventions.yml deleted file mode 100644 index 25a68f7c9..000000000 --- a/.github/workflows/conventions.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Conventions - -on: - pull_request: - paths: - - '.github/CI-DISABLED-PLACEHOLDER' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - rust: - uses: thekevinscott/testing-conventions/.github/workflows/testing-conventions.yml@v0 - with: - languages: '["rust"]' - source: packages/rust - config: testing-conventions.toml - base: ${{ github.event.pull_request.base.sha || 'origin/main' }} - gates: '["colocated-test", "unit-lint", "integration-lint", "mutation", "packaging"]' diff --git a/.github/workflows/rust-test.yml b/.github/workflows/dirsql-rust-ci.yml similarity index 78% rename from .github/workflows/rust-test.yml rename to .github/workflows/dirsql-rust-ci.yml index a7c129fba..58c937a9f 100644 --- a/.github/workflows/rust-test.yml +++ b/.github/workflows/dirsql-rust-ci.yml @@ -1,8 +1,15 @@ -name: Rust Test - -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - +name: dirsql Rust CI + +# All PR verification for the Rust core (packages/rust): unit + integration +# tests, the bespoke nightly coverage job, clippy/fmt lint, and the +# testing-conventions gate suite. Merged from rust-test.yml and the +# conventions.yml `rust` lane so one paths filter governs the whole set. +# +# The binding crates fan in (packages/ts/napi, packages/python/src): they are +# cargo workspace members, so the workspace-wide unit/lint jobs compile them. +# The root testing-conventions.toml carries this lane's config and the +# [rust.coverage] floors the coverage job reads. +# No self-path on pull_request, per the #834 stack convention. on: push: branches: [main] @@ -12,16 +19,39 @@ on: - 'packages/python/src/**' - 'Cargo.toml' - 'Cargo.lock' - - '.github/workflows/rust-test.yml' + - 'testing-conventions.toml' + - '.github/workflows/dirsql-rust-ci.yml' pull_request: paths: - - '.github/CI-DISABLED-PLACEHOLDER' + - 'packages/rust/**' + - '!packages/rust/changelog.d/**' + - '!packages/rust/migrations.d/**' + - '!packages/rust/README.md' + - 'packages/ts/napi/**' + - 'packages/python/src/**' + - 'Cargo.toml' + - 'Cargo.lock' + - 'testing-conventions.toml' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: + contents: read + jobs: + # Job id `rust` kept from its conventions.yml lane so check-run names are + # unchanged. + rust: + uses: thekevinscott/testing-conventions/.github/workflows/testing-conventions.yml@v0 + with: + languages: '["rust"]' + source: packages/rust + config: testing-conventions.toml + base: ${{ github.event.pull_request.base.sha || 'origin/main' }} + gates: '["colocated-test", "unit-lint", "integration-lint", "mutation", "packaging"]' + unit: name: Unit tests runs-on: ubuntu-latest From 0704e675997603581709c022f250eef66319aab5 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Aug 2026 15:29:33 +0000 Subject: [PATCH 2/2] ci: trigger dirsql-rust-ci.yml on edits to their own files The pull_request self-path was omitted while this stack was being probed, so definition layers reported zero checks and the probe PRs measured cleanly. The probes are read and closed, and the YAML layers were always separate PRs from them, so the suppression has no remaining purpose -- it only leaves CI-config-only PRs with no checks at all, which merge vacuously green under the post-#881 Mergify gate. skip-changelog: CI configuration only --- .github/workflows/dirsql-rust-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dirsql-rust-ci.yml b/.github/workflows/dirsql-rust-ci.yml index 58c937a9f..91a86e70a 100644 --- a/.github/workflows/dirsql-rust-ci.yml +++ b/.github/workflows/dirsql-rust-ci.yml @@ -32,6 +32,7 @@ on: - 'Cargo.toml' - 'Cargo.lock' - 'testing-conventions.toml' + - '.github/workflows/dirsql-rust-ci.yml' concurrency: group: ${{ github.workflow }}-${{ github.ref }}