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.
Metadata
Release files for gnuchangelog 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gnuchangelog-0.0.2.tar.gz | 7.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gnuchangelog-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.6 kB
Release files / gnuchangelog-0.0.2.tar.gz
| Download URL | gnuchangelog-0.0.2.tar.gz |
|---|---|
| Size | 7.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a557b045cce7631312178e461a498da38172607f851171803374bb106d42956
|
|
BLAKE2b-256 checksum How to use checksums |
1b9e34fa8ad10bfa47a63cf038b9fbecdfdb00c5025fe2ddbc43bbf413c70b56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / gnuchangelog-0.0.2-py3-none-any.whl
| Download URL | gnuchangelog-0.0.2-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
72690beffe21e84f40a1b1a4ecfe609686b8575da770ceb0517c35ec5e20390f
|
|
BLAKE2b-256 checksum How to use checksums |
feef81afe9826a907868bf5cd4f60a3cd8a742d95a6d83191ec92968da2f12bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|