Strategia per il controllo delle versioni su un repo pubblico

1

Supponiamo che stia sviluppando una libreria (javascript) che è ospitata su un repo pubblico (ad es. github). Il mio obiettivo in termini di assegnazione e incremento dei numeri di versione è seguire le linee guida del controllo delle versioni semantiche .

Ora, c'è un numero di file nel mio progetto che compongono la lib effettiva e un numero di file che 'supportano', essendo quest'ultimo doc, una suite di test, ecc. La mia prospettiva è stata che i numeri di versione dovrebbero si applica solo alla lib effettiva - non al progetto nel suo insieme - poiché la sola lib è "l'unità" che definisce l'API pubblica.

Tuttavia non sono soddisfatto di questo approccio poiché, ad esempio, una correzione nella suite di test costituisce un "miglioramento" nel mio progetto, che non si rifletterà nel numero di versione (o nei documenti che contengono un riferimento a esso). A un livello più pratico, vari strumenti, come i gestori di pacchetti, possono (comprensibilmente) non giocare con questa strategia. Ad esempio, quando provi a pubblicare una modifica che non si riflette nel numero di versione, npm publish fallisce con il suggerimento "Bump il campo 'versione' imposta il flag --force, o npm unpublish".

Sto sbagliando?

    
posta biril 30.11.2012 - 03:47
fonte

1 risposta

1

My perspective this far has been that version numbers should only apply to the actual lib - not the project as a whole - since the lib alone is 'the unit' that defines the public API.

Ma per il mondo il tuo prodotto finale è qualcosa di più: una combinazione di

  • Codice (la lib di per sé)
  • Doc
  • Prova-sute

Se cambi qualcosa in questa triade ottieni una nuova versione del prodotto che non può (logicamente) condividere l'ID del vecchio.

Se preferisci seguire rigorosamente le regole SV e utilizzare solo 3 ottetti, puoi

  • Utilizza p.7 per tutte le modifiche non relative alla libreria

Patch version Z (x.y.Z | x > 0) MUST be incremented if only backwards compatible bug fixes are introduced

doc | test le modifiche possono essere considerate come correzioni di errori e sono retrocompatibili. Pertanto, dalla versione 1.1.0, i changeset di documenti possono incrementarlo verso 1.1.9999, ma non 1.2.0

  • Operare con p.11 per le modifiche al codice non core

A build version MAY be denoted by appending a plus sign and a series of dot separated identifiers immediately following the patch version or pre-release version.

e dalla versione 1.1.0, la versione verrà incrementata verso 1.1.0 + 9999.

    
risposta data 30.11.2012 - 05:04
fonte

Leggi altre domande sui tag