Escrito por zzak em 21/12/2013
Traduzido por diogoandre
Decidimos mover para uma política de Versionamento Semântico após a liberação do Ruby 2.1.0.
Para prover um esquema de versionamento melhor definido e propriamente utilizado para o Ruby, nós decidimos por gradualmente mudar para as seguintes políticas.
Mudanças de Política
Esta política é baseada em uma proposta do administrador de sistemas de ruby-lang.org Hiroshi Shibata (@hsbt).
Esquema de Versionamento
MAJOR: acrescido quando mudanças com incompatibilidade que não pode ser lançada em MINOR- Reservado para eventos especiais
MINOR: acrecido a cada natal, pode ser incompatível a APITEENY: correção de segurança ou bug que mantém compatibilidade a API- Pode ser acrescido em mais de 10 (como
2.1.11), e será lançado a cada 2-3 meses.
- Pode ser acrescido em mais de 10 (como
PATCH: número de commits desde a última versãoMINOR(será reiniciado para 0 quando lançado umaMINOR)
Esquema de ramificações
Manteremos as seguintes ramificações(branches):
- trunk
ruby_{MAJOR}_{MINOR}
O branch ruby_{MAJOR}_{MINOR} será mantido através de lançamentos TEENY.
Nós usaremos tags para cada lançamento.
Compatibilidade de API
As seguintes peculiaridades podem ser marcadas como uma mudança incompatível, requerendo um
acréscimo na versão MINOR:
- Remoção de recursos da api no nível C
- Mudanças ou adições incompatíveis com versões anteriores
Compatibilidade de ABI
ABI será compatível com o seguinte esquema: {MAJOR}.{MINOR}.0
Faremos nosso melhor para manter compatibilidade de ABI dentro da mesma versão
de nível MINOR, então TEENY será corrigida em 0.
Referências
Para ler mais sobre esta proposta por favor siga os links abaixo:
- Introducing a semantic versioning scheme and branching policy
- Proposta aceita em Inglês
- Proposta aceita em Japonês
Obrigado!
Eu gostaria de pessoalmente agradecer a todos que contribuiram com essa discussão. Cada passo que tomamos nos deixa mais perto de um Ruby mais estável e efetivo.