Ho un progetto multi-modulo CMake fatto di una libreria e un eseguibile. Sia il progetto root che ciascun sottomodulo hanno la propria versione ( major.minor.patch
).
Vorrei sapere come gestire ogni versione:
- se il progetto root cambia versione, ogni sottomodulo subisce la stessa modifica
- se un sottomodulo cambia versione, cosa dovrebbe succedere a super project e ad altro modulo?
Il mio dubbio è che, la propagazione delle modifiche del sottomodulo a root rende la sua versione un mix di tutte le modifiche.
Supponi di iniziare da:
- root 1.0.0
- lib 1.0.0
- exe 1.0.0
quindi hai apportato una piccola correzione a lib e un percorso da exe:
- lib 1.1.0
- exe 1.0.1
La versione root dovrebbe essere 1.1.1? È significativo?
Che cosa succede se entrambe le modifiche sono minori? La root dovrebbe incrementare a 1.1.0 o a 1.2.0 (la "somma" di ogni correzione minore di ciascun modulo)?