Un buon flusso di lavoro Node.js per mantenere aggiornati i pacchetti?

7

Ho recentemente iniziato a sviluppare un progetto in Node.js. Naturalmente, in questo momento i pacchetti che sto usando sono piuttosto aggiornati dato che sto iniziando da capo e usando l'ultima versione, ma c'è un tasso di turnover della versione piuttosto elevato per la maggior parte dei pacchetti Node.js e spesso alcune funzionalità saranno deprecato o abbandonato, e naturalmente le vulnerabilità della sicurezza saranno risolte.

Poiché la maggior parte dei miei pacchetti sono specificati usando la sintassi della versione semantica ^1.2.3 (attenersi al numero di versione principale indicato per evitare interruzioni delle modifiche), tutti gli aggiornamenti importanti oltre la versione principale corrente andranno persi.

Qual è un modo prudente per assicurarti di rimanere aggiornato sulle tue dipendenze? È necessario effettuare, per esempio, un controllo settimanale degli aggiornamenti delle dipendenze nel flusso di lavoro per assicurarsi di non rimanere indietro nel tempo? E per questo motivo, sarebbe una buona idea provare a ridurre al minimo le dipendenze per ridurre al minimo il dolore dovuto alle interruzioni delle modifiche quando si esegue necessariamente l'aggiornamento alle versioni principali più recenti?

    
posta Jez 21.09.2016 - 22:49
fonte

2 risposte

6

Questo è il flusso di lavoro che attualmente utilizzo per un progetto con versioni mensili.

  • Dopo il rilascio, passa attraverso le dipendenze e aggiorna quelli che hanno solo modifiche minori e aggiornamenti delle patch. Poiché npm segue il versioning semantico, se gli autori dei pacchetti hanno fatto bene il loro lavoro, questo non dovrebbe interrompere il sistema.
  • Eseguire un test del fumo e se una qualsiasi dipendenza è interrotta, creare un'attività per lo sviluppo per aggiornare tale dipendenza. Potrebbe essere un biglietto, potrebbe essere un compito per il tuo sprint, ecc. Il punto è che aggiornare quelli non immediati e richiederà lavoro, quindi devi programmarlo. Qualsiasi feedback dal primo tentativo sarà di aiuto.
  • Pianifica le attività per aggiornare le dipendenze con importanti cambiamenti.
  • Blocca le dipendenze alle versioni più recenti.

L'obiettivo non è avere aggiornamenti automatici. Potrebbero interrompere il sistema in un modo che non ti aspetti e molto probabilmente quando stavi apportando altre modifiche, il che non aiuta a capire quale sia il problema.

L'aggiornamento delle dipendenze dovrebbe essere un processo consapevole, e se qualcuno di loro dovesse violare il sistema, dovresti essere consapevole di quale.

Gli aggiornamenti minori che si interrompono e passano inosservati verranno probabilmente raccolti nello sprint di sviluppo o test, ed è per questo che lo fai dopo , perché vuoi tanto tempo per rilevarlo e reagire a questo problema prima di andare in diretta.

Si noti che attualmente utilizzo questo processo su un progetto di dipendenza .NET + Nuget, ma è più o meno applicato a Node e npm / bower, Rails + bundle ecc.

Infine, puoi usare dei bei comandi che ti aiuteranno nel congelare / sbloccare le dipendenze, aggiungendoli anche al tuo repository. Vedi npm shrinkwrap .

    
risposta data 30.09.2016 - 02:25
fonte
0

Uso un'altra soluzione con un approccio diverso link ti invia una newsletter settimanale con informazioni sulle nuove versioni delle dipendenze del tuo progetto in modo che tu possa decidere che serve per aggiornare.

    
risposta data 03.02.2017 - 21:12
fonte

Leggi altre domande sui tag