it-swarm-pt.tech

O que os números em uma versão geralmente representam (por exemplo, v1.9.0.1)?

Talvez essa seja uma pergunta boba, mas sempre assumi que cada número delineado por um período representava um único componente do software. Se isso é verdade, alguma vez eles representam algo diferente? Eu gostaria de começar a atribuir versões para as diferentes compilações do meu software, mas não tenho certeza de como ele deve ser estruturado. Meu software tem cinco componentes distintos.

110
BeachRunnerFred

Na versão 1.9.0.1:

  • 1 : Major revisão (nova interface do usuário, muitos novos recursos, mudança conceitual, etc.)

  • 9 : Revisão menor (talvez uma alteração em uma caixa de pesquisa, 1 recurso adicionado, coleção de correções de bugs)

  • 0 : liberação de correção de bug

  • 1 : Número de compilação (se usado) - é por isso que você vê o .NET framework usando algo como 2.0.4.2709

Você não encontrará muitos aplicativos descendo para quatro níveis, 3 normalmente é suficiente.

159
Dillie-O

Existe a especificação de versão semântica

Este é o resumo da versão 2.0:

Dado um número de versão MAJOR.MINOR.PATCH, incremente o:

MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.

Rótulos adicionais para pré-lançamento e metadados de construção estão disponíveis como extensões Para o formato MAJOR.MINOR.PATCH.

14
magyk

Pode ser muito arbitrário e difere de produto para produto. Por exemplo, com a distribuição do Ubuntu, 8.04 refere-se a 2008.April

Tipicamente, os números mais à esquerda (maiores) indicam uma liberação principal, e quanto mais você vai para a direita, menor a alteração envolvida.

13
rkabir
11
Søren Spelling Lund

Os números podem ser úteis como descrito por outras respostas, mas considere como eles também podem ser um tanto sem sentido ... Sun, você sabe Sun, Java: 1.2, 1.3, 1.4 1.5 ou 5 depois 6. No bom e velho Os números da versão Apple II significam algo. Hoje em dia, as pessoas estão desistindo de números de versão e indo com nomes bobos como "Feisty fig" (ou algo parecido) e "hardy heron" e "europa" e "ganymede". Claro que isso é muito menos útil porque, você vai ficar sem luas de júpiter antes de parar de mudar o programa, e como não há nenhuma ordenação óbvia, você não pode dizer qual é a mais nova.

8
stu

Quanto mais pontos, menor o lançamento. Não há um padrão sólido real além disso - pode significar coisas diferentes com base no que os mantenedores do projeto decidem.

O WordPress, por exemplo, segue as seguintes linhas:

1,6 -> 2,0 -> 2,0,1 -> 2,0,2 -> 2,1 -> 2,1,1 -> 2,2 ...

1.6 para 2.0 seria um grande lançamento - características, mudanças de interface, grandes mudanças nas APIs, quebra de 1.6 templates e plugins, etc. 2.0 a 2.0.1 seria uma versão menor - talvez consertar uma segurança bug. 2.0.2 para 2.1 seria um lançamento significativo - novos recursos, geralmente.

7
ceejayoz

Os números podem significar o que você quiser, embora eles geralmente não estejam relacionados a componentes individuais, mas sim a alterações maiores vs. menores vs. manutenção em sua versão.

Confira estes recursos:
http://www.netbeans.org/community/guidelines/process.html
http://en.wikipedia.org/wiki/Release_engineering
http://www.freebsd.org/releases/6.0R/schedule.html

Felicidades

4
Alvaro Rodriguez

Os números de versão geralmente não representam componentes separados. Para algumas pessoas/software, os números são bastante arbitrários. Para outros, diferentes partes da cadeia de números de versão representam coisas diferentes. Por exemplo, alguns sistemas aumentam partes do número da versão quando um formato de arquivo é alterado. Portanto, o V 1.2.1 é compatível com todas as outras versões do V 1.2 (1.2.2, 1.2.3, etc.), mas não com o V 1.3. Em última análise, cabe a você o esquema que você deseja usar.

3
user9385

Do arquivo C # AssemblyInfo.cs você pode ver o seguinte:

// Version information for an Assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
/ You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [Assembly: AssemblyVersion("1.0.*")]
2
Thomas Jespersen

release.major.minor.revision seria meu palpite.
Mas pode variar muito entre os produtos.

2
Fire Lancer

Depende, mas a representação típica é a de major.minor.release.build.

Onde:

  • major é a principal versão do seu software, pense no .NET 3.x
  • minor é a versão menor do seu software, pense no .NET x.5
  • release é o lançamento dessa versão, normalmente correções de erros incrementarão este
  • build é um número que indica o número de construções que você executou.

Então, por exemplo, 1.9.0.1, significa que é a versão 1.9 do seu software, seguindo 1.8 e 1.7, etc., onde 1.7, 1.8 e 1.9, de alguma forma, geralmente adicionam pequenas quantidades de novos recursos ao lado de correções de bugs. Como é x.x.0.x, é o lançamento inicial do 1.9 e é a primeira versão dessa versão.

Você também pode encontrar boas informações sobre o artigo da Wikipedia sobre o assunto .

2
Lasse Vågsæther Karlsen

Major.Minor.Bugs

(Ou alguma variação disso)

Bugs geralmente são correções de bugs sem novas funcionalidades.

Minor é alguma alteração que adiciona nova funcionalidade, mas não altera o programa de nenhuma maneira importante.

Major é uma mudança no programa que quebra a funcionalidade antiga ou é tão grande que de alguma forma altera como os usuários devem usar o programa.

2
emeryc

Todos escolhem o que querem fazer com esses números. Eu me senti tentado a chamar os lançamentos de a.b.c, já que é meio bobo mesmo. Dito isto, o que vi nos últimos 25 anos de desenvolvimento tende a funcionar dessa maneira. Digamos que o número da sua versão seja 1.2.3.

O "1" indica uma revisão "principal". Geralmente esta é uma versão inicial, uma grande mudança de conjunto de recursos ou uma reescrita de partes significativas do código. Uma vez que o conjunto de recursos é determinado e, pelo menos parcialmente implementado, você vai para o próximo número.

O "2" indica uma liberação dentro de uma série. Freqüentemente, usamos essa posição para obter recursos que não foram incluídos na última grande versão. Esta posição (2) quase sempre indica um recurso adicionar, geralmente com correções de bugs.

O "3" na maioria das lojas indica uma correção de patch/bug. Quase nunca, pelo menos do lado comercial, isso indica uma característica significativa. Se os recursos aparecerem na posição 3, provavelmente é porque alguém verificou algo antes de sabermos que precisávamos fazer um lançamento de correção de bug.

Além da posição "3"? Eu não tenho ideia de por que as pessoas fazem esse tipo de coisa, só fica mais confuso.

Notavelmente, alguns dos OSS que estão por aí lançam tudo isso fora de moda. Por exemplo, a versão 10 do Trac é na verdade 0.10.X.X. Acho que muitas pessoas no mundo do OSS não confiam ou simplesmente não querem anunciar que tiveram um grande lançamento feito.

1
mclain

As pessoas nem sempre reconhecem a diferença sutil entre números de versão como 2.1, 2.0.1 ou 2.10 - pergunte a uma pessoa de suporte técnico quantas vezes ela teve problemas com isso. Desenvolvedores são detalhistas e estão familiarizados com estruturas hierárquicas, então este é um ponto cego para nós.

Se possível, exponha um número de versão mais simples aos seus clientes.

1
Mark Ransom

O paradigma da maior correção release.minor release.bug é bem comum, eu acho. 

Em alguns contratos de suporte corporativo, há $$$ (ou quebra de responsabilidade de contrato) associada a como uma determinada liberação é designada. Um contrato, por exemplo, pode autorizar um cliente a um grande número de lançamentos importantes em um período de tempo ou prometer que haverá menos de um número x de lançamentos menores em um período ou que o suporte continuará disponível para muitos lançamentos. É claro que não importa quantas palavras sejam colocadas no contrato para explicar o que é um grande lançamento versus um lançamento menor, é sempre subjetivo e sempre haverá áreas cinzentas - levando à possibilidade de o fornecedor de software poder jogar o sistema para vencer tais disposições contratuais.

1
Will M

No caso de uma biblioteca, o número da versão informa sobre o nível de compatibilidade entre duas versões e, portanto, quão difícil será uma atualização.

Uma versão de correção de bug precisa preservar a compatibilidade de binário, fonte e serialização.

Versões menores significam coisas diferentes para projetos diferentes, mas geralmente elas não precisam preservar a compatibilidade das fontes.

Números de versão principais podem quebrar todas as três formas.

Eu escrevi mais sobre a lógica aqui .

1
Craig P. Motlin

Major.minor.point.build normalmente. Major e minor são autoexplicativas, point é um release para algumas pequenas correções de bugs, e build é apenas um identificador de build.

1
Cody Brocious

Geralmente é:

MajorVersion.MinorVersion.Revision.Build

1
Jason Punyon

Sim. Grandes lançamentos adicionam novos recursos, podem quebrar a compatibilidade ou ter dependências significativamente diferentes, etc.

Os lançamentos menores também adicionam recursos, mas são versões menores, às vezes despojadas, da versão beta principal.

Se houver um terceiro componente de número de versão, geralmente é para correções de bugs importantes e correções de segurança. Se há mais, realmente depende tanto do produto que é difícil dar uma resposta geral.

1
Paweł Hajdan

O primeiro número é geralmente chamado de número de versão principal. É basicamente usado para denotar mudanças significativas entre compilações (ou seja, quando você adiciona muitos recursos novos, você incrementa a versão principal). Componentes com diferentes versões principais do mesmo produto provavelmente não são compatíveis.

O próximo número é o número da versão secundária. Ele pode representar alguns novos recursos ou várias correções de erros ou pequenas alterações na arquitetura. Componentes do mesmo produto que diferem pelo número de versão menor podem ou não funcionar juntos e provavelmente não devem.

O próximo é geralmente chamado de número de compilação. Isso pode ser incrementado diariamente, ou com cada compilação "liberada" ou com cada compilação. Pode haver apenas pequenas diferenças entre dois componentes que diferem apenas pelo número de compilação e normalmente podem funcionar bem juntos.

O número final é geralmente o número de revisão. Muitas vezes, isso é usado por um processo de criação automática ou quando você está criando versões descartáveis ​​"descartáveis" para testes.

Quando você incrementa seus números de versão é com você, mas eles devem sempre incrementar ou permanecem os mesmos . Você pode ter todos os componentes compartilhando o mesmo número de versão ou apenas incrementar o número da versão em componentes alterados.

0
Bob King

O número da versão de um software complexo representa todo o pacote e é independente dos números de versão das partes. O Gizmo versão 3.2.5 pode conter o Foo versão 1.2.0 e o Bar versão 9.5.4.

Ao criar números de versão, use-os da seguinte maneira:

  1. Primeiro número é o lançamento principal. Se você fizer alterações significativas na interface do usuário ou precisar quebrar as interfaces existentes (para que os usuários tenham que alterar o código da interface), você deverá ir para a nova versão principal. 

  2. O segundo número deve indicar que novos recursos foram adicionados ou algo funciona de maneira diferente internamente. (Por exemplo, o banco de dados Oracle pode decidir usar uma estratégia diferente para recuperar dados, tornando a maioria das coisas mais rápida e algumas coisas mais lentas.) As interfaces existentes devem continuar funcionando e a interface do usuário deve ser reconhecível. 

  3. A numeração de versões é maior para a pessoa que está escrevendo o software - o Oracle usa cinco (!) Grupos, ou seja. uma versão do Oracle é algo como 10.1.3.0.5. Do terceiro grupo para baixo, você deve apenas introduzir correções de erros ou pequenas alterações na funcionalidade. 

0
Sten Vesterli
0
Sijin

os que variam menos seriam os dois primeiros, para major.minor, depois disso pode ser qualquer coisa de compilação, revisão, release, a qualquer algoritmo customizado (como em alguns produtos MS)

0
BlackTigerX

Aqui está o que usamos:

  1. Primeiro número = era geral do sistema. Altera-se a cada dois anos e normalmente representa uma mudança fundamental na tecnologia, nos recursos do cliente ou em ambos.
  2. Segundo número = revisão do esquema do banco de dados. Um incremento neste número requer uma migração do banco de dados e, portanto, é uma alteração significativa (ou sistemas replicam e, portanto, a alteração da estrutura do banco de dados requer um processo de atualização cuidadoso). Redefine para 0 se o primeiro número for alterado.
  3. Terceiro número = alteração apenas no software. Isso geralmente pode ser implementado em um cliente por base de cliente como o esquema do banco de dados é inalterado. Redefine para zero se o segundo número for alterado.
  4. Número da versão do Subversion. Nós preenchemos isso automaticamente na build usando a ferramenta TortoiseSVN. Esse número nunca é redefinido, mas aumenta continuamente. Usando isso, podemos sempre recriar qualquer versão.

Este sistema está nos servindo bem porque cada número tem uma função clara e importante. Já vi outras equipes lutando com a questão do número maior/menor (quão grande é uma mudança importante) e não vejo o benefício disso. Se você não precisa rastrear as revisões do banco de dados, basta ir para um número de versão de 3 ou 2 dígitos e facilitar a vida!

0
Ewan Makepeace

Na versão v1.9.0.1: Este é o esquema de versionamento explícito usado quando você não quer usar o nome para os pré-lançamentos ou construir como -alfa, -beta.

1: Versão principal que pode quebrar a compatibilidade com versões anteriores

9: Adicionar novos recursos para dar suporte ao seu aplicativo, além de compatibilidade com versões anteriores.

0: algumas pequenas correções de bugs

1: Número de compilação (número de pré-lançamento)

mas hoje em dia, você não encontrará esse esquema de versionamento. Consulte o Versionamento Semântico [semver2.0] https://semver.org/

0
Mehul Sancheti

Cada organização/grupo tem seu próprio padrão. O importante é que você se atenha a qualquer notação que escolher, caso contrário seus clientes ficarão confusos. Tendo dito que usei normalmente 3 números:

x.yz.bbbbb. Onde: X: é a versão principal (novos recursos principais) Y: é o número da versão secundária (pequenos novos recursos, pequenas melhorias sem alterações na interface do usuário) Z: é o service pack (basicamente o mesmo que xy mas com algumas correções de bugs bbbb: é o número da compilação e só é visível na caixa "about box" com outros detalhes para suporte ao cliente. bbbb é formato livre e todo produto pode usar é próprio.

0
Vasco Duarte

Uma combinação de major, minor, patch, build, patch de segurança, etc.

Os dois primeiros são maiores e menores - o resto dependerá do projeto, da empresa e, às vezes, da comunidade. Em sistemas operacionais como o FreeBSD, você terá 1.9.0.1_number para representar um patch de segurança.

0
Loren Segal

Depende um pouco da linguagem, Delphi e C #, por exemplo, têm significados diferentes.

Normalmente, os dois primeiros números representam uma versão maior e uma versão menor, ou seja, 1.0 para a primeira versão real, 1.1 para algumas correções de bugs importantes e novos recursos menores, 2.0 para uma grande nova versão de recurso.

O terceiro número pode se referir a uma versão "realmente menor" ou revisão. 1.0.1 é apenas um bugfix muito pequeno para 1.0.0 por exemplo. Mas também pode transportar o número de revisão do seu sistema de controle de origem, ou um número cada vez maior que aumenta a cada compilação. Ou um Datestamp.

Um pouco mais detalhadamente aqui . "oficialmente", em .net, os 4 números são "Major.Minor.Build.Revision", enquanto que em Delphi existem "Major.Minor.Release.Build". Eu uso "Major.Minor.ReallyMinor.SubversionRev" para o meu controle de versão.

0
Michael Stum

Em geral, o número está no formato de version.major.minor.hotfix, não em componentes internos individuais. Portanto, v1.9.0.1 seria a versão 1, a versão principal 9 (da v1), a versão secundária (da v1.9) 0, hot fix 1 da (v1.9.0).

0
Scott Bevington