feat(ci): automatiza geração do CHANGELOG com git-cliff
Descrição
Este PR automatiza completamente a geração do CHANGELOG.md usando git-cliff. A partir de agora, o CHANGELOG é atualizado automaticamente sempre que um PR é mesclado na main, e a criação de releases também passa a ser automatizada através de um workflow simples.
Os contribuidores não precisam mais editar o CHANGELOG manualmente. Basta seguir o padrão de Conventional Commits nas mensagens de commit que o resto acontece automaticamente.
Mudanças Propostas
Implementação de dois workflows principais:
O primeiro atualiza a seção Unreleased do CHANGELOG automaticamente após cada merge. O segundo permite criar releases através de um simples clique no Actions, detectando automaticamente a próxima versão com base nos commits e gerando um PR pronto para revisão.
A documentação foi atualizada para refletir o novo processo, removendo as instruções de edição manual do CHANGELOG e enfatizando a importância de seguir Conventional Commits.
Checklist de Revisão
- [x] Eu li o Contributing.md
- [x] Os testes foram adicionados ou atualizados para refletir as mudanças (se aplicável).
- [x] Foi adicionada uma entrada no changelog / Meu PR não necessita de uma nova entrada no changelog.
- [x] A documentação em português foi atualizada ou criada, se necessário.
- [x] Se feita a documentação, a atualização do arquivo em inglês.
- [x] Eu documentei as minhas mudanças no código, adicionando docstrings e comentários.
- [x] O código segue as diretrizes de estilo e padrões de codificação do projeto.
- [x] Todos os testes passam.
- [x] O Pull Request foi testado localmente.
- [x] Não há conflitos de mesclagem.
Comentários Adicionais (opcional)
Para testar localmente, é possível instalar o git-cliff e executar make changelog. O comando já inclui uma mensagem de ajuda caso a ferramenta não esteja instalada.
É importante notar que este PR requer a configuração de dois secrets no repositório (APP_CHANGELOG_ID e APP_CHANGELOG_PRIVATE_KEY) para permitir que o workflow atualize o CHANGELOG na branch protegida.
Issue Relacionada
Closes #469