Skip to content

Commit 9fc3cd3

Browse files
mikolalysenkoclaude
andcommitted
Merge origin/main into arch-refactor/792-retire-diff-download-mode
Keep this PR's removal of the diff download path: drop main's updated mismatch-blob prefetch (ensure_blobs_for_mismatches / mismatch_blob_gaps) and its tests, and main's --download-mode parse tests. Keep main's new CLI_CONTRACT wording about added files and rollback, minus the diff text. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2 parents 1357bcf + 628542d commit 9fc3cd3

306 files changed

Lines changed: 22320 additions & 5214 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.

‎.cargo/config.toml‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,10 @@ SOCKET_NO_CONFIG = "1"
3232
# tests opt back in with SOCKET_NO_UPDATE_CHECK=0 plus a wiremock
3333
# SOCKET_UPDATE_BASE_URL.
3434
SOCKET_NO_UPDATE_CHECK = "1"
35+
36+
# No test child (and no dev `cargo run`) may POST telemetry to the real
37+
# public proxy: an unauthenticated run sends its events to
38+
# patches-api.socket.dev, and most spawning suites point no proxy URL at a
39+
# mock. Suites that assert telemetry events opt back in with
40+
# SOCKET_TELEMETRY_DISABLED=0 (or remove it) plus a wiremock endpoint.
41+
SOCKET_TELEMETRY_DISABLED = "1"

‎.github/workflows/bench.yml‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ name: Benchmarks
2323

2424
on:
2525
pull_request:
26-
types: [opened, synchronize, reopened, labeled, unlabeled]
26+
types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled]
2727
paths:
2828
- '.github/workflows/bench.yml'
2929
- '.cargo/**'
@@ -69,8 +69,10 @@ jobs:
6969
name: scan performance
7070
# Labels re-trigger the workflow; only this one changes the outcome.
7171
if: >-
72-
(github.event.action != 'labeled' && github.event.action != 'unlabeled')
73-
|| github.event.label.name == 'performance-regression-accepted'
72+
github.event.pull_request.draft != true && (
73+
(github.event.action != 'labeled' && github.event.action != 'unlabeled')
74+
|| github.event.label.name == 'performance-regression-accepted'
75+
)
7476
# Job-level, so an unrelated label (skipped above) cannot cancel a run
7577
# in progress. A newer push to the same PR supersedes the older run.
7678
concurrency:

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ name: Bun patch compatibility
1515

1616
on:
1717
pull_request:
18+
types: [opened, synchronize, reopened, ready_for_review]
1819
paths:
1920
- '.github/actions/upload-artifact/**'
2021
- '.github/actions/pin-socket-hosts/**'
@@ -111,10 +112,14 @@ env:
111112

112113
jobs:
113114
build:
115+
if: github.event.pull_request.draft != true
114116
strategy:
115117
fail-fast: false
116118
matrix:
117119
os: [ubuntu-latest, macos-latest, windows-latest]
120+
exclude:
121+
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
122+
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
118123
runs-on: ${{ matrix.os }}
119124
timeout-minutes: 30
120125
steps:
@@ -171,6 +176,8 @@ jobs:
171176
- {os: windows-latest, bun: '0.8.1'}
172177
- {os: windows-latest, bun: '1.0.0'}
173178
- {os: windows-latest, bun: '1.0.36'}
179+
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
180+
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
174181
runs-on: ${{ matrix.os }}
175182
timeout-minutes: 30
176183
steps:
@@ -363,10 +370,14 @@ jobs:
363370

364371

365372
binary:
373+
if: github.event.pull_request.draft != true
366374
strategy:
367375
fail-fast: false
368376
matrix:
369377
os: [ubuntu-latest, ubuntu-22.04, macos-latest, windows-latest]
378+
exclude:
379+
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
380+
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
370381
runs-on: ${{ matrix.os }}
371382
timeout-minutes: 30
372383
steps:

‎.github/workflows/ci.yml‎

Lines changed: 199 additions & 63 deletions
Large diffs are not rendered by default.

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

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ name: Composer patch compatibility
2121

2222
on:
2323
pull_request:
24+
types: [opened, synchronize, reopened, ready_for_review]
2425
paths:
2526
- '.github/workflows/composer-compatibility.yml'
2627
- 'tests/docker/Dockerfile.composer'
@@ -68,17 +69,21 @@ on:
6869
permissions:
6970
contents: read
7071

72+
# Supersede stale PR runs only: main runs are the only rust-cache writers
73+
# (save-if), so push and dispatch runs are never cancelled mid-save.
7174
concurrency:
7275
group: composer-compat-${{ github.event.pull_request.number || github.ref }}
73-
cancel-in-progress: true
76+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
7477

7578
env:
7679
SOCKET_NO_CONFIG: '1'
7780
SOCKET_NO_UPDATE_CHECK: '1'
81+
SOCKET_TELEMETRY_DISABLED: '1'
7882

7983
jobs:
8084
native:
8185
name: composer ${{ matrix.composer }} / php ${{ matrix.php }} / ${{ matrix.os }}
86+
if: github.event.pull_request.draft != true
8287
strategy:
8388
fail-fast: false
8489
matrix:
@@ -96,12 +101,9 @@ jobs:
96101
- {os: windows-latest, composer: '2.2.30', php: '8.3', sha256: 8c2b4478b64f8f7cdf1574838fdb0033b29049ca821dad452db7a3dcfcdbffc2}
97102
- {os: windows-latest, composer: '2.9.8', php: '8.4', sha256: 59b2c50e10cafa0d8efc19ede9a326d782f096c674a26baf98cf042ce23de890}
98103
- {os: windows-latest, composer: '2.10.3', php: '8.5', sha256: 7a2d379d5b8ffdaa028580ef26494c36d2feef4b178d3dd1473a4dbc5e17c8d6}
99-
- {os: macos-latest, composer: '1.10.28', php: '8.1', sha256: 0915af36eb01e3f0e16cd309adff7051832b9ef014e38371756804b20425cd5a}
100-
- {os: macos-latest, composer: '2.2.30', php: '8.3', sha256: 8c2b4478b64f8f7cdf1574838fdb0033b29049ca821dad452db7a3dcfcdbffc2}
101-
- {os: macos-latest, composer: '2.10.3', php: '8.5', sha256: 7a2d379d5b8ffdaa028580ef26494c36d2feef4b178d3dd1473a4dbc5e17c8d6}
102104
runs-on: ${{ matrix.os }}
103105
timeout-minutes: 60
104-
steps:
106+
steps: &native-steps
105107
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
106108
with:
107109
persist-credentials: false
@@ -167,11 +169,29 @@ jobs:
167169
-- --ignored --nocapture
168170
cargo test -p socket-patch-cli --test e2e_vex_lockfile -- composer:: --nocapture
169171
172+
# The macOS rows of `native`: they run on push to main (and nightly
173+
# where scheduled), not on every PR push, so PRs stop queueing on the
174+
# small macOS runner pool.
175+
native-macos:
176+
name: composer ${{ matrix.composer }} / php ${{ matrix.php }} / ${{ matrix.os }}
177+
if: github.event_name != 'pull_request'
178+
strategy:
179+
fail-fast: false
180+
matrix:
181+
include:
182+
- {os: macos-latest, composer: '1.10.28', php: '8.1', sha256: 0915af36eb01e3f0e16cd309adff7051832b9ef014e38371756804b20425cd5a}
183+
- {os: macos-latest, composer: '2.2.30', php: '8.3', sha256: 8c2b4478b64f8f7cdf1574838fdb0033b29049ca821dad452db7a3dcfcdbffc2}
184+
- {os: macos-latest, composer: '2.10.3', php: '8.5', sha256: 7a2d379d5b8ffdaa028580ef26494c36d2feef4b178d3dd1473a4dbc5e17c8d6}
185+
runs-on: ${{ matrix.os }}
186+
timeout-minutes: 60
187+
steps: *native-steps
188+
170189
docker:
171190
# The vendored Docker capstone against an exact composer image. Its
172191
# fixture resolves psr/log from packagist, which no longer serves
173192
# Composer 1, so 1.10.28 is covered by the native legs only.
174193
name: docker composer ${{ matrix.composer }}
194+
if: github.event.pull_request.draft != true
175195
runs-on: ubuntu-latest
176196
timeout-minutes: 35
177197
strategy:

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

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ name: Go patch compatibility
77

88
on:
99
pull_request:
10+
types: [opened, synchronize, reopened, ready_for_review]
1011
paths:
1112
- '.github/workflows/go-compatibility.yml'
1213
- 'crates/socket-patch-core/src/vendor/go*.rs'
@@ -35,22 +36,19 @@ concurrency:
3536
env:
3637
SOCKET_NO_CONFIG: '1'
3738
SOCKET_NO_UPDATE_CHECK: '1'
39+
SOCKET_TELEMETRY_DISABLED: '1'
3840

3941
jobs:
4042
go:
43+
if: github.event.pull_request.draft != true
4144
strategy:
4245
fail-fast: false
4346
matrix:
4447
os: [ubuntu-latest]
4548
go: ['1.18.10', '1.21.13', '1.24.13', '1.26.3']
46-
include:
47-
# macOS-latest dyld refuses binaries without LC_UUID (Go < 1.24
48-
# linkers; see ci.yml's vexctl step).
49-
- {os: macos-latest, go: '1.24.13'}
50-
- {os: macos-latest, go: '1.26.3'}
5149
runs-on: ${{ matrix.os }}
5250
timeout-minutes: 45
53-
steps:
51+
steps: &go-steps
5452
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
5553
with:
5654
persist-credentials: false
@@ -75,3 +73,19 @@ jobs:
7573
--test e2e_golang_hosted_build --test e2e_vendor_golang_build \
7674
--test e2e_golang_build --test e2e_golang_workspace_build -- --nocapture
7775
cargo test -p socket-patch-cli --test e2e_vex_lockfile -- golang:: --nocapture
76+
77+
# The macOS rows of `go`: they run on push to main (and nightly
78+
# where scheduled), not on every PR push, so PRs stop queueing on the
79+
# small macOS runner pool.
80+
go-macos:
81+
if: github.event_name != 'pull_request'
82+
strategy:
83+
fail-fast: false
84+
matrix:
85+
os: [macos-latest]
86+
# macOS-latest dyld refuses binaries without LC_UUID (Go < 1.24
87+
# linkers; see ci.yml's vexctl step).
88+
go: ['1.24.13', '1.26.3']
89+
runs-on: ${{ matrix.os }}
90+
timeout-minutes: 45
91+
steps: *go-steps

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ name: Gradle patch compatibility
4040

4141
on:
4242
pull_request:
43+
types: [opened, synchronize, reopened, ready_for_review]
4344
paths:
4445
- '.github/workflows/gradle-compatibility.yml'
4546
- 'scripts/ci-e2e-bundle.py'
@@ -94,14 +95,19 @@ concurrency:
9495
env:
9596
SOCKET_NO_CONFIG: '1'
9697
SOCKET_NO_UPDATE_CHECK: '1'
98+
SOCKET_TELEMETRY_DISABLED: '1'
9799

98100
jobs:
99101
build:
100102
name: build ${{ matrix.os }}
103+
if: github.event.pull_request.draft != true
101104
strategy:
102105
fail-fast: false
103106
matrix:
104107
os: [ubuntu-latest, macos-latest, windows-latest]
108+
exclude:
109+
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
110+
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
105111
runs-on: ${{ matrix.os }}
106112
timeout-minutes: 60
107113
env:
@@ -174,6 +180,9 @@ jobs:
174180
- {gradle: '7.6.6', java: '17', label: '', gradle_args: '', real_central: '', suites: '', test_filter: ''}
175181
- {gradle: '8.14.3', java: '21', label: '', gradle_args: '', real_central: '', suites: '', test_filter: ''}
176182
- {gradle: '9.8.0', java: '21', label: '', gradle_args: '', real_central: '', suites: '', test_filter: ''}
183+
exclude:
184+
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
185+
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
177186
runs-on: ${{ matrix.os }}
178187
timeout-minutes: 60
179188
steps: &cell-steps

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ on:
1111
# compile (a later `!` pattern excludes, a later plain one re-includes).
1212
# Main pushes stay unfiltered.
1313
pull_request:
14+
types: [opened, synchronize, reopened, ready_for_review]
1415
paths:
1516
- '.github/actions/upload-artifact/**'
1617
- 'Cargo.lock'
@@ -45,6 +46,7 @@ concurrency:
4546

4647
jobs:
4748
build:
49+
if: github.event.pull_request.draft != true
4850
runs-on: ubuntu-latest
4951
timeout-minutes: 25
5052
steps:
@@ -117,6 +119,7 @@ jobs:
117119
SOCKET_PATCH_NPM_E2E_REQUIRED: '1'
118120
SOCKET_NO_CONFIG: '1'
119121
SOCKET_NO_UPDATE_CHECK: '1'
122+
SOCKET_TELEMETRY_DISABLED: '1'
120123
run: |
121124
chmod +x target/debug/socket-patch target/debug/e2e_redirect_npm_build target/debug/e2e_vendor_npm_build
122125
target/debug/e2e_redirect_npm_build --include-ignored --test-threads 4

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

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ name: PDM patch compatibility
99

1010
on:
1111
pull_request:
12+
types: [opened, synchronize, reopened, ready_for_review]
1213
paths:
1314
- '.github/actions/upload-artifact/**'
1415
- '.github/workflows/pdm-compatibility.yml'
@@ -56,14 +57,19 @@ concurrency:
5657
env:
5758
SOCKET_NO_CONFIG: '1'
5859
SOCKET_NO_UPDATE_CHECK: '1'
60+
SOCKET_TELEMETRY_DISABLED: '1'
5961
PDM_CHECK_UPDATE: 'false'
6062

6163
jobs:
6264
build:
65+
if: github.event.pull_request.draft != true
6366
strategy:
6467
fail-fast: false
6568
matrix:
6669
os: [ubuntu-latest, macos-latest]
70+
exclude:
71+
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
72+
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
6773
runs-on: ${{ matrix.os }}
6874
timeout-minutes: 30
6975
steps:
@@ -107,13 +113,9 @@ jobs:
107113
# every Windows cell skipped; backtest-pdm.py now fails such a cell.
108114
os: [ubuntu-latest]
109115
pdm: ['0.12.3', '1.15.5', '2.0.3', '2.1.5', '2.3.4', '2.6.1', '2.7.4', '2.8.2', '2.9.3', '2.10.4', '2.11.2', '2.17.3', '2.20.1', '2.22.4', '2.25.9', '2.29.2']
110-
include:
111-
- { os: macos-latest, pdm: '0.12.3' }
112-
- { os: macos-latest, pdm: '2.8.2' }
113-
- { os: macos-latest, pdm: '2.29.2' }
114116
runs-on: ${{ matrix.os }}
115117
timeout-minutes: 45
116-
steps:
118+
steps: &native-steps
117119
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
118120
with:
119121
persist-credentials: false
@@ -174,6 +176,23 @@ jobs:
174176
# formats (3.1, 4.0-4.2) must attest nothing. The cells ci.yml's `e2e`
175177
# job runs on every PR and main push are excluded here
176178
# (scripts/tests/test_ci_e2e_tiers.py keeps the two lists in step).
179+
180+
# The macOS rows of `native`: they run on push to main (and nightly
181+
# where scheduled), not on every PR push, so PRs stop queueing on the
182+
# small macOS runner pool.
183+
native-macos:
184+
if: github.event_name != 'pull_request'
185+
needs: build
186+
strategy:
187+
fail-fast: false
188+
matrix:
189+
# The ends of the range and the 2.8 lock-format boundary.
190+
os: [macos-latest]
191+
pdm: ['0.12.3', '2.8.2', '2.29.2']
192+
runs-on: ${{ matrix.os }}
193+
timeout-minutes: 45
194+
steps: *native-steps
195+
177196
capstone:
178197
needs: build
179198
strategy:
@@ -189,6 +208,8 @@ jobs:
189208
- {os: ubuntu-latest, pdm: '2.25.9'}
190209
- {os: ubuntu-latest, pdm: '2.29.2'}
191210
- {os: macos-latest, pdm: '2.29.2'}
211+
# macOS legs run on push to main (and nightly where scheduled), not per PR push.
212+
- os: ${{ github.event_name == 'pull_request' && 'macos-latest' || '' }}
192213
runs-on: ${{ matrix.os }}
193214
timeout-minutes: 30
194215
steps:

0 commit comments

Comments
 (0)