|
Regras essenciais sobre versionamento de artefaos entregaveis de projeto, tais como pacotes para download. |
O versionamento de artefatos eh a chave para controle e rastreabilidade dos entregaveis no projeto.
O objetivo eh localizar univocamente o artefato, e com isso ter informacoes sobre quais os elementos que o compoem e qual distribuicao do projeto ele esta atrelado.
O 3PUP usa as regras da Fundacao Eclipse (1, 2) e o novo padrao Java 6 (3) para versionamento de artefatos.
Enquanto o padrao Eclipse determina a profundidade dos niveis de numeracao e as regras essenciais para incremento de cada nivel, o padrao Java 6 delinea as regras para ruptura de API entre major versions.
Para um entendimento detalhado dessas regras, consulte os links de referencia ao final da pagina.
Para uma visao sintetizada dessas informacoes, use a tabela abaixo:
Nivel |
Nome |
Descricao |
|---|---|---|
N.x.x.x |
Nivel Maior |
Indica uma versao de ruptura (ou possivel ruptura) de API, iniciando em 0 e incrementando em uma unidade cada vez manualmente pelo Gerente de Configuracao. A primeira versao de producao deve ter numero 1. |
x.N.x.x |
Nivel Menor |
Indica alteracoes aditivas visiveis na API e que nao invalidem o nivel maior, inclusao de metodos novos metodos, criacao de metodos polimorificos, adicoes de parametros estilo "varargs", alteracoes de nomes de parametros, sobreescrita de tipos, alteracoes em hieraquia de classes ou interfaces e outras modificacoes que nao quebrem o Nivel Maior. Inicia em 0 e incrementa em uma unidade cada vez manualmente pelo Gerente de Configuracao. Quando o Nivel Mmaior muda de valor, o Nivel Menor reinicia em zero novamente. |
x.x.N.x |
Nivel de Servico |
Indica correcoes de bugs ou melhorias nao visiveis em nivel de API, como adicao ou melhoria de documentacoes, tunning para performance, seguranca ou outras capacidades nao funcionais no sistema. Inicia em 0 e incrementa em uma unidade cada vez manualmente pelo Gerente de Configuracao. Quando o Nivel Menor reinicia, o Nivel de Servico reinicia em zero novamente. |
x.x.x.N |
Nivel de Qualificacao |
Incrementado automaticamente a cada build, geralmente pelo sistema de integracao continua. Quando o Nivel de Servico reinicia, o Nivel de Qualificacao nao reinicia. DICA: Este Nivel de Qualificacao pode ser baseado em elementos como Timestamp, Numero do Build, Numero da Revisao do Repositorio, entre outras opcoes que identiquem claramente a unicidade dessa versao quando os valores de Nivel Maior, Menor e de Servico permanecerem iguais. |
TODO - Descrever um caso de uso de como usar esse padrao no dia-a-dia.
1 - http://www.eclipse.org/equinox/documents/plugin-versioning.html
2 - http://wiki.eclipse.org/index.php/Version_Numbering
3 - Link para padrao Java 6 de "deprecacao" de APIs