Quando devo incrementar o número da versão?

23

Eu não aprendi programação na escola e não trabalho como desenvolvedor (profissional), portanto, muitos conceitos básicos não são muito claros para mim. Esta pergunta tenta esclarecer um deles.


Agora, suponhamos que eu tenha problemas e #1, no Rastreador de problemas, que esteja definido para ser corrigido / aprimorado para a versão e que seja a última versão (estável) .#2#31.0.00.9.0

Quando devo incrementar a versão 1.0.0? Quando a) apenas um dos problemas listados acima está fechado ou b) quando todos os problemas relacionados à versão 1.0estão fechados?

Qual é o caminho certo para fazê-lo? E da maneira certa , quero dizer o que é atualmente usado na indústria.

ahmed
fonte
22
Veja semver.org
Martijn Pieters
1
E você também pode incluir todos os três problemas em sua próxima versão.
Martijn Pieters
Sim, eu já estou usando SemVer e todos os três problemas são devidos no próximo lançamento :)
Ahmed
Eu editei a pergunta para evitar confusões.
ahmed

Respostas:

14

Eu posso te dizer como faço no trabalho.

Temos um servidor de integração contínua que cria, testa, identifica e gera um pacote com versão. Somente prosseguiremos para a próxima fase se a% anterior tiver 100% de êxito.

Nossa versão tem a seguinte aparência: <Versão Principal>. <Versão Menor>. <Número da Compilação>

  • Toda compilação bem-sucedida que não possui correção de bug concluída ou aprimoramento de recurso aumenta o número da compilação.
  • Toda compilação bem-sucedida com uma correção de bug concluída ou aprimoramento de recursos aumenta a Versão Menor. Isso é detectado automaticamente pela presença de uma mensagem de confirmação usando um formato específico. Essa mensagem de confirmação também é automaticamente inserida nos projetos ChangeLog.
  • Todo incremento da versão principal é feito manualmente quando temos alterações não compatíveis com versões anteriores, reescrevemos do zero ou outras razões feitas caso a caso.
dietbuddha
fonte
Mas se você tiver uma série de aprimoramentos a serem concluídos em uma <Versão Menor>, 1.0.0, por exemplo. Você precisa fazer TODAS essas melhorias para poder dizer "OK! Agora esta é a versão 1.0.0" ou você incrementa para a versão 1.0.0 assim que o primeiro aprimoramento é concluído?
ahmed
@ahmed Vi a abordagem que 1.4.2é "esse conjunto de correções e qualquer outra coisa pronta naquele momento" ... também vi 1.4.2como "Isso será lançado nesta data com o que estiver pronto". Depende do seu ciclo de lançamento.
5
@ahmed Se o critério para passar de 0.xx a 1.xx fosse a conclusão de um conjunto de recursos / correções, eu aumentaria apenas depois que todos estivessem completos. Nota: que não trabalhamos dessa maneira. Não segmentamos uma versão e decidimos quais correções serão aplicadas nela. Temos como alvo as correções. A versão que obtemos é puramente para rastreamento e identificação, não um objetivo.
dietbuddha
Este é exatamente o que eu queria saber :)
Ahmed
21

Os números de versão são relevantes apenas para liberações , pois são uma maneira de usuários externos identificarem uma compilação específica do seu software. Se você está apenas ocupado desenvolvendo e não liberando cada correção individualmente, não se preocupe em aumentar o número da versão para cada correção. Não é relevante para usuários externos e desperdiça seu tempo com a contabilidade extra da versão.

Greg Hewgill
fonte
Isso se aplica também ao desenvolvimento da Web em que uma versão pode ser um hotfix simples para um bug menor?
ahmed
4
Você faz o controle de qualidade antes de emitir o hotfix? É um lançamento. Se não for do produto completo, então do hotfix.
Peter K.
@ahmed Nesse cenário, os números de versão geralmente são invisíveis para o usuário e, portanto, sem sentido (os números de versão existem principalmente para suporte técnico e de marketing, os quais não se aplicam a muitos aplicativos da web). Apenas usar o ID de confirmação pode ser suficiente. Se você insistir em usar números de versão, sim, eu provavelmente aumentaria o nível de patch.
amon
Estou aprendendo muitas coisas aqui: p Então, para resumir: NÃO preciso de números de versão, pois os IDs de confirmação são suficientes, pois TODOS os usuários usarão a última versão de qualquer maneira.
ahmed
2
Embora todos os usuários estejam na mesma versão, no momento em que você examinar o relatório de defeitos, a versão terá mudado. Você ainda precisa de uma maneira de vincular o relatório a uma compilação específica do software (a data / hora pode ser boa o suficiente).
mattnz
2

Para aplicativos da Web implantados continuamente, tendemos a construir números de compilação usando o symver antecipadamente e um número final de compilação, ou seja: 2.5.3.4328, onde 4328 vem do sistema de integração contínua. A expectativa geral é que os números sejam alterados por etapas deliberadas, mas que o número da compilação seja o verdadeiro ID exclusivo.

O que parece estar fazendo aqui é capturar o dia da implantação e o número de compilação svn relacionado:

        <div id="svnrev">
            rev 2013.10.21.1078
        </div>

Pelo que vale a pena.

Wyatt Barnett
fonte
0

As outras respostas já são ótimas, então apenas adicionarei em cima delas. Se o seu software não for lançado e você realmente não precisar de versões públicas (a versão não pública é o seu VCS), acrescente a palavra-chave " INSTANTÂNEO " no final da sua versão. Alguns sistemas, especialmente no gerenciamento de dependências, tratam os instantâneos de maneira diferente das versões lançadas, na medida em que comparam a data de alteração dos instantâneos em vez do número da versão. Portanto, se você tiver um v. 1.0.0-SNAPSHOT das 8h em um repositório de pacotes e um downloader de dependência local tiver a mesma versão das 7h, ele deverá baixar o atualizado do repositório.

Como dito acima, seu controle de versão privado é fornecido pelo seu sistema de controle de versão (git, svn etc.).

Hubert Grzeskowiak
fonte
0

Já se disse o suficiente sobre a teoria do controle de versão, aqui está outro ponto de vista.

Quando devo incrementar para a versão 1.0.0?

Vou focar minha resposta na alteração do número da versão principal.

Minha resposta é: Basicamente, quando você estiver pronto para isso. Passar de 0,9 a 1,0 é algo importante, porque a percepção do público será de que você está passando de um produto beta para um lançamento oficial.

(Vou assumir aqui que é um produto comercial de uma empresa).

Algumas perguntas antes de passar de 0,9 para 1,0.

Sua organização tem tempo para informar todos os seus clientes atuais. Dar uma festa. Receba muitas solicitações de suporte. Um gerente de conta para vender seu produto? Etc etc.

Sim, eu vejo o versionamento como uma ferramenta de marketing e, se você olhar em volta, verá que esse é basicamente o padrão da indústria.

Nossa empresa passou da versão 2.x para a 3.0 e fizemos uma grande festa, geramos muito burburinho e, por isso, conquistamos muitos novos clientes. Além de algumas atualizações de interface, as diferenças entre as versões eram pequenas.

Pieter B
fonte