Parece que está pasando por alto las convenciones normales solo para evitar la sobrecarga / auditorías del proceso. Eso ... me parece preocupante.
Lo que está haciendo es efectivamente hacer un número de versión adicional (su dígito PCI menor) de manera algo intencional para mover sus funciones / números de versión menores de vuelta a un lugar, para que ya no activen sus criterios de auditoría interna.
De todos modos, respondiendo a su pregunta sobre el control de versiones semántico, la especificación para el control de versiones semántico establece:
Dado un número de versión MAJOR.MINOR.PATCH, incremente el:
- Versión PRINCIPAL cuando realiza cambios de API incompatibles,
- Versión MENOR cuando agrega funcionalidad de una manera compatible con versiones anteriores, y
- Versión PATCH cuando realiza correcciones de errores compatibles con versiones anteriores.
- Las etiquetas adicionales para metadatos previos al lanzamiento y de compilación están disponibles como extensiones del formato MAJOR.MINOR.PATCH .
El énfasis es mío.
Entonces la pregunta es, ¿estás usando el cuarto personaje para metadatos de prelanzamiento / compilación? ¿O es básicamente otra indicación de versión que estás lanzando?
En caso afirmativo, las especificaciones de versiones semánticas lo permiten. Si "no", técnicamente no está siguiendo las versiones semánticas.
Y como pregunta secundaria de nivel superior y más discutible, ¿realmente importa?
Si desea seguirlo rígidamente o no, es una decisión que usted y su equipo deben tomar. El propósito de las versiones semánticas es ayudar con la compatibilidad API:
Las correcciones de errores que no afectan la API incrementan la versión del parche, las adiciones / cambios de API compatibles con versiones anteriores incrementan la versión menor, y los cambios de API incompatibles con versiones anteriores aumentan la versión principal.
Yo llamo a este sistema "Versiones Semánticas". Bajo este esquema, los números de versión y la forma en que cambian transmiten significado sobre el código subyacente y lo que se ha modificado de una versión a la siguiente.
Es un sistema que ayuda a aclarar más cuando el control de versiones afecta a los usuarios intermedios de la API.
Mientras su API sea igualmente clara, no es un gran problema la forma en que elija. Las versiones semánticas resultan ser sencillas, por ejemplo, si estoy usando 3.4.2 y necesito actualizar a 3.4.10 Sé que puedo hacerlo sin romper nada. Si la nueva versión es 3.5.1, sé que es compatible con versiones anteriores. Y sé que la versión 4.0.1 sería un cambio radical.
Todo eso es parte de lo que significan los números de versión.
@enderland Sí, básicamente. MAYOR (PCI) .MINOR (PCI). CARACTERÍSTICA. CORREGIR + CONSTRUIR. Básicamente, solo se nos permite cambiar el tercer y cuarto componente sin involucrar a PCI (y posteriormente a los señores de PCI en la compañía). Para mí, parece que esto es un poco artificial, no estoy seguro de que estén justificados en la forma en que administran el número de versión, pero no sé lo suficiente sobre PCI y el proceso de auditoría para decir lo contrario.
Ok, esta bien Tiene un sistema que funciona para usted y satisface sus necesidades. Ese es el punto de versionar.
Si su API es privada (solo internamente), realmente no importa cómo realice la versión siempre que tenga sentido para usted y para todos los que la usen. Donde el control de versiones en un formato estándar es cuando tienes muchos otros consumidores de tu API que necesitan saber "¿qué significa esta versión?"
Tener un sistema de control de versiones arbitrario confundirá a las personas que están acostumbradas a otros sistemas, como el control de versiones semántico. Pero si nadie está usando realmente su sistema de versiones, excepto las personas que lo crean, realmente no importa.