Senza ripetere buone idee da altre risposte, ho in mente un problema che non è stato ancora affrontato.
Se ti capita di fare un fork, tra una versione precedente per la compatibilità con le versioni precedenti e una nuova versione per una modernizzazione incompatibile, non puoi distinguerli tramite i numeri di versione.
Ad esempio il kernel Linux è stato biforcato intorno all'anno 2000 nel vecchio ramo 2.4.x, che probabilmente è ancora supportato oggi e conta come 2.4.199, mentre la nuova versione è stata 2.6 per molti, molti anni, ed è 2.6.32 per i sistemi più vecchi, ma 3.2 per i kernel più recenti.
Se disponi di documentazione sulle tue versioni, raddoppierai le informazioni e dirai alle persone che la versione 20120109 è arrivata nel 2012 all'01 / 09. Mh. Ma cosa succede, se c'è un rilevamento di bug dell'ultimo momento e un rilascio è ritardato di una settimana, ma la documentazione, in cui viene menzionato il nome, è già pronta, forse stampata, le informazioni sulla stampa sono fuori e così via. Ora hai una discrepanza che è problematica, se la versione 20120109 è arrivata al 2012/01/13.
In SQL, la domanda se gli ID debbano contenere informazioni semantiche è stata spesso discussa e il risultato è sempre: evitatelo come l'inferno! Stai creando una dipendenza non necessaria. Non può essere di beneficio.
Ubuntu con il suo schema 04/10 ha avuto il suo problema nel 2006, quando la versione 6.04 è stata ritardata ed è diventata 6.06. Nel 3000 ci sarà presto il prossimo problema! :)