Open
Conversation
a48170b to
0d19d30
Compare
894137b to
0cee7c7
Compare
08c6204 to
0489443
Compare
0489443 to
468a448
Compare
0438c54 to
2f6fbb4
Compare
b1255e4 to
f024744
Compare
f024744 to
61806d2
Compare
2fdad22 to
c5ce1eb
Compare
09ffc7d to
58fe601
Compare
ebe70c8 to
8f9a060
Compare
8f9a060 to
0d6e8c3
Compare
62af0c5 to
e6befb9
Compare
fa21a22 to
154fcd8
Compare
6c45fd4 to
274a4af
Compare
4db1d3e to
9f8b496
Compare
d4406e4 to
fd6afdb
Compare
29b829e to
0bcbcd0
Compare
7f24eab to
4a67c4e
Compare
4a67c4e to
d5a9760
Compare
d5a9760 to
7bfc51b
Compare
1d09fe5 to
cb79bb7
Compare
adea11e to
55c6cfb
Compare
403f121 to
ed64abe
Compare
ed64abe to
cee3149
Compare
cee3149 to
d54f189
Compare
7917b89 to
bcf8c6b
Compare
e01a21f to
9800282
Compare
9800282 to
6d052a5
Compare
6d052a5 to
aebfd39
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v4→v6v4→v8v4→v6v4→v7==0.9.0→==0.10.0==0.10.3→==0.12.2==0.9.4→==0.10.0v2→v4==4.9.3→==6.0.2v2.21.1→v3.4.03.11→3.143.9→3.14v1→v2==1.13.1→==1.14.1==0.6.2→==0.6.3Release Notes
actions/checkout (actions/checkout)
v6Compare Source
v5Compare Source
actions/download-artifact (actions/download-artifact)
v8Compare Source
v7Compare Source
v6Compare Source
v5Compare Source
actions/setup-python (actions/setup-python)
v6Compare Source
v5Compare Source
actions/upload-artifact (actions/upload-artifact)
v7Compare Source
v6Compare Source
v5Compare Source
typemytype/booleanOperations (booleanOperations)
v0.10.0Compare Source
What's Changed
New Contributors
Full Changelog: typemytype/booleanOperations@0.9.0...0.10.0
robotools/defcon (defcon)
v0.12.2Compare Source
What's Changed
Full Changelog: robotools/defcon@0.12.1...0.12.2
v0.12.1Compare Source
What's Changed
Full Changelog: robotools/defcon@0.12.0...0.12.1
v0.12.0Compare Source
What's Changed
Full Changelog: robotools/defcon@0.11.0...0.12.0
v0.11.0Compare Source
What's Changed
.readthedocs.yamlby @roberto-arista in #451New Contributors
Full Changelog: robotools/defcon@0.10.3...0.11.0
robotools/fontMath (fontMath)
v0.10.0Compare Source
What's Changed
This version drops support for Python versions less than 3.9
Full Changelog: robotools/fontMath@0.9.4...0.10.0
github/codeql-action (github/codeql-action)
v4Compare Source
v3Compare Source
lxml/lxml (lxml)
v6.0.2Compare Source
==================
Bugs fixed
LP#2125278: Compilation with libxml2 2.15.0 failed.
Original patch by Xi Ruoyao.
Setting
decompress=Truein the parser had no effect in libxml2 2.15.Binary wheels on Linux and macOS use the library version libxml2 2.14.6.
See https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.6
Test failures in libxml2 2.15.0 were fixed.
Other changes
Binary wheels for Py3.9-3.11 on the
riscv64architecture were added.Error constants were updated to match libxml2 2.15.0.
Built using Cython 3.1.4.
v6.0.1Compare Source
==================
Bugs fixed
LP#2116333:
lxml.sax._getNsTag()could fail with an exception on malformed input.GH#467: Some test adaptations were made for libxml2 2.15.
Patch by Nick Wellnhofer.
LP2119510, GH#473: A Python compatibility test was fixed for Python 3.14+.
Patch by Lumír Balhar.
GH#471: Wheels for "riscv64" on recent Python versions were added.
Patch by ffgan.
GH#469: The wheel build no longer requires the
wheelpackage unconditionally.Patch by Miro Hrončok.
Binary wheels use the library version libxml2 2.14.5.
See https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.5
Windows binary wheels continue to use a security patched library version libxml2 2.11.9.
v6.0.0Compare Source
==================
Features added
GH#463:
lxml.html.diffis faster and provides structurally better diffs.Original patch by Steven Fernandez.
GH#405: The factories
ElementandElementTreecan now be used in type hints.GH#448: Parsing from
memoryviewand other buffers is supported to allow zero-copy parsing.GH#437:
lxml.html.builderwas missing several HTML5 tag names.Patch by Nick Tarleton.
GH#458:
CDATAcan now be written into the incrementalxmlfile()writer.Original patch by Lane Shaw.
A new parser option
decompress=Falsewas added that controls the automaticinput decompression when using libxml2 2.15.0 or later. Disabling this option
by default will effectively prevent decompression bombs when handling untrusted
input. Code that depends on automatic decompression must enable this option.
Note that libxml2 2.15.0 was not released yet, so this option currently has no
effect but can already be used.
The set of compile time / runtime supported libxml2 feature names is available as
etree.LIBXML_COMPILED_FEATURESandetree.LIBXML_FEATURES.This currently includes
catalog,ftp,html,http,iconv,icu,lzma,regexp,schematron,xmlschema,xpath,zlib.Bugs fixed
GH#353: Predicates in
.find*()could mishandle tag indices if a default namespace is provided.Original patch by Luise K.
GH#272: The
headandbodyproperties oflxml.htmlelements failed if no such elementwas found. They now return
Noneinstead.Original patch by FVolral.
Tag names provided by code (API, not data) that are longer than
INT_MAXcould be truncated or mishandled in other ways.
.text_content()onlxml.htmlelements accidentally returned a "smart string"without additional information. It now returns a plain string.
LP#2109931: When building lxml with coverage reporting, it now disables the
sys.monitoringsupport due to the lack of support in nedbat/coveragepy#1790
Other changes
Support for Python < 3.8 was removed.
Parsing directly from zlib (or lzma) compressed data is now considered an optional
feature in lxml. It may get removed from libxml2 at some point for security reasons
(compression bombs) and is therefore no longer guaranteed to be available in lxml.
As of this release, zlib support is still normally available in the binary wheels
but may get disabled or removed in later (x.y.0) releases. To test the availability,
use
"zlib" in etree.LIBXML_FEATURES.The
Schematronclass is deprecated and will become non-functional in a future lxml version.The feature will soon be removed from libxml2 and stop being available.
GH#438: Wheels include the
arm7ltarget.GH#465: Windows wheels include the
arm64target.Patch by Finn Womack.
Binary wheels use the library versions libxml2 2.14.4 and libxslt 1.1.43.
Note that this disables direct HTTP and FTP support for parsing from URLs.
Use Python URL request tools instead (which usually also support HTTPS).
To test the availability, use
"http" in etree.LIBXML_FEATURES.Windows binary wheels use the library versions libxml2 2.11.9, libxslt 1.1.39 and libiconv 1.17.
They are now based on VS-2022.
Built using Cython 3.1.2.
The debug methods
MemDebug.dump()andMemDebug.show()were removed completely.libxml2 2.13.0 discarded this feature.
v5.4.0Compare Source
==================
Bugs fixed
(Binary wheels for Windows continue to use a patched libxml2 2.11.9 and libxslt 1.1.39.)
Issue found by Anatoly Katyushin.
v5.3.2Compare Source
==================
This release resolves CVE-2025-24928 as described in
https://gitlab.gnome.org/GNOME/libxml2/-/issues/847
Bugs fixed
Binary wheels use libxml2 2.12.10 and libxslt 1.1.42.
Binary wheels for Windows use a patched libxml2 2.11.9 and libxslt 1.1.39.
v5.3.1Compare Source
==================
Bugs fixed
GH#440: Some tests were adapted for libxml2 2.14.0.
Patch by Nick Wellnhofer.
LP#2097175:
DTD(external_id="…")erroneously required a byte string as ID value.GH#450:
iterparse()internally triggered the `DeprecationWarning`` added in lxml 5.3.0 when parsing HTML.Other changes
-flat_namespace.v5.3.0Compare Source
==================
Bugs fixed
GH#440: Some tests were adapted for libxml2 2.14.0.
Patch by Nick Wellnhofer.
LP#2097175:
DTD(external_id="…")erroneously required a byte string as ID value.GH#450:
iterparse()internally triggered the `DeprecationWarning`` added in lxml 5.3.0 when parsing HTML.Other changes
-flat_namespace.v5.2.2Compare Source
==================
Bugs fixed
GH#417: The
test_feed_parsertest could fail iflxml_html_cleanwas not installed.It is now skipped in that case.
LP#2059910: The minimum CPU architecture for the Linux x86 binary wheels was set back to
"core2", without SSE 4.2.
If libxml2 uses iconv, the compile time version is available as
etree.ICONV_COMPILED_VERSION.v5.2.1Compare Source
==================
Bugs fixed
LP#2059910: The minimum CPU architecture for the Linux x86 binary wheels was set back to
"core2", but with SSE 4.2 enabled.
LP#2059977:
Element.iterfind("//absolute_path")failed with aSyntaxErrorwhere it should have issued a warning.
GH#416: The documentation build was using the non-standard
whichcommand.Patch by Michał Górny.
v5.2.0Compare Source
==================
Other changes
LP#1958539: The
lxml.html.cleanimplementation suffered from several (only if used)security issues in the past and was now extracted into a separate library:
https://github.com/fedora-python/lxml_html_clean
Projects that use lxml without "lxml.html.clean" will not notice any difference,
except that they won't have potentially vulnerable code installed.
The module is available as an "extra" setuptools dependency "lxml[html_clean]",
so that Projects that need "lxml.html.clean" will need to switch their requirements
from "lxml" to "lxml[html_clean]", or install the new library themselves.
The minimum CPU architecture for the Linux x86 binary wheels was upgraded to
"sandybridge" (launched 2011), and glibc 2.28 / gcc 12 (manylinux_2_28) wheels were added.
Built with Cython 3.0.10.
v5.1.1Compare Source
==================
Bugs fixed
LP#2048920:
iterlinks()inlxml.htmlrejectedbytesinput in 5.1.0.High source line numbers from the parser are no longer truncated
(up to a C
long) when using libxml2 2.11 or later.Other changes
GH#407: A compatibility test was adapted to recent expat versions.
Patch by Miro Hrončok.
Binary wheels use the library versions libxml2 2.12.6 and libxslt 1.1.39.
Windows binary wheels use the library versions libxml2 2.11.7 and libxslt 1.1.39.
Built with Cython 3.0.9.
v5.1.0Compare Source
==================
Bugs fixed
LP#2048920:
iterlinks()inlxml.htmlrejectedbytesinput in 5.1.0.High source line numbers from the parser are no longer truncated
(up to a C
long) when using libxml2 2.11 or later.Other changes
GH#407: A compatibility test was adapted to recent expat versions.
Patch by Miro Hrončok.
Binary wheels use the library versions libxml2 2.12.6 and libxslt 1.1.39.
Windows binary wheels use the library versions libxml2 2.11.7 and libxslt 1.1.39.
Built with Cython 3.0.9.
v5.0.2Compare Source
==================
Other changes
GH#407: A compatibility test was adapted to recent expat versions.
Patch by Miro Hrončok.
Binary wheels use the library versions libxml2 2.12.6 and libxslt 1.1.39.
Built with Cython 3.0.9.
v5.0.1Compare Source
==================
Bugs fixed
LP#2046208: Parsing non-BMP Python Unicode strings could fail on macOS.
LP#2044225: When incrementally parsing broken HTML, reporting start events on
missing structural tags failed and could lead to subsequent exceptions.
LP#2045435: Some (not all) issues with stricter C compilers were resolved.
The binary wheels in the 5.0.0 release did not validate cleanly (but installed ok).
.. _latest_release:
v5.0.0Compare Source
==================
Features added
Character escaping in
C14N2serialisation now uses a single pass over the textinstead of searching for each unescaped character separately.
Early support for Python 3.13a2 was added.
Bugs fixed
LP#1976304: The
Element.addnext()method previously inserted the new elementbefore existing tail text. The tail text of both sibling elements now stays on
the respective elements.
LP#1980767, GH#379:
TreeBuilder.close()could fail with aTypeErrorafterparsing incorrect input. Original patch by Enrico Minack.
Element.itertext(with_tail=False)returned the tail text of comments andprocessing instructions, despite the explicit option.
GH#370: A crash with recent libxml2 2.11.x versions was resolved.
Patch by Michael Schlenker.
A compile problem with recent libxml2 2.12.x versions was resolved.
The internal exception handling in C callbacks was improved for Cython 3.0.
The exception declarations of
xmlInputReadCallback,xmlInputCloseCallback,xmlOutputWriteCallbackandxmlOutputCloseCallbackintree.pxdwerecorrected to prevent running Python code or calling into the C-API with a live
exception set.
GH#385: The long deprecated
unittest.m̀akeSuite()function is no longer used.Patch by Miro Hrončok.
LP#1522052: A file-system specific test is now optional and should no longer fail
on systems that don't support it.
GH#392: Some tests were adapted for libxml2 2.13.
Patch by Nick Wellnhofer.
Contains all fixes from lxml 4.9.4.
Other changes
LP#1742885: lxml no longer expands external entities (XXE) by default to prevent
the security risk of loading arbitrary files and URLs. If this feature is needed,
it can be enabled in a backwards compatible way by using a parser with the option
resolve_entities=True. The new default isresolve_entities='internal'.With libxml2 2.10.4 and later (as provided by the lxml 5.0 binary wheels),
parsing HTML tags with "prefixes" no longer builds a namespace dictionary
in
nsmapbut considers theprefix:namestring the actual tag name.With older libxml2 versions, since 2.9.11, the prefix was removed. Before
that, the prefix was parsed as XML prefix.
lxml 5.0 does not try to hide this difference but now changes the ElementPath
implementation to let
element.find("part1:part2")search for the tagpart1:part2in documents parsed as HTML, instead of looking only forpart2.LP#2024343: The validation of the schema file itself is now optional in the
ISO-Schematron implementation. This was done because some lxml distributions
discard the RNG validation schema file due to licensing issues. The validation
can now always be disabled with
Schematron(..., validate_schema=False).It is enabled by default if available and disabled otherwise. The module
constant
lxml.isoschematron.schematron_schema_valid_supportedcan be usedto detect whether schema file validation is available.
Some redundant and long deprecated methods were removed:
parser.setElementClassLookup(),xslt_transform.apply(),xpath.evaluate().Some incorrect declarations were removed from
python.pxd. In general, this fileshould not be used by external Cython code. Use the C-API declarations provided by
Cython itself instead.
Binary wheels use the library versions libxml2 2.12.3 and libxslt 1.1.39.
Built with Cython 3.0.7, updated to follow recent changes in Cython 3.1-dev.
v4.9.4Compare Source
==================
Features added
Character escaping in
C14N2serialisation now uses a single pass over the textinstead of searching for each unescaped character separately.
Early support for Python 3.13a2 was added.
Bugs fixed
LP#1976304: The
Element.addnext()method previously inserted the new elementbefore existing tail text. The tail text of both sibling elements now stays on
the respective elements.
LP#1980767, GH#379:
TreeBuilder.close()could fail with aTypeErrorafterparsing incorrect input. Original patch by Enrico Minack.
Element.itertext(with_tail=False)returned the tail text of comments andprocessing instructions, despite the explicit option.
GH#370: A crash with recent libxml2 2.11.x versions was resolved.
Patch by Michael Schlenker.
A compile problem with recent libxml2 2.12.x versions was resolved.
The internal exception handling in C callbacks was improved for Cython 3.0.
The exception declarations of
xmlInputReadCallback,xmlInputCloseCallback,xmlOutputWriteCallbackandxmlOutputCloseCallbackintree.pxdwerecorrected to prevent running Python code or calling into the C-API with a live
exception set.
GH#385: The long deprecated
unittest.m̀akeSuite()function is no longer used.Patch by Miro Hrončok.
LP#1522052: A file-system specific test is now optional and should no longer fail
on systems that don't support it.
GH#392: Some tests were adapted for libxml2 2.13.
Patch by Nick Wellnhofer.
Contains all fixes from lxml 4.9.4.
Other changes
LP#1742885: lxml no longer expands external entities (XXE) by default to prevent
the security risk of loading arbitrary files and URLs. If this feature is needed,
it can be enabled in a backwards compatible way by using a parser with the option
resolve_entities=True. The new default isresolve_entities='internal'.With libxml2 2.10.4 and later (as provided by the lxml 5.0 binary wheels),
parsing HTML tags with "prefixes" no longer builds a namespace dictionary
in
nsmapbut considers theprefix:namestring the actual tag name.With older libxml2 versions, since 2.9.11, the prefix was removed. Before
that, the prefix was parsed as XML prefix.
lxml 5.0 does not try to hide this difference but now changes the ElementPath
implementation to let
element.find("part1:part2")search for the tagpart1:part2in documents parsed as HTML, instead of looking only forpart2.LP#2024343: The validation of the schema file itself is now optional in the
ISO-Schematron implementation. This was done because some lxml distributions
discard the RNG validation schema file due to licensing issues. The validation
can now always be disabled with
Schematron(..., validate_schema=False).It is enabled by default if available and disabled otherwise. The module
constant
lxml.isoschematron.schematron_schema_valid_supportedcan be usedto detect whether schema file validation is available.
Some redundant and long deprecated methods were removed:
parser.setElementClassLookup(),xslt_transform.apply(),xpath.evaluate().Some incorrect declarations were removed from
python.pxd. In general, this fileshould not be used by external Cython code. Use the C-API declarations provided by
Cython itself instead.
Binary wheels use the library versions libxml2 2.12.3 and libxslt 1.1.39.
Built with Cython 3.0.7, updated to follow recent changes in Cython 3.1-dev.
pypa/cibuildwheel (pypa/cibuildwheel)
v3.4.0Compare Source
uvas a build frontend. This should improve performance, especially if your project has lots of build dependencies. To use, setbuild-frontendtouv. (#2322)buildanduvfrom the cibuildwheelbuild-verbositysetting. (#2737)v3.3.1Compare Source
v3.3.0Compare Source
test-runtimeoption, to customise how tests on simulated/emulated environments are run (#2636)manylinux_2_35images on 32-bit ARMarmv7l, offering better C++20 compatibility (#2656)build[uv]is now supported on Android (#2587)uv) with a simple option on the GitHub Action (#2630){project}and{package}placeholders are now supported inrepair-wheel-command(#2589)dependency-versionsno longer constrain packages specified by yourbuild-system.requires. Previously, on platforms other than Linux, the constraints in this option would remain in the environment during the build. This has been tidied up make behaviour more consistent between platforms, and to prevent version conflicts. (#2583)test-commandon Android, enabling more options to be passed (#2590)v3.2.1Compare Source
v3.2.0Compare Source
pypy-eolin theenableoption, as it is now end-of-life. (#2521)v3.1.4Compare Source
--clean-cachecommand to clean up our cache (#2489)pyodide-buildwhendependency-versionsis set (#2548)CMAKE_FIND_ROOT_PATH_MODE_PACKAGEtoBOTHon Android (#2547)patchelfdependency for platforms that can build Android wheels (#2552)CIBW_ARCHSlike most other environment variables (#2541)colorandsuggest_on_errorargparse options are now default in 3.14rc1+ (#2554)v3.1.3Compare Source
v3.1.2Compare Source
CIBW_FREE_THREADING_SUPPORTis set; you are likely missing 3.13t wheels, please use theenable/CIBW_ENABLE(#2520)riscv64now enabled if you target that architecture, it's now supported on PyPI (#2509)cpython-experimental-riscv64(no longer needed) (#2526, #2528)test-skipof"*-macosx_universal2:arm64"(#2522)v3.1.1Compare Source
v3.1.0Compare Source
"cpython-prerelease"enableset. It's time to build and upload these wheels to PyPI! This release includes CPython 3.14.0rc1, which is guaranteed to be ABI compatible with the final release. (#2507) Free-threading is no longer experimental in 3.14, so you have to skip it explicitly with'cp31?t-*'if you don't support it yet. (#2503)platformoption toandroidon Linux or macOS to try it out! (#2349)manylinux_2_28(now a consistent default) andmanylinux_2_34added (#2500)enable) since you can't push them to PyPI yet (#2506)cp39-musllinux_ricv64->cp39-musllinux_riscv64) (#2490)--onlynow shows the correct possibilities, and even suggests near matches on Python 3.14+ (#2499)v3.0.1Compare Source
v3.0.0Compare Source
See @henryiii's release post for more info on new features!
🌟 Adds the ability to build wheels for iOS! Set the
platformoption toioson a Mac with the iOS toolchain to try it out! (#2286, #2363, #2432)🌟 Adds support for the GraalPy interpreter! Enable for your project using the
enableoption. (#1538, #2411, #2414)✨ Adds CPython 3.14 support, under the
enableoptioncpython-prerelease. This version of cibuildwheel uses 3.14.0b2. (#2390)While CPython is in beta, the ABI can change, so your wheels might not be compatible with the final release. For this reason, we don't recommend distributing wheels until RC1, at which point 3.14 will be available in cibuildwheel without the flag. (#2390)
✨ Adds the test-sources option, and changes the working directory for tests. (#2062, #2284, #2437)
test-sourcesinto the temporary directory we run from. This is required for iOS builds, but also useful for other platforms, as it allows you to avoid placeholders.{project}placeholder in thetest-commandto refer to the project directory. (#2420)✨ Adds
dependency-versionsinline syntax (#2122)✨ Improves support for Pyodide builds and adds the experimental
pyodide-versionoption, which allows you to specify the version of Pyodide to use for builds. (#2002)✨ Add
pyodide-prereleaseenable option, with an early build of 0.28 (Python 3.13). (#2431)✨ Adds the
test-environmentoption, which allows you to set environment variables for the test command. (#2388)✨ Adds the
xbuild-toolsoption, which allows you to specify tools safe for cross-compilation. Currently only used on iOS; will be useful for Android in the future. (#2317)🛠 The default manylinux image has changed from
manylinux2014tomanylinux_2_28. (#2330)🛠 EOL images
manylinux1,manylinux2010,manylinux_2_24andmusllinux_1_1can no longer be specified by their shortname. The full OCI name can still be used for these images, if you wish. (#2316)🛠 Invokes
buildrather thanpip wheelto build wheels by default. You can control this via thebuild-frontendoption. You might notice that you can see your build log output now! (#2321)🛠 Build verbosity settings have been reworked to have consistent meanings between build backends when non-zero. (#2339)
🛠 Removed the
CIBW_PRERELEASE_PYTHONSandCIBW_FREE_THREADED_SUPPORToptions - these have been folded into theenableoption instead. (#2095)🛠 Build environments no longer have setuptools and wheel preinstalled. (#2329)
🛠 Use the standard Schema line for the integrated JSONSchema. (#2433)
"auto". It now requires explicit"auto32". Note that modern manylinux images (like the new default,manylinux_2_28) do not have 32-bit versions. (#2458)enableoption topypyorpypy-eol. (#2095)📚 A reorganisation of the docs, and numerous updates. (#2280)
📚 Use Python 3.14 color output in docs CLI output. (#2407)
📚 Docs now primarily use the pyproject.toml name of options, rather than the environment variable name. ([#2389](https://redirec
Configuration
📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.