Existence probes of pnpm-workspace.yaml become content inputs, so any manifest edit misses every task
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- rust, vite, yaml
- Área
- build-system, tooling
Línea de trabajo
Start with packages/vite/src/node/server/searchRoot.ts, the Unix access/stat interceptions, and crates/vt/src/session/execute/fingerprint.rs to trace how workspace-root existence checks become content inputs. Reproduce with a small pnpm workspace and repeated vp run -r test executions, then verify the fix distinguishes probe-only existence checks from tasks that read manifest contents. Done means unrelated edits no longer invalidate probe-only tasks, while actual reads and marker creation or deletion still affect caching.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
In a pnpm workspace, every task that loads a Vite config records pnpm-workspace.yaml (and lerna.json) in every ancestor directory as a content input. An edit to an unrelated line of pnpm-workspace.yaml, for example a new catalog entry that no package uses, then misses the cache of every task. In our 199-task monorepo one such edit dropped a repeat run to 1 cache hit out of 184 tasks.
The reads come from Vite's searchForWorkspaceRoot (packages/vite/src/node/server/searchRoot.ts), which calls fs.existsSync on those names in each ancestor to find the root. fspy records access and stat as READ (crates/fspy_preload_unix/src/interceptions/access.rs, stat.rs; AccessMode in crates/fspy_shared/src/ipc/mod.rs has only READ, WRITE and READ_DIR), and the fingerprint then hashes the file content (crates/vt/src/session/execute/fingerprint.rs). So a probe that only asks "does this file exist" becomes a dependency on the file's bytes.
Repro with vite-plus 1.3.0:
- A workspace with three packages, each with a
vite.config.tsand atesttask, and a rootpnpm-workspace.yamlwithpackages: [packages/*]and acatalog:block. vp run -r testtwice. The second run is all cache hits.- Add an unused line to the catalog, for example
left-pad: 1.3.0, and runvp run -r testagain. Every task misses with'pnpm-workspace.yaml' modified.
ignoreInput from vite-plus does not fix this correctly. It drops the path for the whole task, so a task whose own code reads the manifest (a catalog lint, for example) would replay a stale result, and creating or deleting a marker file, which can change the workspace root Vite selects, would no longer invalidate anything.
A fix that keeps both properties would record existence probes separately: fingerprint whether the path exists for a probe-only access, and promote the path to a content input when the same task also opens and reads it. stat may need care, because some callers use size or mtime.
- Lenguaje dominante
- Rust
- Estrellas
- 478
- Forks
- 48
- Merge medio
- 1 d 3 h
- PR fusionados (30 d)
- 72
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de voidzero-dev/vite-task
-
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
voidzero-dev/vite-task#858 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Concurrent cache hits for the same task fail to restore outputs with "File exists (os error 17)"Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
voidzero-dev/vite-task#846 ·
Los mantenedores suelen responder en 1 día
-
Windows: automatic filesystem tracking makes Git/MSYS sh.exe fail with MapViewOfFileEx error 487Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 18/100
voidzero-dev/vite-task#830 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
voidzero-dev/vite-task#822 · 1 comentario · 2 reacciones ·
Los mantenedores suelen responder en 1 día
-
Let tools mark cache directories with CACHEDIR.TAGPosiblemente ocupada @lifeiscontent la tomó hace 16 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
voidzero-dev/vite-task#793 ·
Los mantenedores suelen responder en 1 día
Todos los issues de voidzero-dev/vite-task
Issues similares
-
BASEPRI needs an ISBAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
rust-embedded/cortex-m#702 · 1 comentario ·
-
Make major, minor, and makedev safe on solarish targetsPosiblemente ocupada @xtqqczze la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
improvement/feedback improvement/workflow-project
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
higress-group/HiRoute#166 ·
Los mantenedores suelen responder en 1 día
-
Proxy ignores l5d-retry-http and l5d-retry-grpc conditions that follow a comma and spacePosiblemente ocupada @RaphaelFakhri la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 3 días
-
sncast panics when decoding a `u384` valuePosiblemente ocupada @RaphaelFakhri la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
foundry-rs/starknet-foundry#4635 ·
Los mantenedores suelen responder en 3 días