La ventaja de utilizar el esquema major.minor.revision es la semántica.Hay un método para actualizar cada uno de estos números:
El cambio de número importante significa que la nueva versión es incompatible con la anterior y cualquier dependiente de la versión anterior requerirá cambios de código para actualizar al nuevo paquete.
El cambio de número menor significa que la nueva versión es retrocompatible con la versión anterior pero tiene mejoras significativas con respecto a la versión anterior.
El número de revisión se actualiza cada vez que se aplica una corrección de errores a la compilación, de modo que no se produce un cambio de compatibilidad ni se introducen características más nuevas.
Al especificar las dependencias, puede decir que depende de foo-1.0.0 - foo-1.99.999, y puede estar seguro de que no terminará con una actualización del paquete que rompe su aplicación.
Si comenzó con una versión secundaria más alta de una dependencia, por ejemplo, foo-1.4.22, debe especificar la dependencia como foo-1.4.22 - foo-1.99.999, para que no termine instalar una versión anterior a la 1.4.x, que podría tener alguna funcionalidad/mejora faltante de ella.
Si usa una fecha como número de versión, use el formato AAAAMMDD. Es el único que casi nadie puede leer sin ambigüedades, y tiene la ventaja de ordenar léxicamente en el orden correcto. – Evan
(Para los parroquiales entre nosotros, algunos países escriben sus fechas en formato MM-DD-YYYY, y la mayor parte del resto de la palabra sana los escribe en formato DD-MM-AAAA o AAAA-MM-DD). – Evan
Tenga en cuenta que en Win32 (y por lo tanto, .NET), los números de versión tienen un límite de 16 bits por componente, por lo que 20090214 como un componente no es posible. –