-
Notifications
You must be signed in to change notification settings - Fork 122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ENH: Allow no bullet point framgents and file templating #158
Conversation
Sorry, also needs lots of test of course, although wouldn't mind a quick getting back on that. |
Just noticed that gh-147 does the title part already nicely. Probably nicer since Anyway, happy to pull this out or do the opposite, but I would very much appreciate if we can try to keep things moving here @hawkowl? I expect other projects may have similar needs as NumPy. |
Codecov Report
@@ Coverage Diff @@
## master #158 +/- ##
==========================================
- Coverage 90.3% 87.98% -2.33%
==========================================
Files 11 11
Lines 392 416 +24
Branches 69 78 +9
==========================================
+ Hits 354 366 +12
- Misses 22 28 +6
- Partials 16 22 +6
Continue to review full report at Codecov.
|
Thanks so much, I will do that today or tomorrow! |
7414d09
to
d6303d9
Compare
1364832
to
81615a9
Compare
OK, assuming the existing tests pass, this now adds two things (slight modification from before):
(this may still settle a bit, but should be good to look at.) |
Can I ping you on this? Being able to handle non-bullet points is pretty important to me. The single file per release I could probably handle differently. I do not mind taking a different approach here though or fixing things up a bit more. |
Oone more gentle ping @hawkowl, I do not mind working a bit more here though. |
@seberg I cherry picked out the single file changes into another branch, and I'll poke at some tests for them. I don't quite understand the bullet point fragments, though, since making entries bulletpoints or not is the responsibility of the template. Could you just make an example output of what the option lets you do that editing the template doesn't? I can't quite figure it out from the code. |
Thanks. Making it bullet points or not should be the responsibility of the template, the issue is that the code (not the template) does indenting by two spaces (this could be done in the jinja2 template in a similar manner, but is not). In NumPy our snipplets normally have a subheading:
and the above is how it gets rendered by towncrier, note the spaces of the following lines which are not in the original) fragment. Since we sometimes also use bullet points (Sections where everything is short), I thought I may want to allow both, and just sort the bullet points to the top, to be cleaned up manually before the final release (which is the reason for the sorting changes). I can work without the sorting change, although I doubt there is much harm in it. |
81615a9
to
0409982
Compare
The single file options means that the file name is formatted when it is set to False (and appending will never happen). When `all_bullets` is set to false, then fragmets that should be rendered as bullet points will have include the bullet itself. In that case, bullets will be sorted to the front (bullets include "*", "-", and "#." enumeration). To make indentation of the ticket info easier, a `get_indent(text)` function is exposed to the jinja template.
0409982
to
4093758
Compare
Sorry that I never updated this (if this can go in some way or another). Rebased onto master. |
* ENH: Add no bullet point option When `all_bullets` is set to false, then fragmets that should be rendered as bullet points will have include the bullet itself. In that case, bullets will be sorted to the front (bullets include "*", "-", and "#." enumeration). To make indentation of the ticket info easier, a `get_indent(text)` function is exposed to the jinja template. * testing and cleanups
Thanks! I added some tests and merged it in here: #162 |
Thank you so much! |
towncrier 22.12.0 (2022-12-21) ============================== No changes since the previous release candidate. towncrier 22.12.0rc1 (2022-12-20) ================================= Features -------- - 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>`_) Improved Documentation ---------------------- - Improved contribution documentation. (`#415 <https://github.com/hawkowl/towncrier/issues/415>`_) - Correct a typo in the readme that incorrectly documented custom fragments in a format that does not work. (`#424 <https://github.com/hawkowl/towncrier/issues/424>`_) - The documentation has been restructured and (hopefully) improved. (`#435 <https://github.com/hawkowl/towncrier/issues/435>`_) - Added a Markdown-based how-to guide. (`#436 <https://github.com/hawkowl/towncrier/issues/436>`_) - Defining custom fragments using a TOML array is not deprecated anymore. (`#438 <https://github.com/hawkowl/towncrier/issues/438>`_) Deprecations and Removals ------------------------- - Default branch for `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>`_) Misc ---- - `#406 <https://github.com/hawkowl/towncrier/issues/406>`_, `#408 <https://github.com/hawkowl/towncrier/issues/408>`_, `#411 <https://github.com/hawkowl/towncrier/issues/411>`_, `#412 <https://github.com/hawkowl/towncrier/issues/412>`_, `#413 <https://github.com/hawkowl/towncrier/issues/413>`_, `#414 <https://github.com/hawkowl/towncrier/issues/414>`_, `#416 <https://github.com/hawkowl/towncrier/issues/416>`_, `#418 <https://github.com/hawkowl/towncrier/issues/418>`_, `#419 <https://github.com/hawkowl/towncrier/issues/419>`_, `#421 <https://github.com/hawkowl/towncrier/issues/421>`_, `#429 <https://github.com/hawkowl/towncrier/issues/429>`_, `#430 <https://github.com/hawkowl/towncrier/issues/430>`_, `#431 <https://github.com/hawkowl/towncrier/issues/431>`_, `#434 <https://github.com/hawkowl/towncrier/issues/434>`_, `#446 <https://github.com/hawkowl/towncrier/issues/446>`_, `#447 <https://github.com/hawkowl/towncrier/issues/447>`_ towncrier 22.8.0 (2022-08-29) ============================= No significant changes since the previous release candidate. towncrier 22.8.0.rc1 (2022-08-28) ================================= Features -------- - 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>`_) Bugfixes -------- - 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>`_) Improved Documentation ---------------------- - Improve ``CONTRIBUTING.rst`` and add PR template. (`#342 <https://github.com/hawkowl/towncrier/issues/342>`_) - Move docs too the main branch and document custom fragment types. (`#367 <https://github.com/hawkowl/towncrier/issues/367>`_) - The CLI help messages were updated to contain more information. (`#384 <https://github.com/hawkowl/towncrier/issues/384>`_) Deprecations and Removals ------------------------- - Support for all Python versions older than 3.7 has been dropped. (`#378 <https://github.com/hawkowl/towncrier/issues/378>`_) Misc ---- - `#292 <https://github.com/hawkowl/towncrier/issues/292>`_, `#330 <https://github.com/hawkowl/towncrier/issues/330>`_, `#366 <https://github.com/hawkowl/towncrier/issues/366>`_, `#376 <https://github.com/hawkowl/towncrier/issues/376>`_, `#377 <https://github.com/hawkowl/towncrier/issues/377>`_, `#380 <https://github.com/hawkowl/towncrier/issues/380>`_, `#381 <https://github.com/hawkowl/towncrier/issues/381>`_, `#382 <https://github.com/hawkowl/towncrier/issues/382>`_, `#383 <https://github.com/hawkowl/towncrier/issues/383>`_, `#393 <https://github.com/hawkowl/towncrier/issues/393>`_, `#399 <https://github.com/hawkowl/towncrier/issues/399>`_, `#402 <https://github.com/hawkowl/towncrier/issues/402>`_ towncrier 21.9.0 (2022-02-04) ============================= Features -------- - towncrier --version` was added to the command line interface to show the product version. (`#339 <https://github.com/hawkowl/towncrier/issues/339>`_) - Support Toml v1 syntax with tomli on Python 3.6+ (`#354 <https://github.com/hawkowl/towncrier/issues/354>`_) Bugfixes -------- - Stop writing title twice when ``title_format`` is specified. (`#346 <https://github.com/hawkowl/towncrier/issues/346>`_) - Disable universal newlines when reading TOML (`#359 <https://github.com/hawkowl/towncrier/issues/359>`_) Misc ---- - `#332 <https://github.com/hawkowl/towncrier/issues/332>`_, `#333 <https://github.com/hawkowl/towncrier/issues/333>`_, `#334 <https://github.com/hawkowl/towncrier/issues/334>`_, `#338 <https://github.com/hawkowl/towncrier/issues/338>`_ towncrier 21.3.0 (2021-04-02) ============================= No significant changes since the previous release candidate. towncrier 21.3.0.rc1 (2021-03-21) ================================= Features -------- - Ticket number from file names will be stripped down to avoid ticket links such as ``#7``. (`#126 <https://github.com/hawkowl/towncrier/issues/126>`_) - Allow definition of the project ``version`` and ``name`` in the configuration file. This allows use of towncrier seamlessly with non-Python projects. (`#165 <https://github.com/hawkowl/towncrier/issues/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 <https://github.com/hawkowl/towncrier/issues/173>`_) - The new ``--edit`` option of the ``create`` subcommand launches an editor for entering the contents of the newsfragment. (`#275 <https://github.com/hawkowl/towncrier/issues/275>`_) - CPython 3.8 and 3.9 are now part of our automated test matrix and are officially supported. (`#291 <https://github.com/hawkowl/towncrier/issues/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 <https://github.com/hawkowl/towncrier/issues/297>`_) - Support building with PEP 517. (`#314 <https://github.com/hawkowl/towncrier/issues/314>`_) Bugfixes -------- - Configuration errors found during command line execution now trigger a message to stderr and no longer show a traceback. (`#84 <https://github.com/hawkowl/towncrier/issues/84>`_) - A configuration error is triggered when the newsfragment files couldn't be discovered. (`#85 <https://github.com/hawkowl/towncrier/issues/85>`_) - Invoking towncrier as `python -m towncrier` works. (`#163 <https://github.com/hawkowl/towncrier/issues/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 <https://github.com/hawkowl/towncrier/issues/175>`_) - Specifying ``title_format`` disables default top line creation to avoid duplication. (`#180 <https://github.com/hawkowl/towncrier/issues/180>`_) Improved Documentation ---------------------- - The README now mentions the possibility to name the configuration file ``towncrier.toml`` (in addition to ``pyproject.toml``). (`#172 <https://github.com/hawkowl/towncrier/issues/172>`_) - ``start_line`` corrected to ``start_string`` in the readme to match the long standing implementation. (`#277 <https://github.com/hawkowl/towncrier/issues/277>`_) towncrier 19.9.0 (2021-03-20) ============================= No significant changes. towncrier 19.9.0rc1 (2019-09-16) ================================ Features -------- - Add ``create`` subcommand, which can be used to quickly create a news fragment command in the location defined by config. (`#4 <https://github.com/hawkowl/towncrier/issues/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 <https://github.com/hawkowl/towncrier/issues/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 <https://github.com/hawkowl/towncrier/issues/147>`_) - towncrier now accepts the --config argument to specify a custom configuration file (`#157 <https://github.com/hawkowl/towncrier/issues/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 <https://github.com/hawkowl/towncrier/issues/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 <https://github.com/hawkowl/towncrier/issues/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 <https://github.com/hawkowl/towncrier/issues/162>`_) Bugfixes -------- - Accept newsfragment filenames with multiple dots, like `fix-1.2.3.bugfix`. (`#142 <https://github.com/hawkowl/towncrier/issues/142>`_) Deprecations and Removals ------------------------- - The `--pyproject` option for `towncrier check` is now replaced with `--config`, for consistency with other commands. (`#162 <https://github.com/hawkowl/towncrier/issues/162>`_)
This adds a single file mode to allow creating a single file for
each release. It also allows to disable automatic indentation of
bullet point items, since not all projects necessarily use
bullet points for release notes. In single file mode, the output
file is a format string of the
name
,version
, andproject_date
and the file is fully replaced (
start_line
is not supported).name
,version
, andproject_date
are now available in the maintemplate, allowing to render the title there. To make this useful,
the
title_format
should be set tofalse
.Will create a newsfragment soon. Is this something you would like? Basically, I would like to be able to create most of our current numpy style release notes automatically (for example: https://github.com/numpy/numpy/blob/master/doc/release/1.17.0-notes.rst).