Skip to content
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

No traceback on missing configuration with towncrier check #501

Merged
merged 13 commits into from May 8, 2023

Conversation

chrysle
Copy link
Contributor

@chrysle chrysle commented Apr 29, 2023

Description

Fixes #336

Checklist

  • Make sure changes are covered by existing or new tests.
  • For at least one Python version, make sure local test run is green.
  • Create a file in src/towncrier/newsfragments/. Describe your
    change and include important information. Your change will be included in the public release notes.
  • Make sure all GitHub Actions checks are green (they are automatically checking all of the above).
  • Ensure docs/tutorial.rst is still up-to-date.
  • If you add new CLI arguments (or change the meaning of existing ones), make sure docs/cli.rst reflects those changes.
  • If you add new configuration options (or change the meaning of existing ones), make sure docs/configuration.rst reflects those changes.

@chrysle chrysle requested a review from a team as a code owner April 29, 2023 07:54
Copy link
Member

@adiroiban adiroiban left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the changes.

Changes looks good, and I guess that they work for this specific use case.

I am not a big fan us using sys.exit

At the same time, I see that ConfigError is raised in many other places.
Does towncrier already handle those cases without a traceback?

For example, if you have a config with single_file = Non-Boolean-Value , do you see a clean error? or also the traceback.

I wish we could just do a generic handling of the ConfigError instead of replacing it with sys.exit case by case.

I am leaving this a bit longer for review to see that others are saying.

If nobody else is against this, I guess that we can merge it, and look at creating a general fix in a separate PR.

This PR has a new test and that is already an improvement :)

src/towncrier/newsfragments/501.feature Outdated Show resolved Hide resolved
src/towncrier/test/test_settings.py Outdated Show resolved Hide resolved
@adiroiban adiroiban requested a review from a team April 29, 2023 11:23
@SmileyChris
Copy link
Contributor

I am not a big fan us using sys.exit

At the same time, I see that ConfigError is raised in many other places.
Does towncrier already handle those cases without a traceback?

The _main function (wrapped as the build command) in build.py wraps the call in a try/except ConfigError and sys.exits already so the precident is set. This PR should just follow the same pattern.

@SmileyChris
Copy link
Contributor

I wish we could just do a generic handling of the ConfigError instead of replacing it with sys.exit case by case.

Well actually, these could be changed to a click.ClickException and then it'd be handled automagically...

I added this to check.pys _main as an example:

    try:
        __main(compare_with, directory, config)
    except ConfigError as e:
        raise click.ClickException(str(e))

Which results in towncrier check in a no-configuration file location outputting (with an exit code of 1):

Error: No configuration file found.
Looked in: /home/chris/sandbox/abc

@adiroiban
Copy link
Member

Thanks Chris for the feedback.
I think that raise click.ClickException(str(e)) is the way to go.

No need to reinvent the wheel :)

Copy link
Member

@adiroiban adiroiban left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @chrysle for the initial PR

Can you please consider using the dedicated ClickException ?

I guess that one option is to go with something like this

-class ConfigError(Exception):
+class ConfigError(click.ClickException):

I don't know if we need multiple exception types in towncrier
and I can't see any side-effect for this change.

@chrysle
Copy link
Contributor Author

chrysle commented May 5, 2023

Thanks for the review! I updated the code.

However, there seems to be an issue with urllib3 after dropping an OpenSSL version which breaks the doctests. See urllib3/urllib3#2168

adiroiban and others added 2 commits May 6, 2023 14:36
Copy link
Member

@adiroiban adiroiban left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks good.
Only minor comments.
Many thanks for the test.


I hope the CI will be green and we can merge this.

Thanks again

src/towncrier/test/test_settings.py Outdated Show resolved Hide resolved
src/towncrier/newsfragments/501.feature Outdated Show resolved Hide resolved
chrysle and others added 2 commits May 7, 2023 12:32
Co-authored-by: Adi Roiban <adiroiban@gmail.com>
@chrysle
Copy link
Contributor Author

chrysle commented May 7, 2023

Updated! Thanks for reviewing.

Copy link
Member

@hynek hynek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Posted from a phone on a car ;)

src/towncrier/newsfragments/501.feature Outdated Show resolved Hide resolved
src/towncrier/test/test_settings.py Show resolved Hide resolved
src/towncrier/test/test_settings.py Outdated Show resolved Hide resolved
@chrysle
Copy link
Contributor Author

chrysle commented May 8, 2023

@hynek Thanks for review! Updated.

@hynek hynek merged commit d626a90 into twisted:trunk May 8, 2023
16 checks passed
@chrysle chrysle deleted the no-traceback-towncrier-check branch May 9, 2023 05:17
@chrysle
Copy link
Contributor Author

chrysle commented May 9, 2023

I knew the OG mktemp is deprecated because of race condition problems but I was under the wrong impression that trial did it right.

@hynek So let's deprecate that thing, add a modern solution and do a great clean-out at towncrier!

Where can I volunteer?

@hynek
Copy link
Member

hynek commented May 10, 2023

That code lives in Twisted proper.

Dreamsorcerer added a commit to aio-libs/aiohttp that referenced this pull request Jul 28, 2023
Bumps [towncrier](https://github.com/twisted/towncrier) from 22.8.0 to
23.6.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/twisted/towncrier/releases">towncrier's
releases</a>.</em></p>
<blockquote>
<h2>Towncrier 23.6.0</h2>
<h1>towncrier 23.6.0 (2023-06-06)</h1>
<p>This is the last release to support Python 3.7.</p>
<h2>Features</h2>
<ul>
<li>
<p>Make <code>towncrier create</code> use the fragment counter rather
than failing on existing fragment names.</p>
<p>For example, if there is an existing fragment named
<code>123.feature</code>, then <code>towncrier create 123.feature</code>
will now create a fragment named <code>123.feature.1</code>. (<a
href="https://redirect.github.com/twisted/towncrier/issues/475">#475</a>)</p>
</li>
<li>
<p>Provide a default Markdown template if the configured filename ends
with <code>.md</code>.</p>
<p>The Markdown template uses the same rendered format as the default
<em>reStructuredText</em> template, but with a Markdown syntax. (<a
href="https://redirect.github.com/twisted/towncrier/issues/483">#483</a>)</p>
</li>
<li>
<p>Towncrier no longer depends on setuptools &amp; uses
importlib.resources (or its backport) instead. (<a
href="https://redirect.github.com/twisted/towncrier/issues/496">#496</a>)</p>
</li>
<li>
<p>Added pre-commit hooks for checking and updating news in projects
using pre-commit. (<a
href="https://redirect.github.com/twisted/towncrier/issues/498">#498</a>)</p>
</li>
<li>
<p>Calling <code>towncrier check</code> without an existing
configuration, will just show only an error message.</p>
<p>In previous versions, a traceback was generated instead of the error
message. (<a
href="https://redirect.github.com/twisted/towncrier/issues/501">#501</a>)</p>
</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>
<p>Fix creating fragment in a section not adding random characters.</p>
<p>For example, <code>towncrier create some_section/+.feature</code>
should end up as a fragment named something like
<code>news/some_section/+a4e22da1.feature</code>. (<a
href="https://redirect.github.com/twisted/towncrier/issues/468">#468</a>)</p>
</li>
<li>
<p>Fix the ReadTheDocs build for <code>towncrier</code> which was broken
due to the python version in use being 3.8. Upgrade to 3.11. (<a
href="https://redirect.github.com/twisted/towncrier/issues/509">#509</a>)</p>
</li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Moved man page to correct section (<a
href="https://redirect.github.com/twisted/towncrier/issues/470">#470</a>)</li>
<li>Update link to Quick Start in configuration.html to point to
Tutorial instead. (<a
href="https://redirect.github.com/twisted/towncrier/issues/504">#504</a>)</li>
<li>Add a note about the build command's <code>--version</code>
requiring the command to be explicitly passed. (<a
href="https://redirect.github.com/twisted/towncrier/issues/511">#511</a>)</li>
<li>Fix typos in the Pre-Commit docs. (<a
href="https://redirect.github.com/twisted/towncrier/issues/512">#512</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/twisted/towncrier/issues/459">#459</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/462">#462</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/472">#472</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/485">#485</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/486">#486</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/487">#487</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/488">#488</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/495">#495</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/497">#497</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/507">#507</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/1117">#1117</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/513">#513</a></li>
</ul>
<h2>Towncrier 23.6.0rc1</h2>
<h1>towncrier 23.6.0rc1 (2023-06-05)</h1>
<p>This is the last release to support Python 3.7.</p>
<h2>Features</h2>
<ul>
<li>Make <code>towncrier create</code> use the fragment counter rather
than failing on existing fragment names.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/twisted/towncrier/blob/trunk/NEWS.rst">towncrier's
changelog</a>.</em></p>
<blockquote>
<h1>towncrier 23.6.0 (2023-06-06)</h1>
<p>This is the last release to support Python 3.7.</p>
<h2>Features</h2>
<ul>
<li>
<p>Make <code>towncrier create</code> use the fragment counter rather
than failing
on existing fragment names.</p>
<p>For example, if there is an existing fragment named
<code>123.feature</code>,
then <code>towncrier create 123.feature</code> will now create a
fragment
named <code>123.feature.1</code>.
(<code>[#475](twisted/towncrier#475)
&lt;https://github.com/twisted/towncrier/issues/475&gt;</code>_)</p>
</li>
<li>
<p>Provide a default Markdown template if the configured filename ends
with <code>.md</code>.</p>
<p>The Markdown template uses the same rendered format as the default
<em>reStructuredText</em> template, but with a Markdown syntax.
(<code>[#483](twisted/towncrier#483)
&lt;https://github.com/twisted/towncrier/issues/483&gt;</code>_)</p>
</li>
<li>
<p>Towncrier no longer depends on setuptools &amp; uses
importlib.resources (or its backport) instead.
(<code>[#496](twisted/towncrier#496)
&lt;https://github.com/twisted/towncrier/issues/496&gt;</code>_)</p>
</li>
<li>
<p>Added pre-commit hooks for checking and updating news in projects
using pre-commit.
(<code>[#498](twisted/towncrier#498)
&lt;https://github.com/twisted/towncrier/issues/498&gt;</code>_)</p>
</li>
<li>
<p>Calling <code>towncrier check</code> without an existing
configuration, will just show only an error message.</p>
<p>In previous versions, a traceback was generated instead of the error
message. (<code>[#501](twisted/towncrier#501)
&lt;https://github.com/twisted/towncrier/issues/501&gt;</code>_)</p>
</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>
<p>Fix creating fragment in a section not adding random characters.</p>
<p>For example, <code>towncrier create some_section/+.feature</code>
should end up as a fragment named something like
<code>news/some_section/+a4e22da1.feature</code>.
(<code>[#468](twisted/towncrier#468)
&lt;https://github.com/twisted/towncrier/issues/468&gt;</code>_)</p>
</li>
<li>
<p>Fix the ReadTheDocs build for <code>towncrier</code> which was broken
due to the python version in use being 3.8. Upgrade to 3.11.
(<code>[#509](twisted/towncrier#509)
&lt;https://github.com/twisted/towncrier/issues/509&gt;</code>_)</p>
</li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Moved man page to correct section
(<code>[#470](twisted/towncrier#470)
&lt;https://github.com/twisted/towncrier/issues/470&gt;</code>_)</li>
<li>Update link to Quick Start in configuration.html to point to
Tutorial instead.
(<code>[#504](twisted/towncrier#504)
&lt;https://github.com/twisted/towncrier/issues/504&gt;</code>_)</li>
<li>Add a note about the build command's <code>--version</code>
requiring the command to be explicitly passed.
(<code>[#511](twisted/towncrier#511)
&lt;https://github.com/twisted/towncrier/issues/511&gt;</code>_)</li>
<li>Fix typos in the Pre-Commit docs.
(<code>[#512](twisted/towncrier#512)
&lt;https://github.com/twisted/towncrier/issues/512&gt;</code>_)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><code>[#459](twisted/towncrier#459)
&lt;https://github.com/twisted/towncrier/issues/459&gt;</code><em>,
<code>[#462](twisted/towncrier#462)
&lt;https://github.com/twisted/towncrier/issues/462&gt;</code></em>,
<code>[#472](twisted/towncrier#472)
&lt;https://github.com/twisted/towncrier/issues/472&gt;</code><em>,
<code>[#485](twisted/towncrier#485)
&lt;https://github.com/twisted/towncrier/issues/485&gt;</code></em>,
<code>[#486](twisted/towncrier#486)
&lt;https://github.com/twisted/towncrier/issues/486&gt;</code><em>,
<code>[#487](twisted/towncrier#487)
&lt;https://github.com/twisted/towncrier/issues/487&gt;</code></em>,
<code>[#488](twisted/towncrier#488)
&lt;https://github.com/twisted/towncrier/issues/488&gt;</code><em>,
<code>[#495](twisted/towncrier#495)
&lt;https://github.com/twisted/towncrier/issues/495&gt;</code></em>,
<code>[#497](twisted/towncrier#497)
&lt;https://github.com/twisted/towncrier/issues/497&gt;</code><em>,
<code>[#507](twisted/towncrier#507)
&lt;https://github.com/twisted/towncrier/issues/507&gt;</code></em>,
<code>[#1117](https://github.com/twisted/towncrier/issues/1117)
&lt;https://github.com/twisted/towncrier/issues/1117&gt;</code><em>,
<code>[#513](twisted/towncrier#513)
&lt;https://github.com/twisted/towncrier/issues/513&gt;</code></em></li>
</ul>
<p>towncrier 22.12.0 (2022-12-21)</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/twisted/towncrier/commit/22a5b015e6404900bfaed4d218cacbd09fc43916"><code>22a5b01</code></a>
Update for final release.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/0d9f08708a29a65050c907995e05180d5320fa6f"><code>0d9f087</code></a>
Fix news file.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/32d7034b82bef8b9f36b6aaec2e9c0de328de222"><code>32d7034</code></a>
Remove deploy env requirement.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/13e6d0c52e5dd63bf6fbf5434731dc4997ecfc82"><code>13e6d0c</code></a>
Conditionally run the whole publish.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/6b9b85a252cc10a40d024710777df48b53740b9a"><code>6b9b85a</code></a>
Add dedicated environment.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/3deaebd35a38bf89e1e0d92bf7822b3ffa61bda0"><code>3deaebd</code></a>
Add a top title to the release notes.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/a94f23c5e3e410bffd44cefbd961192d28fe76f1"><code>a94f23c</code></a>
Fix NEWS.rst formatting.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/3ba6cd1a1830d53266129770556c3d3ea593fcd6"><code>3ba6cd1</code></a>
Include the release notes in the docs to make it easyier to review the
RST fo...</li>
<li><a
href="https://github.com/twisted/towncrier/commit/1888debeb12afef9406ac997ad1f9e554423832c"><code>1888deb</code></a>
Add info about 3.7.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/b7a561cf5a85fce14e4abc1ea17d8d9ee59d2e60"><code>b7a561c</code></a>
Update for release candidate.</li>
<li>Additional commits viewable in <a
href="https://github.com/twisted/towncrier/compare/22.8.0...23.6.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=towncrier&package-manager=pip&previous-version=22.8.0&new-version=23.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sam Bull <git@sambull.org>
github-actions bot pushed a commit to aio-libs/aiohttp that referenced this pull request Jul 29, 2023
Bumps [towncrier](https://github.com/twisted/towncrier) from 22.8.0 to
23.6.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/twisted/towncrier/releases">towncrier's
releases</a>.</em></p>
<blockquote>
<h2>Towncrier 23.6.0</h2>
<h1>towncrier 23.6.0 (2023-06-06)</h1>
<p>This is the last release to support Python 3.7.</p>
<h2>Features</h2>
<ul>
<li>
<p>Make <code>towncrier create</code> use the fragment counter rather
than failing on existing fragment names.</p>
<p>For example, if there is an existing fragment named
<code>123.feature</code>, then <code>towncrier create 123.feature</code>
will now create a fragment named <code>123.feature.1</code>. (<a
href="https://redirect.github.com/twisted/towncrier/issues/475">#475</a>)</p>
</li>
<li>
<p>Provide a default Markdown template if the configured filename ends
with <code>.md</code>.</p>
<p>The Markdown template uses the same rendered format as the default
<em>reStructuredText</em> template, but with a Markdown syntax. (<a
href="https://redirect.github.com/twisted/towncrier/issues/483">#483</a>)</p>
</li>
<li>
<p>Towncrier no longer depends on setuptools &amp; uses
importlib.resources (or its backport) instead. (<a
href="https://redirect.github.com/twisted/towncrier/issues/496">#496</a>)</p>
</li>
<li>
<p>Added pre-commit hooks for checking and updating news in projects
using pre-commit. (<a
href="https://redirect.github.com/twisted/towncrier/issues/498">#498</a>)</p>
</li>
<li>
<p>Calling <code>towncrier check</code> without an existing
configuration, will just show only an error message.</p>
<p>In previous versions, a traceback was generated instead of the error
message. (<a
href="https://redirect.github.com/twisted/towncrier/issues/501">#501</a>)</p>
</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>
<p>Fix creating fragment in a section not adding random characters.</p>
<p>For example, <code>towncrier create some_section/+.feature</code>
should end up as a fragment named something like
<code>news/some_section/+a4e22da1.feature</code>. (<a
href="https://redirect.github.com/twisted/towncrier/issues/468">#468</a>)</p>
</li>
<li>
<p>Fix the ReadTheDocs build for <code>towncrier</code> which was broken
due to the python version in use being 3.8. Upgrade to 3.11. (<a
href="https://redirect.github.com/twisted/towncrier/issues/509">#509</a>)</p>
</li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Moved man page to correct section (<a
href="https://redirect.github.com/twisted/towncrier/issues/470">#470</a>)</li>
<li>Update link to Quick Start in configuration.html to point to
Tutorial instead. (<a
href="https://redirect.github.com/twisted/towncrier/issues/504">#504</a>)</li>
<li>Add a note about the build command's <code>--version</code>
requiring the command to be explicitly passed. (<a
href="https://redirect.github.com/twisted/towncrier/issues/511">#511</a>)</li>
<li>Fix typos in the Pre-Commit docs. (<a
href="https://redirect.github.com/twisted/towncrier/issues/512">#512</a>)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><a
href="https://redirect.github.com/twisted/towncrier/issues/459">#459</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/462">#462</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/472">#472</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/485">#485</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/486">#486</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/487">#487</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/488">#488</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/495">#495</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/497">#497</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/507">#507</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/1117">#1117</a>,
<a
href="https://redirect.github.com/twisted/towncrier/issues/513">#513</a></li>
</ul>
<h2>Towncrier 23.6.0rc1</h2>
<h1>towncrier 23.6.0rc1 (2023-06-05)</h1>
<p>This is the last release to support Python 3.7.</p>
<h2>Features</h2>
<ul>
<li>Make <code>towncrier create</code> use the fragment counter rather
than failing on existing fragment names.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/twisted/towncrier/blob/trunk/NEWS.rst">towncrier's
changelog</a>.</em></p>
<blockquote>
<h1>towncrier 23.6.0 (2023-06-06)</h1>
<p>This is the last release to support Python 3.7.</p>
<h2>Features</h2>
<ul>
<li>
<p>Make <code>towncrier create</code> use the fragment counter rather
than failing
on existing fragment names.</p>
<p>For example, if there is an existing fragment named
<code>123.feature</code>,
then <code>towncrier create 123.feature</code> will now create a
fragment
named <code>123.feature.1</code>.
(<code>[#475](twisted/towncrier#475)
&lt;https://github.com/twisted/towncrier/issues/475&gt;</code>_)</p>
</li>
<li>
<p>Provide a default Markdown template if the configured filename ends
with <code>.md</code>.</p>
<p>The Markdown template uses the same rendered format as the default
<em>reStructuredText</em> template, but with a Markdown syntax.
(<code>[#483](twisted/towncrier#483)
&lt;https://github.com/twisted/towncrier/issues/483&gt;</code>_)</p>
</li>
<li>
<p>Towncrier no longer depends on setuptools &amp; uses
importlib.resources (or its backport) instead.
(<code>[#496](twisted/towncrier#496)
&lt;https://github.com/twisted/towncrier/issues/496&gt;</code>_)</p>
</li>
<li>
<p>Added pre-commit hooks for checking and updating news in projects
using pre-commit.
(<code>[#498](twisted/towncrier#498)
&lt;https://github.com/twisted/towncrier/issues/498&gt;</code>_)</p>
</li>
<li>
<p>Calling <code>towncrier check</code> without an existing
configuration, will just show only an error message.</p>
<p>In previous versions, a traceback was generated instead of the error
message. (<code>[#501](twisted/towncrier#501)
&lt;https://github.com/twisted/towncrier/issues/501&gt;</code>_)</p>
</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>
<p>Fix creating fragment in a section not adding random characters.</p>
<p>For example, <code>towncrier create some_section/+.feature</code>
should end up as a fragment named something like
<code>news/some_section/+a4e22da1.feature</code>.
(<code>[#468](twisted/towncrier#468)
&lt;https://github.com/twisted/towncrier/issues/468&gt;</code>_)</p>
</li>
<li>
<p>Fix the ReadTheDocs build for <code>towncrier</code> which was broken
due to the python version in use being 3.8. Upgrade to 3.11.
(<code>[#509](twisted/towncrier#509)
&lt;https://github.com/twisted/towncrier/issues/509&gt;</code>_)</p>
</li>
</ul>
<h2>Improved Documentation</h2>
<ul>
<li>Moved man page to correct section
(<code>[#470](twisted/towncrier#470)
&lt;https://github.com/twisted/towncrier/issues/470&gt;</code>_)</li>
<li>Update link to Quick Start in configuration.html to point to
Tutorial instead.
(<code>[#504](twisted/towncrier#504)
&lt;https://github.com/twisted/towncrier/issues/504&gt;</code>_)</li>
<li>Add a note about the build command's <code>--version</code>
requiring the command to be explicitly passed.
(<code>[#511](twisted/towncrier#511)
&lt;https://github.com/twisted/towncrier/issues/511&gt;</code>_)</li>
<li>Fix typos in the Pre-Commit docs.
(<code>[#512](twisted/towncrier#512)
&lt;https://github.com/twisted/towncrier/issues/512&gt;</code>_)</li>
</ul>
<h2>Misc</h2>
<ul>
<li><code>[#459](twisted/towncrier#459)
&lt;https://github.com/twisted/towncrier/issues/459&gt;</code><em>,
<code>[#462](twisted/towncrier#462)
&lt;https://github.com/twisted/towncrier/issues/462&gt;</code></em>,
<code>[#472](twisted/towncrier#472)
&lt;https://github.com/twisted/towncrier/issues/472&gt;</code><em>,
<code>[#485](twisted/towncrier#485)
&lt;https://github.com/twisted/towncrier/issues/485&gt;</code></em>,
<code>[#486](twisted/towncrier#486)
&lt;https://github.com/twisted/towncrier/issues/486&gt;</code><em>,
<code>[#487](twisted/towncrier#487)
&lt;https://github.com/twisted/towncrier/issues/487&gt;</code></em>,
<code>[#488](twisted/towncrier#488)
&lt;https://github.com/twisted/towncrier/issues/488&gt;</code><em>,
<code>[#495](twisted/towncrier#495)
&lt;https://github.com/twisted/towncrier/issues/495&gt;</code></em>,
<code>[#497](twisted/towncrier#497)
&lt;https://github.com/twisted/towncrier/issues/497&gt;</code><em>,
<code>[#507](twisted/towncrier#507)
&lt;https://github.com/twisted/towncrier/issues/507&gt;</code></em>,
<code>[#1117](https://github.com/twisted/towncrier/issues/1117)
&lt;https://github.com/twisted/towncrier/issues/1117&gt;</code><em>,
<code>[#513](twisted/towncrier#513)
&lt;https://github.com/twisted/towncrier/issues/513&gt;</code></em></li>
</ul>
<p>towncrier 22.12.0 (2022-12-21)</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/twisted/towncrier/commit/22a5b015e6404900bfaed4d218cacbd09fc43916"><code>22a5b01</code></a>
Update for final release.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/0d9f08708a29a65050c907995e05180d5320fa6f"><code>0d9f087</code></a>
Fix news file.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/32d7034b82bef8b9f36b6aaec2e9c0de328de222"><code>32d7034</code></a>
Remove deploy env requirement.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/13e6d0c52e5dd63bf6fbf5434731dc4997ecfc82"><code>13e6d0c</code></a>
Conditionally run the whole publish.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/6b9b85a252cc10a40d024710777df48b53740b9a"><code>6b9b85a</code></a>
Add dedicated environment.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/3deaebd35a38bf89e1e0d92bf7822b3ffa61bda0"><code>3deaebd</code></a>
Add a top title to the release notes.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/a94f23c5e3e410bffd44cefbd961192d28fe76f1"><code>a94f23c</code></a>
Fix NEWS.rst formatting.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/3ba6cd1a1830d53266129770556c3d3ea593fcd6"><code>3ba6cd1</code></a>
Include the release notes in the docs to make it easyier to review the
RST fo...</li>
<li><a
href="https://github.com/twisted/towncrier/commit/1888debeb12afef9406ac997ad1f9e554423832c"><code>1888deb</code></a>
Add info about 3.7.</li>
<li><a
href="https://github.com/twisted/towncrier/commit/b7a561cf5a85fce14e4abc1ea17d8d9ee59d2e60"><code>b7a561c</code></a>
Update for release candidate.</li>
<li>Additional commits viewable in <a
href="https://github.com/twisted/towncrier/compare/22.8.0...23.6.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=towncrier&package-manager=pip&previous-version=22.8.0&new-version=23.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sam Bull <git@sambull.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Avoid exception traceback with "towncrier check"
4 participants