2015-12-16 4 views
5

Supponiamo di voler pubblicare un pacchetto NuGet su nuget.org.In che modo gli autori di pacchetti NuGet evitano la versione Inferno?

Dipende, ad esempio, da Newtonsoft.Json. Così ho impostato questa dipendenza nel .nuspec e includo un numero di versione di N..Json di 1 (per l'amor di args).

Se N..Json passa a 2, e le persone che usano il mio pacchetto passano anche a 2, quindi sono in un sottaceto perché il mio pacchetto ne vuole 1 e stanno usando 2?

Presumibilmente, per aggiungere il mio pacchetto in primo luogo, avrebbero dovuto o non hanno già installato N..Json o, in caso affermativo, essere nella versione esatta utilizzata dal pacchetto.

Immagino che stipulare una versione esatta non sia buona. Quindi ometto la versione, ma ora il mio pacchetto potrebbe interrompersi in futuro se N..Json ha cambiamenti di rottura.

Invece, aggiungo un intervallo nel mio .nuspec e ora sono a metà.

Ma non ho appena imposto un tetto a tutti i miei clienti su quale versione massima di N..Json possono usare?

Devo ora mantenere un occhio costante sulle versioni dei pacchetti che il mio pacchetto utilizza e garantire che sto testando per il resto della mia vita?

C'è qualche sistema su NuGet.org che può avvisarmi che il mio pacchetto è rimasto indietro o potrebbe essere influenzato da interruttori nel lavoro di altre persone?

Cosa succederà se i clienti tentano di aggiornare globalmente N..Json al più tardi, sarà ovvio che il mio pacchetto è un blocco?

Qual è la migliore prassi consolidata?

risposta

1

Non credo che nuget.org offra alcun aiuto con la gestione delle versioni. Dovresti seguire le istruzioni di semver.org per la versione dei pacchetti e le dipendenze dei pacchetti. Ciò potrebbe causare un problema per le persone che hanno già installato una versione superiore del pacchetto dipendente. Tuttavia, nulla ti impedisce di avere più versioni installate fianco a fianco.