You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extends the setup-flow matrix with an `SM_LAYOUT` dimension modelling
real-world deployments beyond a single project:
- workspace (npm, pnpm, yarn, pip, uv): a root + several members,
including a deeply-nested member and one with no dependency on the
patched package. Exercises `setup`'s workspace handling — npm/yarn
write the hook to every member, pnpm only to the root — and the
cross-workspace apply on a single root install. npm/pnpm/yarn apply
(the dependency hoists / lands in the pnpm store and is patched once);
pip (nested requirements) and uv (uv workspace, one shared .venv) are
Python gaps.
- monorepo: a polyglot repo with an npm workspace alongside
python/rust/go/php/ruby/nuget/deno manifests. Confirms `setup` works in
a mixed environment — it configures the npm hooks and does not choke on
the foreign manifests; a root `npm install` then patches the npm slice.
Runs in the npm image; the foreign manifests are present to test
setup's robustness, not installed.
Wiring: `matrix.json` gains workspace_targets/scenarios and
monorepo_targets/scenarios; `run-case.sh` gains layout-aware scaffold /
install / multi-target verification; `scripts/setup-matrix.sh` threads a
`layout` column (+ `query --layout`); the Rust harness gains
`run_workspace_pm` / `run_monorepo`, with `*_workspace` tests on the
npm/pypi wrappers and a new `setup_matrix_monorepo.rs`.
Real-world finding (and fix in the harness): the install hook's `apply`
must run with the package manager's per-script cwd — root for the
project, the member dir for each member — so member postinstalls find no
manifest and no-op while the root applies. The driver therefore does NOT
pin SOCKET_CWD; pinning it to the root makes every member apply target
the root manifest and fail mid-install with "no packages found on disk",
breaking `npm install` in a workspace.
Verified in Docker (socket-patch 3.3.0): npm/pnpm/yarn workspace and the
monorepo apply (pass); pip/uv workspace are known_gap; single-project
cases unchanged. 92 cases total; 0 regressions.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments