Formato Obligatorio
Reglas y Componentes
- Type: Define el tipo de cambio. Debe ser uno de los tipos permitidos listados abajo.
- Scope: Debe proporcionarse y estar encerrado entre paréntesis. Indica la parte lógica del código base afectada (ej.,
core,services,radicacion,asignacion,auth,ds-tw). Elige el scope más relevante. - Subject: Descripción concisa (< 50 caracteres recomendado) del cambio en modo imperativo y minúsculas (ej., “add,” “fix,” “update”). No debe terminar con un punto.
- Body (Opcional): Úsalo para proporcionar contexto, motivación o detalles. Sepáralo del subject con una línea en blanco. Ajusta las líneas a 72 caracteres.
- Footer (Opcional): Úsalo para referenciar IDs de issues (ej.,
Refs ADO-123,Fixes #456) y es obligatorio para notificaciones deBREAKING CHANGE:. Sepáralo del body con una línea en blanco.
Tipos de Commit Estándar (con Ejemplos)
- ✨
feat(<scope>): <description>- Propósito: Introduce una nueva característica o funcionalidad visible para el usuario final.
- Ejemplo:
feat(radicacion): add drag-and-drop file upload for expedientes
- 🐛
fix(<scope>): <description>- Propósito: Corrige un error (bug) en el código base.
- Ejemplo:
fix(services): handle null priority in DefaultAsignacionService
- 📚
docs(<scope>): <description>- Propósito: Cambios relacionados únicamente con la documentación (READMEs, guías, comentarios en el código).
- Ejemplo:
docs(core): update UserService interface method descriptions
- 🎨
style(<scope>): <description>- Propósito: Ajustes de estilo de código (formato, espacios en blanco, punto y coma) sin cambiar la lógica. Aplicable también al uso o configuración del Design System (
ds-twscope si se modifica el DS mismo). - Ejemplo:
style(radicacion): apply consistent padding using ds-tw vars
- Propósito: Ajustes de estilo de código (formato, espacios en blanco, punto y coma) sin cambiar la lógica. Aplicable también al uso o configuración del Design System (
- ♻️
refactor(<scope>): <description>- Propósito: Reestructuración de código existente sin cambiar su comportamiento externo (mejorar legibilidad, extraer métodos, etc.).
- Ejemplo:
refactor(services): extract common validation logic in UserService implementations
- ⚡️
perf(<scope>): <description>- Propósito: Cambios en el código destinados específicamente a mejorar el rendimiento.
- Ejemplo:
perf(web): optimize image loading on dashboard page using next/image
- 🧪
test(<scope>): <description>- Propósito: Añadir nuevas pruebas o modificar las existentes. Sin cambios en el código de producción.
- Ejemplo:
test(services): add unit tests for DefaultUserService
- 🏗️
build(<scope>): <description>- Propósito: Cambios que impactan el proceso de build, dependencias o configuración del proyecto (ej., pnpm, config de Next.js, Docker, config de Turborepo).
- Ejemplo:
build(deps): upgrade xstate to v5
- ⚙️
ci(<scope>): <description>- Propósito: Modificaciones a la configuración o scripts de Integración Continua/Despliegue Continuo (ej., GitHub Actions, Azure Pipelines).
- Ejemplo:
ci: add type checking stage to github actions workflow
- 🧹
chore(<scope>): <description>- Propósito: Tareas rutinarias o mantenimiento que no encajan en otros tipos (ej., actualizar
.gitignore, configuración de herramientas, tareas de release). - Ejemplo:
chore: update eslint configuration rules for new plugin
- Propósito: Tareas rutinarias o mantenimiento que no encajan en otros tipos (ej., actualizar
- ⏪️
revert(<scope>): <description>- Propósito: Revierte un commit anterior. El subject debe indicar claramente qué se está revirtiendo.
- Ejemplo:
revert: feat(radicacion): remove experimental search feature - El body DEBE explicar la razón de la reversión y referenciar el hash del commit original.
(core), (hooks), (config), (services), (machines), (validation), (radicacion), (asignacion), (auth), (deps), (ci), (docs), (release), (ds-tw). Selecciona el scope más específico y relevante.
BREAKING CHANGES
- Cualquier commit que introduzca un cambio incompatible hacia atrás (backward-incompatible) debe incluir una sección de footer
BREAKING CHANGE:. - Esta sección debe comenzar con las palabras exactas
BREAKING CHANGE:, seguidas de una descripción detallada del cambio, la justificación y cualquier instrucción de migración necesaria.