zestreleaser.towncrier
This calls towncrier when releasing a package with zest.releaser. towncrier updates your history file (like CHANGES.rst) based on news snippets. This is for example used by pip.
The plugin will call towncrier build --draft --version <package version> --yes. You can get a preview of the result yourself by calling towncrier build --draft --version 1.2.3.
The towncrier command should be on your PATH. The plugin can also find it when it is in the same directory as the fullrelease script (or prerelease/postrelease).
Installation
Install zestreleaser.towncrier with pip:
$ pip install zestreleaser.towncrier
Then you can run fullrelease like you would normally do when releasing a package.
Contribute
Issue Tracker: https://github.com/collective/zestreleaser.towncrier/issues
Source Code: https://github.com/collective/zestreleaser.towncrier
Support
If you are having problems, please let us know by filing an issue.
License
The project is licensed under the GPL.
pyproject.toml example
towncrier needs a configured pyproject.toml file in the root of the package, next to the setup.py. For reference, here is the literal pyproject.toml file from zestreleaser.towncrier (not all of this has to do with towncrier):
[build-system]
requires = ["setuptools>=68.2,<81"]
[tool.towncrier]
issue_format = "`Issue #{issue} <https://github.com/collective/zestreleaser.towncrier/issues/{issue}>`_"
filename = "CHANGES.rst"
directory = "news/"
title_format = "{version} ({project_date})"
# First underline is used for version/date header.
# Second underline is used for the type names (like 'Bug fixes:').
underlines = ["-", ""]
[[tool.towncrier.type]]
directory = "breaking"
name = "Breaking changes:"
showcontent = true
[[tool.towncrier.type]]
directory = "feature"
name = "New features:"
showcontent = true
[[tool.towncrier.type]]
directory = "bugfix"
name = "Bug fixes:"
showcontent = true
[tool.isort]
profile = "plone"
[tool.check-manifest]
ignore = [
".editorconfig",
".flake8",
".pre-commit-config.yaml",
]
Contributors
Maurits van Rees, m.van.rees@zestsoftware.nl
Changelog
2.0.1 (2026-05-07)
Bug fixes:
When calling towncrier check, compare it with the last tag. [maurits] (Issue #32)
2.0.0 (2025-12-29)
Breaking changes:
Require at least Python 3.10. [maurits]
Use native (implicit) namespace. [maurits]
New features:
Call towncrier check instead of doing those checks ourselves. [maurits] (Issue #29)
Bug fixes:
Also look for towncrier.toml, next to pyproject.toml. towncrier.toml is tried first. [maurits] (Issue #27)
1.3.0 (2022-04-19)
New features:
1.2.0 (2019-03-05)
New features:
Use ‘python -m towncrier’ when the script is not easily findable. Still check the directory of the fullrelease script first. No longer check the PATH. [maurits] (Issue #17)
Bug fixes:
Do not run sanity checks or run draft during postrelease. [maurits] (Issue #16)
1.1.0 (2019-03-05)
New features:
Rerelease 1.0.3 as 1.1.0, as it contains new features. (Issue #9)
1.0.3 (2019-03-05)
New features:
1.0.2 (2019-03-04)
Bug fixes:
Fixed finding towncrier when sys.argv is messed up. [maurits] (Issue #6)
1.0.1 (2019-02-20)
Bug fixes:
Tell bumpversion to not update the history. [maurits] (Issue #10)
1.0.0 (2019-02-06)
New features:
Warn and ask when towncrier is wanted but not found. [maurits] (Issue #7)
1.0.0b3 (2018-05-17)
New features:
Require towncrier 18.5.0 so we don’t need a package name in the config. [maurits] (Issue #3)
Bug fixes:
First look for towncrier next to the full/prerelease script. Then fall back to looking on the PATH. [maurits] (Issue #4)
1.0.0b2 (2018-05-16)
Bug fixes:
Do not fail when pyproject.toml file is not there. [maurits] (Issue #2)
1.0.0b1 (2018-05-15)
New features:
First release. [maurits] (Issue #1)
Metadata
Release files for zestreleaser.towncrier 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| zestreleaser_towncrier-2.0.1.tar.gz | 16.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zestreleaser_towncrier-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.9 kB
Release files / zestreleaser_towncrier-2.0.1.tar.gz
| Download URL | zestreleaser_towncrier-2.0.1.tar.gz |
|---|---|
| Size | 16.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1b30802725ba44add525ccecf0642ba9ee2f251144b64c53d10eab81c969d29d
|
|
BLAKE2b-256 checksum How to use checksums |
b98828ec4901a96ab80d016221dcb0edccf77b18d3148a85f9bba177d52d9b3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Release files / zestreleaser_towncrier-2.0.1-py3-none-any.whl
| Download URL | zestreleaser_towncrier-2.0.1-py3-none-any.whl |
|---|---|
| Size | 14.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
162f5b07f29e7534846e7133b0e90c8bacf171d396325de316c79002e5bb9fb0
|
|
BLAKE2b-256 checksum How to use checksums |
1b0d44534e4913ac39a4d4c365ad25372fc9ee3194adf5c06c0ce6fb59e93a6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Security for zestreleaser.towncrier 2.0.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.