Ctrl K
ComunidadGuías…

changelog.d/4800-changelog-collect-atomic.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
- **An interrupted `scripts/changelog-collect.py` no longer loses release notes (#4800).** The collector deleted the fragment files before it installed the updated `CHANGELOG.md`, so a run stopped between the two (crash, kill, full disk) left deleted notes in neither place, and a rerun silently collected only what was left — or reported "No changelog fragments" with `CHANGELOG.md` unchanged. It now records the fragments it collects and the before/after hash of `CHANGELOG.md` in `CHANGELOG.md.collect-journal`, writes `CHANGELOG.md` atomically and durably (staged file, fsync, rename, directory fsync), and deletes fragments only afterwards. A rerun finishes from the journal, so each note ends up in `## [Unreleased]` exactly once; notes are never matched by their text, so a new note that resembles an existing entry is still collected. If `CHANGELOG.md` was edited between the interrupted run and the rerun, the rerun refuses, changing nothing.