dropseed/plain
Overview
This skill automates releasing Plain Python packages to PyPI with intelligent version suggestions and parallel release-notes generation. It discovers changed packages, recommends semantic bumps based on commit analysis, updates versions, prepends changelog entries, and commits/tags/pushes releases. Use it to standardize releases and reduce manual overhead when publishing package updates.
How this skill works
The tool inspects the git history to find packages with unreleased commits and parses commit messages and diffs to suggest patch/minor/major bumps. It supports first-release handling for 0.0.0 packages, runs scripts to bump versions, generates release-note entries from actual diffs (skipping tests/internal-only changes), and then runs a commit-and-push workflow that tags and pushes each package. Flags allow forcing a release despite a dirty git state and overriding automatic bump choices.
When to use it
- Preparing one or more Plain packages for publication to PyPI after development changes.
- When you want automated, consistent changelogs and semantic version suggestions.
- When multiple subpackages changed and you need coordinated commits/tags.
- When releasing a package for the first time (0.0.0) and deciding initial version.
Best practices
- Keep Git working directory clean before running (or use --force deliberately).
- Review suggested bump types and generated changelog text before committing.
- Prefer 0.1.0 for initial development releases and 1.0.0 only for stable milestones.
- Exclude test-only and internal refactor changes from user-facing release notes.
- Release sub-packages first and the core package last to preserve dependency order.
Example use cases
- Discover changed packages and interactively release them: /release
- Release specific packages with an enforced patch bump: /release plain-admin --patch
- First-time release for a package at 0.0.0: choose 0.1.0 or 1.0.0 and set version via uv.
- Generate changelogs that summarize diffs and include commit hash links automatically.
FAQ
The tool stops and asks you to commit or stash changes unless you pass --force to override the check.
How are release types suggested?
It analyzes commits and diffs: 'fix'/'docs' hints at patch, 'add'/'feature' hints at minor, and explicit breaking indicators suggest major. You can accept or override each suggestion.
4 skills
This skill releases Python packages to PyPI with intelligent version suggestions, changelog generation, and git tagging to streamline releases.
This skill assists you upgrade Plain packages, apply necessary migrations, and validate changes to keep your project aligned with new versions.
This skill guides installing Plain packages and completing their setup, including documentation steps and optional dev-only adjustments.
This skill helps you identify slow queries and N+1 problems by capturing traces, analyzing bottlenecks, and guiding performance fixes.