Skip to content

feat(windows): adopt NVM for Windows v2 with explicit standalone Node migration #2

Open

Description

@alsd4git

Obiettivo

Sostituire il Node.js LTS installato come pacchetto standalone con NVM for Windows v2, senza lasciare installazioni concorrenti sul PATH e senza disinstallazioni implicite.

Stato: la PR #7 è stata integrata su main con squash 98d88ba. Questa issue resta aperta per i punti sotto, che possono essere affrontati in una PR successiva.

La PR documenta test PowerShell 5.1/7 e una migrazione in Windows Sandbox con Node 24.22.1 e un pacchetto npm globale; il prompt interattivo e ulteriori scenari non sono coperti da quella prova.

Lavoro rimanente e verifiche

  • Sostituire OpenJS.NodeJS.LTS con AuthorSoftware.NVMWindows nel manifest principale.
  • Aggiungere prompt esplicito (default No) quando si rileva standalone Node, senza usare -Force come consenso alla rimozione.
  • Separare la logica di bootstrap/migrazione dal ciclo generico WinGet.
  • Salvare un inventario delle dipendenze npm globali prima della rimozione.
  • Correggere il caso NVM v2 già installato senza Node default: non limitarsi a considerare il gestore presente; assicurare un Node LTS funzionante senza modificare versioni valide già scelte dall'utente.
  • Indurire l'inventario npm: verificare l'esito del salvataggio e bloccare/scalare esplicitamente quando l'inventario è indisponibile, senza dare per garantito il ripristino dei tool globali.
  • Verificare migrazione end-to-end: nvm install lts, nvm use lts, nvm default, node, npm, npx, where.exe node in una nuova shell e su PATH di sistema/utente.
  • Testare rilevamento di Node MSI/WinGet/non gestito, NVM v1, NVM v2, altro version manager, installazione fallita, rifiuto del prompt, -DryRun, -Force, esecuzione idempotente e recupero da conflitti.
  • Eseguire i test NVM con Windows PowerShell 5.1 e PowerShell 7 (risultato riportato nella PR feat(windows): add NVM v2 migration with npm adoption #7).
  • Estendere i test reali su VM sacrificabile agli scenari non coperti dalla prova Sandbox; la CI Windows della PR feat(windows): add NVM v2 migration with npm adoption #7 è passata.
  • Documentare recupero operativo e distinguere inventario npm (solo nomi/versioni) da un backup dei dati.
  • Riesaminare stable NVM/WinGet al momento del merge; non adottare prerelease senza una ragione verificata.

Criteri di accettazione

  1. Una macchina pulita termina con solo NVM v2 + Node LTS utilizzabile.
  2. Una macchina con Node standalone non cambia senza consenso specifico, incluso con -Force.
  3. Riesaminare la garanzia di rimozione: l’installer NVM con adozione può rimuovere Node standalone prima della verifica finale. Definire e implementare una strategia che soddisfi il requisito originale, oppure concordare esplicitamente il compromesso e il recupero.
  4. Installazioni concorrenti o inattese non vengono ignorate né rimosse automaticamente.
  5. Coprire con test automatici e prove Windows reali gli scenari di migrazione e recupero ancora mancanti.

Prossima integrazione

Aprire una PR dedicata ai punti rimanenti, partendo da main aggiornata. Non considerare l’inventario dei nomi e delle versioni un backup dei dati.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions