Stiamo utilizzando la versione nel seguente formato:
Major.Minor.Bugfix.Test
Lo sviluppo per la prossima versione è in corso nel bagagliaio. Quando sono state create sufficienti funzionalità, stiamo creando un nuovo ramo di rilascio: 1.1
, 1.2
e così via.
Dopo la creazione del ramo, esiste un processo di "stabilizzazione" continuo, che produce versioni di prova dei rami: 1.1.0.1
, 1.1.0.2
e così via, finché una nuova versione di bugfix non è pronta, quelli sono: 1.1.1
, 1.1.2
e così via.
L'immagine qui sotto dovrebbe spiegarlo meglio:
Dopoavercreatoilramodirilascio,laversionenelbagagliaioèaumentata(dalmomentocheiniziamoalavorareperlaprossimaversioneinqualchemodo).
Ilproblema:abbiamoanchebisognodiusareleversioninelbagagliaio(quelleforniteperitestinterni)esiscontrerannoconleprossimeversioniditestdelramodirilascio(contrassegnatedauncerchiorosso).
Ladomanda:comeevitaretalecollisionediversione?
Unapropostaconsistevanelmodificarelaversionedeltrunkdopoladiramazioneadunnumerosufficientementeelevato,ades.1.2.0.100
,questorenderàimprobabilelacollisione,maèbrutto.
Idealmentevogliamomantenereinumeri"piccoli" (quindi sono facili da ricordare e da usare).
(Opzionale) Un'altra cosa: dopo la fusione periodica dal ramo di rilascio corrente nel trunk ha senso indicarlo in qualche modo anche nella versione (contrassegnata come? sull'immagine), potrebbe essere molto utile per indicare che i seguenti build di test del tronco sono avere questi bugfix inclusi, ad es dopo aver unito 1.1.1.1
a trunk (che è attualmente 1.2.0.3
), forse qualcosa dovrebbe accadere anche con la versione, non solo incrementarlo 1.2.0.4
. Non so cosa però.
idee?
Per una panoramica più semplice ecco un'immagine di una delle soluzioni proposte:
L'idea è di ereditare (continua) il numero nel ramo di rilascio. Questo risolverà la collisione, ma introdurrà un altro problema: non ci sono più 1.1
o 1.2
versioni. Ci piacerebbe avere quelli se possibile.