From ddd38f639c52fb1fa30783ab40c3ddd3ffb3694f Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 9 Oct 2026 01:32:41 +0000 Subject: [PATCH 1/2] Run compat matrices on PRs only for own files The ten non-gating compatibility workflows (sbt, PDM, vlt, Bun, Composer, npm, Poetry, Go, pnpm, Pipenv) listed shared engine globs (vendor/, patch/, vex/, scan/, Cargo.lock, crates/**) in their pull_request paths, so they started on 59-85% of PR pushes: ~82,000 Linux + 26,000 Windows job-min/day with 0 PR failures in 24h. The breaks they do catch surface on push to main. Narrow each pull_request filter to the ecosystem's own sources, tests, scripts and docs. Push to main still runs every matrix: unfiltered for six workflows, and PDM, Bun and Poetry's path-filtered push triggers gain every path their PR filter drops, so no change loses its run. ci.yml's per-ecosystem blocking slice is untouched, and workflow_dispatch on the PR branch still gives the full matrix on demand. Fixes #1198 Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01Ws89aDVJwaF9MUUgy1JLWB --- .github/workflows/bun-compatibility.yml | 38 +++++++++----------- .github/workflows/composer-compatibility.yml | 38 ++++---------------- .github/workflows/go-compatibility.yml | 14 ++++---- .github/workflows/npm-compatibility.yml | 20 +++++------ .github/workflows/pdm-compatibility.yml | 29 +++++++++++---- .github/workflows/pipenv-compatibility.yml | 20 +++++------ .github/workflows/pnpm-compatibility.yml | 18 ++++------ .github/workflows/poetry-compatibility.yml | 19 ++++++---- .github/workflows/sbt-compatibility.yml | 25 ++++++------- .github/workflows/vlt-compatibility.yml | 28 ++++----------- scripts/tests/test_ci_vlt_rows.py | 8 +++-- 11 files changed, 115 insertions(+), 142 deletions(-) diff --git a/.github/workflows/bun-compatibility.yml b/.github/workflows/bun-compatibility.yml index c5b78dcbc..7d04cd593 100644 --- a/.github/workflows/bun-compatibility.yml +++ b/.github/workflows/bun-compatibility.yml @@ -16,6 +16,11 @@ name: Bun patch compatibility on: pull_request: types: [opened, synchronize, reopened, ready_for_review] + # Only this ecosystem's own files. A change to shared engine code + # (vendor/, patch/, vex/, scan/, Cargo.lock, ...) runs the full matrix on + # push to main, or on demand via workflow_dispatch on the PR branch; + # ci.yml's per-ecosystem blocking slice still runs on every PR and in + # the merge queue (#1198). paths: - '.github/actions/upload-artifact/**' - '.github/actions/pin-socket-hosts/**' @@ -24,30 +29,13 @@ on: - 'scripts/backtest-bun*.py' - 'scripts/probe-bun-historical-linux.py' - 'scripts/bun-historical-shas.json' + - 'docs/testing/bun-compatibility.md' + - 'crates/*/src/**/bun_*' + - 'crates/*/src/**/bun.rs' + - 'crates/*/src/**/bun/**' - 'crates/socket-patch-cli/tests/e2e_bun_lockb.rs' - 'crates/socket-patch-core/tests/fixtures/bun-lockb/**' - - 'docs/testing/bun-compatibility.md' - - 'Cargo.lock' - - 'crates/socket-patch-core/src/vendor/**' - - 'crates/socket-patch-core/src/patch/redirect/**' - - 'crates/socket-patch-core/src/vendor/bun_lock_text.rs' - - 'crates/socket-patch-core/src/crawlers/npm_crawler.rs' - - 'crates/socket-patch-core/src/crawlers/pkg_managers.rs' - - 'crates/socket-patch-core/src/constants.rs' - - 'crates/socket-patch-core/src/utils/process.rs' - 'crates/socket-patch-core/tests/fixtures/redirect/npm/bun/**' - - 'crates/socket-patch-cli/src/commands/get.rs' - - 'crates/socket-patch-core/src/vex/**' - - 'crates/socket-patch-cli/src/commands/vex.rs' - - 'crates/socket-patch-cli/src/commands/vex_consumed.rs' - - 'crates/socket-patch-cli/src/commands/vex_sources.rs' - - 'crates/socket-patch-cli/src/commands/apply.rs' - - 'crates/socket-patch-cli/tests/vex_e2e_common/**' - - 'crates/socket-patch-cli/src/commands/scan/**' - - 'crates/socket-patch-cli/src/commands/rollback.rs' - - 'crates/socket-patch-cli/src/commands/vendor.rs' - - 'crates/socket-patch-cli/src/commands/vendored_backend/**' - - 'crates/socket-patch-cli/src/commands/remove.rs' # Main runs are the only rust-cache writers (save-if below), so a # path-filtered push trigger is what seeds the cache the PR builds restore # (rust-cache keys on Cargo.lock, so Cargo.lock belongs here) and re-runs @@ -82,6 +70,14 @@ on: - 'crates/socket-patch-cli/src/commands/vendor.rs' - 'crates/socket-patch-cli/src/commands/vendored_backend/**' - 'crates/socket-patch-cli/src/commands/remove.rs' + - '.github/actions/upload-artifact/**' + - 'docs/testing/bun-compatibility.md' + - 'crates/socket-patch-core/src/vendor/bun_lock_text.rs' + - 'crates/socket-patch-core/src/crawlers/npm_crawler.rs' + - 'crates/socket-patch-core/src/crawlers/pkg_managers.rs' + - 'crates/socket-patch-core/src/constants.rs' + - 'crates/socket-patch-core/src/utils/process.rs' + - 'crates/socket-patch-core/tests/fixtures/redirect/npm/bun/**' workflow_dispatch: inputs: versions: diff --git a/.github/workflows/composer-compatibility.yml b/.github/workflows/composer-compatibility.yml index a7ac0a3f1..2fb2eb7d1 100644 --- a/.github/workflows/composer-compatibility.yml +++ b/.github/workflows/composer-compatibility.yml @@ -22,46 +22,22 @@ name: Composer patch compatibility on: pull_request: types: [opened, synchronize, reopened, ready_for_review] + # Only this ecosystem's own files. A change to shared engine code + # (vendor/, patch/, vex/, scan/, Cargo.lock, ...) runs the full matrix on + # push to main, or on demand via workflow_dispatch on the PR branch; + # ci.yml's per-ecosystem blocking slice still runs on every PR and in + # the merge queue (#1198). paths: - '.github/workflows/composer-compatibility.yml' - 'tests/docker/Dockerfile.composer' - - 'Cargo.lock' - - 'Cargo.toml' - - 'crates/*/Cargo.toml' - - 'crates/socket-patch-core/src/vendor/**' - - 'crates/socket-patch-core/src/patch/**' - - 'crates/socket-patch-core/src/formats/composer/**' - - 'crates/socket-patch-core/src/formats/registry.rs' - - 'crates/socket-patch-core/src/hosted/**' - - 'crates/socket-patch-core/src/ledgers.rs' - - 'crates/socket-patch-core/src/policy/**' - - 'crates/socket-patch-core/src/rollout.rs' - - 'crates/socket-patch-core/src/rollout/**' - - 'crates/socket-patch-core/src/manifest/**' + - 'crates/*/src/**/*composer*' + - 'crates/*/src/**/*composer*/**' - 'crates/socket-patch-core/tests/fixtures/redirect/composer/**' - 'crates/socket-patch-core/tests/fixtures/composer-version-vectors.json' - - 'crates/socket-patch-core/src/crawlers/composer_crawler.rs' - - 'crates/socket-patch-core/src/crawlers/composer_crawler/**' - - 'crates/socket-patch-core/src/utils/composer*.rs' - - 'crates/socket-patch-core/src/utils/purl.rs' - - 'crates/socket-patch-core/src/utils/group_commit.rs' - - 'crates/socket-patch-core/src/utils/durability.rs' - - 'crates/socket-patch-core/src/vex/**' - - 'crates/socket-patch-cli/src/commands/vendor*' - - 'crates/socket-patch-cli/src/commands/vendored_backend/**' - - 'crates/socket-patch-cli/src/commands/get*.rs' - - 'crates/socket-patch-cli/src/commands/apply.rs' - - 'crates/socket-patch-cli/src/commands/rollback.rs' - - 'crates/socket-patch-cli/src/commands/remove.rs' - - 'crates/socket-patch-cli/src/commands/composer_hints.rs' - - 'crates/socket-patch-cli/src/commands/scan/**' - - 'crates/socket-patch-cli/src/commands/vex*.rs' - 'crates/socket-patch-cli/tests/e2e_*composer*.rs' - 'crates/socket-patch-cli/tests/docker_e2e_vendor_composer.rs' - 'crates/socket-patch-cli/tests/composer_e2e_common/**' - - 'crates/socket-patch-cli/tests/docker_vendor_common/**' - 'crates/socket-patch-cli/tests/e2e_vex_lockfile/composer.rs' - - 'crates/socket-patch-cli/tests/vex_e2e_common/**' push: branches: [main] workflow_dispatch: diff --git a/.github/workflows/go-compatibility.yml b/.github/workflows/go-compatibility.yml index d53907b42..8cd27a6e3 100644 --- a/.github/workflows/go-compatibility.yml +++ b/.github/workflows/go-compatibility.yml @@ -8,20 +8,22 @@ name: Go patch compatibility on: pull_request: types: [opened, synchronize, reopened, ready_for_review] + # Only this ecosystem's own files. A change to shared engine code + # (vendor/, patch/, vex/, scan/, Cargo.lock, ...) runs the full matrix on + # push to main, or on demand via workflow_dispatch on the PR branch; + # ci.yml's per-ecosystem blocking slice still runs on every PR and in + # the merge queue (#1198). paths: - '.github/workflows/go-compatibility.yml' + - 'crates/*/src/**/*golang*' + - 'crates/*/src/**/*golang*/**' - 'crates/socket-patch-core/src/vendor/go*.rs' - - 'crates/socket-patch-core/src/vendor/golang.rs' - - 'crates/socket-patch-core/src/patch/redirect/**' - 'crates/socket-patch-core/src/crawlers/go_crawler.rs' - - 'crates/socket-patch-core/src/vex/**' - - 'crates/socket-patch-cli/src/commands/vex*.rs' - - 'crates/socket-patch-cli/src/commands/vendor*' + - 'crates/socket-patch-core/src/crawlers/go_crawler/**' - 'crates/socket-patch-cli/tests/e2e_golang_*build.rs' - 'crates/socket-patch-cli/tests/e2e_vendor_golang_build.rs' - 'crates/socket-patch-cli/tests/golang_e2e_matrix/**' - 'crates/socket-patch-cli/tests/e2e_vex_lockfile/golang.rs' - - 'crates/socket-patch-cli/tests/vex_e2e_common/**' push: branches: [main] workflow_dispatch: diff --git a/.github/workflows/npm-compatibility.yml b/.github/workflows/npm-compatibility.yml index b792902da..17fc79063 100644 --- a/.github/workflows/npm-compatibility.yml +++ b/.github/workflows/npm-compatibility.yml @@ -12,24 +12,24 @@ on: # Main pushes stay unfiltered. pull_request: types: [opened, synchronize, reopened, ready_for_review] + # Only this ecosystem's own files. A change to shared engine code + # (vendor/, patch/, vex/, scan/, Cargo.lock, ...) runs the full matrix on + # push to main, or on demand via workflow_dispatch on the PR branch; + # ci.yml's per-ecosystem blocking slice still runs on every PR and in + # the merge queue (#1198). paths: - '.github/actions/upload-artifact/**' - - 'Cargo.lock' - - 'Cargo.toml' - - 'rust-toolchain.toml' - - '.cargo/config.toml' - '.github/workflows/npm-compatibility.yml' - 'docs/testing/npm-compatibility.md' - - 'crates/**' - - '!crates/**/*.md' + - 'crates/*/src/**/*npm*' + - 'crates/*/src/**/*npm*/**' + - 'crates/socket-patch-core/src/package_json/**' + - '!crates/*/src/**/*pnpm*' + - '!crates/*/src/**/*pnpm*/**' - '!crates/socket-patch-node/**' - - '!crates/socket-patch-core/tests/**' - - '!crates/socket-patch-cli/tests/**' - - 'crates/socket-patch-cli/tests/vex_e2e_common/**' - 'crates/socket-patch-cli/tests/e2e_redirect_npm_build.rs' - 'crates/socket-patch-cli/tests/e2e_vendor_npm_build.rs' - 'crates/socket-patch-cli/tests/npm_e2e_common/**' - - 'crates/socket-patch-cli/tests/common/cache_env.rs' push: branches: [main] workflow_dispatch: diff --git a/.github/workflows/pdm-compatibility.yml b/.github/workflows/pdm-compatibility.yml index 6b194dec4..714d938ea 100644 --- a/.github/workflows/pdm-compatibility.yml +++ b/.github/workflows/pdm-compatibility.yml @@ -10,11 +10,33 @@ name: PDM patch compatibility on: pull_request: types: [opened, synchronize, reopened, ready_for_review] + # Only this ecosystem's own files. A change to shared engine code + # (vendor/, patch/, vex/, scan/, Cargo.lock, ...) runs the full matrix on + # push to main, or on demand via workflow_dispatch on the PR branch; + # ci.yml's per-ecosystem blocking slice still runs on every PR and in + # the merge queue (#1198). paths: - '.github/actions/upload-artifact/**' - '.github/workflows/pdm-compatibility.yml' + - 'scripts/backtest-pdm.py' + - 'crates/*/src/**/*pdm*' + - 'crates/*/src/**/*pdm*/**' + - 'crates/socket-patch-core/src/vendor/pypi*.rs' + - 'crates/socket-patch-core/tests/fixtures/pdm-native/**' + - 'crates/socket-patch-cli/tests/e2e_vex_build/main.rs' + - 'crates/socket-patch-cli/tests/e2e_vex_build/pdm.rs' + - 'crates/socket-patch-cli/tests/vex_pypi_real_common/**' + # The capstone skips the cells ci.yml's e2e rows run. + - '.github/workflows/ci.yml' + push: + branches: [main] + paths: - 'scripts/backtest-pdm.py' - 'crates/socket-patch-core/src/utils/pdm_lock.rs' + - 'crates/socket-patch-core/src/patch/redirect/pdm.rs' + - 'crates/socket-patch-core/src/vendor/pypi_pdm.rs' + - '.github/actions/upload-artifact/**' + - '.github/workflows/pdm-compatibility.yml' - 'crates/socket-patch-core/src/patch/redirect/**' - 'crates/socket-patch-core/src/vendor/pypi*.rs' - 'crates/socket-patch-core/src/vendor/common.rs' @@ -29,13 +51,6 @@ on: - 'crates/socket-patch-cli/tests/vex_pypi_real_common/**' # The capstone skips the cells ci.yml's e2e rows run. - '.github/workflows/ci.yml' - push: - branches: [main] - paths: - - 'scripts/backtest-pdm.py' - - 'crates/socket-patch-core/src/utils/pdm_lock.rs' - - 'crates/socket-patch-core/src/patch/redirect/pdm.rs' - - 'crates/socket-patch-core/src/vendor/pypi_pdm.rs' workflow_dispatch: inputs: versions: diff --git a/.github/workflows/pipenv-compatibility.yml b/.github/workflows/pipenv-compatibility.yml index d8d2a3335..630e96030 100644 --- a/.github/workflows/pipenv-compatibility.yml +++ b/.github/workflows/pipenv-compatibility.yml @@ -10,24 +10,20 @@ name: Pipenv compatibility on: pull_request: types: [opened, synchronize, reopened, ready_for_review] + # Only this ecosystem's own files. A change to shared engine code + # (vendor/, patch/, vex/, scan/, Cargo.lock, ...) runs the full matrix on + # push to main, or on demand via workflow_dispatch on the PR branch; + # ci.yml's per-ecosystem blocking slice still runs on every PR and in + # the merge queue (#1198). paths: - '.github/actions/upload-artifact/**' - - 'crates/socket-patch-core/src/patch/redirect/pipenv.rs' - - 'crates/socket-patch-core/src/vendor/pypi_pipenv.rs' + - '.github/workflows/pipenv-compatibility.yml' + - 'crates/*/src/**/*pipenv*' + - 'crates/*/src/**/*pipenv*/**' - 'crates/socket-patch-core/src/vendor/pypi.rs' - - 'crates/socket-patch-core/src/vendor/lock_inventory/**' - 'crates/socket-patch-core/src/crawlers/python_crawler.rs' - - 'crates/socket-patch-core/src/utils/pipenv.rs' - - 'crates/socket-patch-cli/src/commands/scan/hosted.rs' - - 'crates/socket-patch-cli/src/commands/vendor.rs' - - 'crates/socket-patch-cli/src/commands/rollback.rs' - - 'crates/socket-patch-cli/src/commands/vex.rs' - - 'crates/socket-patch-core/src/patch/redirect/replay.rs' - 'scripts/backtest-pipenv.py' - 'scripts/tests/test_backtest_harnesses.py' - - 'crates/socket-patch-core/src/vex/**' - - 'crates/socket-patch-cli/src/commands/vex_sources.rs' - - '.github/workflows/pipenv-compatibility.yml' push: branches: [main] workflow_dispatch: diff --git a/.github/workflows/pnpm-compatibility.yml b/.github/workflows/pnpm-compatibility.yml index b00288934..426bbc1b9 100644 --- a/.github/workflows/pnpm-compatibility.yml +++ b/.github/workflows/pnpm-compatibility.yml @@ -6,22 +6,18 @@ on: # Main pushes stay unfiltered. pull_request: types: [opened, synchronize, reopened, ready_for_review] + # Only this ecosystem's own files. A change to shared engine code + # (vendor/, patch/, vex/, scan/, Cargo.lock, ...) runs the full matrix on + # push to main, or on demand via workflow_dispatch on the PR branch; + # ci.yml's per-ecosystem blocking slice still runs on every PR and in + # the merge queue (#1198). paths: - '.github/actions/upload-artifact/**' - - 'Cargo.lock' - - 'Cargo.toml' - - 'rust-toolchain.toml' - - '.cargo/config.toml' - '.github/workflows/pnpm-compatibility.yml' - - 'crates/**' - - '!crates/**/*.md' - - '!crates/socket-patch-node/**' - - '!crates/socket-patch-core/tests/**' - - '!crates/socket-patch-cli/tests/**' - - 'crates/socket-patch-cli/tests/vex_e2e_common/**' + - 'crates/*/src/**/*pnpm*' + - 'crates/*/src/**/*pnpm*/**' - 'crates/socket-patch-cli/tests/e2e_redirect_pnpm_build.rs' - 'crates/socket-patch-cli/tests/e2e_vendor_pnpm_build.rs' - - 'crates/socket-patch-cli/tests/common/cache_env.rs' push: branches: [main] workflow_dispatch: diff --git a/.github/workflows/poetry-compatibility.yml b/.github/workflows/poetry-compatibility.yml index 139c68513..c87325fe4 100644 --- a/.github/workflows/poetry-compatibility.yml +++ b/.github/workflows/poetry-compatibility.yml @@ -14,20 +14,21 @@ name: Poetry patch compatibility on: pull_request: types: [opened, synchronize, reopened, ready_for_review] + # Only this ecosystem's own files. A change to shared engine code + # (vendor/, patch/, vex/, scan/, Cargo.lock, ...) runs the full matrix on + # push to main, or on demand via workflow_dispatch on the PR branch; + # ci.yml's per-ecosystem blocking slice still runs on every PR and in + # the merge queue (#1198). paths: - '.github/actions/upload-artifact/**' - '.github/actions/pin-socket-hosts/**' - 'scripts/pin-socket-hosts.py' - '.github/workflows/poetry-compatibility.yml' - 'scripts/backtest-poetry.py' - - 'crates/socket-patch-core/src/utils/poetry_lock.rs' - - 'crates/socket-patch-core/src/patch/redirect/**' + - 'crates/*/src/**/*poetry*' + - 'crates/*/src/**/*poetry*/**' - 'crates/socket-patch-core/src/vendor/pypi*.rs' - 'crates/socket-patch-core/src/vex/discover/pypi_locks.rs' - - 'crates/socket-patch-cli/src/commands/scan/**' - - 'crates/socket-patch-cli/src/commands/vex.rs' - - 'crates/socket-patch-cli/src/commands/vex_sources.rs' - - 'crates/socket-patch-cli/src/commands/rollback.rs' push: branches: [main] paths: @@ -38,6 +39,12 @@ on: - 'crates/socket-patch-core/src/patch/redirect/**' - 'crates/socket-patch-core/src/vendor/pypi*.rs' - 'crates/socket-patch-core/src/vex/discover/pypi_locks.rs' + - '.github/actions/upload-artifact/**' + - '.github/workflows/poetry-compatibility.yml' + - 'crates/socket-patch-cli/src/commands/scan/**' + - 'crates/socket-patch-cli/src/commands/vex.rs' + - 'crates/socket-patch-cli/src/commands/vex_sources.rs' + - 'crates/socket-patch-cli/src/commands/rollback.rs' workflow_dispatch: permissions: diff --git a/.github/workflows/sbt-compatibility.yml b/.github/workflows/sbt-compatibility.yml index 412a67342..55814ee4d 100644 --- a/.github/workflows/sbt-compatibility.yml +++ b/.github/workflows/sbt-compatibility.yml @@ -22,8 +22,11 @@ name: sbt / Mill / scala-cli compatibility on: pull_request: types: [opened, synchronize, reopened, ready_for_review] - # Everything the agent, hosted and vendored cells run through, shared - # engine code included (as composer-compatibility.yml does). + # Only this ecosystem's own files. A change to shared engine code + # (vendor/, patch/, vex/, scan/, Cargo.lock, ...) runs the full matrix on + # push to main, or on demand via workflow_dispatch on the PR branch; + # ci.yml's per-ecosystem blocking slice still runs on every PR and in + # the merge queue (#1198). paths: - '.github/workflows/sbt-compatibility.yml' - 'scripts/sbt-compat-matrix.sh' @@ -31,19 +34,11 @@ on: - 'docs/testing/sbt-compatibility.md' - 'tests/docker/Dockerfile.sbt' - 'tests/docker/Dockerfile.base' - - 'Cargo.toml' - - 'Cargo.lock' - - 'crates/*/Cargo.toml' - - 'crates/socket-patch-core/src/formats/**' - - 'crates/socket-patch-core/src/crawlers/**' - - 'crates/socket-patch-core/src/hosted/**' - - 'crates/socket-patch-core/src/patch/**' - - 'crates/socket-patch-core/src/manifest/**' - - 'crates/socket-patch-core/src/api/**' - - 'crates/socket-patch-core/src/utils/**' - - 'crates/socket-patch-core/src/vendor/**' - - 'crates/socket-patch-core/src/vex/**' - - 'crates/socket-patch-cli/src/**' + - 'crates/*/src/**/*sbt*' + - 'crates/*/src/**/*sbt*/**' + - 'crates/*/src/**/*scala*' + - 'crates/*/src/**/*scala*/**' + - 'crates/socket-patch-core/src/vendor/jvm/**' - 'crates/socket-patch-cli/tests/docker_e2e_sbt.rs' - 'crates/socket-patch-cli/tests/e2e_sbt_build.rs' - 'crates/socket-patch-cli/tests/e2e_sbt_vendor_build.rs' diff --git a/.github/workflows/vlt-compatibility.yml b/.github/workflows/vlt-compatibility.yml index d827ff8c8..466404c65 100644 --- a/.github/workflows/vlt-compatibility.yml +++ b/.github/workflows/vlt-compatibility.yml @@ -20,33 +20,19 @@ name: vlt patch compatibility on: pull_request: types: [opened, synchronize, reopened, ready_for_review] + # Only this ecosystem's own files. A change to shared engine code + # (vendor/, patch/, vex/, scan/, Cargo.lock, ...) runs the full matrix on + # push to main, or on demand via workflow_dispatch on the PR branch; + # ci.yml's per-ecosystem blocking slice still runs on every PR and in + # the merge queue (#1198). paths: - '.github/actions/upload-artifact/**' - '.github/actions/pin-socket-hosts/**' - 'scripts/pin-socket-hosts.py' - '.github/workflows/vlt-compatibility.yml' - - 'Cargo.lock' - - 'rust-toolchain.toml' - - 'crates/socket-patch-core/src/vendor/**' - - 'crates/socket-patch-core/src/patch/**' - - 'crates/socket-patch-core/src/crawlers/**' - - 'crates/socket-patch-core/src/vex/**' - - 'crates/socket-patch-core/src/package_json/**' - - 'crates/socket-patch-core/src/utils/fs.rs' - - 'crates/socket-patch-core/src/constants.rs' - - 'crates/socket-patch-core/tests/**' - - 'crates/socket-patch-cli/src/commands/apply.rs' - - 'crates/socket-patch-cli/src/commands/rollback.rs' - - 'crates/socket-patch-cli/src/commands/remove.rs' - - 'crates/socket-patch-cli/src/commands/vendor.rs' - - 'crates/socket-patch-cli/src/commands/vendored_backend/**' - - 'crates/socket-patch-cli/src/commands/get.rs' - - 'crates/socket-patch-cli/src/commands/vlt_preflight.rs' - - 'crates/socket-patch-cli/src/commands/scan/**' - - 'crates/socket-patch-cli/src/commands/vex*' - - 'crates/socket-patch-cli/tests/common/**' + - 'crates/*/src/**/*vlt*' + - 'crates/*/src/**/*vlt*/**' - 'crates/socket-patch-cli/tests/vlt_e2e_common/**' - - 'crates/socket-patch-cli/tests/vex_e2e_common/**' - 'crates/socket-patch-cli/tests/*vlt*' - 'crates/socket-patch-cli/tests/*vlt*/**' - 'crates/socket-patch-cli/tests/vlt-leg-manifest.json' diff --git a/scripts/tests/test_ci_vlt_rows.py b/scripts/tests/test_ci_vlt_rows.py index 46c328b3f..62d325099 100644 --- a/scripts/tests/test_ci_vlt_rows.py +++ b/scripts/tests/test_ci_vlt_rows.py @@ -303,9 +303,13 @@ def test_jobs_and_triggers(self): self.assertIn("schedule:", text) self.assertIn("workflow_dispatch:", text) for path in ("'scripts/backtest-vlt.py'", "'scripts/check-vlt-legs.py'", - "'crates/socket-patch-core/src/vendor/**'", "'Cargo.lock'", - "'rust-toolchain.toml'", "'.github/workflows/vlt-compatibility.yml'"): + "'.github/workflows/vlt-compatibility.yml'"): self.assertEqual(text.count(path), 2, f"{path} in both pull_request and push filters") + # Shared engine code runs the matrix on push to main (and nightly), + # not on every PR (#1198). + for path in ("'crates/socket-patch-core/src/vendor/**'", "'Cargo.lock'", + "'rust-toolchain.toml'"): + self.assertEqual(text.count(path), 1, f"{path} only in the push filter") self.assertIn("continue-on-error: true", "\n".join(self.compat["downgrade"])) self.assertIn("--canary-checks", "\n".join(self.compat["canary"])) self.assertIn("--diff-locks", "\n".join(self.compat["lock-diff"])) From 9da4dfdc27fdaa5fe4d5d6ff419c534a2d2fa2ed Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 9 Oct 2026 01:42:29 +0000 Subject: [PATCH 2/2] Run sbt compat on Coursier and Ivy cache changes Bugbot: coursier_cache.rs, ivy_cache.rs and patch/sidecars/coursier.rs serve only sbt, Mill and scala-cli, but no sbt PR glob matched them. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01Ws89aDVJwaF9MUUgy1JLWB --- .github/workflows/sbt-compatibility.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/sbt-compatibility.yml b/.github/workflows/sbt-compatibility.yml index 55814ee4d..adf030e81 100644 --- a/.github/workflows/sbt-compatibility.yml +++ b/.github/workflows/sbt-compatibility.yml @@ -39,6 +39,8 @@ on: - 'crates/*/src/**/*scala*' - 'crates/*/src/**/*scala*/**' - 'crates/socket-patch-core/src/vendor/jvm/**' + - 'crates/*/src/**/*coursier*' + - 'crates/*/src/**/*ivy*' - 'crates/socket-patch-cli/tests/docker_e2e_sbt.rs' - 'crates/socket-patch-cli/tests/e2e_sbt_build.rs' - 'crates/socket-patch-cli/tests/e2e_sbt_vendor_build.rs'