Skip to main content

zest.releaser plugin to call towncrier

Project description

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

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

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:

  • Use the build subcommand for towncrier to build the changelog. Fixes compatibility with towncrier 21.9.0 or later. Requires towncrier 19.9.0 or later. [mcflugen] (Issue #22)

  • For parsing, use tomli when on Python 3, toml on Python 2. Same as towncrier did until recently. [maurits] (Issue #23)

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:

  • Report on sanity of newsfragments: do they have the correct extensions? Is at least one found? Show dry-run (draft) of what towncrier would do. [maurits] (Issue #9)

  • Handle multiple news entries per issue/type pair. [maurits] (Issue #14)

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:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zestreleaser_towncrier-2.0.1.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zestreleaser_towncrier-2.0.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file zestreleaser_towncrier-2.0.1.tar.gz.

File metadata

  • Download URL: zestreleaser_towncrier-2.0.1.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for zestreleaser_towncrier-2.0.1.tar.gz
Algorithm Hash digest
SHA256 1b30802725ba44add525ccecf0642ba9ee2f251144b64c53d10eab81c969d29d
MD5 856e3155a13aa11f53a8b8588bd7798b
BLAKE2b-256 b98828ec4901a96ab80d016221dcb0edccf77b18d3148a85f9bba177d52d9b3e

See more details on using hashes here.

File details

Details for the file zestreleaser_towncrier-2.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for zestreleaser_towncrier-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 162f5b07f29e7534846e7133b0e90c8bacf171d396325de316c79002e5bb9fb0
MD5 af5af6fabe3c0ed54f96bc4992880707
BLAKE2b-256 1b0d44534e4913ac39a4d4c365ad25372fc9ee3194adf5c06c0ce6fb59e93a6f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page