Ho bisogno di consigli su come creare versioni basate su codici condivisi e separati allo stesso tempo. Ho un progetto gradle con più sapori. Gran parte del codice è condivisa. Alcune parti sono specifiche per il sapore. A seconda del gusto che scelgo, viene incluso il codice corrispondente.
Attualmente utilizzo il controllo delle versioni semantico. v1.2.0 è stato rilasciato prima di introdurre qualsiasi aroma. Ora, se applico un codice per aromatizzare un codice specifico, potrei rilasciarlo come 1.2.1. Ma la prossima volta cambierò il codice condiviso, se tutti gli aromi saranno rilasciati come 1.2.2? Ciò farà in modo che alcuni sapori saltino le versioni in futuro.
D'altra parte, se uso numeri di versione separati per ciascun gusto, sarà difficile tenere traccia delle modifiche comuni solo per le versioni. Ad esempio, ogni aroma avrà una propria versione di correzione per un bug specifico.
In alternativa, potrei mantenere una singola versione interna per il codice comune e versioni separate per ogni aroma che può andare fuori sincrono. Ancora una volta, ciò renderebbe un po 'complicato tenere traccia delle funzionalità e correzioni di errori comuni.
Quale pensi sia l'approccio migliore?