Sabe aqueles números que todo mundo fala junto quando cita um app, biblioteca, linguagem, framework etc.?
Pê Haga Pê OITO ponto UM ponto DOIS
DOTe NETe Freimeworque QUATRO ponto CINCO ponto DOIS
SEI_LA_O_QUE DOIS ponto DEZ ponto ALGUMA COISA!
O que geralmente sabemos no senso comum é que quanto maior o número, mais “atual” é o app, portanto, “melhor”.
Mas por que o número da versão é dividido desse jeito? Com pontos, casas decimais e coisas complexas? Não dava pra ser simplesmente um número sequencial? Deve haver algum significado nesses números. Quais segredos os devs estão guardando dos reles mortais?
Então. A resposta curta e grossa é que esses números significam…
Tá bom, calma!
Na verdade significam, mas depende do desenvolvedor.
A primeira vez que tive contato com número de versões, foi durante curso técnico (a long time ago) onde completei meu primeiro projeto de programação. Por padrão, a IDE colocava lá, versão 1.0.0. Uau, que legal a primeira versão do meu “hello world”. Logo, isso significa que a próxima versão do meu programa seria a 2.0.0 certo?
Então, meu querido professor disse,
“Não é bem assim!”. E me deu a clássica explicação que segue:
Os números das versões são geralmente divididos em conjuntos de números separados por casas decimais. Normalmente, uma alteração no número mais à esquerda indica uma alteração importante no software ou driver. Alterações no número mais à direita normalmente indicam uma pequena alteração. Mudanças em outros números representam vários graus de mudanças.
Délcio – professor de programação
OK, OK. Então vamos procurar mais! Todo desenvolvedor de software deve seguir alguma norma, algum conselho né? CERTO?
Não. 🥲
Simplesmente não existe nenhuma forma oficial de controle de versão de software. Então cada desenvolvedor coloca a versão que bem entender!
Aliás Microsoft, onde foi parar o Windows 9?
Mas calma! Existe sim uma convenção entre os desenvolvedores que nos levou a estes três numerozinhos mágicos que são MAJOR, MINOR e PATCH
Normalmente você lê esses números da esquerda para a direita.
Para ficar claro, gostaria que você pensasse no seguinte problema.
Por questões de segurança, nosso cliente precisa que o PHP do servidor seja atualizado da versão 7.1.5 para 8.2.1. Quais são os riscos dessa atualização?
Agora explicando:
PATCH (o número mais à direita) – significa qualquer iteração, algum bug corrigido, alguma otimização, porém nada que altere as funcionalidades propostas pelo software.
MINOR (o número do meio) – significa que alguma funcionalidade foi adicionada ao software, porém sua proposta básica continua a mesma.
MAJOR (o número mais à esquerda) – significa que algo da versão anterior pode “quebrar” na nova versão. Digamos que na versão “2” existia uma funcionalidade para calcular idade, porém na versão “3” o desenvolvedor entendeu que essa funcionalidade era inútil e removeu da aplicação. O que acontece com outros apps que usavam a função de calcular idade? Simplesmente quebram. 🤡
Voltando ao problema proposto:
Por questões de segurança, nosso cliente precisa que o PHP do servidor dele seja atualizado da versão 7.1.5 para 8.2.1. Quais são os riscos dessa atualização?
Temos uma mudança de MAJOR (7 para 8), mais duas mudanças de MINOR (0 para 2) e um PATCH (0 para 1), ou seja, o app do nosso cliente muito provavelmente pode “quebrar” em alguma funcionalidade, porém pode se beneficiar de duas novas funcionalidades da versão “8”.
Deu para entender?
Você está prevendo uma dor de cabeças daquelas!
Outras nomenclaturas
Versões ALFA e BETA.
São versões de trabalho interno, para testar o software. Utilizamos essa nomenclatura normalmente quando MAJOR for “0” ou seja, antes da publicação oficial do software. Porém, depende do desenvolvedor, temos alfa e beta em próximas versões de franquias de jogos por exemplo.
LTS ou long term support.
São versões que o desenvolvedor se propõe a gerar patchs de correções por um período maior. Essas versões são destinadas a ambientes críticos. Onde você não pode correr o risco de um evento como o faker.js.
Quero relembrar aqui que cada desenvolvedor coloca suas próprias definições. Portanto não podemos levar essa convenção de forma literal. Recomendo que você consulte a documentação do desenvolvedor para descobrir quais parâmetros ele utiliza para gerar os números das versões.
NODE.JS por exemplo, as majors pares, são destinadas a uso geral e as majors impares são versões de feature preview
E para encerrar, alguns exemplos bizarros
Artigo com uma linguagem muito boa!! Parabéns!!
Sobre o update do windows vai uma dica que aprendi, os últimos números .2203 por exemplo significa mês e ano que foi lançada o update no caso Março de 2022, já o Version 22H1 quer dizer que foi lançado na primeira metade de 2022, agora o exemplo do seu post -1503 deve ter relação com Windows Insider e provavelmente é o dia e o mês rsrs
Excelente artigo