Skip to main content

panda-simple-releases

A lightweight Python CLI tool to simplify the release process and changelog management.

Tools like Semantic Release are fantastic, and I highly recommend exploring them — they are the right choice for many projects. panda-simple-releases is partially inspired by them but deliberately offers a much smaller feature set. It serves as a minimal, file-based alternative for simpler Python projects where full-fledged release frameworks feel too heavy.

How it Works

  1. Record Changes: For every change, you create a text file in the .changes/ directory detailing the change type, title, and description (see Change File Format). CI/CD pipelines can enforce this via the check command.
  2. Release: When you are ready to release, the tool reads and deletes these files, automatically bumps the project version, and adds the new release entry to CHANGELOG.md.

Note: This tool assumes Semantic Versioning and relies on hatchling with the hatch-semver plugin to manage the project version.

Usage

The recommended way to run this application is via uvx:

uvx panda-simple-releases --help

Commands

  • panda-simple-releases check

    Validates that .changes/ contains at least one correctly formatted change file.

    Tip: Use --compare-to-branch <branch_name> in PR pipelines. With this flag, the tool verifies that a new change file was added and validates only the files newly added to your current branch.

  • panda-simple-releases release

    Validates change files, determines the appropriate version bump (major, minor, or patch), updates the version, removes the change files, and updates CHANGELOG.md.

  • panda-simple-releases show-version

    Outputs the current project version. Useful for generating release commit messages or tags.

Change File Format

Change files follow a strict format structurally similar to Conventional Commits:

<change_type>[(<scope>)]: <title>

[optional multi-line description]

Rules

  1. Title (Line 1): Must start with a valid <change_type>, an optional (<scope>), a colon (:), a single space, and a brief <title>.
  2. Blank Line (Line 2): If providing a description, the second line must be completely blank.
  3. Description (Line 3+): Optional, multi-line details about the change. Leading and trailing empty lines are automatically stripped.

Valid Change Types

The <change_type> determines how the version will be bumped:

  • Major (X.0.0) - Breaking Changes: breaking, major
  • Minor (0.X.0) - Features: feat, feature, minor
  • Patch (0.0.X) - Fixes & Maintenance: fix, bugfix, hotfix, patch, perf, performance, chore
  • Skip (No bump): skip, chore-skip

(Note: chore and chore-skip are considered development-only changes).

Example

feat(api): Add new authentication endpoint

This feature adds OAuth2 support to the core API.
It includes multiple lines in the description.

Additional documentation

Development documentation

Changelog

Metadata

Release files for panda-simple-releases 2.0.0

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

Source distribution (sdist)

Source distribution for panda-simple-releases 2.0.0
File Size Uploaded
panda_simple_releases-2.0.0.tar.gz 88.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for panda-simple-releases 2.0.0
File Interpreter ABI Platform
panda_simple_releases-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 108.6 kB

Release files / panda_simple_releases-2.0.0.tar.gz

Download URL panda_simple_releases-2.0.0.tar.gz
Size 88.0 kB
Tags Source
SHA-256 checksum
How to use checksums
ac7273229c505e73716e943120a506ddecbf586bee5de3aa8dca0421d958c8ad
BLAKE2b-256 checksum
How to use checksums
3db2e40a24af1215695820fecd794175cda542a52d68a5e4b693687d7a75eaec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 11, 2026.

Transparency log

Release files / panda_simple_releases-2.0.0-py3-none-any.whl

Download URL panda_simple_releases-2.0.0-py3-none-any.whl
Size 20.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
63c3ec6c79d5503a82cee45617fac848e0e81d4d9058c057898856415c15c6cd
BLAKE2b-256 checksum
How to use checksums
d8ad1a9be113c64b23c4b30d18ef62045f193310c75d98e0025d5fe87e9d8c28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.0

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