towncrier
issues are filed on GitHub, and each ticket number here corresponds to a closed GitHub issue.
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)Added support to tables in toml settings, which provides a more intuitive way to configure custom types. (#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)
The extra newline between the title and rendered content when using
--draft
is no longer inserted. (#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)
- Improve
CONTRIBUTING.rst
and add PR template. (#342) - Move docs too the main branch and document custom fragment types. (#367)
- The CLI help messages were updated to contain more information. (#384)
- Support for all Python versions older than 3.7 has been dropped. (#378)
- towncrier --version` was added to the command line interface to show the product version. (#339)
- Support Toml v1 syntax with tomli on Python 3.6+ (#354)
- Stop writing title twice when
title_format
is specified. (#346) - Disable universal newlines when reading TOML (#359)
No significant changes since the previous release candidate.
- Ticket number from file names will be stripped down to avoid ticket links such as
#007
. (#126) - Allow definition of the project
version
andname
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 thecreate
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 whensys.stdout.encoding
isNone
. 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)
- The README now mentions the possibility to name the configuration file
towncrier.toml
(in addition topyproject.toml
). (#172) start_line
corrected tostart_string
in the readme to match the long standing implementation. (#277)
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 support for subcommands, meaning the functionality of the
towncrier
executable is now replaced by thebuild
subcommand:$ towncrier build --draft
A new
check
subcommand is exposed. This is an alternative to calling thetowncrier.check
module manually:$ towncrier check
Calling
towncrier
without a subcommand will result in a call to thebuild
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. Settingall_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. Thesingle-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 totrue
, the filename key can now be formattable with thename
,version
, andproject_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 fragements 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)- 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)
- Python 3.3 is no longer supported. (#103)
- Made
package
optional. When the version is passed on the command line, and thetitle_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) - 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)
- #46
- fix --date being ignored (#43)
- Towncrier will now import the local version of the package and not the global one. (#38)
- Allow configration of the template file, title text and "magic comment" (#35)
- Towncrier now uses pyproject.toml, as defined in PEP-518. (#40)
- 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 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)). (#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 categories, and assembling a newsfile from them. (#1)