Inicio › Herramientas para desarrolladores › Generador de changelog

Generador de changelog

Pega tus mensajes de commit, por ejemplo la salida de git log --oneline --decorate, y obtén un CHANGELOG.md ordenado. Los tipos de Conventional Commits se reparten en Added, Changed, Fixed y las demás secciones de Keep a Changelog, las etiquetas se convierten en versiones y se sugiere la siguiente versión semántica para el trabajo no publicado.

Última actualización:

Consejo: pega la salida de git log --oneline --decorate (las etiquetas se convierten en versiones) o de git log --format="%h %ad %d %s" --date=short para incluir fechas.

Publicidad
Publicidad

Cómo usar Generador de changelog

  1. Obtén tus commits: ejecuta git log --oneline --decorate (o con --format="%h %ad %d %s" --date=short para incluir fechas) y copia las líneas desde la última versión publicada.
  2. Pégalas en el recuadro de la izquierda, las más recientes primero, tal como las imprime git. Se carga un ejemplo para empezar.
  3. Elige el formato: Keep a Changelog o Conventional, y decide si se incluyen los commits de mantenimiento y los no convencionales.
  4. Comprueba la versión: acepta el incremento semver sugerido, escribe la tuya o deja los commits nuevos en Unreleased.
  5. Añade la URL de tu repositorio para tener enlaces clicables a commits y comparaciones, y luego copia o descarga CHANGELOG.md.

Tipos de Conventional Commits y a dónde van

CommitSección de Keep a ChangelogSección ConventionalIncremento de versión
feat: add CSV exportAddedFeaturesMenor
fix: handle empty inputFixedBug FixesParche
fix(deps): patch CVE-2024-1234SecurityBug FixesParche
perf: cache parsed queriesChangedPerformance ImprovementsParche
refactor: split schedulerChangedCode RefactoringParche
feat: deprecate /v1/reportsDeprecatedFeaturesMenor
feat!: remove v1 endpointsRemoved (marcado BREAKING)Features + ⚠ Breaking ChangesMayor
docs, chore, ci, test, build, styleChanged (solo si se incluyen)Sus propias secciones (solo si se incluyen)Parche
Update README (no convencional)Changed (si se incluyen)Other Changes (si se incluyen)Parche

Cómo sacar de git los commits correctos

  • git log --oneline --decorate imprime una línea por commit con etiquetas como (tag: v1.4.0), que se convierten en encabezados de versión.
  • git log --format="%h %ad %d %s" --date=short añade la fecha del commit, que se usa como fecha de publicación de cada versión etiquetada.
  • git log v1.4.0..HEAD --oneline muestra solo los commits desde la última versión, ideal para escribir la siguiente sección.
  • git log --no-merges excluye de entrada los merge commits (el generador los omite de todos modos).

Cómo escribir un changelog que la gente lea de verdad

  • Escribe los asuntos de los commits en modo imperativo ("add", "fix", "remove") y describe el efecto para los usuarios, no el cambio en el código.
  • Edita el texto generado antes de publicarlo: une las entradas relacionadas, elimina los detalles internos y añade pasos de migración para los cambios incompatibles.
  • Mantén la versión más reciente arriba y pon fecha a cada versión en formato ISO (YYYY-MM-DD) para que el orden sea inequívoco en todo el mundo.
  • Reúne el trabajo próximo en Unreleased y renómbralo con el número de versión cuando etiquetes la publicación.

Preguntas frecuentes

¿Qué entrada espera el generador de changelog?

Un asunto de commit por línea, los más recientes primero, exactamente como los imprime git log. Se detecta un hash corto o completo al inicio de la línea, así como las fechas en formato YYYY-MM-DD y las decoraciones de etiquetas como (tag: v1.4.0). Las líneas con sangría después de un commit se tratan como su cuerpo, así que se detecta un pie BREAKING CHANGE:. Una línea que solo contiene una versión, como v1.4.0 o ## 1.4.0, también inicia una versión nueva.

¿Cómo se asignan los tipos de Conventional Commits a las secciones de Keep a Changelog?

feat va a Added, fix a Fixed, y perf, refactor, revert y los demás tipos a Changed. Los commits cuya descripción empieza por deprecate van a Deprecated, los que empiezan por remove o drop van a Removed, y las correcciones que mencionan security, un CVE o una vulnerabilidad van a Security. Los cambios incompatibles se marcan como BREAKING en su sección.

¿Cómo se elige el siguiente número de versión?

Sigue el Versionado Semántico a partir de la etiqueta más reciente de tu lista: cualquier cambio incompatible incrementa la versión mayor; si no, cualquier feat incrementa la versión menor; si no, sube la versión de parche. Antes de 1.0.0, un cambio incompatible incrementa la versión menor, una convención común durante el desarrollo inicial. Siempre puedes escribir tu propia versión.

¿Por qué faltan algunos commits en el changelog?

Los merge commits siempre se omiten porque repiten el trabajo de otros commits. Los commits de tipo docs, chore, ci, test, build o style se ocultan por defecto porque a los usuarios rara vez les interesan; marca la opción para incluirlos. Los cambios incompatibles siempre se muestran, sea cual sea su tipo.

¿Qué es Keep a Changelog?

Keep a Changelog es una convención muy extendida para changelogs legibles por personas: la versión más reciente primero, un encabezado por versión con su fecha, los cambios agrupados en Added, Changed, Deprecated, Removed, Fixed y Security, y una sección Unreleased para el trabajo próximo. Encaja de forma natural con el Versionado Semántico.

¿Funciona con enlaces de GitLab y GitHub?

Sí. Introduce la URL del repositorio y el generador enlaza los hashes de commit, las referencias a issues como #123 y las vistas de comparación de versiones usando los patrones de URL de GitHub o GitLab, detectados a partir de la dirección. Sin URL, el changelog queda como texto plano.

¿Se envían mis mensajes de commit a algún sitio?

No. El análisis y el formato se hacen en tu navegador, así que el historial de los repositorios privados se queda en tu dispositivo.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Generadores de código →