Depois de algum tempo trabalhando com o SVN, defini um padrão que utilizo desde 2006, esse padrão facilita a identificação do que foi adicionado, modificado, deletado e quais correções foram efetuadas a cada revisão melhorando o controle de quem fez e quando ocorreu as mudanças, facilitando a geração de changelogs posteriormente.

Dividi 8 ações em duas categorias: Ações Básicas [ ADD, DEL, UPDATE e PATCH ] e Ações Extras [ INFO, TODO, BUG e FIXED ]. Costumo classificar as Ações Básicas como sendo obrigatórias e as Ações Extras como sendo necessárias, quando digo necessária, quero dizer que seria bom se fosse colocada, mas não entra em nível de obrigatoriedade.

Ações Básicas

[ADD]

Sempre que adicionar arquivos, métodos em classes, funções, recursos, ou seja, tudo que for novo deverá ser informado.

[ADD]
- wsException:
  - Adicionado Método identificador de Código de Erro.
  - Adicionado Método que Obtém o BackTrace.
- wsMessage:
  - Gerenciamento Mensagens exibidas: Erros, Alertas e Informações.

[DEL]

Sempre que remover arquivos, métodos em classes, funções, recursos, ou seja, tudo que for removido deverá ser informado,  para toda remoção deve haver uma justificativa. Seguindo o template:
– [O que foi deletado?], [Qual motivo?]
.

[DEL]
- Módulo "teste", depreciado e desnecessário no sistema.
- Arquivos CSS, desnecessários.
- Config do login, passou para o config geral.

[UPDATE]

Sempre que melhorar arquivos, métodos em classes, funções, recursos, ou seja, tudo que for melhoria ou Manutenção Evolutiva deverá ser informado.

[UPDATE]
- Posicionamento do Menu.
- Ícone das Mensagens de: Erros, Alertas e Informações.
- Módulo NovoUsuario:
 - Ajustado ao Code Standards.
 - Finalizado a Documentação.

[PATCH]

Sempre que corrigir arquivos, métodos em classes, funções, recursos, ou seja, tudo que for correção ou Manutenção Corretiva deverá ser informado. Será um patch sempre corrigir algo que funcione, porém, de forma incorreta.

[PATCH]
- Corrigido cálculo de frete.
- Correção no nome dos templates nos módulos: produto e categoria.
- Corrigido problema na validação do login.

Ações Extras

[INFO]

Sempre que for necessário informar alguma notícia, seja ela uma Mudança de ação/estratégia, Inicio/fim de uma Roadmap/Versão ou mesmo modificações no Padrão.

[INFO]
- Modificado padrão de codificação de ISO8859-1 para UTF-8
- Versão 2.0 beta em UTF-8
 - Roadmap Finalizada.
 - Nova Branch será iniciada.

[TODO]

Sempre que houver algo para fazer: métodos em classes, funções, recursos, documentação, ajustes, ou seja, toda tarefa pendente poderá ser informado.

[TODO]
- Finalizar documentação do Método: checkDimension da Classe:
ImageFileUpload.
- Testar Formulário: Cliente [Novo].

[BUG]

Sempre que falhar arquivos, métodos em classes, funções, recursos, ou seja, tudo que impedir o pleno funcionamento deverá ser informado. OBS.: Dê preferencia a usar algum BugTracker, seja: Mantis, Trac, etc.

[BUG]
- Ao Inserir a 2ª imagem do produto, aparece uma mensagem de erro:
"Tentativa Inválida!", e o sistema volta para o login.
- Ao acessar: Solicitar Senha, a tela fica em branco até exceder o
tempo de requisição.

[FIXED]

Sempre que fixar/corrigir um BUG e voltar ao pleno funcionamento como estava previsto, deverá ser informado.

[FIXED]
- Fixado o Bug ao tentar inserir a 2ª imagem do produto.
- Fixado o Bug ao Solicitar Senha.

Conclusão

Resumindo o Padrão:

  • Adicionou? ADD.
  • Removeu? DEL.
  • Melhorou? UPDATE.
  • Corrigiu algo que funcionava, porém, incorretamente? PATCH.
  • Informações ou Notícias? INFO.
  • Deixou algo pendente para ser feito? TODO.
  • Falhas que impedem alguma funcionalidade? BUG.
  • Corrigiu algum bug? FIXED.

Conhecendo esse padrão e sabendo que o php possui funções que manipulam repositórios svn, poderemos criar uma solução que gere automaticamente o changelog baseado em intervalos de revisões. Mas isso é assunto para outro post…

Leia, analise, critique e comente, somente com suas sugestões poderemos melhorar cada vez mais nosso conteúdo!