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)
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 | |
|---|---|---|---|
| zestreleaser_towncrier-2.0.1.tar.gz | 16.5 kB | 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
|