{"id":23371,"library":"blurb","title":"blurb","description":"A command-line tool to manage CPython's Misc/NEWS.d entries. It helps CPython core developers and contributors create, list, merge, and render news blobs. The current version is 2.0.0, released in 2024. Release cadence is irregular, roughly once a year.","status":"active","version":"2.0.0","language":"python","source_language":"en","source_url":"https://github.com/python/blurb","tags":["news","cpython","changelog","cli"],"install":[{"cmd":"pip install blurb","lang":"bash","label":"Default install"}],"dependencies":[],"imports":[{"note":"Main library entry point","symbol":"Blurb","correct":"from blurb import Blurb"}],"quickstart":{"code":"import os\nfrom blurb import Blurb\n\n# Create a new news entry\nb = Blurb()\nb.title = \"My change\"\nb.type = \"feature\"  # or 'bugfix', 'doc', etc.\nb.body = \"Description of the change.\"\nb.issue = \"12345\"  # GitHub issue number (>=32426 for CPython)\nfilepath = b.write()\nprint(f\"Created {filepath}\")","lang":"python","description":"Create a new CPython news entry using blurb"},"warnings":[{"fix":"Run tests via `python -m pytest` or `tox` instead of `blurb test`.","message":"In v2.0.0, the `blurb test` subcommand was moved into the test suite; it is no longer available as a CLI command.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Use `gh-{number}:` format in blurb entries.","message":"The `gh-issue-NNNN:` prefix is deprecated; use `gh-NNNN:` (without the extra 'issue-') since v1.2.0.","severity":"deprecated","affected_versions":">=1.2.0"},{"fix":"Ensure the issue number is a well-known CPython issue. For own projects, this validation may not apply.","message":"GitHub issue numbers must be >= 32426 for CPython; lower numbers are rejected.","severity":"gotcha","affected_versions":">=1.2.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run `pip install blurb` and ensure the virtual environment is activated.","cause":"blurb is not installed or used as a library in the wrong context (it's meant to be used as a CLI tool, but can be imported).","error":"ModuleNotFoundError: No module named 'blurb'"},{"fix":"Use `from blurb import Blurb` instead of `import blurb`.","cause":"The import path may be incorrect; try `from blurb import Blurb`.","error":"AttributeError: module 'blurb' has no attribute 'Blurb'"},{"fix":"Convert the issue number to `int` before assignment: `b.issue = int('12345')`.","cause":"The `issue` property expects an integer, but a string or non-parsable value was provided.","error":"ValueError: GitHub issue number must be an integer"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}