Releases: twisted/towncrier
Towncrier 25.8.0
towncrier 25.8.0 (2025-08-30)
Features
- Support was added for Mercurial SCM. (
#394 <https://github.com/twisted/towncrier/issues/394>_) - The
towncrier checkcommand now has a--stagedflag to inspect the files staged for commit when checking for a news fragment: useful in a pre-commit hook (#676 <https://github.com/twisted/towncrier/issues/676>_) - When used with an
pyproject.tomlfile, when no explicit values are
defined for [tool.towncrier.name|package] they will now fallback to
the value of [project.name]. (#687 <https://github.com/twisted/towncrier/issues/687>_) - More simple configuration for Keep a Changelog style changelogs (
#691 <https://github.com/twisted/towncrier/issues/691>_) - Added support for Python 3.13 and removed support for Python 3.8. (
#700 <https://github.com/twisted/towncrier/issues/700>_)
Bugfixes
- Multi-line newsfragments that ends with a code block will now have a newline inserted before appending the link to the issue, to avoid breaking formatting. (
#614 <https://github.com/twisted/towncrier/issues/614>_) - Markdown header level is correctly inferred from
title_format. (#695 <https://github.com/twisted/towncrier/issues/695>_)
Improved Documentation
- The documentation RST source files are now included in the sdist package. (
#672 <https://github.com/twisted/towncrier/issues/672>_) - Refactor the default markdown template to make it easier to understand, extend, and customize. (
#706 <https://github.com/twisted/towncrier/issues/706>_)
Deprecations and Removals
- When no sections are present,
the default Markdown template now renders the category headers as H2.
In previous versions it was rendered as H3. (#663 <https://github.com/twisted/towncrier/issues/663>_)
Misc
#667 <https://github.com/twisted/towncrier/issues/667>,#669 <https://github.com/twisted/towncrier/issues/669>,#679 <https://github.com/twisted/towncrier/issues/679>,#680 <https://github.com/twisted/towncrier/issues/680>,#682 <https://github.com/twisted/towncrier/issues/682>,#701 <https://github.com/twisted/towncrier/issues/701>,#702 <https://github.com/twisted/towncrier/issues/702>,#713 <https://github.com/twisted/towncrier/issues/713>
Towncrier 25.8.0rc2
towncrier 25.8.0rc2 (2025-08-15)
Features
- Support was added for Mercurial SCM. (
#394 <https://github.com/twisted/towncrier/issues/394>_) - The
towncrier checkcommand now has a--stagedflag to inspect the files staged for commit when checking for a news fragment: useful in a pre-commit hook (#676 <https://github.com/twisted/towncrier/issues/676>_) - When used with an
pyproject.tomlfile, when no explicit values are
defined for [tool.towncrier.name|package] they will now fallback to
the value of [project.name]. (#687 <https://github.com/twisted/towncrier/issues/687>_) - More simple configuration for Keep a Changelog style changelogs (
#691 <https://github.com/twisted/towncrier/issues/691>_) - Added support for Python 3.13 and removed support for Python 3.8. (
#700 <https://github.com/twisted/towncrier/issues/700>_)
Bugfixes
- Multi-line newsfragments that ends with a code block will now have a newline inserted before appending the link to the issue, to avoid breaking formatting. (
#614 <https://github.com/twisted/towncrier/issues/614>_) - Markdown header level is correctly inferred from
title_format. (#695 <https://github.com/twisted/towncrier/issues/695>_)
Improved Documentation
- The documentation RST source files are now included in the sdist package. (
#672 <https://github.com/twisted/towncrier/issues/672>_) - Refactor the default markdown template to make it easier to understand, extend, and customize. (
#706 <https://github.com/twisted/towncrier/issues/706>_)
Deprecations and Removals
- When no sections are present,
the default Markdown template now renders the category headers as H2.
In previous versions it was rendered as H3. (#663 <https://github.com/twisted/towncrier/issues/663>_)
Misc
#667 <https://github.com/twisted/towncrier/issues/667>,#669 <https://github.com/twisted/towncrier/issues/669>,#679 <https://github.com/twisted/towncrier/issues/679>,#680 <https://github.com/twisted/towncrier/issues/680>,#682 <https://github.com/twisted/towncrier/issues/682>,#701 <https://github.com/twisted/towncrier/issues/701>,#702 <https://github.com/twisted/towncrier/issues/702>,#713 <https://github.com/twisted/towncrier/issues/713>
Towncrier 24.8.0
Towncrier 24.8.0 (2024-08-23)
Features
- Add
.gitkeepas an ignored filename.
(#643) - Config ignore option now supports
wildcard matching via
fnmatch.
(#644) - Add a config for enforcing issue names using regex.
(#649)
Bugfixes
- The template file is now ignored based only on the file name.
(#638) - Control of the header formatting is once again completely up to the
user when they are writing markdown files (fixes a regression
introduced in
[#610](#610)).
(#651) - Fixed an issue where issue_template
failed recognizing the issue name of files with a non-category
suffix (.md)
(#654) - Fixed a bug where orphan news fragments (e.g. +abc1234.feature)
would fail when an issue_pattern is
configured. Orphan news fragments are now excempt from issue_pattern checks.
(#655)
Deprecations and Removals
-
Moved towncrier version definition from src/towncrier/_version.py
to pyproject.tomltowncrier.__version__ was removed, after being deprecated in
23.6.0. (#640)
Misc
Towncrier 24.8.0rc1
Towncrier 24.8.0rc1 (2024-08-19)
Features
- Add
.gitkeepas an ignored filename.
(#643) - Config ignore option now supports
wildcard matching via
fnmatch.
(#644) - Add a config for enforcing issue names using regex.
(#649)
Bugfixes
- The template file is now ignored based only on the file name.
(#638) - Control of the header formatting is once again completely up to the
user when they are writing markdown files (fixes a regression
introduced in
[#610](#610)).
(#651) - Fixed an issue where issue_template
failed recognizing the issue name of files with a non-category
suffix (.md)
(#654) - Fixed a bug where orphan news fragments (e.g. +abc1234.feature)
would fail when an issue_pattern is
configured. Orphan news fragments are now excempt from issue_pattern checks.
(#655)
Deprecations and Removals
-
Moved towncrier version definition from src/towncrier/_version.py
to pyproject.tomltowncrier.__version__ was removed, after being deprecated in
23.6.0. (#640)
Misc
Towncrier 24.7.1
Towncrier 24.7.1rc1
Towncrier 24.7.0
Towncrier 24.7.0 (2024-07-31)
Features
-
towncrier buildnow handles removing news fragments which are not part of the git repository. For example, uncommitted or unstaged files. (#357) -
Inferring the version of a Python package now tries to use the metadata of the installed package before importing the package explicitly (which only looks for
[package].__version__). (#432) -
If no filename is given when doing
towncriercreate, interactively ask for the issue number and fragment type (and then launch an interactive editor for the fragment content).Now by default, when creating a fragment it will be appended with the
filenameoption's extension (unless an extension is explicitly provided). For example,towncrier create 123.featurewill createnews/123.feature.rst. This can be changed in configuration file by setting add_extension = false.A new line is now added by default to the end of the fragment contents. This can be reverted in the configuration file by setting add_newline = false. (#482)
-
The temporary file
towncrier createcreates now uses the correct.rstor.mdextension, which may help your editor with with syntax highlighting. (#594) -
Running
towncrierwill now traverse back up directories looking for the configuration file. (#601) -
The
towncrier createaction now uses sections defined in your config (either interactively, or via the new--sectionoption). (#603) -
News fragments are now sorted by issue number even if they have non-digit characters.
For example:
- some issue (gh-3, gh-10) - another issue (gh-4) - yet another issue (gh-11)The sorting algorithm groups the issues first by non-text characters and then by number. (#608)
-
The
title_formatconfiguration option now uses a markdown format for markdown templates. (#610) -
newsfragment categories can now be marked with
check = false, causing them to be ignored intowncrier check(#617) -
towncrier checkwill now fail if any news fragments have invalid filenames.Added a new configuration option called
ignorethat allows you to specify a list of filenames that should be ignored. If this is set,towncrier buildwill also fail if any filenames are invalid, except for those in the list. (#622)
Bugfixes
- Add explicit encoding to read_text. (#561)
- The default Markdown template now renders a title containing the release version and date, even when the name configuration is left empty. (#587)
- Orphan news fragments, fragments not associated with an issue, consisting of only digits (e.g. '+12345678.feature') now retain their leading marker character. (#588)
- Orphan news fragments, fragments not associated with an issue, will now still show in categories that are marked to not show content, since they do not have an issue number to show. (#612)
Improved Documentation
- Clarify version discovery behavior. (#432, #602)
- The tutorial now introduces the filename option in the appropriate paragraph and mentions its default value. (#586)
- Add docs to explain how
towncrier create +.feature.rst(orphan fragments) works. (#589)
Misc
Towncrier 24.7.0rc1
Towncrier 24.7.0rc1 (2024-07-30)
Features
-
towncrier buildnow handles removing news fragments which are not
part of the git repository. For example, uncommitted or unstaged
files. (#357) -
Inferring the version of a Python package now tries to use the
metadata of the installed package before importing the package
explicitly (which only looks for[package].__version__).
(#432) -
If no filename is given when doing
towncriercreate, interactively
ask for the issue number and fragment type (and then launch an
interactive editor for the fragment content).Now by default, when creating a fragment it will be appended with
thefilenameoption's extension (unless an extension is explicitly
provided). For example,towncrier create 123.featurewill create
news/123.feature.rst. This can be changed in configuration file by
setting add_extension = false.A new line is now added by default to the end of the fragment
contents. This can be reverted in the configuration file by setting
add_newline = false.
(#482) -
The temporary file
towncrier createcreates now uses the correct
.rstor.mdextension, which may help your editor with with
syntax highlighting.
(#594) -
Running
towncrierwill now traverse back up directories looking
for the configuration file.
(#601) -
The
towncrier createaction now uses sections defined in your
config (either interactively, or via the new--sectionoption).
(#603) -
News fragments are now sorted by issue number even if they have
non-digit characters.For example:
- some issue (gh-3, gh-10) - another issue (gh-4) - yet another issue (gh-11)The sorting algorithm groups the issues first by non-text characters
and then by number.
(#608) -
The
title_formatconfiguration option now uses a markdown format
for markdown templates.
(#610) -
newsfragment categories can now be marked with
check = false,
causing them to be ignored intowncrier check
(#617) -
towncrier checkwill now fail if any news fragments have invalid
filenames.Added a new configuration option called
ignorethat allows you to
specify a list of filenames that should be ignored. If this is set,
towncrier buildwill also fail if any filenames are invalid,
except for those in the list.
(#622)
Bugfixes
- Add explicit encoding to read_text.
(#561) - The default Markdown template now renders a title containing the
release version and date, even when the name configuration is left empty.
(#587) - Orphan news fragments, fragments not associated with an issue,
consisting of only digits (e.g. '+12345678.feature') now retain
their leading marker character.
(#588) - Orphan news fragments, fragments not associated with an issue, will
now still show in categories that are marked to not show content,
since they do not have an issue number to show.
(#612)
Improved Documentation
- Clarify version discovery behavior.
(#432,
#602) - The tutorial now introduces the filename option in the appropriate
paragraph and mentions its default value.
(#586) - Add docs to explain how
towncrier create +.feature.rst(orphan
fragments) works.
(#589)
Misc
Towncrier 23.11.0
towncrier 23.11.0 (2023-11-08)
Bugfixes
buildnow treats a missing fragments directory the same as an
empty one, consistent with other operations.
(#538)- Fragments with filenames like
fix-1.2.3.feature are now associated
with the ticket fix-1.2.3. In
previous versions they were incorrectly associated to ticket
3.
(#562) - Orphan newsfragments containing numeric values are no longer
accidentally associated to tickets. In previous versions the orphan
marker was ignored and the newsfragment was associated to a ticket
having the last numerical value from the filename.
(#562)
Misc
Towncrier 23.11.0rc1
towncrier 23.11.0rc1 (2023-11-07)
Bugfixes
buildnow treats a missing fragments directory the same as an
empty one, consistent with other operations.
(#538)- Fragments with filenames like
fix-1.2.3.feature are now associated
with the ticket fix-1.2.3. In
previous versions they were incorrectly associated to ticket
3.
(#562) - Orphan newsfragments containing numeric values are no longer
accidentally associated to tickets. In previous versions the orphan
marker was ignored and the newsfragment was associated to a ticket
having the last numerical value from the filename.
(#562)