Você mencionou que pretende usar o controle de versão semântico, portanto, vamos analisar a especificação do controle de versão semântico em http://semver.org/ :
Dado um número de versão MAJOR.MINOR.PATCH, aumente o:
- Versão MAJOR quando você faz alterações incompatíveis da API,
- Versão MENOR quando você adiciona funcionalidade de uma maneira compatível com versões anteriores e
- PATCH versão quando você faz correções de erros compatíveis com versões anteriores.
Rótulos adicionais para pré-lançamento e compilação de metadados estão disponíveis como extensões para o formato MAJOR.MINOR.PATCH.
e um pouco mais abaixo:
Uma versão de pré-lançamento pode ser indicada anexando um hífen e uma série de identificadores separados por pontos imediatamente após a versão do patch. Identificadores DEVEM incluir apenas alfanuméricos ASCII e hífen [0-9A-Za-z-]. Identificadores NÃO DEVEM estar vazios. Identificadores numéricos NÃO DEVEM incluir zeros à esquerda. As versões de pré-lançamento têm uma precedência menor que a versão normal associada. Uma versão de pré-lançamento indica que a versão é instável e pode não atender aos requisitos de compatibilidade pretendidos, conforme indicado pela sua versão normal associada. Exemplos: 1.0.0-alfa, 1.0.0-alfa.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.
Portanto, se você estiver lançando uma versão beta verdadeira de sua versão 1.0, deverá marcá-la 1.0.0-beta
(ou similar de acordo com as especificações). Se você estiver indo para ter várias versões beta, como você corrigir bugs, então 1.0.0-beta.1
, 1.0.0-beta.2
etc.
Ao adicionar recursos compatíveis com versões anteriores, você deve aumentar o número MENOR. Se você fizer muitas alterações internas que causariam alterações em outras partes do seu aplicativo, essa é uma alteração PRINCIPAL. Se você estiver fazendo alterações menos drásticas (por exemplo, você adiciona apenas código e não altera o comportamento do código existente), essa seria uma alteração MENOR. Se você tiver um aplicativo pesado da interface do usuário e alterar completamente essa interface, também diria que também é uma alteração MAIOR (a interface do usuário pode ser considerada a API para os usuários finais).
Quanto a como adicionar indicadores ao seu repositório git, sugiro que você primeiro crie um 1.x
ramo. Isso permitirá que você siga facilmente tudo na versão 1, permitindo o desenvolvimento contínuo da versão 2 no master. Em seguida, você marca a versão beta com uma marca 1.0.0-beta
(ou -beta.1
se houver vários betas). Depois de corrigir todos os erros que você precisa corrigir, marque a 1.0.0
versão real . Em seguida, marque cada versão conforme necessário.
Você pode dar uma olhada em alguns fluxos de trabalho testados e aprovados para o git, como o git flow e o github flow, para obter idéias de como você deseja configurar seu fluxo de trabalho em andamento.
Além disso, se você quiser um pouco mais de contexto sobre o controle de versão semântico para programas sem uma API, essa resposta será aprofundada.