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
.textparsing 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5fa8060804130caeef108b0255ea812ca793dcb39ac3e16184dd55b8d22e6f2
|
|
| MD5 |
a7484a7e89c7b96f1b2510eb91636d01
|
|
| BLAKE2b-256 |
f563f802e06875a1cb302a29b379fa7846edf6ee544ea33f81eb7df1cb5c21fd
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a298e746af46546a03d1e708c0ef9d3f16e16cc23480a802b114e1f43454c0e6
|
|
| MD5 |
066add936550835b0b140f79bb691c8c
|
|
| BLAKE2b-256 |
5ded95c66f8185eb205a9ddc3590de34c367afe600a26d0258abc934d8c7af60
|