blurb
Command-line tool to manage CPython Misc/NEWS.d entries.
What it is and what it does
blurb is a specialized tool for CPython core development that solves the problem of merge conflicts in the Misc/NEWS file by splitting it into many individual entry files stored in Misc/NEWS.d. Each entry gets a unique filename based on timestamp and MD5 hash, ensuring no collisions even when multiple developers commit simultaneously. The tool provides subcommands to add new entries (which opens an editor for you to fill in a GitHub issue number and select a section), merge entries back into a single NEWS file, and manage releases.
The package is designed to be run from within a CPython repository and automatically uses the correct file paths. It supports Python 3.9 through 3.14 with no external runtime dependencies, making installation straightforward. For CPython contributors, the typical workflow is simply running `blurb add` (or just `blurb` with no arguments) to create a new entry; release managers use additional subcommands like `blurb merge` and `blurb release` to recombine entries and prepare releases.
Use it for:
- CPython contributor adding a NEWS entry for a commit without manually editing Misc/NEWS or resolving conflicts
- Release manager combining all pending entries into a single Misc/NEWS file during the release process
- Cherry-picking commits across CPython branches while automatically carrying the correct NEWS entry along
- Automating release notes generation by running blurb merge to reconstruct Misc/NEWS on demand
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
blurb is a command-line tool that manages CPython's release notes by splitting Misc/NEWS into individual entry files to eliminate merge conflicts, then recombining them on demand.
Yes, if you are a CPython core contributor or release manager. The tool directly solves the stated problem of Misc/NEWS merge conflicts and is actively maintained with no security vulnerabilities. For developers outside CPython core, it has no utility. Install via pip with no friction.
Install
blurb on PyPI
pip
pip install blurbuv
uv add blurbpoetry
poetry add blurbInstalling blurb
Before you install
Low install friction with no runtime dependencies. Actively maintained as of 2026-08-01 with recent release on 2025-01-15, supporting current Python versions 3.9 through 3.14.
License in practice
Permissive license allows broad use and modification without restriction.
Quickstart
pip install blurb
blurb add
# Opens editor to add a new Misc/NEWS entry with GitHub issue number and section selection
Must be run inside a valid CPython Git repository; blurb automatically uses correct file paths relative to the repo root.
Verify before relying
- Whether blurb is usable outside CPython development or only for CPython core contributors
- Performance characteristics when handling large numbers of entries in Misc/NEWS.d
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 576 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 103,682/month — #12,792 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: blurb-2.0.0-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
towncrierTowncrier generates changelogs from individual…
permissive · top 5,000 on PyPI
cloupCloup extends Click with option groups,…
permissive · top 5,000 on PyPI
editorOpens your system's default text editor (or a…
permissive · top 5,000 on PyPI
semantic-text-splitterSplits long text into semantically meaningful…
permissive · top 15,000 on PyPI
simple-term-menuCreates interactive command-line menus where…
permissive · top 5,000 on PyPI
changelogA Sphinx extension that generates formatted…
permissive · top 15,000 on PyPI
b2Command-line interface for managing files,…
permissive · top 15,000 on PyPI
polibpolib reads, writes, and manipulates gettext…
permissive · top 5,000 on PyPI
click-extraClick Extra is a wrapper around Click that adds…
copyleft · top 15,000 on PyPI