Herramientas CI/CD

Generar changelog desde commitsversión, changelog y número de build a partir de los mismos commits

Pega tus commits, indica la versión actual, y obtén una propuesta de versión, un borrador de changelog y un número de build.

Generar changelog desde commits

Commits (una cabecera por línea)

Los commits y el número de versión se analizan en tu navegador. No se sube nada, y nunca se llama a ningún servicio de Git o CI.

Resultado

Pega tus commits o escribe una versión para empezar.

Opciones

Las líneas no reconocidas nunca bloquean el cálculo; esta opción solo decide si aparecen en la sección «Other» del borrador de changelog.

Pega tus commits o escribe una versión para empezar.

Antes de etiquetar un release normalmente hay que responder a mano tres preguntas: cuál es el siguiente número de versión, qué va en el changelog y qué número de build acompaña a ese release. Esta calculadora de versión de lanzamiento permite generar changelog desde commits usando el mismo lote de commits, calculando a la vez la propuesta de versión y el número de build, para que los tres nunca se desincronicen.

Se diferencia de subir la versión a mano o copiar líneas en CHANGELOG.md en que cada sugerencia viene de analizar la cabecera de cada commit con la misma gramática que nuestro Conventional Commit Builder, no de adivinar un diff ni de llamar a una IA. Nada de lo que pegas sale del navegador, y la herramienta nunca crea una etiqueta, hace push ni llama a ninguna API de Git o CI — solo genera texto para que lo uses tú.

Por qué generar changelog desde commits con esta herramienta

Lo que cambia cuando la versión, el changelog y el número de build salen de los mismos commits.

Propuestas deterministas, no suposiciones de una IA

Algunas calculadoras de release semántica te piden describir los cambios en texto libre y lo envían a una IA que adivina el salto de versión. Esta herramienta en cambio analiza cada cabecera de commit con la misma gramática que nuestro Conventional Commit Builder — la misma entrada siempre da la misma propuesta, y nunca se envía ninguna solicitud de red.

Una lista de cabeceras de commit con tipo, alcance y marcador de cambio incompatible, analizadas en una insignia de impacto de versión, sin ninguna solicitud de red

La versión, el changelog y el número de build comparten el mismo número

Una calculadora de versión, un generador de changelog y un generador de número de build independientes no conocen el resultado del otro. Aquí la versión propuesta alimenta directamente el título del changelog y el marcador {version} de tu plantilla de número de build, así que los tres se mantienen sincronizados. El changelog generado también funciona como generador de notas de versión listas para publicar.

El número de versión propuesto fluyendo tanto hacia el título del changelog como hacia la plantilla del número de build

Un salto directo a ENV diff antes de publicar

En cuanto se genera el release, el panel de resultados enlaza directamente con nuestra herramienta ENV diff para comparar variables de entorno antes de desplegar — un paso que no ofrecían los generadores independientes de changelog y número de build que comparamos.

Panel de resultados con un enlace saliente desde el plan de release generado hacia la herramienta ENV diff

Tres cosas que confunden la primera vez

Lo que conviene saber antes de pegar tu primer lote de commits.

01

Pega una cabecera de commit por línea

Pega las líneas tal como las imprime `git log --pretty=format:%s` — un `type(scope)!: subject` por línea. Los mensajes de varias líneas con cuerpo o pie `BREAKING CHANGE:` no se analizan aquí; marca los cambios incompatibles con `!` justo después del tipo o el alcance.

  • Carga primero uno de los ejemplos para ver la sintaxis exacta de la cabecera antes de pegar tus propios commits.
Ir a la calculadora
02

Define la versión actual y la plantilla del número de build

Escribe la versión actual en formato SemVer estricto (por ejemplo 1.4.2) y edita la plantilla del número de build si hace falta. La plantilla por defecto `{version}+{yyyyMMdd}.{count}` usa la versión propuesta, la fecha de hoy y un contador de build que escribes tú mismo — la herramienta no tiene contexto de CI del que leer un número de build real.

Desactiva la generación automática para editar varios campos antes de recalcular, y luego pulsa Ctrl/Cmd+Intro para ejecutar una vez de forma manual.

03

Revisa la insignia de impacto y luego exporta

La insignia (mayor, menor, parche o sin cambios) muestra qué commit forzó el salto de versión — un marcador de cambio incompatible siempre gana sobre un simple feat o fix. Copia o descarga el changelog, copia el número de build, o sigue el enlace a ENV diff antes de etiquetar el release.

Cualquier cambio en las entradas atenúa el resultado anterior y deshabilita copiar y descargar hasta que vuelvas a generar.

Ver qué no se analiza

Qué hace la calculadora con tus commits

Cuatro piezas que convierten un lote de cabeceras de commit en un borrador de release listo para usar.

Analizador de Conventional Commits limitado a la cabecera

Esta herramienta lee líneas `type(scope)!: subject` con la misma gramática que nuestro Conventional Commit Builder, clasifica el impacto de cada línea reconocida y se queda con el más alto — un solo `!` o un solo `feat` en el lote basta para elevar todo el release.

Borrador de changelog estilo Keep a Changelog, con lo incompatible primero

Los commits reconocidos se agrupan en Breaking Changes, Features, Fixes y Other, renderizados como Markdown que puedes copiar o descargar como CHANGELOG.md — las entradas incompatibles siempre aparecen primero.

Una plantilla de número de build que controlas tú

Combina `{version}`, `{yyyy}`, `{yyyyMM}`, `{yyyyMMdd}` y un `{count}` escrito a mano para obtener el formato de número de build que necesite tu pipeline; los marcadores desconocidos se dejan tal cual y se avisan, en lugar de desaparecer en silencio.

Las líneas no reconocidas nunca bloquean el resultado

Una línea que no es una cabecera de commit válida se salta en la propuesta de versión y se cuenta aparte, sin detener el cálculo completo — desactiva «ignorar» para verla igualmente en la sección Other del changelog.

Qué analiza esta herramienta y qué no

Los casos límite que conviene conocer antes de pegar los commits de un release real.

Solo se leen cabeceras de commit de una línea
Los mensajes de commit de varias líneas con cuerpo o pie `BREAKING CHANGE:` no son compatibles — una vez que los mensajes se concatenan línea a línea, el límite de un pie separado por línea en blanco ya no se puede distinguir con fiabilidad de la cabecera del siguiente commit. Marca los cambios incompatibles con `!` en su lugar.
Hasta 1.000 líneas o 100.000 caracteres por ejecución
Superar ese límite devuelve un error en lugar de truncar tus commits en silencio — divide una ventana de release muy grande en lotes más pequeños.
La versión actual debe ser una cadena SemVer estricta
Valores como `v1.4.2`, `1.4` o una versión con ceros a la izquierda se rechazan con un error localizado; la propuesta queda vacía hasta que el campo tenga algo como `1.4.2`.
No se publica, no se etiqueta ni se lee tu CI
No se obtiene ningún commit de un repositorio, no se crea ninguna etiqueta, y `{count}` nunca se lee de un número de build real — esta herramienta solo convierte el texto pegado en una versión, un borrador de changelog y una cadena de número de build para que uses donde quieras.

Preguntas frecuentes sobre generar changelog desde commits

Respuestas a lo que la gente pregunta de verdad antes de confiar en una propuesta de versión basada en commits.

¿Por qué la versión patch no sube según el mensaje de commit?

Comprueba que la línea coincide exactamente con `type(scope)!: subject` — falta de dos puntos, un espacio de más o una sintaxis no soportada hacen que toda la línea quede sin reconocer, y una línea no reconocida nunca aporta a la propuesta de versión. El número de líneas reconocidas bajo el resultado muestra cuántas líneas se analizaron realmente.

¿Cómo incluyo BUILD_NUMBER en el número de versión?

Edita la plantilla del número de build en Opciones. La plantilla por defecto `{version}+{yyyyMMdd}.{count}` inserta la versión que propone esta herramienta, la fecha de hoy y un contador que escribes tú — aquí no hay ningún entorno de CI del que leer un número de build real, así que `{count}` sigue siendo manual.

¿Cuál es la diferencia entre el número de versión y el número de build?

El número de versión (como 1.5.0) sigue el versionado semántico y lo determina el impacto de tus commits. El número de build es una cadena distinta generada a partir de una plantilla, útil para sistemas de CI que necesitan distinguir cada build aunque el número de versión no cambie — puede incluir esa misma versión mediante `{version}`, además de una fecha y un `{count}` escrito a mano.

¿Hay una buena forma de generar un CHANGELOG automáticamente?

Basta con pegar los commits como una cabecera por línea: esta herramienta va a generar changelog desde commits, agrupados por feat, fix y cambios incompatibles, en formato Keep a Changelog. Cópialo o descárgalo como CHANGELOG.md en lugar de copiarlo a mano.

¿Qué pasa si un commit no sigue la convención?

Una línea que no coincide con `type(scope)!: subject` simplemente se cuenta como «no reconocida» y no entra en el cálculo de la propuesta de versión. Por defecto, «ignorar líneas no reconocidas» está activado, así que tampoco aparece en el borrador de changelog — desactiva esta opción si quieres verla.

¿No encontraste tu respuesta?

Generar changelog desde commits ahora

Pega tus commits, confirma la versión actual, y en segundos tendrás una propuesta de versión, un borrador de changelog y un número de build.

Todo se ejecuta localmente en tu navegador — sin registro, sin subir nada, y sin que se cree ninguna etiqueta ni despliegue en tu nombre.

Todo el análisis ocurre localmente en tu navegador, y nunca se etiqueta ni se publica nada en tu nombre.