Saltar al contenido

Ejemplos de changelog

Última actualización: 20 de agosto de 2026.

Cinco entradas, cada una en una situación distinta, con una nota sobre por qué funciona. Están escritas en el formato de keepachangelog.com, lo más parecido a un estándar que hay en este terreno, pero lo que merece copiarse es la redacción, no los encabezados.

1. Un release de SaaS normal

El caso habitual: un puñado de cambios visibles para el usuario, sin migración, sin drama. Es corto porque el release era pequeño, y resistir la tentación de rellenarlo es la mayor parte del oficio.

Lo que ve el lector

20 de agosto de 2026

Nuevo

  • Vistas guardadas en la bandeja. Fija un filtro una vez y reutilízalo desde el lateral.

Mejorado

  • El job de exportación ahora informa del progreso en vez de parecer colgado en cuentas grandes.

Corregido

  • Los miembros invitados ya no ven un dashboard vacío antes de su primer inicio de sesión.
Markdown
## 20 de agosto de 2026

### Nuevo
- Vistas guardadas en la bandeja. Fija un filtro una vez y reutilízalo
  desde el lateral.

### Mejorado
- El job de exportación ahora informa del progreso en vez de parecer
  colgado en cuentas grandes.

### Corregido
- Los miembros invitados ya no ven un dashboard vacío antes de su
  primer inicio de sesión.

Qué funciona: cada línea es un resultado que un usuario podría notar. No hay número de versión porque el producto se despliega de forma continua, así que la fecha es lo único que se puede comparar con la propia experiencia.

2. Un release de API con una deprecación

Quien lee un changelog de API busca una cosa: si su integración está a punto de romperse y de cuánto tiempo dispone. Ponlo arriba y dale una fecha.

Lo que ve el lector

Acme API 4.2 - 20 de agosto de 2026

Cambios importantes

  • ?page= se elimina en todos los endpoints de listado. Usa el valor nextCursor de la respuesta anterior. ?page= devolverá 400 a partir del 1 de octubre de 2026. Pasos de migración: acme.example/docs/pagination

Nuevo

  • Los webhooks pueden limitarse a un solo proyecto.

Mejorado

  • Los endpoints de listado responden unas cuatro veces más rápido en cuentas con más de 10.000 registros.
Markdown
## Acme API 4.2 - 20 de agosto de 2026

### Cambios importantes
- `?page=` se elimina en todos los endpoints de listado. Usa el valor
  `nextCursor` de la respuesta anterior.
  `?page=` devolverá 400 a partir del 1 de octubre de 2026.
  Pasos de migración: acme.example/docs/pagination

### Nuevo
- Los webhooks pueden limitarse a un solo proyecto.

### Mejorado
- Los endpoints de listado responden unas cuatro veces más rápido en
  cuentas con más de 10.000 registros.

Qué funciona: la deprecación nombra el parámetro exacto, el sustituto, el comportamiento tras la fecha límite y la fecha misma. En una línea se decide si afecta a quien lee.

3. Un release móvil

Las tiendas de apps muestran un campo de novedades recortado, y la revisión puede retener un build durante días. Ambos hechos moldean la entrada.

Lo que ve el lector

iOS 3.4.0 - 20 de agosto de 2026

Modo sin conexión. Abre, lee y redacta sin conexión; todo se sincroniza al volver a estar en línea.

También en este release

  • Arranque más rápido en dispositivos antiguos.
  • Corregido un cierre inesperado al abrir un enlace compartido desde Mail.
Markdown
## iOS 3.4.0 - 20 de agosto de 2026

Modo sin conexión. Abre, lee y redacta sin conexión;
todo se sincroniza al volver a estar en línea.

### También en este release
- Arranque más rápido en dispositivos antiguos.
- Corregido un cierre inesperado al abrir un enlace compartido desde Mail.

Qué funciona: una frase lleva todo el release, porque es lo único que mostrará la ficha de la tienda. La fecha es la de publicación, no la de fusión, para que coincida con cuándo pudieron obtenerla los usuarios.

4. Una corrección de seguridad

La única entrada donde decir menos es lo correcto. Los usuarios necesitan saber que deben actualizar; nadie más necesita una descripción tan precisa como para atacar la versión que aún no han actualizado.

Lo que ve el lector

20 de agosto de 2026

Seguridad

  • Reforzada la validación de los tokens de sesión. Las cuentas en instalaciones autoalojadas deberían actualizar a 4.2.1 o posterior. Notificado de forma responsable; sin indicios de explotación. Detalles: acme.example/security/2026-08
Markdown
## 20 de agosto de 2026

### Seguridad
- Reforzada la validación de los tokens de sesión. Las cuentas en
  instalaciones autoalojadas deberían actualizar a 4.2.1 o posterior.
  Notificado de forma responsable; sin indicios de explotación.
  Detalles: acme.example/security/2026-08

Qué funciona: dice a quien lee si debe actuar sin nombrar el endpoint, el parámetro ni la técnica. El detalle pertenece a un aviso de seguridad con su propio calendario, tras dar tiempo a actualizar.

5. Cómo es una entrada mala

Cada línea aquí tiene una forma real, y cada línea es un error:

Lo que ve el lector

v2.3.7

  • PR #482 de feature/inbox-refactor fusionada
  • Bump de lodash 4.17.20 -> 4.17.21
  • Corregida condición de carrera en MembershipCache.resolve()
  • Varias correcciones y mejoras
  • Refactorizado el modelo SavedView (¡gracias, Dave!)
Markdown
## v2.3.7

- PR #482 de feature/inbox-refactor fusionada
- Bump de lodash 4.17.20 -> 4.17.21
- Corregida condición de carrera en MembershipCache.resolve()
- Varias correcciones y mejoras
- Refactorizado el modelo SavedView (¡gracias, Dave!)

Qué falla: el número de la pull request y la rama no significan nada fuera del repositorio. El bump de dependencia y el refactor no tienen efecto visible para el usuario y no deberían aparecer. La condición de carrera nombra una clase en lugar del síntoma que vio el usuario. «Varias correcciones y mejoras» es la frase que la gente cita cuando dice que los changelogs no sirven de nada. El agradecimiento pertenece al commit.

Qué tienen en común las buenas

  • Describen un resultado, no una implementación. Alguien que nunca ha visto el código puede saber si la entrada le afecta.
  • Omiten cosas. Los cambios de dependencias, los refactors, los cambios de CI y los renombrados internos están ausentes, y esa ausencia es lo que mantiene legible el resto.
  • Ponen primero lo costoso. Si algo se rompe, es el primer encabezado, con fecha.
  • Están fechadas de una forma útil: un número de versión donde los usuarios ven versiones, una fecha donde no pueden.
  • Son aburridas a propósito. Sin signos de exclamación, sin adjetivos de marketing, sin «nos alegra anunciar». Quien lee un changelog busca información y le molesta cualquier cosa que se interponga.

Preguntas frecuentes

¿Qué formato debería usar un changelog?

keepachangelog.com es lo más parecido a un estándar, y sus nombres de sección (Added, Changed, Deprecated, Removed, Fixed, Security) son ampliamente reconocidos. Importa mucho menos que la redacción dentro de las secciones. Un formato consistente con entradas vagas es peor que uno libre con entradas concretas.

¿Con qué frecuencia deberíamos publicar?

Con el ritmo que encaje con tus releases, y de forma constante. Publicar por release es la regla más simple. Agrupar un mes de releases en una sola entrada hace que cada cambio sea más difícil de encontrar después, que es cuando la mayoría de la gente realmente lee un changelog.

¿Debería el changelog vivir en nuestro sitio o en una página de terceros?

En tu sitio si puedes, porque ahí se acumulan el tráfico y el valor de búsqueda, y porque un changelog en un dominio ajeno está a un enlace de tu producto en vez de formar parte de él. Ese es el argumento a favor de servirlo como un feed que renderizas tú, en lugar de una página alojada que enlazas.

¿La gente lee de verdad los changelogs?

Una pequeña parte los lee con regularidad y una parte mucho mayor los busca en el momento en que algo cambia bajo sus pies. Ese segundo grupo es la razón para escribir el síntoma en lugar de la causa: buscan lo que les pasó, con sus propias palabras.

Para seguir leyendo: Changelog vs. notas de versión: ¿cuál es la diferencia? y Keep a Changelog, implementado de verdad.

Entradas con esta forma, redactadas para ti

Changeloop lee el título y la descripción de cada pull request fusionada y redacta una entrada como las de arriba, filtra los cambios de dependencias y los refactors, y la retiene para que la edites antes de publicar nada. Gratis para un repositorio, sin tarjeta.

Empezar gratis

o ir a la documentación para desarrolladores