A determinação atual do projeto para versionamentos:
- Todos os números de versionamento lançados sob o projeto VagabundOS deverão seguir o sistema monotônico, que será explicado abaixo.
O sistema de versionamento monotônico não foi inventado por nós, o manifesto original encontra-se aqui. Backup no Web Archive.
O código de versão monotônico é formado por dois números inteiros no formato: COMPATIBILIDADE.LANÇAMENTO onde
- COMPATIBILIDADE é um número representando uma linha de compatibilidade no desenvolvimento.
Linhas de compatibilidade podem ser compatíveis entre si mas só há garantia de compatibilidade entre lançamentos de uma mesma linha. - LANÇAMENTO é um número representando um novo lançamento ou nova compilação, e deve sempre aumentar.
O número de LANÇAMENTO jamais deve retornar à zero, mesmo quando ocorrer o lançamento de uma nova linha de compatibilidade.
Por exemplo, se o último lançamento aconteceu sob a linha 4, produzindo a versão "4.23", e um novo lançamento acontecer na linha 6, a nova versão será etiquetada como "6.24". O número de lançamento deve incrementar monotonicamente, o que dá o nome deste sistema de versionamento. - A coexistência de diferentes e simultâneas linhas de compatibilidade é possível e encorajada.
Não é necessário alienar usuários que gostavam de uma funcionalidade antiga ou formato de interface antiga ao se lançar uma nova linha com filosofia de design nova. As duas linhas podem continuar a receber atualizações, mesmo que a linha mais antiga passe à receber menos atenção.
Metadados adicionais de versão podem ser adicionados com um símbolo + após o número de LANÇAMENTO, seguido de uma lista de identificadores separada por símbolos de pontos (.), lista jamais vazia. Exemplos de tags de versões monotônicas com listas de atributos:
1.23+hydrogen; 2.47+helium; 3.79+lithium.ng
Para fins de compatibilidade com o sistema de versionamento semântico, é autorizado utilizar o sufixo ".0" após o número de LANÇAMENTO, sufixo que não deve ser modificado ou incrementado. Por exemplo:
1.23.0; 2.47.0; 3.79.0
- Cada subprojeto deverá possuir um ou mais números de versionamento próprios, cada número distinto para uma variedade (ou linha de compatibilidade) do mesmo subprojeto.
- O projeto em si possuirá um número de versionamento para cada variedade (ou linha de compatibilidade), com cada uma das variedades operando sob a lógica de lançamento contínuo (consulte o artigo rolling release na Wikipédia para referência).
Isto é, os binários derivados do projeto podem ser lançados como mais de uma variedade, cada variedade possuindo uma linhas de compatibilidade diferente, cada linha sendo baseada em algumas linhas de alguns subprojetos (cada variedade de lançamento do projeto sendo portanto derivada de alguns dos subprojetos).
Sempre que um dos subprojetos, dos quais uma dada variedade do projeto for derivada, receber um lançamento, a dada variedade do projeto deverá produzir também um lançamento no qual estará compilada usando aquele último lançamento do subprojeto, configurando-se assim o lançamento contínuo das variedades.