Re: Structured Changelogs for ELPA packages

Daniel Mendler via "Emacs development discussions." <[email protected]> Sun, 02 Aug 2026 10:32:02 +0200
Newsgroups gmane.emacs.devel
Message-ID <[email protected]>
Philip Kaludercic <[email protected]> writes:

> Hmm, [1] is actually a lot more formal than anything we had discussed in
> the bug report I mentioned since it prescribes how the contents of the
> section should be formatted.  Also, it explicitly says "Changelogs are
> for humans, not machines." which, while I agree in principle, is the
> opposite direction of what we were trying to solve, since we want to
> have a machine-friendly and predictable way to detect and extract only
> the relevant section from a NEWS.org file.

I see these options:

1. Do not require a fixed changelog format, support them all. Use the
   first headline matching the version number, or the first lines from
   the changelog, as I described in bug#81116.

2. Search for headlines matching a specific pattern. I found these
   patterns:

   - Keep a Changelog: [1.2.3] - 2026-07-30
   - Common Changelog: 1.2.3 - 2026-07-30
   - Towncrier:        1.2.3 (2026-07-30)
   - Magit style:      v1.2.3 2026-07-30

On the ELPA there seem to exist vastly different formats. For an
outlier, see for example HY-NEWS from the Hyperbole package. I assume it
uses the Koutliner format. My packages mostly use a modified Towncrier
style, but with prefix "Version", e.g., "Version 1.2.3 (2026-07-30)".
Then there are other packages like Projectile or Company which use the
exact Towncrier style. Jonas's packages use his style. The files are
usually either in Org or Markdown format (headlines marked with * or #).

Daniel