Objetivo

Permitir a los usuarios y colaboradores localizar y conocer fácilmente los cambios relevantes que se han publicado en cada nueva versión del software.

Directrices

  • Debe estar en el directorio raíz del software donde aplica.
  • Se recomienda el nombre CHANGELOG.md y usar Markdown.
  • Se redacta para seres humanos, no para máquinas.
  • Debe haber una entrada por cada versión.
  • Las versiones seguirán los criterios del Versionado Semántico.
  • Versiones y secciones serán enlazables.
  • Se ordenan cronológicamente.
  • La última versión va primero.
  • Debe mostrar la fecha de publicación de cada versión. Usar el formato 2019-08-15 por ser un estándar ISO y ordenar implícitamente por año, mes y día.
  • Agrupar y ordenar los mismos tipos de cambios según esta lista:
    • Añadido (Added) para funcionalidades nuevas.
    • Modificado (Changed) para los cambios en funcionalidades existentes.
    • Obsoleto (Deprecated) para indicar que una funcionalidad está obsoleta, se queda sin soporte y se eliminará en próximas versiones.
    • Eliminado (Removed) para las funcionalidades en desuso que se eliminaron en esta versión.
    • Corregido (Fixed) para corrección de errores.
    • Seguridad (Security) en caso de vulnerabilidades.
  • Mantener una sección con el nombre PRÓXIMOS CAMBIOS (UNRELEASED) para registrar los cambios pendientes de publicar. De esta forma:
    • Usuarios y colaboradores pueden ver qué cambios se pueden esperar en próximas versiones.
    • Al publicar una nueva versión, sólo habrá que mover el contenido de PRÓXIMOS CAMBIOS a la nueva versión.

Buenas prácticas

  • Evitar siempre que sea posible las líneas con más de 80 caracteres.
  • No usar diff de los logs de los commits que suelen tener mucho ruido. El propósito es documentar cambios notables para comunicarlos claramente a usuarios y colaboradores.
  • Registrar las versiones que tuvieron que ser retiradas por un error grave o un problema de seguridad. Usar la etiqueta [RETIRADO] ([YANKED]), por ejemplo:
    ## 0.0.5 - 2014-12-13 [YANKED]

Ejemplo de CHANGELOG.md

Original: https://github.com/olivierlacan/keep-a-changelog/blob/master/CHANGELOG.md

# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com), and this
project adheres to [Semantic Versioning](https://semver.org).

## [1.0.0] - 2017-06-20
### Added
- New visual identity by [@tylerfortune8](https://github.com/tylerfortune8).
- Version navigation.
- Links to latest released version in previous versions.
- "Why keep a changelog?" section.
- "Who needs a changelog?" section.
- "How do I make a changelog?" section.
- "Frequently Asked Questions" section.
- New "Guiding Principles" sub-section to "How do I make a changelog?".
- Italian translation from [@azkidenz](https://github.com/azkidenz).
- Swedish translation from [@magol](https://github.com/magol).
- Turkish translation from [@karalamalar](https://github.com/karalamalar).
- French translation from [@zapashcanon](https://github.com/zapashcanon).
- Russian translation from [@aishek](https://github.com/aishek).
- Czech translation from [@h4vry](https://github.com/h4vry).
- Slovak translation from [@jkostolansky](https://github.com/jkostolansky).
- Korean translation from [@pierceh89](https://github.com/pierceh89).
- Croatian translation from [@porx](https://github.com/porx).
- Persian translation from [@Hameds](https://github.com/Hameds).
- Ukrainian translation from [@osadchyi-s](https://github.com/osadchyi-s).

### Changed
- Start using "changelog" over "change log" since it's the common usage.
- Start versioning based on the current English version at 0.3.0 to help
  translation authors keep things up-to-date.
- Rewrite "What makes unicorns cry?" section.
- Rewrite "Ignoring Deprecations" sub-section to clarify the ideal scenario.
- Improve "Commit log diffs" sub-section to further argument against them.
- Merge "Why can’t people just use a git log diff?" with "Commit log diffs".
- Fix typos in Simplified Chinese and Traditional Chinese translations.
- Fix typos in Brazilian Portuguese translation.
- Fix typos in Turkish translation.
- Fix typos in Czech translation.
- Fix typos in Swedish translation.
- Improve phrasing in French translation.
- Fix phrasing and spelling in German translation.

### Removed
- Section about "changelog" vs "CHANGELOG".

## [0.3.0] - 2015-12-03
### Added
- RU translation from [@aishek](https://github.com/aishek).
- pt-BR translation from [@tallesl](https://github.com/tallesl).
- es-ES translation from [@ZeliosAriex](https://github.com/ZeliosAriex).

## [0.2.0] - 2015-10-06
### Changed
- Remove exclusionary mentions of "open source" since this project can benefit
  both "open" and "closed" source projects equally.

## [0.1.0] - 2015-10-06
### Added
- Answer "Should you ever rewrite a change log?".

### Changed
- Improve argument against commit logs.
- Start following [SemVer](https://semver.org) properly.

## [0.0.8] - 2015-02-17
### Changed
- Update year to match in every README example.
- Reluctantly stop making fun of Brits only, since most of the world writes
  dates in a strange way.

### Fixed
- Fix typos in recent README changes.
- Update outdated unreleased diff link.

## [0.0.7] - 2015-02-16
### Added
- Link, and make it obvious that date format is ISO 8601.

### Changed
- Clarified the section on "Is there a standard change log format?".

### Fixed
- Fix Markdown links to tag comparison URL with footnote-style links.

## [0.0.6] - 2014-12-12
### Added
- README section on "yanked" releases.

## [0.0.5] - 2014-08-09
### Added
- Markdown links to version tags on release headings.
- Unreleased section to gather unreleased changes and encourage note keeping
  prior to releases.

## [0.0.4] - 2014-08-09
### Added
- Better explanation of the difference between the file ("CHANGELOG") and its
  function "the change log".

### Changed
- Refer to a "change log" instead of a "CHANGELOG" throughout the site to
  differentiate between the file and the purpose of the file — the logging of
  changes.

### Removed
- Remove empty sections from CHANGELOG, they occupy too much space and create
  too much noise in the file. People will have to assume that the missing
  sections were intentionally left out because they contained no notable
  changes.

## [0.0.3] - 2014-08-09
### Added
- "Why should I care?" section mentioning The Changelog podcast.

## [0.0.2] - 2014-07-10
### Added
- Explanation of the recommended reverse chronological release ordering.

## [0.0.1] - 2014-05-31
### Added
- This CHANGELOG file to hopefully serve as an evolving example of a
  standardized open source project CHANGELOG.
- CNAME file to enable GitHub Pages custom domain
- README now contains answers to common questions about CHANGELOGs
- Good examples and basic guidelines, including proper date formatting.
- Counter-examples: "What makes unicorns cry?"

## [Unreleased]

[Unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.3.0...v1.0.0
[0.3.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.8...v0.1.0
[0.0.8]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.7...v0.0.8
[0.0.7]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.6...v0.0.7
[0.0.6]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.5...v0.0.6
[0.0.5]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.4...v0.0.5
[0.0.4]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.3...v0.0.4
[0.0.3]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.2...v0.0.3
[0.0.2]: https://github.com/olivierlacan/keep-a-changelog/compare/v0.0.1...v0.0.2
[0.0.1]: https://github.com/olivierlacan/keep-a-changelog/releases/tag/v0.0.1

Referencias

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *