Skip to main content

gnuchangelog

A simple parser of GNU-format ChangeLog files

The GNU change log format is a long-standing convention for GNU packages and those using the autotools build system. But it has several downsides in modern use, particularly:

  • Frequent version-control conflicts from differing interweaving of change entries;
  • (Because) each change is recorded by its author and date of authorship, rather than grouped as release documentation, which is the real intent.
  • Lack of standard structure for indicating releases or categories of change.
  • The format cannot be easily formatted for e.g. HTML presentation (unsurprisingly, as it pre-dates Markdown and RST, and possibly even HTML.)

This package just parses the GNU ChangeLog format, to aid with either conversion to a more modern format without these defects (such as the Markdown-based KeepAChangelog (KAC) format) or for custom presentation or analysis.

Usage

The use is trivial: the gnuchangelog.load() function accepts a file object or filename argument (and see also loads(), from a string) and returns a list of CLEntry objects in the order found in the ChangeLog (i.e. usually newest to oldest).

These objects have three properties: .text, .author, and .date. The author property is a CLAuthor object with properties .name and .email; the date property is just a string, though conventionally should be in yyyy-mm-dd order and easily convertable to a Python datetime if needed.

A conversion script from GNU to KAC format is maintained in the project repository, but not installed as the heuristics for guessing change-entry categories

TODO's

  • split the .text parsing around the first colon, into the leading "affected files" part, and the descriptive text? For now, leave to the user as this is often not used.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gnuchangelog-0.0.1.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gnuchangelog-0.0.1-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file gnuchangelog-0.0.1.tar.gz.

File metadata

  • Download URL: gnuchangelog-0.0.1.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for gnuchangelog-0.0.1.tar.gz
Algorithm Hash digest
SHA256 a5fa8060804130caeef108b0255ea812ca793dcb39ac3e16184dd55b8d22e6f2
MD5 a7484a7e89c7b96f1b2510eb91636d01
BLAKE2b-256 f563f802e06875a1cb302a29b379fa7846edf6ee544ea33f81eb7df1cb5c21fd

See more details on using hashes here.

File details

Details for the file gnuchangelog-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: gnuchangelog-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for gnuchangelog-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a298e746af46546a03d1e708c0ef9d3f16e16cc23480a802b114e1f43454c0e6
MD5 066add936550835b0b140f79bb691c8c
BLAKE2b-256 5ded95c66f8185eb205a9ddc3590de34c367afe600a26d0258abc934d8c7af60

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page