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
- 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 thecheckcommand. - 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 checkValidates 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 releaseValidates 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-versionOutputs 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
- Title (Line 1): Must start with a valid
<change_type>, an optional(<scope>), a colon (:), a single space, and a brief<title>. - Blank Line (Line 2): If providing a description, the second line must be completely blank.
- 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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| panda_simple_releases-2.0.0.tar.gz | 88.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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