Pergunta

Eu entendo que a Microsoft usa este modelo quando versionamento seus produtos: Major.Minor.Build.Revision.

Maior é alterada quando os "desenvolvedores" Queremos mostrar que há uma grande mudança na compatibilidade de software e para trás não pode ser assumida. Talvez uma grande reformulação do código é feito.

Número Minor representa uma melhoria significativa com a intenção de compatibilidade com versões anteriores.

Número de Build é uma pequena mudança, por exemplo, uma recompilação da mesma fonte.

Revisão é usada para corrigir uma falha de segurança e deve ser totalmente intercambiáveis. Ambos Construir e Revisão são opcionais. Esta informação é baseada em MSDN Versão Classe .

Como você versão seus projetos e por que você versão los desta forma?

Foi útil?

Solução

Nós geralmente fazem major.minor [.maintenance [.build]] onde eu trabalho, mas parece variar um pouco por projeto.

Major / menor o mesmo que você mencionou. manutenção seria incrementado para pequenas (bugs) correções e construir para cada vez que o servidor de compilação é executado.

Outras dicas

Eu pessoalmente gosto de usar um esquema que incide sobre o nível de compatibilidade com versões anteriores que os usuários do projeto / produto pode esperar:

Antes 1.0:

  • 0.0.1 = Primeira versão
  • 0 .-. X = atualização Compatível
  • 0.X.0 = Backwards atualização incompatível

Depois de 1.0:

  • -.-. X = atualização sem mudanças na interface
  • -. X.0 = Atualizar com adições de interface para trás compatíveis
  • X.0.0 = Backwards atualização incompatível

Usando a compatibilidade como o ponto central no número da versão torna mais fácil para os usuários, especialmente se te produto é uma biblioteca, para julgar se eles podem ou não esperar uma smoothe e segura atualizar ou não.

Muitas vezes vejo Xyz onde X é o ano após o número de liberação e yz é o mês do ano. Ou seja, 201 é de janeiro de 2 anos após o lançamento. Ou seja, quando lançamentos de produtos, em maio, seu primeiro número da versão é 105. lançamento em fevereiro do próximo ano é 202.

Normalmente versão nossos projetos com base na data de lançamento atual, YYYY.MM.DD. *, e deixamos que o número de compilação gerar automaticamente, assim, por exemplo, se tivéssemos um comunicado hoje seria 2008.9.26.BUILD .

Eu uso major.minor.point.revision, onde o ponto é uma versão só de bugfix e revisão é a revisão do repositório. É fácil e funciona bem.

Eu trabalho em uma série de projetos menores e eu pessoalmente tenho encontrado este útil.

PatchNumber.DateMonthYear

Esta é para pequenas ferramentas baseadas na web onde os usuários podem ver quando a última atualização e quantas vezes ele foi atualizado.

PatchNumber é o número de lançamentos que já foi feito eo resto é usado para mostrar os usuários quando este foi publicado.

Major.minor.patch.build com o patch ser o hotfix ou patch lançamento.

Se você pode obter QA para por dentro e é no SVN, você poderia usar a revisão svn CABEÇA como o número de compilação. Dessa forma, cada build descreve de onde veio, em termos de controle de origem e que está na compilação. Isso significa que você vai ter compilações subir com lacunas (1.0.0.1, 1.0.0.34 ....)

Major.Minor.BugFix.SVNRevision

por exemplo: 3.5.2.31578

  • O SVN revisão dá-lhe a paz muito exata do código enviado para o cliente. Você está absolutamente certo se isso bugfix estava lá ou não.
  • Ele também ajuda a encontrar o PDB adequada no caso de você ter um erro de aplicação. Basta combinar as revisões SVN no seu servidor de compilação, copie o PDB para EXE localização, abra o depurador e você tem o rastreamento de pilha acidente.

Eu só faço Major.Minor. Desde que eu sou um único desenvolvedor (com a ajuda ocasional) trabalhando em um aplicativo web a maioria das pessoas não poderia me importar menos sobre as pequenas correções que faço. Então, eu só iterar as versões menores como eu colocar em novos recursos e grandes números de versão quando faço alguma whopper de uma mudança / upgrade. Caso contrário, eu simplesmente ignorar as pequenas correções na medida em que os números de versão ir (embora eu tenho os números de revisão do Subversion se eu precisar remeter para mim).

Eu só tenho um número. O primeiro lançamento é 001. terceiro beta segundo lançamento é 002b3, e assim por diante. Este é apenas para a mente material pessoal, eu realmente não tenho nada 'liberado' no momento, então isso é tudo teoria.

Eu comecei usando um formato pseudo-similar ao Ubuntu: Y.MMDD

Isso ajuda por alguns motivos:

  • é mais fácil para verificar se há requisitos de versão:. if (versão <8,0901) die / saída / etc ;
  • ele pode ser auto-gerada em seu processo de construção

Em que ponto 2 (rubi e ancinho):

def serial(t)
   t = Time.now.utc if not t.instance_of?(Time)
   t.strftime("%Y").to_i - 2000 + t.strftime("0.%m%d").to_f
end

serial(Time.now)     #=> 8.0926
serial(Time.now.utc) #=> 8.0927

NOTA: t.strftime ( "% Y% m% d") to_f - 2000 fortes corre para imprecisões de ponto flutuante:. 8,09269999999992

Eu costumava como a maneira Nantucket de versionamento seu compilador Clipper na década de 80:

Clipper Inverno 1984
Clipper Verão 1985
Clipper Inverno 1985
Clipper Autumn 1986
Clipper Verão 1987

Oh e sobreposições ....

[fica com lágrimas nos olhos]

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top