Skip to main content

Easy git branch friendly changelogs

Project description

Easy Changelog

Python version

Install this repository from Pypi:

pip install ezchlog

Or any other means (pipx or a package manager).
Python 3.9+ required.

Rust version

Download a pre-compiled version from releases.

Don’t forget to download the checksum file and check for corruption.
You should rename the binary to ezchlog and place it on your PATH.

You can also compile the ezchlog rust binary from source (you should have rustc, cargo and upx available):

make release

After installation

Then you’ll have a command to handle your logs:

ezchlog --help

Add a changelog

$ ezchlog add "New url for example API"
Changed            new_url_for_example_api
$ ezchlog add -p "Fix example API" Fixed 142
_CHANGELOGS/Fixed/142_fix_example_api.md

The file is automatically added to git index unless --no-git is used.

List changelogs

$ ezchlog list
Fixed              142_fix_example_api
Changed            new_url_for_example_api
$ ezchlog list -p
_CHANGELOGS/Fixed/142_fix_example_api.md
_CHANGELOGS/Changed/new_url_for_example_api.md

Commit with git

If you use git, you can automatically create a git commit with its message using part log files.

By default it will use the only part log file in the git index as base for the git commit summary message.

If you have multiple files in the index, specify which one is the main one, i.e. which one will be use as the summary message.

All part log files in the index will be used in the full git message.

$ ezchlog commit
[master (root-commit) c0cc282] 142: Fix example API
 2 files changed, 3 insertions(+)
 create mode 100644 _CHANGELOGS/Fixed/142_fix_example_api.md
 create mode 100644 example/api_doc.md

The summary message format is {Ref}: {Title} if there is a reference, or simply {Title}.

  • Title is the part log first line, without the reference and without any markdown list prefix.
  • Ref is what is between brackets on the part log first line, with Ref added upfront if the reference start with a sharp # (because it’s a comment for git)

Merge changelogs

$ ezchlog merge 1.2.3
$ cat CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.1.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## 1.2.3
### Fixed
- Fix example API (142)
### Changed
- New url for example API

Files are automatically updated in the git index unless --no-git is used.

Configuration

The following configuration parameters could be specified as environment variables or in a .ezchlog.toml file (or pyproject.toml file for the python version).

  • EZCHLOG_EDITOR default to EDITOR or vim
  • EZCHLOG_LOG_DIR default to _CHANGELOGS
  • EZCHLOG_LOG_FILE default to CHANGELOG.md
  • EZCHLOG_CATEGORY_LIST default to Security,Fixed,Changed,Added,Removed,Deprecated
  • EZCHLOG_CATEGORY_DEFAULT default to Changed
  • EZCHLOG_DEFAULT_CHANGELOG default to
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.1.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
  • EZCHLOG_NO_GIT default to False

For .ezchlog.toml or pyproject.toml config key, use the environment variable name in lowercase without the EZCHLOG prefix, for instance log_dir or category_list keys.

For pyproject.toml, the config resides in the tool.ezchlog table.

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

ezchlog-1.0.2.tar.gz (50.5 kB view details)

Uploaded Source

Built Distribution

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

ezchlog-1.0.2-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file ezchlog-1.0.2.tar.gz.

File metadata

  • Download URL: ezchlog-1.0.2.tar.gz
  • Upload date:
  • Size: 50.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for ezchlog-1.0.2.tar.gz
Algorithm Hash digest
SHA256 1cca252eeb81834e2b4acc4fd4b38682071df840afd3adc870814ea7fb546982
MD5 ab763f5b7d40de021b2cc1348ea5b6fc
BLAKE2b-256 c1c3d18f6eccae8b6890e1193b8eab0a40fa9ceec13088c655d4af4d0fe663b8

See more details on using hashes here.

File details

Details for the file ezchlog-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: ezchlog-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for ezchlog-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c6e3a8aea7d7b236674c8016b3f49b6b35b04a184c3b4c9056d8eb39fc9a9347
MD5 9486021d8182b28ac412467b52830fd7
BLAKE2b-256 78cc1cd5647ffad58eeeed2a709a394dca2244faa0a0aafcf37bec902559f14d

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