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.1

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.1
File Size Uploaded Provenance
panda_simple_releases-2.0.1.tar.gz 88.8 kB With provenance Details

Built distribution (wheel)

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

Total release size: 109.5 kB

Release files / panda_simple_releases-2.0.1.tar.gz

Download URL panda_simple_releases-2.0.1.tar.gz
Size 88.8 kB
Tags Source
SHA-256 checksum
How to use checksums
0ef55e9021e797b01176dbe11b34225fc59aa9a4f44c67af2f4b342536707b82
BLAKE2b-256 checksum
How to use checksums
71be831f14ae4cc17bcf234ded01c529544862ca9f4237d043bddea756884b3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 24, 2026.

Transparency log

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

Download URL panda_simple_releases-2.0.1-py3-none-any.whl
Size 20.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cfb6c586889988b9af4546349f7af88b0a3d10837089e7e11c29dba0c050552a
BLAKE2b-256 checksum
How to use checksums
67b3409a05dfbf3292bb71c98f843052b8697fea1512f6adfd5b23d52a00b694
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 24, 2026.

Transparency log

Security for panda-simple-releases 2.0.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for panda_simple_releases-2.0.1.tar.gz

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 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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