Quando e come fare un rilascio?

7

Scenario
Ho un plugin per CakePHP 3, che sto lavorando e le persone stanno inviando bug per questo. Ho un ramo di sviluppo attivo in develop a cui invio richieste pull dai rami di correzione.

Sto usando lo standard di versioning semantico per la versione del mio plugin.

Quando dovrei rilasciare?
Se ho tre bug aperti e li risolvo uno dopo l'altro, dovrei fare tre rilasci? O dovrei creare un'unica versione per tutte queste correzioni?

In che modo le correzioni multiple influiscono sul mio controllo delle versioni? Nell'esempio sopra ho tre bug risolti, quindi per me questo significa che dovrei aumentare il numero di versione PATCH per tre. È corretto, oppure il numero di versione è specificamente legato alla versione. Quindi, spingendo una singola versione, incrementerei solo la versione PATCH di uno per indicare una versione di bugfix?

TL; DR
Ogni correzione vale per le tue versioni PATCH numero?

    
posta David Yell 17.03.2015 - 13:02
fonte

2 risposte

19

Non è mai esplicitamente enunciato, ma un'attenta lettura di semver.org suggerisce che una versione è associata a una versione corretta, non a un commit VCS . Quindi, naturalmente, se crei una one che ha più correzioni di bug, aumenti il componente di patch una volta . Lasciare ampi spazi vuoti per tenere conto degli stati intermedi che non hanno una versione (nemmeno in linea di principio, come le versioni interrotte che sono state ritirate) non ha senso.

Ovviamente potresti fare un rilascio per ogni singola piccola modifica, ma probabilmente non è desiderabile: è un lavoro molto per te, spreca tempo e larghezza di banda dell'utente con frequenti aggiornamenti, e risulta in numeri di versione ridicoli e rilascia log. Ci sono varie politiche per quando rilasciare, e che funziona meglio è soprattutto una questione di opinione e le peculiarità del progetto e della sua base di utenti. Alcune opzioni comuni sono:

  • Alcuni progetti rilasciati una volta ogni X unità di tempo, indipendentemente da quante o poche modifiche sono state fatte.
  • Alcuni progetti vengono rilasciati una volta raggiunta una soglia soggettiva di "modifiche sufficienti".
  • Alcuni progetti hanno delle pietre miliari: "Rilasceremo vX.Y una volta che avremo questa cosa e questa cosa sarà fatta".
  • Un mix di quanto sopra.

La maggior parte dei progetti, anche quando normalmente aderiscono a uno dei precedenti, può rilasciare hot fix fuori linea quando un particolare bug è stato rilasciato in natura.

Al contrario, se pubblichi nuove versioni così raramente (o mai) che la maggior parte delle persone semplicemente traccia git master , allora non riesci a seminare perché queste persone non ottengono alcuna garanzia di compatibilità all'indietro. La correzione non consiste nel dare a ogni commit il proprio numero di versione, ma a rilasciare in intervalli più sensibili.

    
risposta data 17.03.2015 - 13:19
fonte
5

Attenzione che se CakePHP 3 sta cambiando la sua API plugin (e il tuo plugin si adatta a tale modifica), probabilmente dovresti aumentare il tuo numero maggiore.

BTW, in MELT sto nominando esplicitamente la versione (i) di GCC per cui è stata creata questa versione. Quindi li chiamo MELT-1.1.3 per GCC 4.8 o 4.9

I plugin sono un caso d'angolo del versioning semantico, perché ciò che di solito importa è sia la versione del plugin, sia la versione (accettabile) del programma che usa quel plugin.

    
risposta data 17.03.2015 - 13:32
fonte

Leggi altre domande sui tag