Come testare la retrocompatibilità in NuGet?

-1

Diciamo che sto lavorando a un progetto con forse 100 pacchetti di nuget installati e 50 di questi pacchetti richiedono un aggiornamento.

Vorrei ottenere una chiara panoramica su quali aggiornamenti del pacchetto causano problemi. Stavo pensando a qualcosa di simile, ma qualsiasi altra idea è ben accetta:

  1. Pacchetto Foreach nuget installato
  2. Verifica se è necessario aggiornarlo
  3. Aggiorna e ricorda la versione
  4. Costruisci soluzione, se si verifica goto 5, se errore goto 6
  5. Esegui test di unità se succes goto 7, se l'errore goto 6
  6. Ripristina il pacchetto nella versione precedente e mostra quale passo ha avuto esito negativo e il messaggio di errore corrispondente.
  7. Aggiornamento riuscito:)

Quindi c'è una nuget api o un modo in cui potrei farlo?

Mi sono imbattuto in PowerShell già con il quale è possibile aggiornare un singolo pacchetto di nuget a livello di codice, ma non riesco a pensare a un modo per trovare tutti i pacchetti di nuget installati e iterare attraverso di essi durante il controllo degli errori ecc.

    
posta Just van der Veeken 19.06.2018 - 09:18
fonte

2 risposte

1

Gli autori di pacchetti dovrebbero rispettare la compatibilità con l'uso appropriato della versione del pacchetto. Quello che intendi fare sembra che sarebbe molto lavoro se possibile. Il tuo progetto che utilizza i pacchetti NuGet non dovrebbe "presupporre" che l'ultima e più grande versione dei pacchetti possa rendere molto meglio il tuo progetto . Sembra solo IMO pigro (tutto il rispetto dovuto). L'opzione migliore che posso pensare è impostare l'elemento della configurazione in modo che aggiorni ciascun pacchetto "in sicurezza" (aggiornamenti all'ultima versione del pacchetto utilizzando le stesse versioni principali / secondarie) - nuget update myproject.csproj -safe . Se qualcosa si rompe lì, sarei diffidente se le pratiche dell'autore del pacchetto ...

    
risposta data 19.06.2018 - 14:29
fonte
0

Vorrei iniziare in modo semplice e semplice.

  1. Crea un ramo con CI
  2. Aggiorna tutti i pacchetti
  3. Esegui CI con tutti i test e roba
  4. Se tutto passa, unisci il ramo in master
  5. Se qualcosa non funziona, aggiorna i pacchetti manualmente

Dalla mia esperienza con NuGet, la compatibilità con le versioni precedenti è davvero buona. La possibilità di rompere il pacchetto è piccola. Quindi, l'aggiornamento di tutti i pacchetti e l'esecuzione di tutti gli elementi della configurazione è un buon inizio e dovrebbe avere maggiore successo. Vuoi anche eseguirlo il più frequentemente possibile. Forse una volta al giorno. In questo modo, la quantità di pacchetti da aggiornare dovrebbe essere relativamente piccola.

Solo dopo averlo scoperto, questo causa troppi errori di aggiornamento e interventi manuali se dovessi iniziare a prendere in considerazione la possibilità di eseguire piccoli lotti di pacchetti. Ma credo che non sarà necessario.

    
risposta data 19.06.2018 - 14:51
fonte

Leggi altre domande sui tag