NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3050 most downloaded on PyPI
Building newsfiles for your project.
Last release 1 months ago
04 Sep 2026
Release timing varies
gaps range from 2 weeks to 12 months
Nearly every release is documented
notes for 24 of 24 stable releases
2 versions withdrawn
withdrawn after publishing
11 years old
40 releases · first in 2015
towncrier build now support setting the date via the SOURCE_DATE_EPOCH specification. This adds support for Reproducible Builds. ( #746 <https://githu
towncrier build now support setting the date via the SOURCE_DATE_EPOCH specification. This adds support for Reproducible Builds. (#746 <https://github.com/twisted/towncrier/issues/746>_)wrap to an integer value greater than 0, using 79 by default if set to true. (#464 <https://github.com/twisted/towncrier/issues/464>_)towncrier create command line tool now has the --sub-issue option that is used when creating multiple fragments for the same issue number. (#714 <https://github.com/twisted/towncrier/issues/714>_)towncrier create now rejects fragment names whose issue identifier contains .. (#733 <https://github.com/twisted/towncrier/issues/733>_)#719 <https://github.com/twisted/towncrier/issues/719>, #729 <https://github.com/twisted/towncrier/issues/729>, #736 <https://github.com/twisted/towncrier/issues/736>, #741 <https://github.com/twisted/towncrier/issues/741>, #747 <https://github.com/twisted/towncrier/issues/747>_No significant changes since the previous release candidate.
towncrier build now support setting the date via the SOURCE_DATE_EPOCH specification. This adds support for Reproducible Builds. (#746)
Wrapped line length can now be configured by setting wrap to an integer value greater than 0, using 79 by default if set to true. (#464)
The towncrier create command line tool now has the --sub-issue option that is used when creating multiple fragments for the same issue number. (#714)
towncrier create now rejects fragment names whose issue identifier contains .. (#733)
One column per quarter.
towncrier build now support setting the date via the SOURCE_DATE_EPOCH specification. This adds support for Reproducible Builds. ( #746 <https://githu
towncrier build now support setting the date via the SOURCE_DATE_EPOCH specification. This adds support for Reproducible Builds. (#746 <https://github.com/twisted/towncrier/issues/746>_)wrap to an integer value greater than 0, using 79 by default if set to true. (#464 <https://github.com/twisted/towncrier/issues/464>_)towncrier create command line tool now has the --sub-issue option that is used when creating multiple fragments for the same issue number. (#714 <https://github.com/twisted/towncrier/issues/714>_)towncrier create now rejects fragment names whose issue identifier contains .. (#733 <https://github.com/twisted/towncrier/issues/733>_)#719 <https://github.com/twisted/towncrier/issues/719>, #729 <https://github.com/twisted/towncrier/issues/729>, #736 <https://github.com/twisted/towncrier/issues/736>, #741 <https://github.com/twisted/towncrier/issues/741>, #747 <https://github.com/twisted/towncrier/issues/747>_Support was added for Mercurial SCM. ( #394 <https://github.com/twisted/towncrier/issues/394> _)
#394 <https://github.com/twisted/towncrier/issues/394>_)towncrier check command now has a --staged flag 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>_)pyproject.toml file, when no explicit values are#687 <https://github.com/twisted/towncrier/issues/687>_)#691 <https://github.com/twisted/towncrier/issues/691>_)#700 <https://github.com/twisted/towncrier/issues/700>_)#614 <https://github.com/twisted/towncrier/issues/614>_)title_format. (#695 <https://github.com/twisted/towncrier/issues/695>_)#672 <https://github.com/twisted/towncrier/issues/672>_)#706 <https://github.com/twisted/towncrier/issues/706>_)#663 <https://github.com/twisted/towncrier/issues/663>_)#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>#394 <https://github.com/twisted/towncrier/issues/394>_)towncrier check command now has a --staged flag 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>_)pyproject.toml file, 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>_)#691 <https://github.com/twisted/towncrier/issues/691>_)#700 <https://github.com/twisted/towncrier/issues/700>_)#614 <https://github.com/twisted/towncrier/issues/614>_)title_format. (#695 <https://github.com/twisted/towncrier/issues/695>_)#672 <https://github.com/twisted/towncrier/issues/672>_)#706 <https://github.com/twisted/towncrier/issues/706>_)#663 <https://github.com/twisted/towncrier/issues/663>_)#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>No significant changes since the previous release candidate.
Support was added for Mercurial SCM. (#394)
The towncrier check command now has a --staged flag to inspect the files staged for commit when checking for a news fragment: useful in a pre-commit hook (#676)
When used with an pyproject.toml file, when no explicit values are defined for [tool.towncrier.name|package] they will now fallback to the value of [project.name]. (#687)
The directory configuration option is no longer required. It can now be generated based on value from the name configuration. (#691)
Added support for Python 3.13 and removed support for Python 3.8. (#700)
Multi-line news fragments that end with a code block will now have a newline inserted before appending the link to the issue, to avoid breaking formatting. (#614)
Markdown header level is correctly inferred from title_format. (#695)
The documentation RST source files are now included in the sdist package. (#672)
Refactor the default markdown template to make it easier to understand, extend, and customize. (#706)
Support for Python 3.8 was removed. (#700)
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)
towncrier 25.8.0rc2 (2025-08-15)
#394 <https://github.com/twisted/towncrier/issues/394>_)towncrier check command now has a --staged flag 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>_)pyproject.toml file, when no explicit values are#687 <https://github.com/twisted/towncrier/issues/687>_)#691 <https://github.com/twisted/towncrier/issues/691>_)#700 <https://github.com/twisted/towncrier/issues/700>_)#614 <https://github.com/twisted/towncrier/issues/614>_)title_format. (#695 <https://github.com/twisted/towncrier/issues/695>_)#672 <https://github.com/twisted/towncrier/issues/672>_)#706 <https://github.com/twisted/towncrier/issues/706>_)#663 <https://github.com/twisted/towncrier/issues/663>_)#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>#394 <https://github.com/twisted/towncrier/issues/394>_)towncrier check command now has a --staged flag 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>_)pyproject.toml file, 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>_)#691 <https://github.com/twisted/towncrier/issues/691>_)#700 <https://github.com/twisted/towncrier/issues/700>_)#614 <https://github.com/twisted/towncrier/issues/614>_)title_format. (#695 <https://github.com/twisted/towncrier/issues/695>_)#672 <https://github.com/twisted/towncrier/issues/672>_)#706 <https://github.com/twisted/towncrier/issues/706>_)#663 <https://github.com/twisted/towncrier/issues/663>_)#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.__version__ was removed, after being deprecated in 23.6.0.
.gitkeep as an ignored filename.Moved towncrier version definition from src/towncrier/_version.py
to pyproject.toml
towncrier.__version__ was removed, after being deprecated in
23.6.0. (#640)
towncrier.__version__ was removed, after being deprecated in 23.6.0.
.gitkeep as an ignored filename.Moved towncrier version definition from src/towncrier/_version.py
to pyproject.toml
towncrier.__version__ was removed, after being deprecated in
23.6.0. (#640)
When the template file is stored in the same directory with the news fragments, it is automatically ignored when checking for valid fragment file name
No significant changes since the previous release candidate.
When the template file is stored in the same directory with the news fragments, it is automatically ignored when checking for valid fragment file names. (#632)
Towncrier 24.7.1rc1 (2024-07-31)
towncrier build now handles removing news fragments which are not part of the git repository. For example, uncommitted or unstaged files. (\#357)
towncrier build now 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 towncrier create, 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 filename option's extension (unless an extension is explicitly provided). For example, towncrier create 123.feature will create news/123.feature.rst. This can be changed in configuration file by setting <span class="title-ref">add_extension = false</span>.
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 <span class="title-ref">add_newline = false</span>. (#482)
The temporary file towncrier create creates now uses the correct .rst or .md extension, which may help your editor with with syntax highlighting. (#594)
Running towncrier will now traverse back up directories looking for the configuration file. (#601)
The towncrier create action now uses sections defined in your config (either interactively, or via the new --section option). (#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_format configuration option now uses a markdown format for markdown templates. (#610)
newsfragment categories can now be marked with check = false, causing them to be ignored in towncrier check (#617)
towncrier check will now fail if any news fragments have invalid filenames.
Added a new configuration option called ignore that allows you to specify a list of filenames that should be ignored. If this is set, towncrier build will also fail if any filenames are invalid, except for those in the list. (#622)
towncrier create +.feature.rst (orphan fragments) works. (#589)towncrier build now handles removing news fragments which are not part of the git repository. For example, uncommitted or unstaged files. (\#357)
towncrier build now 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 towncrier create, 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 filename option's extension (unless an extension is explicitly
provided). For example, towncrier create 123.feature will create
news/123.feature.rst. This can be changed in configuration file by
setting <span class="title-ref">add_extension = false</span>.
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 <span class="title-ref">add_newline = false</span>. (#482)
The temporary file towncrier create creates now uses the correct
.rst or .md extension, which may help your editor with with
syntax highlighting.
(#594)
Running towncrier will now traverse back up directories looking
for the configuration file.
(#601)
The towncrier create action now uses sections defined in your
config (either interactively, or via the new --section option).
(#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_format configuration option now uses a markdown format
for markdown templates.
(#610)
newsfragment categories can now be marked with check = false,
causing them to be ignored in towncrier check
(#617)
towncrier check will now fail if any news fragments have invalid
filenames.
Added a new configuration option called ignore that allows you to
specify a list of filenames that should be ignored. If this is set,
towncrier build will also fail if any filenames are invalid,
except for those in the list.
(#622)
towncrier create +.feature.rst (orphan
fragments) works.
(#589)build now treats a missing fragments directory the same as an empty one, consistent with other operations.
build now treats a missing fragments directory the same as an
empty one, consistent with other operations.
(#538)No significant changes since the previous release candidate.
build now 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 issue fix-1.2.3. In previous versions they were incorrectly associated to issue 3. (#562)
Orphan newsfragments containing numeric values are no longer accidentally associated to issues. In previous versions the orphan marker was ignored and the newsfragment was associated to an issue having the last numerical value from the filename. (#562)
build now treats a missing fragments directory the same as an empty one, consistent with other operations.
build now treats a missing fragments directory the same as an
empty one, consistent with other operations.
(#538)No significant changes since the previous release candidate.
No significant changes since the previous release candidate.
Python 3.12 is now officially supported. (#541)
Initial support was added for monorepo-style setup. One project with multiple independent news files stored in separate sub-directories, that share the same towncrier config. (#548)
Two newlines are no longer always added between the current release notes and the previous content. The newlines are now defined only inside the template.
Important! If you're using a custom template and want to keep the same whitespace between releases, you may have to modify your template. (#552)
Python 3.12 is now officially supported. (\#541)
Python 3.12 is now officially supported. (#541)
Initial support was added for monorepo-style setup. One project with multiple independent news files stored in separate sub-directories, that share the same towncrier config. (#548)
Two newlines are no longer always added between the current release notes and the previous content. The newlines are now defined only inside the template.
Important! If you're using a custom template and want to keep the same whitespace between releases, you may have to modify your template. (#552)
This is the last release to support Python 3.7.
This is the last release to support Python 3.7.
Make towncrier create use the fragment counter rather than failing on existing fragment names.
For example, if there is an existing fragment named 123.feature, then towncrier create 123.feature will now create a fragment named 123.feature.1. (#475)
Provide a default Markdown template if the configured filename ends with .md.
The Markdown template uses the same rendered format as the default reStructuredText template, but with a Markdown syntax. (#483)
Towncrier no longer depends on setuptools & uses importlib.resources (or its backport) instead. (#496)
Added pre-commit hooks for checking and updating news in projects using pre-commit. (#498)
Calling towncrier check without an existing configuration, will just show only an error message.
In previous versions, a traceback was generated instead of the error message. (#501)
Fix creating fragment in a section not adding random characters.
For example, towncrier create some_section/+.feature should end up as a fragment named something like news/some_section/+a4e22da1.feature. (#468)
Fix the ReadTheDocs build for towncrier which was broken due to the python version in use being 3.8. Upgrade to 3.11. (#509)
--version requiring the command to be explicitly passed. (#511)This is the last release to support Python 3.7.
This is the last release to support Python 3.7.
Make towncrier create use the fragment counter rather than failing on existing fragment names.
For example, if there is an existing fragment named 123.feature, then towncrier create 123.feature will now create a fragment named 123.feature.1. (#475)
Provide a default Markdown template if the configured filename ends with .md.
The Markdown template uses the same rendered format as the default reStructuredText template, but with a Markdown syntax. (#483)
Towncrier no longer depends on setuptools & uses importlib.resources (or its backport) instead. (#496)
Added pre-commit hooks for checking and updating news in projects using pre-commit. (#498)
Calling towncrier check without an existing configuration, will just show only an error message.
In previous versions, a traceback was generated instead of the error message. (#501)
Fix creating fragment in a section not adding random characters.
For example, towncrier create some_section/+.feature should end up as a fragment named something like news/some_section/+a4e22da1.feature. (#468)
Fix the ReadTheDocs build for towncrier which was broken due to the python version in use being 3.8. Upgrade to 3.11. (#509)
--version requiring the command to be explicitly passed. (#511)Defining custom fragments using a TOML array is not deprecated anymore. (#438 _)
Added --keep option to the build command that allows generating a newsfile, but keeps the newsfragments in place.
This option can not be used together with --yes. (#129 <https://github.com/hawkowl/towncrier/issues/129>_)
Python 3.11 is now officially supported. (#427 <https://github.com/hawkowl/towncrier/issues/427>_)
You can now create fragments that are not associated with issues. Start the name of the fragment with + (e.g. +anything.feature).
The content of these orphan news fragments will be included in the release notes, at the end of the category corresponding to the file extension.
To help quickly create a unique orphan news fragment, towncrier create +.feature will append a random string to the base name of the file, to avoid name collisions. (#428 <https://github.com/hawkowl/towncrier/issues/428>_)
#415 <https://github.com/hawkowl/towncrier/issues/415>_)#424 <https://github.com/hawkowl/towncrier/issues/424>_)#435 <https://github.com/hawkowl/towncrier/issues/435>_)#436 <https://github.com/hawkowl/towncrier/issues/436>_)#438 <https://github.com/hawkowl/towncrier/issues/438>_)towncrier check is now "origin/main" instead of "origin/master".
If "origin/main" does not exist, fallback to "origin/master" with a deprecation warning. (#400 <https://github.com/hawkowl/towncrier/issues/400>_)Defining custom fragments using a TOML array is not deprecated anymore. (#438 _)
Added --keep option to the build command that allows generating a newsfile, but keeps the newsfragments in place.
This option can not be used together with --yes. (#129 <https://github.com/hawkowl/towncrier/issues/129>_)
Python 3.11 is now officially supported. (#427 <https://github.com/hawkowl/towncrier/issues/427>_)
You can now create fragments that are not associated with issues. Start the name of the fragment with + (e.g. +anything.feature).
The content of these orphan news fragments will be included in the release notes, at the end of the category corresponding to the file extension.
To help quickly create a unique orphan news fragment, towncrier create +.feature will append a random string to the base name of the file, to avoid name collisions. (#428 <https://github.com/hawkowl/towncrier/issues/428>_)
#415 <https://github.com/hawkowl/towncrier/issues/415>_)#424 <https://github.com/hawkowl/towncrier/issues/424>_)#435 <https://github.com/hawkowl/towncrier/issues/435>_)#436 <https://github.com/hawkowl/towncrier/issues/436>_)#438 <https://github.com/hawkowl/towncrier/issues/438>_)towncrier check is now "origin/main" instead of "origin/master".
If "origin/main" does not exist, fallback to "origin/master" with a deprecation warning. (#400 <https://github.com/hawkowl/towncrier/issues/400>_)No significant changes since the previous release candidate.
No significant changes since the previous release candidate.
Make the check subcommand succeed for branches that change the news file
This should enable the check subcommand to be used as a CI lint step and
not fail when a pull request only modifies the configured news file (i.e. when
the news file is being assembled for the next release). (#337 <https://github.com/hawkowl/towncrier/issues/337>_)
Added support to tables in toml settings, which provides a more intuitive
way to configure custom types. (#369 <https://github.com/hawkowl/towncrier/issues/369>_)
The towncrier create command line now has a new -m TEXT argument that is used to define the content of the newly created fragment. (#374 <https://github.com/hawkowl/towncrier/issues/374>_)
The extra newline between the title and rendered content when using --draft is no longer inserted. (#105 <https://github.com/hawkowl/towncrier/issues/105>_)
The detection of duplicate release notes was fixed and recording changes of same version is no longer triggered.
Support for having the release notes for each version in a separate file is working again. This is a regression introduced in VERSION 19.9.0rc1. (#391 <https://github.com/hawkowl/towncrier/issues/391>_)
CONTRIBUTING.rst and add PR template. (#342 <https://github.com/hawkowl/towncrier/issues/342>_)#367 <https://github.com/hawkowl/towncrier/issues/367>_)#384 <https://github.com/hawkowl/towncrier/issues/384>_)#378 <https://github.com/hawkowl/towncrier/issues/378>_)towncrier 22.8.0.rc1 (2022-08-28)
Make the check subcommand succeed for branches that change the news file
This should enable the check subcommand to be used as a CI lint step and
not fail when a pull request only modifies the configured news file (i.e. when
the news file is being assembled for the next release). (#337 <https://github.com/hawkowl/towncrier/issues/337>_)
Added support to tables in toml settings, which provides a more intuitive
way to configure custom types. (#369 <https://github.com/hawkowl/towncrier/issues/369>_)
The towncrier create command line now has a new -m TEXT argument that is used to define the content of the newly created fragment. (#374 <https://github.com/hawkowl/towncrier/issues/374>_)
The extra newline between the title and rendered content when using --draft is no longer inserted. (#105 <https://github.com/hawkowl/towncrier/issues/105>_)
The detection of duplicate release notes was fixed and recording changes of same version is no longer triggered.
Support for having the release notes for each version in a separate file is working again. This is a regression introduced in VERSION 19.9.0rc1. (#391 <https://github.com/hawkowl/towncrier/issues/391>_)
CONTRIBUTING.rst and add PR template. (#342 <https://github.com/hawkowl/towncrier/issues/342>_)#367 <https://github.com/hawkowl/towncrier/issues/367>_)#384 <https://github.com/hawkowl/towncrier/issues/384>_)#378 <https://github.com/hawkowl/towncrier/issues/378>_)towncrier --version was added to the command line interface to show the product version. (#339 `_)
Nothing published for this version
No significant changes since the previous release candidate.
No significant changes since the previous release candidate.
Issue number from file names will be stripped down to avoid issue links such as #007. (#126 _)
Issue number from file names will be stripped down to avoid issue links such as #007. (#126)
Allow definition of the project version and name in the configuration file. This allows use of towncrier seamlessly with non-Python projects. (#165)
Improve news fragment file name parsing to allow using file names like 123.feature.1.ext which are convenient when one wants to use an appropriate extension (e.g. rst, md) to enable syntax highlighting. (#173)
The new --edit option of the create subcommand launches an editor for entering the contents of the newsfragment. (#275)
CPython 3.8 and 3.9 are now part of our automated test matrix and are officially supported. (#291)
When searching for the project, first check for an existing importable instance. This helps if the version is only available in the installed version and not the source. (#297)
Support building with PEP 517. (#314)
Configuration errors found during command line execution now trigger a message to stderr and no longer show a traceback. (#84)
A configuration error is triggered when the newsfragment files couldn't be discovered. (#85)
Invoking towncrier as python -m towncrier works. (#163)
check subcommand defaults to UTF-8 encoding when sys.stdout.encoding is None. This happens, for example, with Python 2 on GitHub Actions or when the output is piped. (#175)
Specifying title_format disables default top line creation to avoid duplication. (#180)
Nothing published for this version
Nothing published for this version
No significant changes.
No significant changes.
Add create subcommand, which can be used to quickly create a news fragment command in the location defined by config. (#4 _)
Add create subcommand, which can be used to quickly create a news fragment command in the location defined by config. (#4)
Add support for subcommands, meaning the functionality of the towncrier executable is now replaced by the build subcommand:
$ towncrier build --draft
A new check subcommand is exposed. This is an alternative to calling the towncrier.check module manually:
$ towncrier check
Calling towncrier without a subcommand will result in a call to the build subcommand to ensure backwards compatibility. This may be removed in a future release. (#144)
Towncrier's templating now allows configuration of the version header. CUSTOM TEMPLATE USERS PLEASE NOTE: You will need to add the version header information to your template! (#147)
towncrier now accepts the --config argument to specify a custom configuration file (#157)
There is now the option for all_bullets = false in the configuration. Setting all_bullets to false means that news fragments have to include the bullet point if they should be rendered as enumerations, otherwise they are rendered directly (this means fragments can include a header.). It is necessary to set this option to avoid (incorrect) automatic indentation of multiline fragments that do not include bullet points. The single-file-no-bullets.rst template gives an example of using these options. (#158)
The single_file option can now be added to the configuration file. When set to true, the filename key can now be formattable with the name, version, and project_date format variables. This allows subsequent versions to be written out to new files instead of appended to an existing one. (#161)
You can now specify Towncrier-bundled templates in your configuration file. Available templates are default, hr-between-versions (as used in attrs), and single-file-no-bullets. (#162)
Accept newsfragment filenames with multiple dots, like fix-1.2.3.bugfix. (#142)
The --pyproject option for towncrier check is now replaced with --config, for consistency with other commands. (#162)
Add support for multiple fragments per issue/type pair. This extends the naming pattern of the fragments to issuenumber.type(.counter) where counter i
Add support for multiple fragments per issue/type pair. This extends the naming pattern of the fragments to issuenumber.type(.counter) where counter is an optional integer. (#119)
Python 2.7 is now supported. (#121)
python -m towncrier.check now accepts an option to give the configuration file location. (#123)
towncrier.check now reports git output when it encounters a git failure. (#124)
python -m towncrier.check, which will check a Git branch for the presence of added newsfiles, to be used in a CI system. (#75 _)
python -m towncrier.check, which will check a Git branch for the presence of added newsfiles, to be used in a CI system. (#75)
wrap is now an optional configuration option (which is False by default) which controls line wrapping of news files. Towncrier will now also not attempt to normalise (wiping newlines) from the input, but will strip leading and ending whitespace. (#80)
Towncrier can now be invoked by python -m towncrier. (#115)
Towncrier now supports Python 3.5+ as a script runtime. Python 2.7 will not function. (#80)
Nothing published for this version
Python 3.3 is no longer supported. (#103 _)
Python 3.3 is no longer supported. (#103)
Made package optional. When the version is passed on the command line, and the title_format does not use the package name, and it is not used for the path to the news fragments, then no package name is needed, so we should not enforce it. (#111)
When cleaning up old newsfragments, if a newsfragment is named "123.feature.rst", then remove that file instead of trying to remove the non-existent "123.feature". (#99)
If there are two newsfragments with the same name (example: "123.bugfix.rst" and "123.bugfix.rst~"), then raise an error instead of silently picking one at random. (#101)
Added new option issue_format. For example, this can be used to make issue text in the NEWS file be formatted as ReST links to the issue tracker. (#52
Added new option issue_format. For example, this can be used to make issue text in the NEWS file be formatted as ReST links to the issue tracker. (#52)
Add --yes option to run non-interactively. (#56)
You can now name newsfragments like 123.feature.rst, or 123.feature.txt, or 123.feature.whatever.you.want, and towncrier will ignore the extension. (#62)
New option in pyproject.toml: underlines = ["=", "-", "~"] to specify the ReST underline hierarchy in towncrier's generated text. (#63)
Instead of sorting sections/types alphabetically (e.g. "bugfix" before "feature" because "b" < "f"), sections/types will now have the same order in the output as they have in your config file. (#70)
When rewrapping text, don't break words or at hyphens -- they might be inside a URL (#68)
towncrier.ini config file support has been removed in preference to pyproject.toml configuration. (#71)
Misc ---- - #46
#46
Bugfixes -------- - fix --date being ignored
fix --date being ignored (#43)
Towncrier will now import the local version of the package and not the global one.
Towncrier will now import the local version of the package and not the global one. (#38)
Allow configuration of the template file, title text and "magic comment" (#35)
Towncrier now uses pyproject.toml, as defined in PEP-518. (#40)
towncrier now supports non-numerical news fragment names.
Ported to Python 2.7. (#27)
towncrier now supports non-numerical news fragment names. (#32)
towncrier would spew an unhelpful exception if it failed importing your project when autodiscovering, now it does not. (#22)
incremental is now added as a runtime dependency for towncrier. (#25)
#33
towncrier now automatically puts a date beside the version as it is generated, using today's date. For repeatable builds, use the --date switch and pr
towncrier now automatically puts a date beside the version as it is generated, using today's date. For repeatable builds, use the --date switch and provide a date. For no date, use --date=. (#11)
towncrier will now add the version logs after .. towncrier release notes start, if it is in the file, allowing you to preserve text at the top of the file. (#15)
The README now mentions how to manually provide the version number, for non-Py3 compatible projects. (#19)
towncrier now supports reading __version__ attributes that are tuples of numbers (e.g. (15, 4, 0)).
towncrier now supports reading __version__ attributes that are tuples of numbers (e.g. (15, 4, 0)). (#3)
towncrier now has support for testing via Tox and each commit is now ran on Travis CI. (#6)
towncrier now defaults to the current working directory for the package_dir settings variable. (#2)
Basic functionality has been implemented. This includes configuring towncrier to find your project, having a set of preconfigured news fragment catego
Basic functionality has been implemented. This includes configuring towncrier to find your project, having a set of preconfigured news fragment categories, and assembling a newsfile from them. (#1)
Your coding agent can read these notes before it upgrades. Set up the MCP server →