Attualmente, abbiamo uno schema di versioning che segue il modello major.minor.patch. Lo sviluppo è fatto in una filiale (ad es. Filiali / b4_2); una versione è un tag (tag / r4_2_0). Per determinare la versione all'interno del codice, abbiamo una classe in grado di analizzare l'URL SCM (FooVersion.java). Se l'URL rappresenta un ramo, la revisione SVN viene aggiunta (per le build del QA).
Stiamo rivalutando il controllo delle versioni e, più precisamente, che tipo di ambienti abbiamo. Il grande cambiamento qui sta aggiungendo il concetto di un ambiente beta per i nostri "super utenti". Insieme a questo, sto ripensando a questo sistema di derivazione della versione potenzialmente sovradimensionato.
Come si determina, nel codice, qual è la versione del software? La creazione di una release è già un processo manuale (creazione di tag, check in JAR per le librerie correlate che sviluppiamo, ecc.) Che potrebbe probabilmente essere script, quindi c'è un vantaggio nel modo in cui lo facciamo avendo un file di testo che viene aggiornato quando una versione è tagliata?