Registro de Alterações (Changelog)
Pontos principais
- Um changelog é um registro histórico de todas as alterações feitas em um software ou produto.
- Existem registros curados (escritos para humanos) e registros gerados automaticamente (extraídos de sistemas de controle de versão).
- Nomes comuns para esses arquivos incluem CHANGELOG, CHANGES e HISTORY.
- As notas de lançamento (release notes) geralmente focam apenas nas mudanças da versão mais recente, enquanto o changelog é um histórico completo.
Um registro de alterações, amplamente conhecido pelo termo em inglês changelog, é um documento ou lista que detalha as modificações feitas em um software, código-fonte ou produto ao longo do tempo. Esse registro serve como um histórico auditável e informativo sobre a evolução de um sistema, permitindo que desenvolvedores e usuários acompanhem a implementação de novas funcionalidades, a correção de falhas e aprimoramentos de desempenho.

Tipos de Registros de Alterações
Os registros de alterações podem ser classificados principalmente em duas categorias, dependendo de como a informação é compilada e apresentada:
Registros Curados
Um registro curado é escrito manualmente por desenvolvedores ou gestores de produto. O objetivo é tornar a informação acessível e compreensível para o ser humano, filtrando detalhes técnicos irrelevantes e focando no que é impactante para o usuário final ou para outros programadores. Geralmente, esses registros são organizados em categorias como:
- Novas Funcionalidades: Adições de recursos que expandem a capacidade do software.
- Correções de Bugs: Resoluções de erros identificados em versões anteriores.
- Melhorias: Otimizações de código ou interface que não alteram a funcionalidade básica, mas melhoram a experiência.
Registros Gerados Automaticamente
Estes são relatórios gerados por ferramentas de software, frequentemente extraídos de sistemas de controle de versão (como o Git). Eles listam todas as alterações de código, independentemente de serem significativas ou não. Embora sejam precisos do ponto de vista técnico, podem ser difíceis de consumir devido ao volume de dados e à linguagem técnica excessiva.
Um exemplo comum de registro gerado automaticamente é o histórico de edições de wikis, como a Wikipédia, onde o link "Ver histórico" exibe cada alteração feita em um artigo, quem a fez e quando.
Nomenclatura e Localização
A nomenclatura do arquivo de registro varia conforme a convenção adotada pelo projeto. Os nomes mais comuns incluem:
CHANGELOGCHANGESHISTORYChangeLog(seguindo a convenção do GNU Automake)
Para indicar o formato do arquivo, extensões como .txt (texto simples), .md (Markdown) ou .rst (reStructuredText) são frequentemente utilizadas. Em projetos de código aberto, é prática comum posicionar o arquivo de registro na raiz do diretório de distribuição do código-fonte.
Notas de Lançamento e Notícias
Em alguns casos, a documentação de alterações recentes é apresentada de forma simplificada em arquivos denominados release notes (notas de lançamento), news (novidades) ou recent changes (alterações recentes). Diferente do changelog completo, que mantém todo o histórico do produto, as notas de lançamento focam apenas nas mudanças introduzidas em uma versão específica.
Padrões de Formatação
Embora não exista um formato universal, algumas organizações estabelecem padrões rigorosos. Os padrões de codificação do GNU, por exemplo, especificam que o registro deve ser organizado em blocos que identifiquem a data da alteração, o autor (nome e e-mail) e a descrição da mudança dentro de uma função ou arquivo específico. O editor de texto Emacs possui funcionalidades integradas para criar entradas que seguem esse padrão automaticamente.
Perguntas frequentes
Qual a diferença entre changelog e release notes?
O changelog é um registro histórico completo de todas as versões do software, enquanto as release notes (notas de lançamento) focam especificamente nas mudanças introduzidas em uma versão particular.
O que é um changelog curado?
É um registro escrito manualmente para ser fácil de entender, organizando as alterações em categorias como 'novas funcionalidades' e 'correções de bugs', em vez de apenas listar commits de código.
Onde geralmente fica localizado o arquivo de changelog em um projeto?
Em projetos de software, especialmente os de código aberto, o arquivo de changelog costuma ficar na raiz (top level) do diretório de distribuição do projeto.