La convención Conventional Commits utiliza un formato estructurado para los mensajes de commit, facilitando el entendimiento del historial de cambios. Los tipos más comunes son:
<tipo>(<scope>): <descripción breve>
<cuerpo opcional del mensaje explicativo>
<footer opcional (por ejemplo, cerrando un issue o deprecando algo)>
-
feat: Añade una nueva funcionalidad al código.
- Ejemplo:
feat(auth): añadir autenticación con tokens JWT
- Ejemplo:
-
fix: Soluciona un bug o error.
- Ejemplo:
fix(transcription): corregir problema con timeout en la conexión WebSocket
- Ejemplo:
-
refactor: Reorganiza el código sin cambiar su comportamiento funcional.
- Ejemplo:
refactor(main): dividir lógica de transcripción en función separada
- Ejemplo:
-
perf: Optimiza el rendimiento de una parte del código.
- Ejemplo:
perf(audio): mejorar el manejo de buffers en el grabador
- Ejemplo:
-
test: Añade o actualiza pruebas.
- Ejemplo:
test(llm): agregar pruebas para clasificar mensajes
- Ejemplo:
-
docs: Cambia o añade documentación.
- Ejemplo:
docs(readme): actualizar instrucciones de instalación
- Ejemplo:
-
style: Cambia aspectos de formato o estilo del código (sin cambiar la lógica).
- Ejemplo:
style: aplicar formateo de acuerdo a PEP 8
- Ejemplo:
-
build: Cambia aspectos del sistema de build o dependencias.
- Ejemplo:
build: actualizar pyproject.toml con nueva dependencia
- Ejemplo:
-
ci: Cambia configuraciones de CI/CD (integración continua).
- Ejemplo:
ci: ajustar script para despliegue en producción
- Ejemplo:
-
chore: Cambios menores o tareas que no afectan el código (mantenimiento).
- Ejemplo:
chore: eliminar dependencias no usadas
- Ejemplo:
-
revert: Revierte un commit anterior.
- Ejemplo:
revert: eliminar commit que rompió la integración
- Ejemplo:
El scope indica qué parte del proyecto se afecta. Por ejemplo:
- auth, audio, transcription, main, config.
-
Con
feat
y scope:feat(audio): añadir detección de silencio en grabaciones
-
Con
fix
y cuerpo explicativo:fix(llm): manejar excepciones al generar respuestas Se solucionó un error donde el LLM devolvía nulo si la clasificación fallaba.
-
Con cierre de issue:
fix(recorder): solucionar pérdida de chunks de audio al reconectar Closes #45
- semantic-release: Genera versiones automáticamente basadas en Conventional Commits.
- commitlint: Valida mensajes de commits para cumplir con esta convención.
Si estás trabajando en un equipo o quieres automatizar versiones (semver), Conventional Commits es útil porque permite que herramientas como semantic-release generen cambios de versión basados en estos tipos.