Skip to main content

Changy

Very simple changelog manager with the idea that humans write changelogs for humans, not for robots.

Special message formatting (DSLs) to describe changes in commits, tags, etc., is a good idea, but it is not always convenient for development and the CI/CD process.

  • The person who commits is not always responsible for writing the changelog or making a release.
  • The person who makes a release is also not always responsible for writing the changelog.
  • The time when you want to work on the changelog is not always the time when you are making commits or preparing a release.
  • Special message formatting is not always convenient for describing changes that humans will read.
  • It is difficult to update messages in the commit history.

I searched for a tool that helps to manage changelogs but does not require unnecessary effort from a developer, but I did not find any that suited me. That's how Changy was born.

Changy is inspired by:

However, Changy simplifies the process by focusing on manual text file editing without the need for CLI commands or strict message formats.

Installation

pip install changy

# create initial files
changy init

# help
changy help

Idea

All paths could be changed via environment variables. See ./changy/settings.py for deatils.

CHANGELOG.md is compiled from parts from ./changes directory: one file per version.

Besides version files, there are some particular files:

  • ./changes/header.md — Content placed at the top of the changelog.
  • ./changes/changes_template.md — Template for version files. Changy copies this file to create new version files.
  • ./changes/unreleased.md — Contains changes not yet released.
  • ./changes/next_release.md — Contains changes approved for the next release.

You may edit ./changes/unreleased.md any time you want before making an actual release. The file has no special syntax.

Usage

Manual operations before release

# edit ./changes/unreleased.md

# This command should be run by the responsible person before release to mark that the changelog has been reviewed by humans and is ready to be released.
changy unreleased approve

git add -a
git commit -m "Approve changes for next release"

Somewhere in your CI/CD pipeline

For detailed example, see ./bin/prepate-release.sh

# Creates version file with approved changes and creates new unreleased file
# Changy will fail if there are no approved changes => you will not forget to approve changes
changy version create 1.2.3

# generates changelog
changy changelog create

git add -a
git commit -m "Release 1.2.3"

Metadata

Release files for changy 0.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for changy 0.4.3
File Size Uploaded
changy-0.4.3.tar.gz 7.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for changy 0.4.3
File Interpreter ABI Platform
changy-0.4.3-py3-none-any.whl Python 3 none any Details

Total release size: 16.2 kB

Release files / changy-0.4.3.tar.gz

Download URL changy-0.4.3.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1a38ce222243f3bbf4f51a890bc14e393521954970244dc7d669e2bcbe523f85
BLAKE2b-256 checksum
How to use checksums
43ed92e13e901b46547e314befcce921ad4471fa6dbaf4bdbcadf2afd3285e26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 10, 2024.

Transparency log

Release files / changy-0.4.3-py3-none-any.whl

Download URL changy-0.4.3-py3-none-any.whl
Size 8.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
53d34778a0b525c154fb0c39ef02fb41c2179ef2915f7f63cfeaa0a241d0facc
BLAKE2b-256 checksum
How to use checksums
45672bfe58c28eb5f49af43982da78aa63296fbfff39291fe6d65fda88dd835f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.0.1 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 10, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.3 This release

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page