Skip to content

Commit f6bdad5

Browse files
v5: remove setup (WS7) + patch UI streamlining (WS8) (#279)
* Remove the setup subcommand and its install hooks (v5 WS7) `socket-patch setup` (and --check/--remove/--exclude) is gone, with every install hook it wired: npm postinstall/dependencies scripts, the socket-patch[hook] .pth wheel, the in-tree Bundler plugin + Gemfile block, and Composer post-install/update scripts. `apply` stays; agent mode in CI is `scan --mode agent` once, then `socket-patch apply` after each install. Deleted: commands/setup.rs, core setup/** and the setup-only package_json helpers, the setup tests and setup-matrix suites, the setup-e2e feature, the setup-matrix CI job, tests/setup_matrix and scripts/setup-matrix.sh. vex's install-hook "Property 7" filter goes with it. The socket-patch-hook wheel and socket-patch-bundler gem are dropped from the build and publish workflows (sources kept, frozen, pending an owner decision). Also the plan's small follow-ups: drop the core crate's deprecated re-export aliases (and the CI grep that guarded them), the unused utils::process::tool_command, the vacuous e2e_cargo/e2e_golang CI rows, add the merged 01019627 and 9c2b4925 gem patches to the vendored production e2e, and retire the backtest-poetry "known crawler gap" label. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PQaKzoW5dSw9u5pgAAvVRj * Streamline the patch UI (v5 WS8) - `-h` lists about eight options per command (`cli_command()` marks the rest hide_short_help; `--help` is unchanged); `scan --apply/--vendor` are hidden (still accepted). - Human warnings drop the `(code)` tag (`Warning: …`, `GC: skipped: …`); JSON keeps every code. Error lines keep theirs. - Human text says "hosted", not "redirect" (JSON keys unchanged). - npm's allow-remote notice is one line; `--verbose`/JSON keep the full policy text. - One `ui::next_steps` renderer for hosted and vendored results. - Hosted and vendored `get` never prompt: top-ranked patch per package, like scan, in JSON too. Agent-mode `get` keeps its picker and confirm. - `list` with nothing to list says `No patches in this project. Run \`socket-patch scan\`.` (exit codes unchanged: 1 missing, 0 empty). - One cancel line (`ui::CANCELLED`) and one paid upsell (`ui::PAID_UPGRADE`). - `get`'s self-enforced flag conflicts and `rollback --one-off` exit 2, like every other usage error. Docs: CLI_CONTRACT (human output conventions, exit codes, get prompts), README, CHANGELOG [Unreleased], v5 plan status. Tests updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PQaKzoW5dSw9u5pgAAvVRj * Pin the real-vlt get_and_remove leg to --mode agent `get <uuid>` defaults to hosted since v5, so the leg's in-place patched/pristine assertions need agent mode spelled out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PQaKzoW5dSw9u5pgAAvVRj * Match the hosted-ledger persist-failure wording in two covgap tests These chmod-guarded tests skip under root, so the WS8 wording change ("hosted redirect ledger" -> "hosted ledger") only showed up in CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PQaKzoW5dSw9u5pgAAvVRj * Empty list exits 0; group help by task; document the setup upgrade Review follow-ups: - `list` on a project with no manifest and no ledger record is an empty list: exit 0, the empty-project line (human) or the success envelope with `events: []` (`--json`). Only an unreadable or invalid manifest fails. Hosted mode writes no manifest, so this is the normal case. - Root help groups the commands by task (patch, undo, ship, agent mode) instead of calling get/rollback/remove "older agent-mode commands"; the subcommand list follows the same order. `-h` keeps --cwd, --ecosystems and --offline, and moves `scan --prune` to --help. - README gains "Upgrading from `setup`": move to hosted or keep agent mode, and the exact hook to delete per ecosystem. The CHANGELOG and the frozen hook/plugin READMEs link it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PQaKzoW5dSw9u5pgAAvVRj * Carry the hosted wording and code-free warnings onto #280's new tests and docs #280 added tests and contract lines with the pre-WS8 human strings ("Would redirect", "<purl> redirected, but its patch record ...", `Warning (<code>): ...`). Switch them to this branch's conventions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PQaKzoW5dSw9u5pgAAvVRj * Give the cargo safety VEX baseline a vulnerability to attest With setup's install-hook filter gone, the manifest-backed agent-mode cargo patch attests, but the staged minimal manifest carries no vulnerabilities, so vex ended no_applicable_patches (exit 1). Add one vulnerability to the entry before the baseline run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PQaKzoW5dSw9u5pgAAvVRj --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 73c0c4f commit f6bdad5

203 files changed

Lines changed: 1535 additions & 31541 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/ci.yml‎

Lines changed: 10 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -55,24 +55,6 @@ jobs:
5555

5656
- name: Run clippy
5757
run: cargo clippy --workspace --all-features -- -D warnings
58-
# Moved-module aliases (patch::vendor → vendor, patch::go_mod_edit →
59-
# vendor::go_mod_edit, patch::go_redirect → patch::redirect::golang_local)
60-
# exist only for external consumers of the published core crate.
61-
# #[deprecated] on a `pub use` re-export emits no warnings
62-
# (rust-lang/rust#30827), so the compiler cannot pressure internal code
63-
# off the old paths — this grep is the guard instead.
64-
- name: Reject internal uses of moved-module alias paths
65-
run: |
66-
if grep -rn --include='*.rs' \
67-
-e 'patch::vendor' -e 'patch::go_mod_edit' \
68-
-e 'patch::go_redirect' -e 'patch::bun_lock_text' \
69-
-e 'utils::telemetry' -e 'utils::cleanup_blobs' \
70-
-e 'utils::date' -e 'utils::fuzzy_match' \
71-
-e 'gem_setup::' -e 'composer_setup::' -e 'pth_hook::' \
72-
crates; then
73-
echo '::error::use the canonical module paths (crate::vendor, patch::redirect::golang_local, crate::telemetry, manifest::cleanup_blobs, api::date, crawlers::fuzzy_match); the old-path aliases exist only for external consumers'
74-
exit 1
75-
fi
7658

7759
# The napi addon is only ever loaded by Node, so cargo's own tests never
7860
# exercise its JS loader or the engine/provider boundary.
@@ -107,7 +89,7 @@ jobs:
10789
run: node --test crates/socket-patch-node/npm/test/smoke.mjs
10890

10991
# Lint the out-of-workspace packaging artifacts: the RubyGems CLI launcher
110-
# gem + the Bundler plugin gem (Ruby), and the curl|sh installer. Ruby is
92+
# gem (Ruby), and the curl|sh installer. Ruby is
11193
# pre-installed on the ubuntu-latest runner.
11294
lint-ecosystems:
11395
runs-on: ubuntu-latest
@@ -118,13 +100,9 @@ jobs:
118100
with:
119101
persist-credentials: false
120102

121-
- name: Ruby — syntax-check + build the launcher gem and Bundler plugin
103+
- name: Ruby — syntax-check + build the launcher gem
122104
run: |
123105
( cd gem/socket-patch && ruby -c lib/socket_patch/launcher.rb && ruby -c exe/socket-patch && gem build socket-patch.gemspec )
124-
( cd gem/socket-patch-bundler && ruby -c plugins.rb && gem build socket-patch-bundler.gemspec )
125-
# The generated-plugin templates are pure Ruby — keep them parseable.
126-
ruby -c crates/socket-patch-core/src/setup/gem/templates/plugins.rb.tmpl
127-
ruby -c crates/socket-patch-core/src/setup/gem/templates/gemspec.tmpl
128106
129107
- name: Python — test native installer harnesses
130108
run: python3 -B -m unittest discover -s scripts/tests -v
@@ -311,13 +289,13 @@ jobs:
311289
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"
312290
313291
- name: Run tests
314-
# `--all-features` would also RUN the docker-e2e / setup-e2e suites,
292+
# `--all-features` would also RUN the docker-e2e suites,
315293
# which soft-skip as "ok" in this job (no images are built here, and
316294
# macOS/Windows have no Docker at all) — dozens of fake greens per OS
317295
# that would hide a broken skip-guard behind a passing checkmark.
318296
# Build them with --all-features (compile rot is real coverage), but
319-
# run only the default-feature suites; the dedicated e2e-docker and
320-
# setup-matrix jobs run the gated suites for real.
297+
# run only the default-feature suites; the dedicated e2e-docker
298+
# job runs the gated suites for real.
321299
#
322300
# `--no-fail-fast`: without it cargo stops at the first failing test
323301
# BINARY, so one bad file hides every later binary's result on that
@@ -368,7 +346,7 @@ jobs:
368346
# profile's comment in Cargo.toml). Same opt-level/debug-assertion
369347
# semantics this job exists to validate; ~23m of LTO relinking gone.
370348
# Build/run split for the same reason as the `test` job: the gated
371-
# docker-e2e / setup-e2e suites only soft-skip here — compile them,
349+
# docker-e2e suites only soft-skip here — compile them,
372350
# don't count their skips as passes.
373351
run: |
374352
set -euo pipefail
@@ -681,10 +659,10 @@ jobs:
681659
fail-fast: false
682660
matrix:
683661
include:
684-
- os: ubuntu-latest
685-
suite: e2e_cargo
686-
- os: ubuntu-latest
687-
suite: e2e_golang
662+
# (No e2e_cargo / e2e_golang rows: neither suite has an
663+
# `#[ignore]`-gated test or needs a real toolchain, so the
664+
# unfiltered `test` job already runs all of them and the rows'
665+
# `--ignored` legs selected zero tests.)
688666
- os: ubuntu-latest
689667
suite: e2e_maven
690668
- os: ubuntu-latest
@@ -717,9 +695,6 @@ jobs:
717695
- {os: ubuntu-latest, suite: e2e_redirect_composer_build, composer: '2'}
718696
- {os: ubuntu-latest, suite: e2e_redirect_composer_build, composer: '2.2'}
719697
- {os: ubuntu-latest, suite: e2e_redirect_composer_build, composer: '1'}
720-
# setup-e2e host guards run in no other job (test job = default
721-
# features; setup-matrix job = shell script).
722-
- {os: ubuntu-latest, suite: setup_matrix_composer, test_filter: host_guard}
723698
# Real-bundler gem capstones, one leg per bundler era. Boundaries:
724699
# 1.17/2.1 merged GEM section, 2.2 separate sections, 2.5 last
725700
# pre-CHECKSUMS, 2.6 CHECKSUMS, 4.0.15/4.0.21 before/after the
@@ -741,8 +716,6 @@ jobs:
741716
- {os: ubuntu-latest, suite: e2e_vendor_gem_build, ruby: '3.3', bundler: '2.7.2'}
742717
- {os: ubuntu-latest, suite: e2e_vendor_gem_build, ruby: '3.4', bundler: '4.0.15'}
743718
- {os: ubuntu-latest, suite: e2e_vendor_gem_build, ruby: '3.4', bundler: '4.0.21'}
744-
# not #[ignore]-gated -> --include-ignored is mandatory
745-
- {os: ubuntu-latest, suite: setup_matrix_gem, ruby: '3.3', bundler: '2.7.2', test_filter: --include-ignored}
746719
# The live-API smoke suites (e2e_npm, e2e_pypi, e2e_gem,
747720
# e2e_scan) are intentionally NOT in the PR matrix — their
748721
# `#[ignore]`-gated tests hit the real public proxy at
@@ -1615,78 +1588,6 @@ jobs:
16151588
set -euo pipefail
16161589
cargo test -p socket-patch-cli --test e2e_vendor_cargo_build -- old_toolchain --nocapture
16171590
1618-
# ----------------------------------------------------------------------
1619-
# Experimental `setup`-flow matrix (NON-BLOCKING).
1620-
#
1621-
# For each ecosystem/package manager, drives the full intended flow —
1622-
# prepare deps + a committed patch set, run `socket-patch setup`, run
1623-
# the native install, check whether the patch was applied — plus the
1624-
# negative controls (no setup, empty/wrong/alt patch sets). See
1625-
# tests/setup_matrix/ and scripts/setup-matrix.sh.
1626-
#
1627-
# This is EXPERIMENTAL and intentionally not required to pass yet:
1628-
# `setup` configures install hooks for npm, PyPI, Bundler and Composer
1629-
# only, so the other ecosystems' `baseline_with_setup` cases are
1630-
# EXPECTED to fail (a baseline of what `setup` must eventually support). `continue-on-error: true`
1631-
# means this job never blocks a PR — it must ALSO be left OUT of the
1632-
# repo's required status checks (configured in the branch-protection
1633-
# UI, not in this file). The orchestrator exits non-zero only on a
1634-
# *regression* vs the recorded baseline; the full per-case result set
1635-
# is uploaded as a JSON artifact for inspection.
1636-
# ----------------------------------------------------------------------
1637-
setup-matrix:
1638-
runs-on: ubuntu-latest
1639-
timeout-minutes: 45
1640-
continue-on-error: true
1641-
permissions:
1642-
contents: read
1643-
strategy:
1644-
fail-fast: false
1645-
matrix:
1646-
ecosystem: [npm, pypi, cargo, gem, golang, maven, composer, nuget, deno]
1647-
steps:
1648-
- name: Checkout
1649-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1650-
with:
1651-
persist-credentials: false
1652-
1653-
- name: Set up Docker Buildx
1654-
# `driver: docker` — the per-ecosystem image's `FROM
1655-
# socket-patch-test-base:latest` only resolves when buildx talks
1656-
# directly to the host docker daemon (see e2e-docker above).
1657-
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
1658-
with:
1659-
driver: docker
1660-
1661-
- name: Install Rust
1662-
run: rustup show
1663-
1664-
- name: Build base image
1665-
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
1666-
with:
1667-
context: .
1668-
file: tests/docker/Dockerfile.base
1669-
tags: socket-patch-test-base:latest
1670-
load: true
1671-
1672-
- name: Build ${{ matrix.ecosystem }} image
1673-
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
1674-
with:
1675-
context: .
1676-
file: tests/docker/Dockerfile.${{ matrix.ecosystem }}
1677-
tags: socket-patch-test-${{ matrix.ecosystem }}:latest
1678-
load: true
1679-
1680-
- name: Run ${{ matrix.ecosystem }} setup-matrix
1681-
run: scripts/setup-matrix.sh run --ecosystem ${{ matrix.ecosystem }} --out "report-${{ matrix.ecosystem }}.json"
1682-
1683-
- name: Upload ${{ matrix.ecosystem }} setup-matrix report
1684-
if: always()
1685-
uses: ./.github/actions/upload-artifact
1686-
with:
1687-
name: setup-matrix-${{ matrix.ecosystem }}
1688-
path: report-${{ matrix.ecosystem }}.json
1689-
16901591
# ----------------------------------------------------------------------
16911592
# Hosted-mode production e2e — REQUIRED status check, with a kill switch.
16921593
#

‎.github/workflows/publish-pypi.yml‎

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
name: Publish PyPI
22
run-name: "Publish PyPI ${{ inputs.version }}${{ inputs.distinct-id != '' && format(' [{0}]', inputs.distinct-id) || '' }}"
33

4-
# Publishes socket-patch (platform wheels) + socket-patch-hook (pure-python
5-
# .pth carrier) to PyPI for an existing v<version> release. Dispatched two
4+
# Publishes socket-patch (platform wheels) to PyPI for an existing
5+
# v<version> release. (The socket-patch-hook .pth wheel is no longer
6+
# published: `setup` was removed in v5.) Dispatched two
67
# ways, both as a plain workflow_dispatch run:
78
# - by release.yml (scripts/dispatch-publish.sh), as one leg of the
89
# single-dispatch release fan-out — distinct-id carries the release
@@ -137,29 +138,14 @@ jobs:
137138
- name: Copy README for PyPI package
138139
run: cp README.md pypi/socket-patch/README.md
139140

140-
- name: Build wheels (platform socket-patch + pure-python socket-patch-hook)
141+
- name: Build wheels (platform socket-patch)
141142
env:
142143
VERSION: ${{ inputs.version }}
143-
run: |
144-
# Builds the platform-tagged socket-patch wheels AND the pure-python
145-
# socket-patch-hook wheel (the .pth carrier behind `socket-patch[hook]`).
146-
python scripts/build-pypi-wheels.py --version "$VERSION" --artifacts artifacts --dist dist
147-
# socket-patch and socket-patch-hook are two distinct PyPI projects.
148-
# Publish each from its own dir so trusted publishing mints an OIDC
149-
# token scoped to the right project (one upload spanning both projects
150-
# can be rejected). Each needs its own trusted publisher on PyPI.
151-
mkdir -p dist-hook
152-
mv dist/socket_patch_hook-*.whl dist-hook/
144+
run: python scripts/build-pypi-wheels.py --version "$VERSION" --artifacts artifacts --dist dist
153145

154146
- name: Publish socket-patch to PyPI
155147
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
156148
with:
157149
packages-dir: dist/
158150
# Idempotent for re-runs: already-uploaded files skip.
159151
skip-existing: true
160-
161-
- name: Publish socket-patch-hook to PyPI
162-
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
163-
with:
164-
packages-dir: dist-hook/
165-
skip-existing: true

‎.github/workflows/publish-rubygems.yml‎

Lines changed: 6 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
name: Publish RubyGems
22
run-name: "Publish RubyGems ${{ inputs.version }}${{ inputs.distinct-id != '' && format(' [{0}]', inputs.distinct-id) || '' }}"
33

4-
# Publishes BOTH gems via one OIDC trusted-publishing exchange:
5-
# - gem/socket-patch — the CLI launcher gem (downloads the
6-
# prebuilt binary from the GitHub release at its own version, so this
7-
# workflow only needs the GitHub release + SHA256SUMS to exist).
8-
# - gem/socket-patch-bundler — Phase 2 scaffolding, non-blocking (see the
9-
# step comment below).
4+
# Publishes the CLI launcher gem (gem/socket-patch) via OIDC trusted
5+
# publishing. The gem downloads the prebuilt binary from the GitHub release
6+
# at its own version, so this workflow only needs the GitHub release +
7+
# SHA256SUMS to exist. (The socket-patch-bundler plugin gem is no longer
8+
# published: `setup` was removed in v5.)
109
#
1110
# Dispatched two ways, both as a plain workflow_dispatch run:
1211
# - by release.yml (scripts/dispatch-publish.sh), as one leg of the
@@ -26,8 +25,7 @@ run-name: "Publish RubyGems ${{ inputs.version }}${{ inputs.distinct-id != '' &&
2625
# `rubygems`. Because this workflow only ever runs as its own top-level
2726
# workflow_dispatch run (never as a called reusable workflow), the OIDC
2827
# token's workflow_ref and job_workflow_ref claims both name this file — one
29-
# publisher registration per gem covers every path, and one exchange
30-
# satisfies both gems' publishers.
28+
# publisher registration covers every path.
3129

3230
on:
3331
workflow_dispatch:
@@ -107,24 +105,7 @@ jobs:
107105
exit 1
108106
fi
109107
110-
- name: Lint + version-check the bundler-plugin gem
111-
working-directory: gem/socket-patch-bundler
112-
env:
113-
EXPECTED_VERSION: ${{ inputs.version }}
114-
run: |
115-
ruby -c plugins.rb
116-
# The gemspec version is baked at the tag by scripts/version-sync.sh.
117-
gemver="$(ruby -e 'print Gem::Specification.load("socket-patch-bundler.gemspec").version')"
118-
if [ "$gemver" != "$EXPECTED_VERSION" ]; then
119-
echo "::error::gemspec version $gemver != release $EXPECTED_VERSION (run scripts/version-sync.sh before tagging)"
120-
exit 1
121-
fi
122-
123108
- name: Configure RubyGems credentials (OIDC trusted publishing)
124-
# One OIDC exchange covers both gems: a trusted publisher keyed on
125-
# this repo + workflow (+ the `rubygems` environment) can be
126-
# registered on multiple gems on rubygems.org, and the exchanged
127-
# token pushes any gem whose publisher matches.
128109
uses: rubygems/configure-rubygems-credentials@dc5a8d8553e6ee01fc26761a49e99e733d17954a # v2.1.0
129110

130111
- name: Publish socket-patch to RubyGems
@@ -141,25 +122,3 @@ jobs:
141122
exit 0
142123
fi
143124
gem push "socket-patch-${VERSION}.gem"
144-
145-
# Phase 2 scaffolding (CLI_CONTRACT "gem" support matrix): publish the
146-
# `socket-patch-bundler` gem — the published form of the Bundler plugin
147-
# that `socket-patch setup` currently wires through an in-tree
148-
# `plugin ..., path:` directive. This gem is NOT yet the active mechanism (setup::gem still
149-
# emits the in-tree plugin), so the push is **non-blocking**
150-
# (`continue-on-error`). A follow-up switches the generated Gemfile
151-
# directive to `plugin "socket-patch-bundler"` and drops
152-
# continue-on-error.
153-
- name: Publish socket-patch-bundler to RubyGems
154-
continue-on-error: true
155-
working-directory: gem/socket-patch-bundler
156-
env:
157-
VERSION: ${{ inputs.version }}
158-
run: |
159-
gem build socket-patch-bundler.gemspec
160-
# Same precise-list-element match as the launcher gem above.
161-
if gem list --remote --exact --all socket-patch-bundler 2>/dev/null | grep -qE "[ (]${VERSION}[,)]"; then
162-
echo "socket-patch-bundler ${VERSION} already on RubyGems; skipping."
163-
exit 0
164-
fi
165-
gem push "socket-patch-bundler-${VERSION}.gem"

‎.github/workflows/release.yml‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,8 @@ name: Release
4141
# - npm: OIDC via `npm stage publish`; staged versions require
4242
# manual 2FA approval (see the npm run's step summary).
4343
# - PyPI: OIDC trusted publishing; environment `pypi`.
44-
# - RubyGems: OIDC trusted publishing; environment `rubygems`. One
45-
# repo+workflow publisher per gem (`socket-patch` and
46-
# `socket-patch-bundler`), both satisfied by one exchange.
44+
# - RubyGems: OIDC trusted publishing; environment `rubygems`
45+
# (the `socket-patch` launcher gem).
4746
# Every registry's trusted publisher is keyed on the repo + the publish
4847
# workflow's own filename (see each publish-*.yml header), NOT release.yml.
4948

‎.github/workflows/vlt-compatibility.yml‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ on:
3535
- 'crates/socket-patch-cli/src/commands/apply.rs'
3636
- 'crates/socket-patch-cli/src/commands/rollback.rs'
3737
- 'crates/socket-patch-cli/src/commands/remove.rs'
38-
- 'crates/socket-patch-cli/src/commands/setup.rs'
3938
- 'crates/socket-patch-cli/src/commands/vendor.rs'
4039
- 'crates/socket-patch-cli/src/commands/vendored_backend/**'
4140
- 'crates/socket-patch-cli/src/commands/get.rs'
@@ -72,7 +71,6 @@ on:
7271
- 'crates/socket-patch-cli/src/commands/apply.rs'
7372
- 'crates/socket-patch-cli/src/commands/rollback.rs'
7473
- 'crates/socket-patch-cli/src/commands/remove.rs'
75-
- 'crates/socket-patch-cli/src/commands/setup.rs'
7674
- 'crates/socket-patch-cli/src/commands/vendor.rs'
7775
- 'crates/socket-patch-cli/src/commands/vendored_backend/**'
7876
- 'crates/socket-patch-cli/src/commands/get.rs'

0 commit comments

Comments
 (0)