--- title: Development Guidelines - Commiting tags: Development-Guidelines --- ## Commiting Os commits na base de código dos projetos devem seguir um padrão. * Devem ser escritos em *inglês*. * Seguir o formato * Utilizar https://gitmoji.dev/ * https://github.com/frinyvonnick/gitmoji-changelog/ ### Formato de commit Um *commit* é formado por um indicador de ***tipo de commit*** (que pode ser representado na forma de um ***gitmoji***) seguido do ***resumo***. O ***corpo*** pode ser escrito numa nova linha, caso mais detalhes precisem ser informados. ``` <tipo> <resumo> │ │ │ └─⫸ Resumo no tempo presente. Não capitalizado. Sem ponto final.. │ └─⫸ Tipo de commit: 🚀 build |👷 ci |📝 docs| ✨feat | 🐛 fix | ⚡️ perf | ♻️ refactor | ✅ test ``` #### Resumo Use o resumo para passar uma descrição suscinta das alterações: * Use o tempo presente imperativo: ***"implement"***, nada de *"implemented"*, *"implementing"*, *"implementation of"* ou *"implements"*. > Tente completar a frase: "If applied **this commit will** __________________________" * Não inicie com letra maiúscula. * Sem ponto final. #### Tipos de commit * **build**: Mudanças que afetam o *build system* (ex: yarn, npm, webpack, node, java, gradle, ...) * **ci**: Mudanças em nossos arquivos e scripts de configuração de CI (ex: Gitlab CI, Github Actions, ...) * **docs**: Mudanças exclusivas de documentação * **feat**: Uma nova funcionalidade * **fix**: Uma correção de bug * **perf**: A code change that improves performance * **refactor**: Uma mudança de código que não corrige nenhum bug nem adiciona nenhum recurso * **test**: Adicionar testes ausentes ou corrigir testes existentes É possível ser mais específico utilizando as seguintes representações em **gitmoji**: | Emoji | Use when... | |-|-| |🎨 | Improve structure / format of the code | |⚡️ | Improve performance | |🔥 | Remove code or files | |🐛 | Fix a bug | |🚑 | Critical hotfix | |✨ | Introduce new features | |📝 | Add or update documentation | |🚀 | Deploy stuff | |💄 | Add or update the UI and style files | |🎉 | Begin a project | |🔒 | Fix security issues | |🔖 | Release / Version tags | |🚨 | Fix compiler / linter warnings / code styling | |🚧| Work in progress | |💚 | Fix CI Build | |⬇️ | Downgrade dependencies | |⬆️ | Upgrade dependencies | |📌 | Pin dependencies to specific versions | |👷 | Add or update CI build system | |📈 | Add or update analytics or track code | |♻️ | Refactor code | |➕| Add a dependency | |➖ | Remove a dependency | |🔧 | Add or update configuration files | |🔨 | Add or update development scripts | |🌐 | Internationalization and localization | |✏️ | Fix typos | |💩 | Write bad code that needs to be improved | |⏪ | Revert changes | |🔀 | Merge branches | |📦 | Add or update compiled files or packages | |👽 | Update code due to external API changes | |🚚 | Move or rename resources (e.g.: files, paths, routes) | |📄 | Add or update license | |💥 | Introduce breaking changes | |🍱 | Add or update assets | |♿️| Improve accessibility | |💡 | Add or update comments in source code | |🍻 | Write code drunkenly | |💬 | Add or update text and literals | |🗃 | Perform database related changes | |🔊 | Add or update logs | |🔇 | Remove logs | |👥 | Add or update contributor(s) | |🚸 | Improve user experience / usability | |🏗 | Make architectural changes | |📱 | Work on responsive design | |🤡 | Add or update an easter egg | |🥚 | Introduce breaking changes | |🙈 | Add or update a .gitignore file | |📸| Add or update snapshots | |⚗ | Perform experiments | |🔍 | Improve SEO | |🌱 | Add or update types | |🗃 | Add or update seed files | |🚩 | Add, update, or remove feature flags | |🥅 | Catch errors | |💫 | Add or update animations and transitions | |🗑 | Deprecate code that needs to be cleaned up | |🛂 | Work on code related to authorization, roles and permissions | |🩹 | Simple fix for a non-critical issue | | 🧐 | Data exploration / inspection |