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.2.tar.gz (7.6 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.2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for gnuchangelog-0.0.2.tar.gz
Algorithm Hash digest
SHA256 3a557b045cce7631312178e461a498da38172607f851171803374bb106d42956
MD5 2d1a58ef9721e173d61d238297e30568
BLAKE2b-256 1b9e34fa8ad10bfa47a63cf038b9fbecdfdb00c5025fe2ddbc43bbf413c70b56

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for gnuchangelog-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 72690beffe21e84f40a1b1a4ecfe609686b8575da770ceb0517c35ec5e20390f
MD5 90dd5842871000b88de268fdd82ac8d6
BLAKE2b-256 feef81afe9826a907868bf5cd4f60a3cd8a742d95a6d83191ec92968da2f12bf

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