-
Notifications
You must be signed in to change notification settings - Fork 306
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
Use the stdlib importlib.metadata when available #1024
Conversation
The use of importlib_metadata relies on features that were introduced in python 3.10. Aside for that, it should be fine to use the stdlib directly. Fixes pypa#773
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks fine to me. importlib_metadata 3.6
was included in Python 3.10, so it's unlikely that twine is reliant on features added in later Pythons or releases of importlib_metadata, and the tests seem to confirm that.
The refreshed CI has two issues resulting in failures:
The coverage thing is interesting because if you could collect coverage data across multiple CI jobs and analyze them together, I bet it would not fail. It's just failing because version-dependent code branches. I know that external services can aggregate coverage data across CI runs (even more useful when you have OS-specific branches!) but I'm unfamiliar with the available options for local analysis inside the action. Maybe copying coverage data to an artifact and analyzing it in a later job? |
My vote is to ignore the coverage concerns or exclude them. I hope eventually to learn how to collect the coverage results together, but I haven't yet done so and when I do, I'll do that in jaraco/skeleton and/or coherent-oss and not for one project at a time. |
Great, works for me. :) I wasn't going to have time to look into that either way. |
Actually there's a blog post from Hynek that makes lays out how to do this well. It's not hard |
It seems like fixing the coverage strategy is out of scope for the proposed change and is already tracked in #954. |
CI is broken pending the merge of #1123. |
The 5.1.1 release has a workaround for the pkginfo error. |
8c992b7
to
b9d2198
Compare
In the latest commit, I've consolidated the compatibility logic into its own module, a module that clearly indicates its candidacy for removal after Python 3.9 is dropped. |
b9d2198
to
152b545
Compare
Now the tests are failing with Hmm. It seems to be an error in mypy. Changing the import to |
c220389
to
946c445
Compare
Bumps [twine](https://github.com/pypa/twine) from 5.1.1 to 6.0.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/twine/blob/main/docs/changelog.rst">twine's changelog</a>.</em></p> <blockquote> <h2>Twine 6.0.1 (2024-11-30)</h2> <p>Bugfixes ^^^^^^^^</p> <ul> <li>Fixed a regression where <code>twine check</code> would fail to expand wildcards, e.g. <code>twine check 'dist/*'</code>. (<code>[#1188](pypa/twine#1188) <https://github.com/pypa/twine/issues/1188></code>_)</li> </ul> <p>Misc ^^^^</p> <ul> <li><code>[#1184](pypa/twine#1184) <https://github.com/pypa/twine/issues/1184></code>_</li> </ul> <h2>Twine 6.0.0 (2024-11-29)</h2> <p>Bugfixes ^^^^^^^^</p> <ul> <li>Restore support for pkginfo 1.11 (<code>[#1116](pypa/twine#1116) <https://github.com/pypa/twine/issues/1116></code>_)</li> </ul> <p>Deprecations and Removals ^^^^^^^^^^^^^^^^^^^^^^^^^</p> <ul> <li>Username for PyPI and Test PyPI now defaults to <strong>token</strong> but no longer overrides a username configured in the environment or supplied on the command line. Workflows still supplying anything other than <strong>token</strong> for the username when uploading to PyPI or Test PyPI will now fail. Either supply <strong>token</strong> or do not supply a username at all. (<code>[#1121](pypa/twine#1121) <https://github.com/pypa/twine/issues/1121></code>_)</li> </ul> <p>Misc ^^^^</p> <ul> <li><code>[#1024](pypa/twine#1024) <https://github.com/pypa/twine/issues/1024></code>_</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/twine/commit/a723876fd4398be57838873e60867566b6220a53"><code>a723876</code></a> Merge pull request <a href="https://redirect.github.com/pypa/twine/issues/1189">#1189</a> from pypa/release-6.0.1</li> <li><a href="https://github.com/pypa/twine/commit/9a24828cbded183d02d0b3f5a8af41b7764dda98"><code>9a24828</code></a> Update changelog for 6.0.1</li> <li><a href="https://github.com/pypa/twine/commit/a0170058016cb7ed9554ef648a48c1899917d255"><code>a017005</code></a> Merge pull request <a href="https://redirect.github.com/pypa/twine/issues/1188">#1188</a> from pypa/ww/fix-twine-check-glob</li> <li><a href="https://github.com/pypa/twine/commit/e98f03bb0932e364065f827f804806bacccc436d"><code>e98f03b</code></a> check: fix handling of non-shell-expanded globs</li> <li><a href="https://github.com/pypa/twine/commit/873f33ed40bb38407a87abba6cd2a65f35eb6286"><code>873f33e</code></a> build(deps): bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 (<a href="https://redirect.github.com/pypa/twine/issues/1175">#1175</a>)</li> <li><a href="https://github.com/pypa/twine/commit/067412e84cfdd39929d838075ef8fa3d2cb0d733"><code>067412e</code></a> Use brackets for the default value of option arguments (<a href="https://redirect.github.com/pypa/twine/issues/1149">#1149</a>)</li> <li><a href="https://github.com/pypa/twine/commit/f32dc3545b52389dac0cbd28059833d48c36b4f4"><code>f32dc35</code></a> Apply ruff/Perflint rule (<a href="https://redirect.github.com/pypa/twine/issues/1136">#1136</a>)</li> <li><a href="https://github.com/pypa/twine/commit/aa58273f52afab52d3dd00b2c6cf3b472c6ee20d"><code>aa58273</code></a> Don't require importlib_metadata on Python 3.10+</li> <li><a href="https://github.com/pypa/twine/commit/675565f35c6d0adc435c9da6cb123f41dcaeffb8"><code>675565f</code></a> changelog: record <a href="https://redirect.github.com/pypa/twine/issues/1184">#1184</a></li> <li><a href="https://github.com/pypa/twine/commit/80cc58c0ddbd68b107c4709be5072f3e309b843c"><code>80cc58c</code></a> chore: mark 3.13 as explicitly supported</li> <li>Additional commits viewable in <a href="https://github.com/pypa/twine/compare/v5.1.1...6.0.1">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=twine&package-manager=pip&previous-version=5.1.1&new-version=6.0.1)](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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@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] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ols with 6 updates (#399) Bumps the package-dependencies group in /rats-devtools with 6 updates: | Package | From | To | | --- | --- | --- | | [twine](https://github.com/pypa/twine) | `5.1.1` | `6.0.1` | | [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.5.46` | `9.5.48` | | [coverage](https://github.com/nedbat/coveragepy) | `7.6.8` | `7.6.9` | | [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.389` | `1.1.390` | | [pytest](https://github.com/pytest-dev/pytest) | `8.3.3` | `8.3.4` | | [ruff](https://github.com/astral-sh/ruff) | `0.8.0` | `0.8.2` | Updates `twine` from 5.1.1 to 6.0.1 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/twine/blob/main/docs/changelog.rst">twine's changelog</a>.</em></p> <blockquote> <h2>Twine 6.0.1 (2024-11-30)</h2> <p>Bugfixes ^^^^^^^^</p> <ul> <li>Fixed a regression where <code>twine check</code> would fail to expand wildcards, e.g. <code>twine check 'dist/*'</code>. (<code>[#1188](pypa/twine#1188) <https://github.com/pypa/twine/issues/1188></code>_)</li> </ul> <p>Misc ^^^^</p> <ul> <li><code>[#1184](pypa/twine#1184) <https://github.com/pypa/twine/issues/1184></code>_</li> </ul> <h2>Twine 6.0.0 (2024-11-29)</h2> <p>Bugfixes ^^^^^^^^</p> <ul> <li>Restore support for pkginfo 1.11 (<code>[#1116](pypa/twine#1116) <https://github.com/pypa/twine/issues/1116></code>_)</li> </ul> <p>Deprecations and Removals ^^^^^^^^^^^^^^^^^^^^^^^^^</p> <ul> <li>Username for PyPI and Test PyPI now defaults to <strong>token</strong> but no longer overrides a username configured in the environment or supplied on the command line. Workflows still supplying anything other than <strong>token</strong> for the username when uploading to PyPI or Test PyPI will now fail. Either supply <strong>token</strong> or do not supply a username at all. (<code>[#1121](pypa/twine#1121) <https://github.com/pypa/twine/issues/1121></code>_)</li> </ul> <p>Misc ^^^^</p> <ul> <li><code>[#1024](pypa/twine#1024) <https://github.com/pypa/twine/issues/1024></code>_</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/twine/commit/a723876fd4398be57838873e60867566b6220a53"><code>a723876</code></a> Merge pull request <a href="https://redirect.github.com/pypa/twine/issues/1189">#1189</a> from pypa/release-6.0.1</li> <li><a href="https://github.com/pypa/twine/commit/9a24828cbded183d02d0b3f5a8af41b7764dda98"><code>9a24828</code></a> Update changelog for 6.0.1</li> <li><a href="https://github.com/pypa/twine/commit/a0170058016cb7ed9554ef648a48c1899917d255"><code>a017005</code></a> Merge pull request <a href="https://redirect.github.com/pypa/twine/issues/1188">#1188</a> from pypa/ww/fix-twine-check-glob</li> <li><a href="https://github.com/pypa/twine/commit/e98f03bb0932e364065f827f804806bacccc436d"><code>e98f03b</code></a> check: fix handling of non-shell-expanded globs</li> <li><a href="https://github.com/pypa/twine/commit/873f33ed40bb38407a87abba6cd2a65f35eb6286"><code>873f33e</code></a> build(deps): bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 (<a href="https://redirect.github.com/pypa/twine/issues/1175">#1175</a>)</li> <li><a href="https://github.com/pypa/twine/commit/067412e84cfdd39929d838075ef8fa3d2cb0d733"><code>067412e</code></a> Use brackets for the default value of option arguments (<a href="https://redirect.github.com/pypa/twine/issues/1149">#1149</a>)</li> <li><a href="https://github.com/pypa/twine/commit/f32dc3545b52389dac0cbd28059833d48c36b4f4"><code>f32dc35</code></a> Apply ruff/Perflint rule (<a href="https://redirect.github.com/pypa/twine/issues/1136">#1136</a>)</li> <li><a href="https://github.com/pypa/twine/commit/aa58273f52afab52d3dd00b2c6cf3b472c6ee20d"><code>aa58273</code></a> Don't require importlib_metadata on Python 3.10+</li> <li><a href="https://github.com/pypa/twine/commit/675565f35c6d0adc435c9da6cb123f41dcaeffb8"><code>675565f</code></a> changelog: record <a href="https://redirect.github.com/pypa/twine/issues/1184">#1184</a></li> <li><a href="https://github.com/pypa/twine/commit/80cc58c0ddbd68b107c4709be5072f3e309b843c"><code>80cc58c</code></a> chore: mark 3.13 as explicitly supported</li> <li>Additional commits viewable in <a href="https://github.com/pypa/twine/compare/v5.1.1...6.0.1">compare view</a></li> </ul> </details> <br /> Updates `mkdocs-material` from 9.5.46 to 9.5.48 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/squidfunk/mkdocs-material/releases">mkdocs-material's releases</a>.</em></p> <blockquote> <h2>mkdocs-material-9.5.48</h2> <ul> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7774">#7774</a>: Disabling social cards doesn't work</li> </ul> <h2>mkdocs-material-9.5.47</h2> <ul> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7750">#7750</a>: Numeric tags break search</li> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7748">#7748</a>: Blog plugin breaks when using future drafts (9.5.45 regression)</li> </ul> <p>Thanks go to <a href="https://github.com/perpil"><code>@perpil</code></a> for their contributions</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG">mkdocs-material's changelog</a>.</em></p> <blockquote> <p>mkdocs-material-9.5.48 (2024-12-08)</p> <ul> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7774">#7774</a>: Disabling social cards doesn't work</li> </ul> <p>mkdocs-material-9.5.47 (2024-12-01)</p> <ul> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7750">#7750</a>: Numeric tags break search</li> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7748">#7748</a>: Blog plugin breaks when using future drafts (9.5.45 regression)</li> </ul> <p>mkdocs-material-9.5.46 (2024-11-25)</p> <ul> <li>Added support for removing preload hints in privacy plugin</li> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7734">#7734</a>: Code blocks in h5 headlines are uppercased</li> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7725">#7725</a>: Blog plugin crashing on missing timezone (9.5.45 regression)</li> </ul> <p>mkdocs-material-9.5.45 (2024-11-20)</p> <ul> <li>Reduced size of Docker image through multi-stage build</li> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7708">#7708</a>: Blog plugin crashing on YAML dates with timezones</li> </ul> <p>mkdocs-material-9.5.44 (2024-11-05)</p> <ul> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7672">#7672</a>: Font CSS 404's when using privacy plugin (9.5.43 regression)</li> </ul> <p>mkdocs-material-9.5.43 (2024-10-31)</p> <ul> <li>Added support for external images in SVGs in privacy plugin</li> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7651">#7651</a>: Privacy plugin doesn't handle quoted URLs in CSS</li> </ul> <p>mkdocs-material-9.5.42 (2024-10-20)</p> <ul> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7625">#7625</a>: Invalid encoding of boolean attributes in privacy plugin</li> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7624">#7624</a>: Crash when disabling privacy plugin (9.5.41 regression)</li> </ul> <p>mkdocs-material-9.5.41 (2024-10-15)</p> <ul> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7619">#7619</a>: Improved tooltip on logo disappears after instant navigation</li> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7616">#7616</a>: Race condition in built-in privacy plugin when inlining assets</li> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7615">#7615</a>: Comments and "Was this page helpful?" visible when printing</li> </ul> <p>mkdocs-material-9.5.40 (2024-10-10)</p> <ul> <li>Updated Latvian translations</li> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7597">#7597</a>: Social cards not using site name on home page</li> </ul> <p>mkdocs-material-9.5.39+insiders-4.53.14 (2024-09-29)</p> <ul> <li>Fixed <a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7567">#7567</a>: Empty headlines when using typeset plugin with anchorlinks</li> </ul> <p>mkdocs-material-9.5.39 (2024-09-29)</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/squidfunk/mkdocs-material/commit/622bf7a6916ec11b4f8d38db40722096ab861b59"><code>622bf7a</code></a> Prepare 9.5.48 release</li> <li><a href="https://github.com/squidfunk/mkdocs-material/commit/bedd3fb2c806c4f45ce9857ebf116c2f64590d0f"><code>bedd3fb</code></a> Updated dependencies</li> <li><a href="https://github.com/squidfunk/mkdocs-material/commit/a7dc57c23935c0420b01b78c13d9058fc057a16f"><code>a7dc57c</code></a> Fixed disabling of social cards</li> <li><a href="https://github.com/squidfunk/mkdocs-material/commit/6c796c06ecc0fb641ad302c784822139c2d3807a"><code>6c796c0</code></a> Documentation</li> <li><a href="https://github.com/squidfunk/mkdocs-material/commit/eab6959d0cf9bc8755bd4a914cd43ad2073e392d"><code>eab6959</code></a> Documentation</li> <li><a href="https://github.com/squidfunk/mkdocs-material/commit/8ff76b03275e4ff03f64d124cae352baeeeefb02"><code>8ff76b0</code></a> Updated dependencies</li> <li><a href="https://github.com/squidfunk/mkdocs-material/commit/fbf9d02806fbc7a5a10ed158fe2840f84f9a6050"><code>fbf9d02</code></a> Updated dependencies</li> <li><a href="https://github.com/squidfunk/mkdocs-material/commit/65997ae16ebe4c94c015dea968c3ec5d85a1060e"><code>65997ae</code></a> Updated dependencies</li> <li><a href="https://github.com/squidfunk/mkdocs-material/commit/f6b67b1b77f6eaaeb9c359bc5666827c4a6efb16"><code>f6b67b1</code></a> Prepare 9.5.47 release</li> <li><a href="https://github.com/squidfunk/mkdocs-material/commit/60c0dc1b8af71cef004eb7a91ca6ea8bae1e76cc"><code>60c0dc1</code></a> Documentation (<a href="https://redirect.github.com/squidfunk/mkdocs-material/issues/7756">#7756</a>)</li> <li>Additional commits viewable in <a href="https://github.com/squidfunk/mkdocs-material/compare/9.5.46...9.5.48">compare view</a></li> </ul> </details> <br /> Updates `coverage` from 7.6.8 to 7.6.9 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst">coverage's changelog</a>.</em></p> <blockquote> <h2>Version 7.6.9 — 2024-12-06</h2> <ul> <li>Fix: <code>Tomas Uribe fixed <pull 1901_></code>_ a performance problem in the XML report. Large code bases should produce XML reports much faster now.</li> </ul> <p>.. _pull 1901: <a href="https://redirect.github.com/nedbat/coveragepy/pull/1901">nedbat/coveragepy#1901</a></p> <p>.. _changes_7-6-8:</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/nedbat/coveragepy/commit/daac76dde1681d968f37095cacc551b464888753"><code>daac76d</code></a> docs: sample HTML for 7.6.9</li> <li><a href="https://github.com/nedbat/coveragepy/commit/f7d7e42705083b8c124fcc8be64da555095adfc7"><code>f7d7e42</code></a> docs: prep for 7.6.9</li> <li><a href="https://github.com/nedbat/coveragepy/commit/8fe3b2bad5de5e750c104ad2ddb251a0500dd146"><code>8fe3b2b</code></a> docs: thanks, Tomas Uribe for <a href="https://redirect.github.com/nedbat/coveragepy/issues/1901">#1901</a></li> <li><a href="https://github.com/nedbat/coveragepy/commit/346cfc03885571fd448f8218a8b9f12836c2fcb2"><code>346cfc0</code></a> fix: use set instead of list for arcs_executed, fixes poor performance (<a href="https://redirect.github.com/nedbat/coveragepy/issues/1901">#1901</a>)</li> <li><a href="https://github.com/nedbat/coveragepy/commit/484678e8d7c3b07e455e4c5bbce6f4a5bd03a9b4"><code>484678e</code></a> fix: COVERAGE_ONE_CORE should mean ctrace if possible</li> <li><a href="https://github.com/nedbat/coveragepy/commit/37451ed089cb4c5d25e2fe6c13485407d01be176"><code>37451ed</code></a> chore: make upgrade doc_upgrade</li> <li><a href="https://github.com/nedbat/coveragepy/commit/bd23445b181387b9c646d6dbf096b624bbc5953b"><code>bd23445</code></a> chore: bump the action-dependencies group with 2 updates (<a href="https://redirect.github.com/nedbat/coveragepy/issues/1899">#1899</a>)</li> <li><a href="https://github.com/nedbat/coveragepy/commit/01cf50c7d9131af2de9aea1e3573bdff1dc48110"><code>01cf50c</code></a> test: add a test to satisfy a condition in results.py</li> <li><a href="https://github.com/nedbat/coveragepy/commit/74d3c50af1563b6cbd9ab1ef580267dc55982922"><code>74d3c50</code></a> chore: make upgrade</li> <li><a href="https://github.com/nedbat/coveragepy/commit/f3b269cc5d5f1683aba34f57c7d5b991c5dd3743"><code>f3b269c</code></a> build: only comment once on an issue mentioned twice</li> <li>Additional commits viewable in <a href="https://github.com/nedbat/coveragepy/compare/7.6.8...7.6.9">compare view</a></li> </ul> </details> <br /> Updates `pyright` from 1.1.389 to 1.1.390 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/RobertCraigie/pyright-python/commit/ee025bc6947a746a7fe6d392eefb315f665b28d5"><code>ee025bc</code></a> Pyright NPM Package update to 1.1.390 (<a href="https://redirect.github.com/RobertCraigie/pyright-python/issues/325">#325</a>)</li> <li>See full diff in <a href="https://github.com/RobertCraigie/pyright-python/compare/v1.1.389...v1.1.390">compare view</a></li> </ul> </details> <br /> Updates `pytest` from 8.3.3 to 8.3.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest/releases">pytest's releases</a>.</em></p> <blockquote> <h2>8.3.4</h2> <h1>pytest 8.3.4 (2024-12-01)</h1> <h2>Bug fixes</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12592">#12592</a>: Fixed <code>KeyError</code>{.interpreted-text role="class"} crash when using <code>--import-mode=importlib</code> in a directory layout where a directory contains a child directory with the same name.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12818">#12818</a>: Assertion rewriting now preserves the source ranges of the original instructions, making it play well with tools that deal with the <code>AST</code>, like <a href="https://github.com/alexmojaki/executing">executing</a>.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12849">#12849</a>: ANSI escape codes for colored output now handled correctly in <code>pytest.fail</code>{.interpreted-text role="func"} with [pytrace=False]{.title-ref}.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/9353">#9353</a>: <code>pytest.approx</code>{.interpreted-text role="func"} now uses strict equality when given booleans.</p> </li> </ul> <h2>Improved documentation</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/10558">#10558</a>: Fix ambiguous docstring of <code>pytest.Config.getoption</code>{.interpreted-text role="func"}.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/10829">#10829</a>: Improve documentation on the current handling of the <code>--basetemp</code> option and its lack of retention functionality (<code>temporary directory location and retention</code>{.interpreted-text role="ref"}).</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12866">#12866</a>: Improved cross-references concerning the <code>recwarn</code>{.interpreted-text role="fixture"} fixture.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12966">#12966</a>: Clarify <code>filterwarnings</code>{.interpreted-text role="ref"} docs on filter precedence/order when using multiple <code>@pytest.mark.filterwarnings <pytest.mark.filterwarnings ref></code>{.interpreted-text role="ref"} marks.</p> </li> </ul> <h2>Contributor-facing changes</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/12497">#12497</a>: Fixed two failing pdb-related tests on Python 3.13.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest/commit/53f8b4e634c5066c4f797a87b20060edbb086240"><code>53f8b4e</code></a> Update pypa/gh-action-pypi-publish to v1.12.2</li> <li><a href="https://github.com/pytest-dev/pytest/commit/98dff36c9dc0a44881e9e90daf381f9079adf4cc"><code>98dff36</code></a> Prepare release version 8.3.4</li> <li><a href="https://github.com/pytest-dev/pytest/commit/1b474e221d5ced2c8c73924a0087e6e24ab6cd61"><code>1b474e2</code></a> approx: use exact comparison for bool (<a href="https://redirect.github.com/pytest-dev/pytest/issues/13013">#13013</a>)</li> <li><a href="https://github.com/pytest-dev/pytest/commit/b541721529feba7fcd0d069fa2437a817f340eba"><code>b541721</code></a> docs: Fix wrong statement about sys.modules with importlib import mode (<a href="https://redirect.github.com/pytest-dev/pytest/issues/1298">#1298</a>...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/16cb87b65036300d74472cd55eebca8fc3f8e703"><code>16cb87b</code></a> pytest.fail: fix ANSI escape codes for colored output (<a href="https://redirect.github.com/pytest-dev/pytest/issues/12959">#12959</a>) (<a href="https://redirect.github.com/pytest-dev/pytest/issues/12990">#12990</a>)</li> <li><a href="https://github.com/pytest-dev/pytest/commit/be6bc812b02454b2915755dd76ce74b877aeafad"><code>be6bc81</code></a> Issue <a href="https://redirect.github.com/pytest-dev/pytest/issues/12966">#12966</a> Clarify filterwarnings docs on precedence when using multiple ma...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/7aeb72bbc67bd1b8271eee57caa0a4e9b07038fc"><code>7aeb72b</code></a> Improve docs on basetemp and retention (<a href="https://redirect.github.com/pytest-dev/pytest/issues/12912">#12912</a>) (<a href="https://redirect.github.com/pytest-dev/pytest/issues/12928">#12928</a>)</li> <li><a href="https://github.com/pytest-dev/pytest/commit/c8758414cfd1646f273842e8f9292b2c15dcfcfb"><code>c875841</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/12917">#12917</a> from pytest-dev/patchback/backports/8.3.x/ded1f44e5...</li> <li><a href="https://github.com/pytest-dev/pytest/commit/6502816d977fcdbd65a3f4d8a63c0ce7c1f25649"><code>6502816</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/12913">#12913</a> from jakkdl/dontfailonbadpath</li> <li><a href="https://github.com/pytest-dev/pytest/commit/52135b033fb949efbec6aed9dd9000275bb199fd"><code>52135b0</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/12885">#12885</a> from The-Compiler/pdb-py311 (<a href="https://redirect.github.com/pytest-dev/pytest/issues/12887">#12887</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest/compare/8.3.3...8.3.4">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.8.0 to 0.8.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.8.2</h2> <h2>Release Notes</h2> <h3>Preview features</h3> <ul> <li>[<code>airflow</code>] Avoid deprecated values (<code>AIR302</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14582">#14582</a>)</li> <li>[<code>airflow</code>] Extend removed names for <code>AIR302</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/14734">#14734</a>)</li> <li>[<code>ruff</code>] Extend <code>unnecessary-regular-expression</code> to non-literal strings (<code>RUF055</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14679">#14679</a>)</li> <li>[<code>ruff</code>] Implement <code>used-dummy-variable</code> (<code>RUF052</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14611">#14611</a>)</li> <li>[<code>ruff</code>] Implement <code>unnecessary-cast-to-int</code> (<code>RUF046</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14697">#14697</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>airflow</code>] Check <code>AIR001</code> from builtin or providers <code>operators</code> module (<a href="https://redirect.github.com/astral-sh/ruff/pull/14631">#14631</a>)</li> <li>[<code>flake8-pytest-style</code>] Remove <code>@</code> in <code>pytest.mark.parametrize</code> rule messages (<a href="https://redirect.github.com/astral-sh/ruff/pull/14770">#14770</a>)</li> <li>[<code>pandas-vet</code>] Skip rules if the <code>panda</code> module hasn't been seen (<a href="https://redirect.github.com/astral-sh/ruff/pull/14671">#14671</a>)</li> <li>[<code>pylint</code>] Fix false negatives for <code>ascii</code> and <code>sorted</code> in <code>len-as-condition</code> (<code>PLC1802</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14692">#14692</a>)</li> <li>[<code>refurb</code>] Guard <code>hashlib</code> imports and mark <code>hashlib-digest-hex</code> fix as safe (<code>FURB181</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14694">#14694</a>)</li> </ul> <h3>Configuration</h3> <ul> <li>[<code>flake8-import-conventions</code>] Improve syntax check for aliases supplied in configuration for <code>unconventional-import-alias</code> (<code>ICN001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14745">#14745</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Revert: [pyflakes] Avoid false positives in <code>@no_type_check</code> contexts (<code>F821</code>, <code>F722</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/14615">#14615</a>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14726">#14726</a>)</li> <li>[<code>pep8-naming</code>] Avoid false positive for <code>class Bar(type(foo))</code> (<code>N804</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14683">#14683</a>)</li> <li>[<code>pycodestyle</code>] Handle f-strings properly for <code>invalid-escape-sequence</code> (<code>W605</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14748">#14748</a>)</li> <li>[<code>pylint</code>] Ignore <code>@overload</code> in <code>PLR0904</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/14730">#14730</a>)</li> <li>[<code>refurb</code>] Handle non-finite decimals in <code>verbose-decimal-constructor</code> (<code>FURB157</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14596">#14596</a>)</li> <li>[<code>ruff</code>] Avoid emitting <code>assignment-in-assert</code> when all references to the assigned variable are themselves inside <code>assert</code>s (<code>RUF018</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14661">#14661</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Improve docs for <code>flake8-use-pathlib</code> rules (<a href="https://redirect.github.com/astral-sh/ruff/pull/14741">#14741</a>)</li> <li>Improve error messages and docs for <code>flake8-comprehensions</code> rules (<a href="https://redirect.github.com/astral-sh/ruff/pull/14729">#14729</a>)</li> <li>[<code>flake8-type-checking</code>] Expands <code>TC006</code> docs to better explain itself (<a href="https://redirect.github.com/astral-sh/ruff/pull/14749">#14749</a>)</li> </ul> <h2>Contributors</h2> <ul> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/Daverball"><code>@Daverball</code></a></li> <li><a href="https://github.com/InSyncWithFoo"><code>@InSyncWithFoo</code></a></li> <li><a href="https://github.com/Lee-W"><code>@Lee-W</code></a></li> <li><a href="https://github.com/Lokejoke"><code>@Lokejoke</code></a></li> <li><a href="https://github.com/Matt-Ord"><code>@Matt-Ord</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/Well2333"><code>@Well2333</code></a></li> <li><a href="https://github.com/connorskees"><code>@connorskees</code></a></li> <li><a href="https://github.com/dcreager"><code>@dcreager</code></a></li> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.8.2</h2> <h3>Preview features</h3> <ul> <li>[<code>airflow</code>] Avoid deprecated values (<code>AIR302</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14582">#14582</a>)</li> <li>[<code>airflow</code>] Extend removed names for <code>AIR302</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/14734">#14734</a>)</li> <li>[<code>ruff</code>] Extend <code>unnecessary-regular-expression</code> to non-literal strings (<code>RUF055</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14679">#14679</a>)</li> <li>[<code>ruff</code>] Implement <code>used-dummy-variable</code> (<code>RUF052</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14611">#14611</a>)</li> <li>[<code>ruff</code>] Implement <code>unnecessary-cast-to-int</code> (<code>RUF046</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14697">#14697</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>airflow</code>] Check <code>AIR001</code> from builtin or providers <code>operators</code> module (<a href="https://redirect.github.com/astral-sh/ruff/pull/14631">#14631</a>)</li> <li>[<code>flake8-pytest-style</code>] Remove <code>@</code> in <code>pytest.mark.parametrize</code> rule messages (<a href="https://redirect.github.com/astral-sh/ruff/pull/14770">#14770</a>)</li> <li>[<code>pandas-vet</code>] Skip rules if the <code>panda</code> module hasn't been seen (<a href="https://redirect.github.com/astral-sh/ruff/pull/14671">#14671</a>)</li> <li>[<code>pylint</code>] Fix false negatives for <code>ascii</code> and <code>sorted</code> in <code>len-as-condition</code> (<code>PLC1802</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14692">#14692</a>)</li> <li>[<code>refurb</code>] Guard <code>hashlib</code> imports and mark <code>hashlib-digest-hex</code> fix as safe (<code>FURB181</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14694">#14694</a>)</li> </ul> <h3>Configuration</h3> <ul> <li>[<code>flake8-import-conventions</code>] Improve syntax check for aliases supplied in configuration for <code>unconventional-import-alias</code> (<code>ICN001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14745">#14745</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Revert: [pyflakes] Avoid false positives in <code>@no_type_check</code> contexts (<code>F821</code>, <code>F722</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/14615">#14615</a>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14726">#14726</a>)</li> <li>[<code>pep8-naming</code>] Avoid false positive for <code>class Bar(type(foo))</code> (<code>N804</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14683">#14683</a>)</li> <li>[<code>pycodestyle</code>] Handle f-strings properly for <code>invalid-escape-sequence</code> (<code>W605</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14748">#14748</a>)</li> <li>[<code>pylint</code>] Ignore <code>@overload</code> in <code>PLR0904</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/14730">#14730</a>)</li> <li>[<code>refurb</code>] Handle non-finite decimals in <code>verbose-decimal-constructor</code> (<code>FURB157</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14596">#14596</a>)</li> <li>[<code>ruff</code>] Avoid emitting <code>assignment-in-assert</code> when all references to the assigned variable are themselves inside <code>assert</code>s (<code>RUF018</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14661">#14661</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Improve docs for <code>flake8-use-pathlib</code> rules (<a href="https://redirect.github.com/astral-sh/ruff/pull/14741">#14741</a>)</li> <li>Improve error messages and docs for <code>flake8-comprehensions</code> rules (<a href="https://redirect.github.com/astral-sh/ruff/pull/14729">#14729</a>)</li> <li>[<code>flake8-type-checking</code>] Expands <code>TC006</code> docs to better explain itself (<a href="https://redirect.github.com/astral-sh/ruff/pull/14749">#14749</a>)</li> </ul> <h2>0.8.1</h2> <h3>Preview features</h3> <ul> <li>Formatter: Avoid invalid syntax for format-spec with quotes for all Python versions (<a href="https://redirect.github.com/astral-sh/ruff/pull/14625">#14625</a>)</li> <li>Formatter: Consider quotes inside format-specs when choosing the quotes for an f-string (<a href="https://redirect.github.com/astral-sh/ruff/pull/14493">#14493</a>)</li> <li>Formatter: Do not consider f-strings with escaped newlines as multiline (<a href="https://redirect.github.com/astral-sh/ruff/pull/14624">#14624</a>)</li> <li>Formatter: Fix f-string formatting in assignment statement (<a href="https://redirect.github.com/astral-sh/ruff/pull/14454">#14454</a>)</li> <li>Formatter: Fix unnecessary space around power operator (<code>**</code>) in overlong f-string expressions (<a href="https://redirect.github.com/astral-sh/ruff/pull/14489">#14489</a>)</li> <li>[<code>airflow</code>] Avoid implicit <code>schedule</code> argument to <code>DAG</code> and <code>@dag</code> (<code>AIR301</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14581">#14581</a>)</li> <li>[<code>flake8-builtins</code>] Exempt private built-in modules (<code>A005</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14505">#14505</a>)</li> <li>[<code>flake8-pytest-style</code>] Fix <code>pytest.mark.parametrize</code> rules to check calls instead of decorators (<a href="https://redirect.github.com/astral-sh/ruff/pull/14515">#14515</a>)</li> <li>[<code>flake8-type-checking</code>] Implement <code>runtime-cast-value</code> (<code>TC006</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/14511">#14511</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/b0e26e6fc8ad60e368b8b03b367b6ac408acf9f7"><code>b0e26e6</code></a> Bump version to 0.8.2 (<a href="https://redirect.github.com/astral-sh/ruff/issues/14789">#14789</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e9941cd71459a75ee556422b37a192bf681ed425"><code>e9941cd</code></a> [red-knot] Move standalone expr inference to <code>for</code> non-name target (<a href="https://redirect.github.com/astral-sh/ruff/issues/14788">#14788</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/43bf1a8907fc0e48e8ca7b52485a349772e91de9"><code>43bf1a8</code></a> Add tests for "keyword as identifier" syntax errors (<a href="https://redirect.github.com/astral-sh/ruff/issues/14754">#14754</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/fda8b1f884c8598960b2e3f0c729e17ac62bfe35"><code>fda8b1f</code></a> [<code>ruff</code>] Unnecessary cast to <code>int</code> (<code>RUF046</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/14697">#14697</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/2d3f55787557fc16a15e298d516ae719d12bc25c"><code>2d3f557</code></a> [red-knot] Fallback for <code>typing._NoDefaultType</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/14783">#14783</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/bd27bfab5d636cd5979ce78423ba069833ab13e2"><code>bd27bfa</code></a> [red-knot] Unify <code>setup_db()</code> functions, add <code>TestDb</code> builder (<a href="https://redirect.github.com/astral-sh/ruff/issues/14777">#14777</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/155d34bbb9a0ebda17bbd465f5fa5dfa2b640c37"><code>155d34b</code></a> [red-knot] Infer precise types for <code>len()</code> calls (<a href="https://redirect.github.com/astral-sh/ruff/issues/14599">#14599</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/04c887c8fce0521a8a98cee04349199ac256a67a"><code>04c887c</code></a> Fix references for <code>async-busy-wait</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/14775">#14775</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/af43bd4b0fa5fdf016252085771cfb75846a0b0c"><code>af43bd4</code></a> [red-knot] Gradual forms do not participate in equivalence/subtyping (<a href="https://redirect.github.com/astral-sh/ruff/issues/14758">#14758</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/614917769e07467e8646fb6a28b23e90d3df980c"><code>6149177</code></a> Remove <code>@</code> in <code>pytest.mark.parametrize</code> rule messages (<a href="https://redirect.github.com/astral-sh/ruff/issues/14770">#14770</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.8.0...0.8.2">compare view</a></li> </ul> </details> <br /> 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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…/packages/jsii-pacmak/lib/targets/python (#4720) Updates the requirements on [twine](https://github.com/pypa/twine) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/twine/blob/main/docs/changelog.rst">twine's changelog</a>.</em></p> <blockquote> <h2>Twine 6.0.1 (2024-11-30)</h2> <p>Bugfixes ^^^^^^^^</p> <ul> <li>Fixed a regression where <code>twine check</code> would fail to expand wildcards, e.g. <code>twine check 'dist/*'</code>. (<code>[#1188](pypa/twine#1188) <https://github.com/pypa/twine/issues/1188></code>_)</li> </ul> <p>Misc ^^^^</p> <ul> <li><code>[#1184](pypa/twine#1184) <https://github.com/pypa/twine/issues/1184></code>_</li> </ul> <h2>Twine 6.0.0 (2024-11-29)</h2> <p>Bugfixes ^^^^^^^^</p> <ul> <li>Restore support for pkginfo 1.11 (<code>[#1116](pypa/twine#1116) <https://github.com/pypa/twine/issues/1116></code>_)</li> </ul> <p>Deprecations and Removals ^^^^^^^^^^^^^^^^^^^^^^^^^</p> <ul> <li>Username for PyPI and Test PyPI now defaults to <strong>token</strong> but no longer overrides a username configured in the environment or supplied on the command line. Workflows still supplying anything other than <strong>token</strong> for the username when uploading to PyPI or Test PyPI will now fail. Either supply <strong>token</strong> or do not supply a username at all. (<code>[#1121](pypa/twine#1121) <https://github.com/pypa/twine/issues/1121></code>_)</li> </ul> <p>Misc ^^^^</p> <ul> <li><code>[#1024](pypa/twine#1024) <https://github.com/pypa/twine/issues/1024></code>_</li> </ul> <h2>Twine 5.1.1 (2024-06-26)</h2> <p>Bugfixes ^^^^^^^^</p> <ul> <li> <p>Resolve DeprecationWarnings when extracting <code>twine</code> metadata. (<code>[#1115](pypa/twine#1115) <https://github.com/pypa/twine/issues/1115></code>_)</p> </li> <li> <p>Fix bug for Repository URLs with auth where the port was lost. When attempting to prevent printing authentication credentials in URLs provided with username and password, we did not properly handle the case where the URL also contains a port (when reconstructing the URL). This is now handled and tested to ensure no regressions. (<code>#fix-repo-urls-with-auth-and-port <https://github.com/pypa/twine/issues/fix-repo-urls-with-auth-and-port></code>_)</p> </li> </ul> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/twine/commit/a723876fd4398be57838873e60867566b6220a53"><code>a723876</code></a> Merge pull request <a href="https://redirect.github.com/pypa/twine/issues/1189">#1189</a> from pypa/release-6.0.1</li> <li><a href="https://github.com/pypa/twine/commit/9a24828cbded183d02d0b3f5a8af41b7764dda98"><code>9a24828</code></a> Update changelog for 6.0.1</li> <li><a href="https://github.com/pypa/twine/commit/a0170058016cb7ed9554ef648a48c1899917d255"><code>a017005</code></a> Merge pull request <a href="https://redirect.github.com/pypa/twine/issues/1188">#1188</a> from pypa/ww/fix-twine-check-glob</li> <li><a href="https://github.com/pypa/twine/commit/e98f03bb0932e364065f827f804806bacccc436d"><code>e98f03b</code></a> check: fix handling of non-shell-expanded globs</li> <li><a href="https://github.com/pypa/twine/commit/873f33ed40bb38407a87abba6cd2a65f35eb6286"><code>873f33e</code></a> build(deps): bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 (<a href="https://redirect.github.com/pypa/twine/issues/1175">#1175</a>)</li> <li><a href="https://github.com/pypa/twine/commit/067412e84cfdd39929d838075ef8fa3d2cb0d733"><code>067412e</code></a> Use brackets for the default value of option arguments (<a href="https://redirect.github.com/pypa/twine/issues/1149">#1149</a>)</li> <li><a href="https://github.com/pypa/twine/commit/f32dc3545b52389dac0cbd28059833d48c36b4f4"><code>f32dc35</code></a> Apply ruff/Perflint rule (<a href="https://redirect.github.com/pypa/twine/issues/1136">#1136</a>)</li> <li><a href="https://github.com/pypa/twine/commit/aa58273f52afab52d3dd00b2c6cf3b472c6ee20d"><code>aa58273</code></a> Don't require importlib_metadata on Python 3.10+</li> <li><a href="https://github.com/pypa/twine/commit/675565f35c6d0adc435c9da6cb123f41dcaeffb8"><code>675565f</code></a> changelog: record <a href="https://redirect.github.com/pypa/twine/issues/1184">#1184</a></li> <li><a href="https://github.com/pypa/twine/commit/80cc58c0ddbd68b107c4709be5072f3e309b843c"><code>80cc58c</code></a> chore: mark 3.13 as explicitly supported</li> <li>Additional commits viewable in <a href="https://github.com/pypa/twine/compare/v5.1.1...6.0.1">compare view</a></li> </ul> </details> <br /> 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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@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>
Bumps [twine](https://github.com/pypa/twine) from 5.1.1 to 6.0.1. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/twine/blob/main/docs/changelog.rst">twine's changelog</a>.</em></p> <blockquote> <h2>Twine 6.0.1 (2024-11-30)</h2> <p>Bugfixes ^^^^^^^^</p> <ul> <li>Fixed a regression where <code>twine check</code> would fail to expand wildcards, e.g. <code>twine check 'dist/*'</code>. (<code>[#1188](pypa/twine#1188) <https://github.com/pypa/twine/issues/1188></code>_)</li> </ul> <p>Misc ^^^^</p> <ul> <li><code>[#1184](pypa/twine#1184) <https://github.com/pypa/twine/issues/1184></code>_</li> </ul> <h2>Twine 6.0.0 (2024-11-29)</h2> <p>Bugfixes ^^^^^^^^</p> <ul> <li>Restore support for pkginfo 1.11 (<code>[#1116](pypa/twine#1116) <https://github.com/pypa/twine/issues/1116></code>_)</li> </ul> <p>Deprecations and Removals ^^^^^^^^^^^^^^^^^^^^^^^^^</p> <ul> <li>Username for PyPI and Test PyPI now defaults to <strong>token</strong> but no longer overrides a username configured in the environment or supplied on the command line. Workflows still supplying anything other than <strong>token</strong> for the username when uploading to PyPI or Test PyPI will now fail. Either supply <strong>token</strong> or do not supply a username at all. (<code>[#1121](pypa/twine#1121) <https://github.com/pypa/twine/issues/1121></code>_)</li> </ul> <p>Misc ^^^^</p> <ul> <li><code>[#1024](pypa/twine#1024) <https://github.com/pypa/twine/issues/1024></code>_</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/twine/commit/a723876fd4398be57838873e60867566b6220a53"><code>a723876</code></a> Merge pull request <a href="https://redirect.github.com/pypa/twine/issues/1189">#1189</a> from pypa/release-6.0.1</li> <li><a href="https://github.com/pypa/twine/commit/9a24828cbded183d02d0b3f5a8af41b7764dda98"><code>9a24828</code></a> Update changelog for 6.0.1</li> <li><a href="https://github.com/pypa/twine/commit/a0170058016cb7ed9554ef648a48c1899917d255"><code>a017005</code></a> Merge pull request <a href="https://redirect.github.com/pypa/twine/issues/1188">#1188</a> from pypa/ww/fix-twine-check-glob</li> <li><a href="https://github.com/pypa/twine/commit/e98f03bb0932e364065f827f804806bacccc436d"><code>e98f03b</code></a> check: fix handling of non-shell-expanded globs</li> <li><a href="https://github.com/pypa/twine/commit/873f33ed40bb38407a87abba6cd2a65f35eb6286"><code>873f33e</code></a> build(deps): bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 (<a href="https://redirect.github.com/pypa/twine/issues/1175">#1175</a>)</li> <li><a href="https://github.com/pypa/twine/commit/067412e84cfdd39929d838075ef8fa3d2cb0d733"><code>067412e</code></a> Use brackets for the default value of option arguments (<a href="https://redirect.github.com/pypa/twine/issues/1149">#1149</a>)</li> <li><a href="https://github.com/pypa/twine/commit/f32dc3545b52389dac0cbd28059833d48c36b4f4"><code>f32dc35</code></a> Apply ruff/Perflint rule (<a href="https://redirect.github.com/pypa/twine/issues/1136">#1136</a>)</li> <li><a href="https://github.com/pypa/twine/commit/aa58273f52afab52d3dd00b2c6cf3b472c6ee20d"><code>aa58273</code></a> Don't require importlib_metadata on Python 3.10+</li> <li><a href="https://github.com/pypa/twine/commit/675565f35c6d0adc435c9da6cb123f41dcaeffb8"><code>675565f</code></a> changelog: record <a href="https://redirect.github.com/pypa/twine/issues/1184">#1184</a></li> <li><a href="https://github.com/pypa/twine/commit/80cc58c0ddbd68b107c4709be5072f3e309b843c"><code>80cc58c</code></a> chore: mark 3.13 as explicitly supported</li> <li>Additional commits viewable in <a href="https://github.com/pypa/twine/compare/v5.1.1...6.0.1">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=twine&package-manager=pip&previous-version=5.1.1&new-version=6.0.1)](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 show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@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] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The use of importlib_metadata relies on features that were introduced in python 3.10. Aside for that, it should be fine to use the stdlib directly.
Fixes #773
From #773 (comment):
It's in the testing matrix. More importantly, we are now up to python 3.12 -- there are more versions of non-EOL python that have a suitable stdlib version than don't.
I'm not sure I understand, largely because no specific reason was given there. Adding a new module just to wrap one import seems like a very complicated solution for something that doesn't need continual maintenance, and introduces additional stat'ing of the filesystem / opening a bunch more files for reading, to boot. If the concern is about dropping outdated version blocks in just one place, then puypgrade (as previously used in this repo) can make that edit for you. :)