Improve vp create completion reporting when installation or formatting fails
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 65/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- typescript, vite
- Ambito
- cli
Direzione di ricerca
Inizia da packages/cli/src/create/bin.ts ed esegui la riproduzione su macOS o Linux usando VP_CLI_BIN=/usr/bin/false. Traccia l’impatto degli errori di installazione e formattazione sul riepilogo finale, sul passaggio successivo suggerito e sullo stato di uscita. Il lavoro è completato quando il comando distingue i file generati da una creazione completata con successo e segnala gli errori in modo coerente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
When dependency installation and formatting fail during vp create, the command can still finish by:
- displaying the project as
Scaffolded; - suggesting
vp runas the next step; - returning exit code 0.
In the same command, the user is first shown that manual installation and formatting may still be required, but the final output and process status indicate that project creation completed successfully.
Observed flow
flowchart LR
subgraph actual["Actual execution"]
A["Project files are generated"] --> B["Dependency installation fails"]
B --> C["Formatting fails"]
end
subgraph result["Final signals from the CLI"]
D["Displays: Scaffolded"]
D --> E["Suggests: Next: vp run"]
E --> F["Returns exit code 0"]
end
C -->|"But the command still continues to"| D
The project directory and package.json are generated, but dependency installation and formatting do not complete. Despite that, the final message, suggested next step, and exit code all communicate that the complete operation succeeded.
Reproduction
On macOS or Linux, run the following commands in a temporary directory:
workdir=$(mktemp -d)
cd "$workdir"
env -u VP_SKIP_INSTALL \
VP_CLI_BIN=/usr/bin/false \
vp create vite:application \
--no-interactive \
--no-hooks \
--no-git \
--directory create-failure-demo
exit_code=$?
echo "exit code: $exit_code"
test -d create-failure-demo && echo "project directory exists"
test -f create-failure-demo/package.json && echo "package.json exists"
test -d create-failure-demo/node_modules || echo "node_modules missing"
VP_CLI_BIN=/usr/bin/false makes the installation and formatting commands started internally by vp create return a failure consistently.
Actual result
The stable terminal output contains the following lines:
You may need to run "vp install" manually in <temporary-directory>/create-failure-demo
You may need to run "vp fmt" manually in <temporary-directory>/create-failure-demo
◇ Scaffolded create-failure-demo with Vite application
• Node 25.9.0 pnpm 11.21.0
→ Next: cd create-failure-demo && vp run
The recorded filesystem and process state is:
exit code: 0
project directory exists
package.json exists
node_modules missing
My understanding of the behavior
This appears to combine two different states:
- The project directory and template files were generated.
- The complete project creation process finished successfully.
In this reproduction, the first state is true: the create-failure-demo directory and its package.json exist.
The second state is not true: dependency installation and formatting both returned failures, and node_modules was not created.
The final output does not distinguish between these states. Instead, it presents three strong success signals:
Scaffoldedindicates that project creation completed.Next: vp runindicates that the project is ready to run.- Exit code 0 indicates that the entire command completed successfully.
Even though the manual recovery messages appear earlier, users will naturally treat the final lines as the authoritative result of the command. This is especially noticeable after a long installation log, where the final summary is usually the first place users look to understand what happened.
For scripts and CI systems, the result is even less ambiguous: they generally use the process exit code rather than interpret terminal text. An exit code of 0 records this operation as successful.
The command therefore exposes several conflicting states at the same time:
Dependency installation: failed
Formatting: failed
Project directory: created
package.json: created
node_modules: missing
Final summary: successful
Suggested next step: run the project
Process exit status: successful
The continued existence of the generated directory is not necessarily the confusing part. The confusion comes from presenting “project files were generated” and “the complete creation process succeeded” as the same state.
Verification environment
- macOS 27.0 on arm64
- Node.js v25.9.0
- Package manager selected by
vp create: pnpm 11.21.0 - Confirmed with the bundled local CLI and directly against
packages/cli/src/create/bin.tsat commit29036b2ff12ea30f80088de4a593842df2846c3b
- Lingua principale
- Rust
- Stelle
- 5.8k
- Fork
- 267
- Merge medio
- 21h 2m
- PR unite (30g)
- 149
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di voidzero-dev/vite-plus
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
voidzero-dev/vite-plus#2849 ·
I maintainer di solito rispondono entro 1 giorno
-
pending triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
voidzero-dev/vite-plus#2801 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
voidzero-dev/vite-plus#2097 · 10 commenti · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
voidzero-dev/vite-plus#2850 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
voidzero-dev/vite-plus#2848 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di voidzero-dev/vite-plus
Issue simili
-
Fix large enum variantAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
software-challenge/player_rust#22 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
foundry-rs/foundry#17175 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
state:triage-needed
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
github/copilot-sdk#2793 ·
I maintainer di solito rispondono entro 1 giorno