@vzn/vx 0.0.497 → 0.0.498

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -18,17 +18,15 @@
18
18
 
19
19
  <!-- bench:start — generated by packages/vx-bench/update-site.ts from results.json; do not hand-edit -->
20
20
 
21
- | 1,090 packages, 3,270 tasks | vx | Turborepo | Nx |
22
- | -------------------------------- | ---------- | --------------------------- | ------------------------- |
23
- | Cold build: time the runner adds | **9 s** | 1 min 35 s (vx 11× faster) | 31 min (vx 218× faster) |
24
- | Cold build: CPU burned | **34 s** | 1 min 13 s (vx 2.1× faster) | 114 min (vx 199× faster) |
25
- | Fully cached run | **476 ms** | 760 ms (vx 1.5× faster) | 3.59 s (vx 7.5× faster) |
26
- | Overhead per package | **8 ms** | 88 ms (vx 11× faster) | 1,712 ms (vx 218× faster) |
21
+ | 1,090 packages, 3,270 tasks | vx | Turborepo | Nx |
22
+ | -------------------------------- | ---------- | -------------------------- | ---------------------- |
23
+ | Cold build: time the runner adds | **2 s** | 1 min 21 s (vx 34× faster) | 11 s (vx 4.7× faster) |
24
+ | Cold build: CPU burned | **17 s** | 21 s (vx 1.2× faster) | 52 s (vx 3× faster) |
25
+ | Fully cached run | **393 ms** | 463 ms (vx 1.1× faster) | 6.45 s (vx 16× faster) |
26
+ | Overhead per package | **2 ms** | 74 ms (vx 34× faster) | 10 ms (vx 4.7× faster) |
27
27
 
28
28
  vx N× faster: that tool takes N times as long as vx (theirs ÷ vx); N× slower: vx takes N times as long (vx ÷ theirs).
29
29
 
30
- Nx's column ran every task through npm run (~200 ms of CPU each; Turbo ran bun run), a harness fault since fixed; with bun, on a 4-core Linux box, Nx took 6m 59s cold and 4.50 s fully cached (vx 1.9× and 12× faster).
31
-
32
30
  Time added is the wall time over the tasks' own ideal schedule (3 min 38 s).
33
31
  Same graph, commands and concurrency: [how it is measured](https://vznjs.github.io/vx/benchmarks/).
34
32
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vzn/vx",
3
- "version": "0.0.497",
3
+ "version": "0.0.498",
4
4
  "description": "The fastest task runner and build cache for JavaScript monorepos.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -21,10 +21,10 @@
21
21
  "node": ">=18"
22
22
  },
23
23
  "optionalDependencies": {
24
- "@vzn/vx-linux-x64": "0.0.497",
25
- "@vzn/vx-linux-arm64": "0.0.497",
26
- "@vzn/vx-darwin-x64": "0.0.497",
27
- "@vzn/vx-darwin-arm64": "0.0.497"
24
+ "@vzn/vx-linux-x64": "0.0.498",
25
+ "@vzn/vx-linux-arm64": "0.0.498",
26
+ "@vzn/vx-darwin-x64": "0.0.498",
27
+ "@vzn/vx-darwin-arm64": "0.0.498"
28
28
  },
29
29
  "dependencies": {
30
30
  "@anthropic-ai/sandbox-runtime": "^0.0.76"
@@ -991,7 +991,16 @@ export function resolveSandboxConfig(
991
991
  (a.write ?? []).map((p) => {
992
992
  const real = resolve(p)
993
993
  assertWriteStaysHome(p, real, projectDir)
994
- return real
994
+ // A directory a write glob matches is writable whole, as Linux's
995
+ // bind of the hit makes it: `<glob>/**` collapses below into the
996
+ // glob and its subtree. SRT compiles a glob as an exact regex, so
997
+ // `/tmp/pnpm-store-operation-locks-*/` covered the directory and
998
+ // not the lock file pnpm 12 opens inside it.
999
+ return process.platform !== 'linux' &&
1000
+ !isMountableLiteral(real) &&
1001
+ !/\/\*\*(?:\/\*)?$/.test(real)
1002
+ ? `${real}/**`
1003
+ : real
995
1004
  }),
996
1005
  walls,
997
1006
  pending,