Commits y convenciones (Conventional Commits)
Para mantener un historial claro, el proyecto utiliza:
- El estándar Conventional Commits para estructurar dichos mensajes.
Tipos de commit más utilizados
feat: Nueva funcionalidad- Ej:
feat(bff-api): agregar filtro por aplicación
- Ej:
fix: Corrección de bug- Ej:
fix(reports-api): corregir cálculo de rango de fechas
- Ej:
docs: Cambios solo de documentación- Ej:
docs(architecture): actualizar diagrama de eventos
- Ej:
chore: Tareas internas, sin impacto directo en funcionalidad- Ej:
chore: actualizar dependencias nx refactor: Cambios internos sin modificar comportamiento observable- Ej:
refactor(core-api): extraer servicio de auditoría
- Ej:
test: Cambios relacionados a pruebas- Ej:
test(auth-api): agregar pruebas de reset de password
- Ej:
build/ci: Cambios en build, pipelines, scripts- Ej:
ci: ajustar workflow de build para devs-portal
- Ej:
Ejemplos de buenos commits
feat(portal-web): agregar filtros avanzados por país y sistema
fix(bff-api): normalizar payload de auditoría para evitar campos nulos
docs(development): documentar configuración de Kafka y Redpanda
Reglas básicas
- Usa presente en la descripción: “agregar”, “corregir”, “actualizar”.
- No uses descripciones genéricas tipo “arreglos varios”.
- Un commit debe ser coherente y auto-contenido:
- Idealmente: una sola intención (feature/fix/refactor).
- Si un cambio es muy grande, considera dividirlo en varios commits lógicos.
Hooks de Git
El proyecto utiliza Husky + lint-staged para:
- Verificar formato y lint en archivos modificados antes de permitir el commit.
- Bloquear commits directos a ramas protegidas (`main).
Si un commit falla por lint o formato:
- Revisa el mensaje de error.
- Ejecuta manualmente los comandos sugeridos (por ejemplo,
nx lint,nx format:write). - Vuelve a correr el commit.
Esto asegura que todo el código que llega al repositorio cumple con los estándares definidos.