Skip to main content

This project provides tools to manage changelog files.

Project description

Changelog Tools

This project provides tools to manage changelog files, according to the Keep a Changelog format. It can be used with a command line interface and as a lib for your projects.

CLI

Usage

python3 -m changelog_tools <command> [options]
python3 -m changelog_tools --help  # Display usage information and a list of the provided commands.

Available commands

get

Check and display the latest version of a changelog file, which is by default the CHANGELOG.md file in the current directory.

python3 -m changelog_tools get

<CHANGELOG_PATH> (optional)

Specifies a changelog path. If given path is a directory, the tool defaults a CHANGELOG.md file in that directory.

python3 -m changelog_tools get data/CHANGELOG.md

summarize

To get a list of changes between two versions, run the script:

python3 -m changelog_tools summarize --old <old_version> --new <new_version> <changelog_path>

--old (optional) Specifies a version from which to start looking for changes. This version corresponds to the lowest/oldest of the file. If not provided, the tool defaults to the initial version. If provided version does not exist in the file, it'll raise an error.

--new (optional) Specifies a version to end looking for changes. This version corresponds to the highest/latest version of the file. If not provided, the tool defaults to the latest version. If provided version does not exist in the file, it'll raise an error.

--include_unreleased (optional) Set by default to False. It is used to include unreleased items to the output, if needed.

<CHANGELOG_PATH> (optional)

Specifies a changelog path. If given path is a directory, the tool defaults a CHANGELOG.md file in that directory.

Example of what you'll get

Summary with different sections sorted by alphabetical order.

# Changelog summary

Here are all the changes between 0.0.1 and 0.0.3:

### Added

- v1.1 Brazilian Portuguese translation.
- v1.1 German Translation.
- v1.1 Spanish translation.

### Changed

- Use frontmatter title & description in each language version template.
- Replace broken OpenGraph image with an appropriately-sized Keep a Changelog image that will render properly (although in English for all languages).

As a lib

Usage

  1. Get the package from PyPI and add it to your virtual environment
python3 -m venv venv
pip install changelog-tools
  1. In your python file, import the package as following:
import changelog_tools

Most common use cases

  • Get the latest version of a changelog file
latest_version = changelog_tools.get_latest_version(<CHANGELOG_PATH>)
  • Get a summary of all entries of a changelog file
summaries = changelog_tools.get_summary(<CHANGELOG_PATH>)

# Display dict with changes sections sorted by alphabetic order
for summary in sorted(summaries.keys()):
    print(f"\n{summary}\n")
    for change in summaries[summary]:
        print(change)

Project details


Download files

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

Source Distribution

changelog_tools-0.4.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

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

changelog_tools-0.4.0-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file changelog_tools-0.4.0.tar.gz.

File metadata

  • Download URL: changelog_tools-0.4.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.2

File hashes

Hashes for changelog_tools-0.4.0.tar.gz
Algorithm Hash digest
SHA256 8af66fe88a506cb67d925161f75d78025bb233045301478eaaa3508ad1bfe7b0
MD5 4dcc5bcb3917b2ba8e630aa6795a282e
BLAKE2b-256 22b7c3af99192cce3ca3102192d1e9f4fbb784d96455fe39073b93590b110211

See more details on using hashes here.

File details

Details for the file changelog_tools-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for changelog_tools-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aa65fbb82ed28df4c5badf2b4f0c8e12b6359c7f0a8da09b84985ca6b8e78294
MD5 80914542d8409907e24d05f3c15ef833
BLAKE2b-256 9c283cadb249d93e8c1ec02b67131b8cbd6911bf1e5b1a8f9802c8ea2f1bb184

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 Pingdom Monitoring Sentry Error logging StatusPage Status page