Olá pessoal!
Sempre foi interessante o que são versões de produtos e como gerenciá-las? Como automatizar o controle de versão do desenvolvimento? Eu peço gato.

Meu nome é romano Sou desenvolvedor de uma empresa muito interessante da Softeq, onde todos são uma inspiração.
Ao desenvolver várias ferramentas, fiquei pensando se todos os desenvolvedores sabem qual é a versão, qual é o significado dela e como gerenciá-la durante o desenvolvimento. Então, vejamos o que é o versionamento.
Versionamento
O controle de versão é o desenvolvimento e o gerenciamento de várias versões do produto que possuem a mesma funcionalidade comum, mas são aprimoradas, modernizadas ou individualizadas.
Em suma, a versão fala sobre uma mudança de produto. Como a versão fala sobre mudança de produto?
Vamos chamar o sistema de pedidos de caracteres para designar uma versão do produto como um esquema de controle de versão.
Vários esquemas de versão foram criados para rastrear versões de vários softwares.

Versão semântica
Existem muitos esquemas de versão, mas somos confrontados com a
versão semântica todos os dias. Para a versão semântica, é característico que os números de versão e como eles mudam transmitam o significado do conteúdo do código-fonte e que modificações foram aplicadas de uma versão para outra.
Vamos considerar como o número da versão semântica é formado.

Vamos imaginar que temos um projeto em desenvolvimento. O principal objetivo do projeto é gerenciar a construção da biblioteca. O projeto permite que você encomende materiais para a construção de um edifício, controle as etapas da construção de uma biblioteca. Atualmente, a arquitetura do aplicativo foi projetada, a implementação de tarefas básicas foi realizada. Ao testar a funcionalidade do pedido de materiais para a construção de uma biblioteca, é detectado um erro,
bug . Uma correção de bug é feita e a versão do
Patch do projeto é
atualizada .

O cliente teve uma idéia sobre a necessidade de implementar uma análise das informações de marketing no projeto. Desenvolvedores habilmente e rapidamente projetaram serviços de análise de dados, serviços integrados à arquitetura atual. Foi adicionada uma nova funcionalidade do projeto que não viola a
compatibilidade com versões anteriores . Versão
secundária do projeto aumentou.

O projeto foi implementado com sucesso. Depois de algum tempo, o cliente teve uma ideia de desenvolver essa tecnologia para automação comercial. Os planos futuros incluíram serviços completamente novos: a formação de uma equipe de construtores, uma rede social interna, uma troca interna de documentos e muito mais. Os desenvolvedores mostraram alta competência e, após algum tempo, a arquitetura do projeto foi projetada para resolver problemas novos e antigos. A nova arquitetura do projeto fez alterações incompatíveis com versões anteriores.
A versão
principal do projeto aumentou.

A imagem completa fica assim, mas você raramente a encontra. Então, apresentamos quais são as versões do produto. Mas como gerenciá-los?
Vejamos uma ferramenta de automação de controle de versão.
Versionings
NPM:
https://www.npmjs.com/package/versioningsGitHub:
https://github.com/morozow/versioningsO controle de versão é feito usando a linha 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]
A versão atual do produto é armazenada no arquivo ./package.json do projeto, bem como nas tags Git e na ramificação de atualização. A automação tem a capacidade de integrar-se a várias ferramentas de terceiros - o controle de versão é feito através do comando da CLI.
Vejamos um exemplo de atualização de um produto.
Acções
Um rascunho da versão atual
2.5.3 está sendo desenvolvido. O desenvolvimento de um novo serviço de projeto está em andamento na ramificação
crm-user-service . O desenvolvimento do serviço foi concluído, todas as alterações foram confirmadas e foi tomada uma decisão para aumentar a versão secundária:
versionings --semver=minor --branch=user-service --push
Resultado
- Nova ramificação: version / minor / v 2.6.0 - user-service
- Alteração de versão em
./package.json
: 2.5.3 -> 2.6.0 - Confirme a nova versão do produto na ramificação version / minor / v 2.6.0 - user-service
- Envie uma nova ramificação com a implementação do serviço e uma versão ampliada do produto.
- Criando uma solicitação pull para a ramificação versão / secundário / v 2.6.0 - serviço do usuário , que contém a implementação do serviço e a versão aprimorada do produto
Observações
- Ferramenta de automação orientada ao ambiente Unix
- Um projeto de exemplo para a construção de uma biblioteca é abstrato, para uma visão geral do controle de versão.
Isso é tudo :)
Todo um clima produtivo e um ótimo dia!