ReviewOS

also looking at this

craft-native/craft

fix(native): preserve workspace sources and native overlay lifecycle

#384
Merged chris wants to merge codex/windows-zig-cache-diagnostics into main
20 files +500 -227

Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.

.github/workflows/ci.ymlmodified+26-26
Changes to .github/workflows/ci.yml
@@ -35,9 +35,9 @@ jobs:
3535 steps:
3636 - uses: actions/checkout@v6
3737 - name: Install the managed Android toolchain
38 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
38 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
3939 with:
40 version: '0.11.101'
40 version: '0.11.106'
4141 install: 'false'
4242 packages: bun.com@1.4.3 git-scm.org@2.53.0 openjdk.org@17.0.20.8 android.com/cmdline-tools@14742923.0.0
4343 - name: Boot and dispose the stock Play image through the SDK
@@ -60,9 +60,9 @@ jobs:
6060 steps:
6161 - uses: actions/checkout@v6
6262 - name: Install the identical managed Android toolchain
63 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
63 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
6464 with:
65 version: '0.11.101'
65 version: '0.11.106'
6666 install: 'false'
6767 packages: bun.com@1.4.3 git-scm.org@2.53.0 openjdk.org@17.0.20.8 android.com/cmdline-tools@14742923.0.0
6868 - name: Verify bounded budget validation and normal readiness contracts
@@ -95,9 +95,9 @@ jobs:
9595 - uses: actions/checkout@v6
9696
9797 - name: Setup Pantry (provides Bun, Zig, etc.)
98 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
98 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
9999 with:
100 version: '0.11.101'
100 version: '0.11.106'
101101
102102 - name: Verify Zig installation
103103 run: zig version
@@ -180,9 +180,9 @@ jobs:
180180 - uses: actions/checkout@v6
181181
182182 - name: Setup Pantry (provides Bun and Zig)
183 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
183 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
184184 with:
185 version: '0.11.101'
185 version: '0.11.106'
186186
187187 - name: First-party Zig dependencies
188188 uses: ./.github/actions/first-party-zig-deps
@@ -254,9 +254,9 @@ jobs:
254254 - uses: actions/checkout@v6
255255
256256 - name: Setup Pantry (provides Bun, Zig, etc.)
257 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
257 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
258258 with:
259 version: '0.11.101'
259 version: '0.11.106'
260260
261261 - name: Install dependencies
262262 run: bun install
@@ -300,9 +300,9 @@ jobs:
300300 - uses: actions/checkout@v6
301301
302302 - name: Setup Pantry (provides Bun, Zig, etc.)
303 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
303 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
304304 with:
305 version: '0.11.101'
305 version: '0.11.106'
306306
307307 - name: Install dependencies
308308 run: bun install
@@ -327,9 +327,9 @@ jobs:
327327 - uses: actions/checkout@v6
328328
329329 - name: Setup Pantry (provides Bun, Zig, etc.)
330 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
330 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
331331 with:
332 version: '0.11.101'
332 version: '0.11.106'
333333
334334 - name: Install XcodeGen
335335 run: brew install xcodegen
@@ -369,9 +369,9 @@ jobs:
369369 - uses: actions/checkout@v6
370370
371371 - name: Setup Pantry (provides Bun, Zig, etc.)
372 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
372 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
373373 with:
374 version: '0.11.101'
374 version: '0.11.106'
375375
376376 - name: Setup Java
377377 uses: actions/setup-java@v6
@@ -420,9 +420,9 @@ jobs:
420420 - uses: actions/checkout@v6
421421
422422 - name: Setup Pantry (provides Bun, Zig, etc.)
423 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
423 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
424424 with:
425 version: '0.11.101'
425 version: '0.11.106'
426426
427427 - name: Install dependencies
428428 run: bun install
@@ -439,9 +439,9 @@ jobs:
439439 - uses: actions/checkout@v6
440440
441441 - name: Setup Pantry (provides Bun, Zig, etc.)
442 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
442 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
443443 with:
444 version: '0.11.101'
444 version: '0.11.106'
445445
446446 - name: Install dependencies
447447 run: bun install
@@ -466,9 +466,9 @@ jobs:
466466 - uses: actions/checkout@v6
467467
468468 - name: Setup Pantry (provides Bun, Zig, etc.)
469 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
469 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
470470 with:
471 version: '0.11.101'
471 version: '0.11.106'
472472
473473 - name: Install dependencies
474474 run: bun install
@@ -546,9 +546,9 @@ jobs:
546546 - uses: actions/checkout@v6
547547
548548 - name: Setup Pantry (provides Bun, Zig, etc.)
549 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
549 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
550550 with:
551 version: '0.11.101'
551 version: '0.11.106'
552552
553553 - name: Install dependencies
554554 run: bun install
@@ -604,9 +604,9 @@ jobs:
604604 fetch-depth: 0
605605
606606 - name: Setup Pantry (provides Bun, Zig, etc.)
607 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
607 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
608608 with:
609 version: '0.11.101'
609 version: '0.11.106'
610610
611611 - name: Install Dependencies
612612 run: bun install
.github/workflows/release.ymlmodified+10-10
Changes to .github/workflows/release.yml
@@ -87,9 +87,9 @@ jobs:
8787 fetch-depth: 0
8888
8989 - name: Setup Pantry (provides Bun, Zig, etc.)
90 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
90 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
9191 with:
92 version: '0.11.101'
92 version: '0.11.106'
9393
9494 - name: Install System Dependencies
9595 if: matrix.platform.deps != ''
@@ -362,9 +362,9 @@ jobs:
362362 # publish the Zig package here: a failed second leg would otherwise make
363363 # an incomplete version visible in the pantry registry.
364364 - name: Stage draft release
365 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
365 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
366366 with:
367 version: '0.11.101'
367 version: '0.11.106'
368368 install: 'false'
369369 release: 'true'
370370 release-draft: 'true'
@@ -455,9 +455,9 @@ jobs:
455455 # paths; it does not rebuild a platform binary. The complete GitHub
456456 # release is public before this registry version can become visible.
457457 - name: Publish Zig package
458 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
458 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
459459 with:
460 version: '0.11.101'
460 version: '0.11.106'
461461 install: 'false'
462462 publish: 'zig'
463463 package-dir: packages/zig
@@ -668,9 +668,9 @@ jobs:
668668 fetch-depth: 0
669669
670670 - name: Setup Pantry (provides Bun, Zig, etc.)
671 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
671 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
672672 with:
673 version: '0.11.101'
673 version: '0.11.106'
674674
675675 - name: Install Dependencies
676676 run: bun install --frozen-lockfile
@@ -757,9 +757,9 @@ jobs:
757757 fetch-depth: 0
758758
759759 - name: Setup Pantry (provides Bun, Zig, etc.)
760 uses: pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf # v0.11.101
760 uses: pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a # v0.11.106
761761 with:
762 version: '0.11.101'
762 version: '0.11.106'
763763 - uses: actions/setup-node@v6
764764 with:
765765 node-version: '24'
scripts/release-workflow.test.tsmodified+3-3
Changes to scripts/release-workflow.test.ts
@@ -203,8 +203,8 @@ test('workflow setup uses a known Pantry CLI instead of resolving latest', () =>
203203 for (const [name, job] of Object.entries(workflow.jobs)) {
204204 for (const step of job.steps ?? []) {
205205 if (step.uses?.startsWith('pantry-pm/pantry/packages/action@')) {
206 expect(step.with?.version, `${file} ${name} must pin Pantry CLI`).toBe('0.11.101')
207 expect(step.uses, `${file} ${name} must pin the matching action source`).toBe('pantry-pm/pantry/packages/action@ae59a7b7fc5f4e6f7b8041a75e6b5772680bebdf')
206 expect(step.with?.version, `${file} ${name} must pin Pantry CLI`).toBe('0.11.106')
207 expect(step.uses, `${file} ${name} must pin the matching action source`).toBe('pantry-pm/pantry/packages/action@e62755c21d946ed0f8dc8e4af39f6ea5f084537a')
208208 }
209209 }
210210 }
@@ -403,7 +403,7 @@ test('a failed native leg cannot publish a partial GitHub, Zig, or npm release',
403403 expect(release.jobs.npm.if).toContain("needs.prepare-npm.result == 'success'")
404404 expect(release.jobs.npm.if).toContain("needs.publish-release.result == 'success'")
405405 const zigPublish = registry.steps!.find(step => step.name === 'Publish Zig package')
406 expect(zigPublish?.with).toMatchObject({ version: '0.11.101', install: 'false', publish: 'zig', 'package-dir': 'packages/zig' })
406 expect(zigPublish?.with).toMatchObject({ version: '0.11.106', install: 'false', publish: 'zig', 'package-dir': 'packages/zig' })
407407 expect(zigPublish?.with?.release).toBeUndefined()
408408 expect(Object.entries(release.jobs).flatMap(([name, job]) =>
409409 (job.steps ?? []).filter(step => step.with?.publish === 'zig').map(() => name))).toEqual(['publish-pantry'])