Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Convenções em versionamento de "Software"

Galera,

Uma dúvida que surgiu por aqui e estive lendo a respeito, porém, não compreendi de fato qual lógica seguir nas convenções de versionamento de software.

Visualizei alguns repositórios do github e de fato eles seguem padrões bem parecidos.

Gostaria de levantar essa discussão para ver a opinião de vocês e ver como vocês fazem em seus projetos.

https://en.wikipedia.org/wiki/Software_versioning

6 respostas

Oi Helder, tudo bem ?

Essa parte de convenção é um pouco complicado de falar, porque vai depender muito da cultura da empresa que você está trabalhando.

As vezes você se habitua a forma que o mercado utiliza e chega numa empresa e eles utilizam outra forma.

Acredito que seja mais interessante você ver as empresas que você tem interesse em trabalhar e checar os repositórios que ela possui, caso existam.

Espero ter ajudado.

Abraços

solução!

Na minha empresa uso o Semantic Versioning http://semver.org/lang/pt-BR/ nos projetos, combinado com o hash de um commit no Git (que é o número da build).

Faço assim pois toda vez que envio um teste de iOS para o TestFlight (App Store) ele pede que eu especifique a build. Ao invés de trocar a parte do patch no número, troco esse hash.

A parte major.minor.patch deve ficar alinhada entre os times de backend, frontend e mobile. Já o número da build é livre.

O repositório Git é dividido em vários branches, sendo 4 principais:

  • master
  • backend
  • frontend
  • mobile

Cada developer pode criar seus branches, fazer pull-requests nesses 3 e depois removê-los. Eu gerencio a build do master, fazendo pull-requests dos branches de cada time no principal. Agindo assim, o time sempre tem que publicar uma build funcional e o processo se automatiza.

Exemplo:

  • Master: 2.5.3

Teremos as builds:

  • Backend 2.5.3-2d2e952a
  • Frontend 2.5.3-a1c420a8
  • Mobile 2.5.3-09b2d1a9

Complementando:

Os números major.minor.patch ficam alinhados assim: contrato.modulo.sprint ou contrato.etapa.sprint.

Contrato é o produto que vai ser feito, com documentação e termo legal assinado. Módulo ou etapa é o foco da equipe naquele momento, após alinhar com cliente. Sprint é a iteração.

Realmente Mateus é algo bem específico das empresas.

Estou em busca de um padrão para aplicar em minha empresa.

Ricardo achei bem interessante essa convenção do "semver", vou ler mais a fundo, obrigado por compartilhar.

Minha resposta te ajudou? Dá um retorno ou marca como solução? Obrigado!

Ajudou sim Ricardo, desculpe a demora do retorno, acabei indo a fundo nos estudos e esqueci de voltar haha. :D