Al momento disponiamo di una grande base di codice da cui possiamo generare 5 software differenti. Il codice base è composto da circa 20 sottomoduli che sono utilizzati (o meno) da ciascun software.
Mantenere un semesto per ogni software porterà probabilmente a un incubo. Finiremo con una tonnellata di tag e rami sul nostro repository git.
Sto pensando di dare un numero di versione al codice base e ogni volta che viene rilasciato un software, esso eredita questo numero.
Tuttavia, vedo un grosso inconveniente con questo metodo:
Diciamo che sono alla versione 1.0.0 e rilasciando tutto il mio software, quindi sono tutti nella versione 1.0.0.
In seguito, rilascerò una grande funzionalità nella base di codice che ora è nella versione 1.1.0.
= > I software 1,2 e 3 usano questa funzione e sono rilasciati nella versione 1.1.0.
= > I software 4 e 5 sono ancora 1.0.0.
Ora, ho bisogno di correggere un piccolo bug nella base di codice per tutti i software. La versione di base del codice è ora 1.1.1.
Rilascio tutti i software:
= > I software da 1 a 5 sono in 1.1.1.
Quello in cui non sono così sicuro di questo metodo perché il Software 4 passa dalla 1.0.0 alla 1.1.1 solo per una soluzione minore.
Sto anche pensando di avere un semere per il codice base e un numero più user friendly per ogni software che nasconderà il salto imbarazzante nel numero di versione:
-------------------------------------------------------
| codebase | Software 1 | Software 2 | Software 2 |
-------------------------------------------------------
| 1.0.0 | 2018.1 | 2018.1 | 2018.1 |
| 1.1.0 | 2018.2 | - | - |
| 1.1.1 | 2018.3 | - | 2018.2 |
C'è un modo più semplice di gestirlo?