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.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.0.tar.gz (16.2 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.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: zestreleaser_towncrier-2.0.0.tar.gz
  • Upload date:
  • Size: 16.2 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.0.tar.gz
Algorithm Hash digest
SHA256 aaabf09e48f836f25b9f5394da45dff25da47634ba6b2f7a7d71322129262d1e
MD5 7823b303d8a7dc3ffd8a9240f7d125d1
BLAKE2b-256 af00bdc6f74458c150a41ec7ecc8394922dc2710fd9fe0d4cd55f2c1d549504f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zestreleaser_towncrier-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd78cf25167a3b29066d8d2f8264f18f31c65a25a5cb90722341256f9ff8f2e5
MD5 eb591c152e9213ed874b034edf35494c
BLAKE2b-256 cb515f3226a43c3d8755f92a601a75f73a965ded2fa57377e0b1fa7ce5b94c36

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