Un changelog (o registro de cambios) es un archivo o documento que contiene una lista cronológica de todas las modificaciones realizadas en un proyecto de software, ya sea en el código fuente o en el producto final, a lo largo del tiempo.

Tipos de Changelogs
Dependiendo de cómo se gestione la información, los registros de cambios pueden dividirse en dos categorías principales:
- Registros Curados: Son documentos redactados manualmente por los autores para que la información sea fácil de comprender y consumir. En los proyectos de software, suelen organizarse dividiendo los cambios en categorías como correcciones de errores (bug fixes) y nuevas funcionalidades (new features).
- Registros Generados Automáticamente: Son informes técnicos que incluyen todos los cambios sin importar la facilidad de lectura. Por ejemplo, los sistemas de control de versiones como Git pueden generar una lista de cambios en el código, aunque muchos desarrolladores prefieren la lista curada por ser más útil. Otro ejemplo común son las wikis, como Wikipedia, que permite ver el historial de cambios de cada artículo a través del enlace "Ver historial".
Nomenclatura y Ubicación
El nombre del archivo de registro de cambios varía según el proyecto, pero los nombres más comunes son CHANGELOG, CHANGES o HISTORY. En el caso de la convención de nomenclatura de GNU Automake, se utiliza ChangeLog.
A menudo, estos archivos incluyen extensiones para indicar el formato, como .txt (texto plano), .md (Markdown) o .rst (reStructuredText). Generalmente, el archivo se encuentra en la raíz del directorio de distribución de un proyecto, especialmente en el software de código abierto.
Notas de Versión y Novedades
En ocasiones, solo la información sobre los cambios más recientes se incluye en el lanzamiento de un producto, presentándose como una función interna, un archivo de news (novedades) o release notes (notas de versión).
Formato y Estándares
Aunque el formato varía drásticamente, los estándares de codificación de GNU especifican que un changelog debe organizarse en bloques que identifiquen:
- Cuándo se realizó el cambio.
- Quién realizó el cambio (nombre y dirección de correo electrónico).
- Una descripción detallada de cada modificación dentro de una función o archivo.
Para seguir el estándar de GNU, se suelen dejar dos espacios entre la fecha y el nombre, y dos espacios entre el nombre y el correo electrónico, el cual suele estar encerrado entre los símbolos < y >. Editores como Emacs facilitan la creación de estas entradas siguiendo este formato.


