O que realmente significam as versões de atualização?

18

Muitas atualizações de software seguem o esquema da v0.1 à v0.2 à v2.6.5.6 . O que essas "atualizações" de software realmente significam? Existe sempre um padrão da indústria ou os programadores continuam aumentando a atualização # ou adicionando mais casas decimais?

James Mertz
fonte
12
@ S.Lott Como sou relativamente novo na cena da programação, não conheceria especificidades. Esta é a melhor maneira de pedir que eu possa inventar.
James Mertz
9
@ S.Lott, reduza a cafeína senhor, está deixando você irritado.
Ocodo 14/02
2
@ S.Lott, sinta-se à vontade para editar o que achar melhor para melhorar a pergunta. Eu sinto que você sabe o que estou procurando. No entanto, sinto que as respostas fornecidas foram muito boas. Eu também sinto, a julgar pelos votos positivos no meu comentário anterior, que fiz o melhor que posso e que a pergunta está bem como está. No entanto, congratulo-me com as críticas e com as edições. Faça como achar melhor. Para mim, estou deixando isso sozinho.
James Mertz
1
@ S.Lott A pergunta parece bastante clara como é para mim. Não acho que listar uma organização específica para a elaboração de padrões seria uma melhoria considerável. Se você sentir o contrário, sinta-se à vontade para editar. Você tem o representante para isso.
Adam Lear
3
@ S.Lott: "Existe um padrão da indústria" está completamente bem. Sim, existem padrões da indústria! Não importa quem os escreve: o KronoS quer saber o que as versões significam, é sua escolha especificar o quão detalhado ele vai ... Talvez você deva ter mencionado que considera a pergunta ampla. Apenas martelar detalhes não deixa isso claro para o usuário, dizendo para ele definir: a palavra não deixa isso claro para o usuário, dizendo que não faz sentido depois que seu primeiro comentário não deixa isso claro para o usuário.
Tamara Wijsman

Respostas:

16

Como Shaun disse, não há realmente um padrão. Algumas empresas têm melhores práticas de versão do que outras (eu lidei com fornecedores que ignoram os principais números de versão e outros que ficam presos no mesmo xy várias versões posteriores).

Dito isto, o inventor dos Gravatars e co-fundador do GitHub ( Tom Preston-Werner ) escreveu um documento para ' Semantic Versioning ', que vale mais do que uma leitura.

Aqui está a exceção da introdução:

Como solução para esse problema, proponho um conjunto simples de regras e requisitos que determinam como os números de versão são atribuídos e incrementados. Para que este sistema funcione, você precisa primeiro declarar uma API pública. Isso pode consistir em documentação ou ser imposto pelo próprio código. Independentemente disso, é importante que essa API seja clara e precisa. Depois de identificar sua API pública, você comunica alterações nela com incrementos específicos ao número da sua versão. Considere um formato de versão de XYZ (Major.Minor.Patch). As correções de erros que não afetam a API incrementam a versão do patch, as adições / mudanças de API compatíveis com versões anteriores aumentam a versão secundária e as alterações incompatíveis com a API aumentam a versão principal.

Eu chamo esse sistema de "versionamento semântico". Sob esse esquema, os números de versão e a maneira como eles mudam transmitem significado sobre o código subjacente e o que foi modificado de uma versão para a seguinte.

Dan McGrath
fonte
7

Com 4 dígitos, geralmente é MajorV.MinorV.PatchNum.BuildNum, pelo menos onde eu trabalho.

Pessoalmente, prefiro o esquema de versões do Ubuntu - torna a vida muito mais fácil.

Trabalho
fonte
Qual é o esquema deles? Por que você prefere eles?
James Mertz
3
Ubuntu 10.10 = outubro de 2010, Ubuntu 10.04 = abril de 2010, Ubuntu 11.04 = Aprial 2011, Ubuntu 9.10 = outubro de 2009 etc. Isso é mencionado no link da Wikipedia por Shaun.
Job
2
O bom de usar datas como números de versão é que - a menos que ocorra algum paradoxo de tempo estranho - seu número de versão sempre estará na ordem correta. Para a maioria de nós, é mais fácil lembrar que hoje é 2011.02.13 do que tentar descobrir qual versão do novo lançamento deve ser.
jmort253
@ jmort245, exatamente! Os sistemas criados pelo homem são bastante confusos. Os bancos em pânico pensam que há 360, 362, 365, 366 etc. dias em um ano. O sistema de versionamento é mais uma daquelas criações estúpidas. Os carimbos de data e hora não nos fazem pensar, embora o 20050207 demore um pouco mais para ler e descobrir que o 502. Que software é lançado com mais frequência do que uma vez por mês?
Job
2
@job: Mas o uso de versões permite vincular recursos a versões principais ou secundárias específicas. Então, se eu tiver a versão 2 Eu sei que eu tenho a função X, enquanto a versão 1 não tem versão X.
Martin Iorque
6

A versão curta é que não há padrão e as empresas fazem o que querem. Essencialmente, quanto mais números você tiver, menor será a quantidade de alterações que cada número representa. Geralmente, você verá pelo menos a versão xy, em que xa alteração em x significa versões principais (aprimoramentos importantes / lançamentos de recursos) e y significa versões menores (ajustes significativos ou correções de defeitos). Mais decimais após esses dois podem significar coisas diferentes internamente para uma empresa, embora muitas vezes giram em torno de pequenas construções ou patches de conteúdo que representam correções menores e mais rápidas.

A Wikipedia tem um artigo que aborda isso em mais detalhes.

Shaun
fonte
3

O objetivo dos números de versão é fornecer uma referência para relatórios de problemas. O único requisito é que toda versão tenha um número de versão exclusivo. Alguns números são motivados pelo marketing - números inteiros maiores são mais fáceis de vender, e números de potência como 10 (número romano X) são realmente atraentes. Algumas pessoas usam alguma variação do controle de versão semântico:

MAJOR.MINOR.MICRO.BUILD

  • Incrementos principais: alterações incompatíveis ou reprojeto completo da interface do usuário
  • Incrementos menores: novos recursos adicionados, compatíveis com versões anteriores no mesmo número de versão principal
  • Micro incrementos: lançamento de correção de bug
  • Número da compilação: gerado pelo compilador ou extraído do controle de versão

Muitos grupos descartam o número BUILD em seus lançamentos. Geralmente, é útil apenas entre grupos de teste e desenvolvimento.

Alguns grupos adicionam semânticas adicionais, como incrementos MINOR numerados ímpares, para compilações experimentais e incrementos MINOR numerados pares, para versões de produção ( o kernel do Linux usa essa abordagem).

O ponto principal é que não há padrão; as versões mais recentes usam números de versão mais altos e que cada número de versão é único.

Berin Loritsch
fonte