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

Download files

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

Source Distribution

panda_simple_releases-1.0.0.tar.gz (98.9 kB view details)

Uploaded Source

Built Distribution

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

panda_simple_releases-1.0.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file panda_simple_releases-1.0.0.tar.gz.

File metadata

  • Download URL: panda_simple_releases-1.0.0.tar.gz
  • Upload date:
  • Size: 98.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for panda_simple_releases-1.0.0.tar.gz
Algorithm Hash digest
SHA256 badb73b3c8b5db91e8158f9e99f2a0318ffa1ad6c4c35bd24ff049ea8299f7ad
MD5 2f5c8ffcca3ddba58a6e9c41d8398334
BLAKE2b-256 70a3d9287d8df5d84bb58d6578c08bfd512e76da21fc659e8f534300a13cca59

See more details on using hashes here.

Provenance

The following attestation bundles were made for panda_simple_releases-1.0.0.tar.gz:

Publisher: release.yml on KRunchPL/panda-simple-releases

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file panda_simple_releases-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for panda_simple_releases-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 038d88d1348895decf0662d1a20da941072f7d31ebe9dc3950a27b43635830cd
MD5 ba90ece65a2f16fceff0b24efc5cec9d
BLAKE2b-256 26ff74092e5459f41d40dd3877464a29f765e67d1f0fa3530e6cb0a3b35378e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for panda_simple_releases-1.0.0-py3-none-any.whl:

Publisher: release.yml on KRunchPL/panda-simple-releases

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 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