ES02-Estándar de mensajes de commits
Se debe seguir la regla early and often, la cual consiste en hacer pequeños commits seguidos para mantener el código limpio y ordenado.
Los mensajes de commits deberán seguir el estándar de Conventional Commits v1.0.0.
<type>(<scope>)[!]: [optional emoji] <description>
[optional body]
[optional footer(s)]
type
puede ser uno de los siguientes:
- feat -> cualquier contenido nuevo que va a ser agregado.
- fix -> correcciones a contenido ya en repo (bugfixes).
- test -> agrega o corrige pruebas.
- style -> cambios que no afectan el significado del codigo ni su performance (espacios en blanco y formateo).
- revert -> eliminar el commit anterior.
- refactor -> cambio que no arregla un bug ni agrega un feature (reestructuración de código).
- docs -> documentación de código.
scope
es el grupo de casos al que pertenece la funcionalidad a implementar/editar.
Por ejemplo, diferentes tipos de scope para la wiki son:
- Política
- Guía
- Proceso
- Plantilla
- Definición
El scope para código sería la User Story a la que pertenece.
description
es un resumen de que cambios se hicieron sin entrar a mucho detalle y sin repetir el scope y el tipo. Debe ser una oración en minúsculas usando TIEMPO IMPERATIVO.
emoji
es un emoji que representa el tipo de cambio. OPCIONAL.
body
es una descripción detallada del cambio.
footer(s)
incluye cambios que rompan alguna funcionalidad, precedidos por BREAKING CHANGE
Ejemplos
Mensaje de commit | Caso de ejemplo |
---|---|
feat(auth): ✨ implement hash salting | Se agrega la funcionalidad de salteado a las contraseñas |
style(auth): 🎨 run prettier | Se ejecutó un software de formato (Prettier) en el proceso de auth |
| Se actualizó la versión de Node y versiones anteriores ya no son soportadas |
Recomendaciones
- Usar la extension de VSCode ConventionalCommits by Vivaxy la cual ofrece un UI para generar mensajes de commits.
- Leer el resumen de Conventional Commits v1.0.0
- Implementar commitlint en los repositorios, el cual verifica que los mensajes sean válidos.
- Implementar Husky con git-cz para proveer una interfaz en consola al ejecutar
git commit
.
Referencias
Autores
Versiones
Versión | Descripción | Responsables | Fecha |
---|---|---|---|
1.0 | Creación de la Política | Bernardo Estrada | 18/03/2022 |
1.1 | Corrección ortográfica | Bernardo Estrada | 23/03/2022 |
1.2 | Aumentar nivel de detalle | BE & MN | 04/04/2022 |
1.3 | Corrección ortográfica | Guillermo C. Espino | 06/04/2022 |
1.4 | Cambio a estándar | Alberto Matute | 03/05/2022 |