Skip to content

Draft: Update dependency lxml to v6

This MR contains the following updates:

Package Update Change
lxml (source, changelog) major ==5.4.0 -> ==6.0.2

All Renovate MRs are tracked by #227.


Release Notes

lxml/lxml (lxml)

v6.0.2

Compare Source

==================

Bugs fixed

Other changes

  • Binary wheels for Py3.9-3.11 on the riscv64 architecture were added.

  • Error constants were updated to match libxml2 2.15.0.

  • Built using Cython 3.1.4.

v6.0.1

Compare 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 wheel package 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.0

Compare Source

==================

Features added

  • GH#463: lxml.html.diff is faster and provides structurally better diffs. Original patch by Steven Fernandez.

  • GH#405: The factories Element and ElementTree can now be used in type hints.

  • GH#448: Parsing from memoryview and other buffers is supported to allow zero-copy parsing.

  • GH#437: lxml.html.builder was missing several HTML5 tag names. Patch by Nick Tarleton.

  • GH#458: CDATA can now be written into the incremental xmlfile() writer. Original patch by Lane Shaw.

  • A new parser option decompress=False was added that controls the automatic input 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_FEATURES and etree.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 head and body properties of lxml.html elements failed if no such element was found. They now return None instead. Original patch by FVolral.

  • Tag names provided by code (API, not data) that are longer than INT_MAX could be truncated or mishandled in other ways.

  • .text_content() on lxml.html elements 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.monitoring support 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 Schematron class 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 arm7l target.

  • GH#465: Windows wheels include the arm64 target. 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() and MemDebug.show() were removed completely. libxml2 2.13.0 discarded this feature.


Configuration

📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

♻️ Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.


  • If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Edited by CKI CI Bot

Merge request reports

Loading