Hola a todos!
Siempre ha sido interesante qué versiones de productos son y cómo gestionarlas. ¿Cómo automatizar el control de versiones del desarrollo? Pido gato.

Mi nombre es romano Soy desarrollador en una empresa muy interesante, Softeq, donde todos son una inspiración.
Al desarrollar varias herramientas, pensé si todos los desarrolladores saben cuál es la versión, cuál es su significado y cómo administrarla durante el desarrollo. Así que veamos qué es el versionado.
Versionado
Control de versiones: desarrollo y administración de varios lanzamientos de productos que tienen la misma funcionalidad común, pero que se mejoran, modernizan o individualizan.
En resumen, la versión habla de un cambio de producto. ¿Cómo habla la versión sobre el cambio de producto?
Llamemos al sistema de orden de caracteres para designar una versión del producto un esquema de versiones.
Se han creado
varios esquemas de versiones para rastrear versiones de varios programas.

Versiones Semánticas
Existen muchos esquemas de versiones, pero nos enfrentamos a las
versiones semánticas todos los días. Para las versiones semánticas, es característico que los números de versión y cómo cambian transmitan el significado del contenido del código fuente y qué modificaciones se aplicaron de una versión a otra.
Consideremos cómo se forma el número de la versión semántica.

Imaginemos que tenemos un proyecto en desarrollo. El objetivo principal del proyecto es gestionar la construcción de la biblioteca. El proyecto le permite ordenar materiales para construir un edificio, controlar las etapas de construcción de una biblioteca. Actualmente, la arquitectura de la aplicación ha sido diseñada, la implementación de tareas básicas se ha llevado a cabo. Al probar la funcionalidad de ordenar materiales para construir un edificio de biblioteca, se detecta un error,
error . Se corrige un error y se
actualiza la versión del proyecto del
parche .

El cliente tenía una idea sobre la necesidad de implementar un análisis de información de marketing en el proyecto. Los desarrolladores diseñaron hábil y rápidamente servicios de análisis de datos, servicios integrados con la arquitectura actual. Se agregó una nueva funcionalidad de proyecto que no viola la
compatibilidad con versiones anteriores .
La versión
menor del proyecto ha aumentado.

El proyecto ha sido implementado con éxito. Después de un tiempo, el cliente tuvo la idea de desarrollar esta tecnología para la automatización de negocios. Los próximos planes incluyeron servicios completamente nuevos: la formación de un equipo de constructores, una red social interna, un intercambio interno de documentos y más. Los desarrolladores mostraron una alta competencia y, después de un tiempo, la arquitectura del proyecto fue diseñada para resolver problemas nuevos y antiguos. La nueva arquitectura del proyecto ha realizado cambios hacia atrás incompatibles.
La versión
principal del proyecto ha aumentado.

La imagen completa se ve así, pero rara vez la encuentras. Entonces, presentamos cuáles son las versiones del producto. ¿Pero cómo manejarlos?
Veamos una herramienta de automatización de control de versiones.
Versiones
NPM:
https://www.npmjs.com/package/versioningsGitHub:
https://github.com/morozow/versioningsEl control de versiones se realiza utilizando la línea de comando:
versionings --semver=[<semantic-version> | patch | prepatch | minor | preminor | premajor | prerelease | major] --branch=[<version-branch-name> | any-hyphen-case-less-100-characters-string] [--push]
La versión actual del producto se almacena tanto en el archivo ./package.json del proyecto, como en las etiquetas Git y la rama de actualización. La automatización tiene la capacidad de integrarse con varias herramientas de terceros: el control de versiones se realiza a través del comando CLI.
Veamos un ejemplo de actualización de un producto.
Acciones
Se está desarrollando un borrador de la versión actual
2.5.3 . El desarrollo de un nuevo servicio de proyecto está en marcha en la rama de
servicio de usuario crm . Se completó el desarrollo del servicio, se comprometieron todos los cambios y se tomó la decisión de aumentar la versión menor:
versionings --semver=minor --branch=user-service --push
Resultado
- Nueva sucursal: versión / menor / v 2.6.0 - servicio de usuario
- Cambio de versión en
./package.json
: 2.5.3 -> 2.6.0 - Confirmar la nueva versión del producto en la rama versión / minor / v 2.6.0 - servicio de usuario
- Empuje una nueva sucursal con la implementación del servicio y una versión mejorada del producto.
- Creación de una solicitud de extracción para la rama versión / minor / v 2.6.0 - servicio de usuario , que contiene la implementación del servicio y la versión mejorada del producto
Observaciones
- Herramienta de automatización orientada al entorno Unix
- Un proyecto de ejemplo para construir una biblioteca es abstracto, para una vista general de las versiones.
Eso es todo :)
¡Todo un estado de ánimo productivo y un gran día!