towncrier
Building newsfiles for your project.
Decision gist · record as of 2026-08-14
Yes. Towncrier solves a real problem—changelog merge conflicts and scattered release-note authorship—with a lightweight, well-maintained tool. Low install friction, no known vulnerabilities, active development, and proven adoption make it a safe choice for any team managing releases.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; auto-detection of project version may require additional configuration depending on your project setup.
- Low install friction with a pure-Python wheel and five common dependencies (click, jinja2, importlib-metadata, importlib-resources, tomli).
- Actively maintained with recent commits and no known vulnerabilities.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute towncrier freely provided you retain the license notice.
last release 2025-08-30 (349 days) · last repo commit 2026-08-04 · 914 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 4,555,801 downloads/mo, #2,282 on PyPI
Alternatives
Verify before relying
pip install towncrier
towncrier build --version 25.8.0- Whether the tool's auto-detection of project version works reliably across all project types and build systems.
- Performance characteristics when handling large numbers of news fragments or complex fragment templates.
What it is and what it does
Towncrier is a changelog generator that collects small, issue-specific "news fragments" from developers and synthesizes them into a polished changelog for end users. Rather than having all developers edit a single changelog file (which causes merge conflicts) or mining the Git history (which mixes implementation details with user-facing changes), towncrier asks each contributor to create a small fragment file describing their change from a user perspective. The tool then combines these fragments into a structured, readable release note.
It works as a command-line tool and integrates with any project type and platform. The core dependencies are minimal: click for CLI handling, jinja2 for templating the output, and importlib utilities for metadata. It supports Python 3.9 through 3.13 and is used by major projects.
Use it for
- Generate a changelog for a release by collecting pre-written fragments from each merged pull request or closed issue.
- Avoid merge conflicts on a shared changelog file by having each contributor write a separate fragment instead.
- Produce user-focused release notes that omit implementation details and focus on what end users need to know.
- Automate changelog creation as part of a release workflow or CI/CD pipeline.
- Maintain a consistent changelog format and structure across multiple releases.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Towncrier solves a real problem—changelog merge conflicts and scattered release-note authorship—with a lightweight, well-maintained tool. Low install friction, no known vulnerabilities, active development, and proven adoption make it a safe choice for any team managing releases.
Install
towncrier on PyPI
Before you install
Low install friction with a pure-Python wheel and five common dependencies (click, jinja2, importlib-metadata, importlib-resources, tomli). Actively maintained with recent commits and no known vulnerabilities.
Requires Python 3.9 or later; auto-detection of project version may require additional configuration depending on your project setup.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute towncrier freely provided you retain the license notice.
Quickstart
pip install towncrier
towncrier build --version 25.8.0
Verify before relying
- Whether the tool's auto-detection of project version works reliably across all project types and build systems.
- Performance characteristics when handling large numbers of news fragments or complex fragment templates.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 5 packagesclickimportlib-metadataimportlib-resourcesjinja2tomli |
| Maintenance | Actively maintained 349 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,555,801 / month, #2,282 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: towncrier-25.8.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “news fragment management”
- towncrierTowncrier generates changelogs from individual news fragment files…
- blurbblurb is a command-line tool that manages CPython's release notes by…
- antsibull-changelogantsibull-changelog is a CLI tool that generates structured…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also blurb · sphinxcontrib-towncrier · antsibull-changelog · versioneer · hatch-fancy-pypi-readme · git-cliff · versioneer-518 · codecov · sphinxcontrib-log-cabinet · pytest-html-merger