Domanda

In senso generale, per progetti a lungo termine che possono avere più versioni durante il ciclo di vita dei prodotti e richiedere il supporto dei prodotti precedenti, qual è il modo migliore per gestire le versioni del prodotto e la ramificazione della base di codice?

In un senso più specifico, supponiamo che sia in atto un controllo della versione distribuita adeguata (cioè git) e che i team sono di dimensioni piccole a grandi e che lo sviluppatore possa lavorare su più progetti contemporaneamente. Il problema principale che si sta affrontando è che esiste un obbligo contrattuale per supportare vecchie versioni in quanto esistevano al momento, il che significa che il nuovo sviluppo non può patch di codice vecchio (i prodotti Microsoft Office potrebbero essere un esempio di ciò, ottieni solo patch per l'anno delle caratteristiche che possiedi).

Di conseguenza, l'attuale versioning del prodotto è un tocco contorto in quanto ciascun prodotto principale ha più dipendenze, ognuna con le proprie versioni che possono cambiare tra le versioni annuali. Allo stesso modo, mentre ogni prodotto ha il proprio repository, la maggior parte del lavoro non viene svolto sul tronco della fonte principale, ma piuttosto su un ramo per quell'anni di rilascio del prodotto con un nuovo ramo che viene effettuato quando il prodotto viene rilasciato in modo che possa essere supportato. Questo a sua volta significa che ottenere la base di codice di un prodotto non è una questione semplice come si potrebbe pensare quando si utilizza il controllo della versione.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top