Versioni di pubblicazione non funzionanti

3

Il npm consente di pubblicare versioni precedenti di di un pacchetto? L'unica documentazione che ho trovato era su sito di npm :

[npm-publish] Fails if the package name and version combination already exists in the specified registry.

Once a package is published with a given name and version, that specific name and version combination can never be used again…

Quindi, in base a queste specifiche, potrei teoricamente pubblicare v3.2.0-beta prima pubblicando v3.1.0 , purché nessuna di quelle combinazioni con la versione del nome esista già? (Presumo che la risposta sia "sì", ma non si sa mai se l'autore abbia omesso ciò che consideravano ovvio: i numeri di versione dovrebbero solo aumentare.)

Questa è la ragione per cui lo chiedo. La mia ultima versione attuale è v3.1.0-beta , e da quel momento ho lavorato sul mio ramo di sviluppo. Ma ora mi trovo in un punto in cui la v3.2 è feature-locked , ovvero non è necessario aggiungere nuove funzionalità. Quindi mi sento come se fosse il momento di andare avanti e pubblicare v3.2.0-beta e iniziare a testare i bug. Tuttavia, v3.1.0 (stabile) non è stato ancora pubblicato, e non voglio aspettare fino a quel rilascio per pubblicare la mia versione beta di v3.2.

Quindi, in sostanza, sono libero di pubblicare v3.2.0-beta ora, anche se la v3.1 è ancora in beta, e quindi la prossima settimana, sarei ancora in grado di pubblicare v3.1.0 anche se ha un numero di versione inferiore ? O npm segnalerà un errore se provo a farlo?

Puoi indicare esempi di pacchetti che hanno fatto questo? E a quale versione fa riferimento il tag latest : il più recente o il più precedente (con la precedenza più alta)?

    
posta chharvey 27.10.2017 - 00:46
fonte

1 risposta

3

Sì, puoi. Come menzionato da johnrsharpe, questo ti permette di pubblicare correzioni di bug su vecchie versioni, pure in quanto contemporaneamente rilasciano più versioni di test.

Quale è considerato latest ? Da npm publish :

[--tag <tag>] Registers the published package with the given tag, such that npm install <name>@<tag> will install this version. By default, npm publish updates and npm install installs the latest tag.

Quindi, per pubblicare v3.1.0 come latest , basta controllare quel ramo e npm publish . Se ometti --tag lo imposterai su latest .

Per rendere disponibile v3.2.0-beta , usa npm publish --tag beta .

In npm land, è comune applicare --tag next per le prossime versioni che diventeranno la prossima versione stabile. Quindi puoi taggare la tua v3.2.0 come "next" in modo che gli sviluppatori a cui piace il lato più sanguinante possano preparare che diventi "l'ultimo".

Vedi dist-tag per ulteriori informazioni, in particolare quali tag sono per .

Al tuo punto "i numeri di versione dovrebbero solo aumentare", dal momento che semver consente a una stringa (fondamentalmente) arbitraria di seguire il numero di versione della patch , non c'è modo di sapere quale autore considera "prima" tra 1.0.0-beta e 1.0.0+exp.sha.5114f85 , per esempio.

    
risposta data 27.10.2017 - 16:45
fonte

Leggi altre domande sui tag