Skip to content

chore(deps): update dependency com_github_zeux_pugixml to v1.16#16190

Open
renovate-bot wants to merge 1 commit into
googleapis:mainfrom
renovate-bot:renovate/com_github_zeux_pugixml-1.x
Open

chore(deps): update dependency com_github_zeux_pugixml to v1.16#16190
renovate-bot wants to merge 1 commit into
googleapis:mainfrom
renovate-bot:renovate/com_github_zeux_pugixml-1.x

Conversation

@renovate-bot

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
com_github_zeux_pugixml http_archive minor v1.15v1.16

Release Notes

zeux/pugixml (com_github_zeux_pugixml)

v1.16

Compare Source

pugixml-1.16 is out. This is an anniversary release: pugixml turns 20 this year!

In early 2006, I was evaluating existing XML parsers to parse large COLLADA files quickly and nothing fit the bill; existing DOM parsers were very slow and often cumbersome to use, existing SAX parsers required a tricky parsing flow for documents with many internal references with unspecified order. The most promising existing parser was pugxml (no i), which had a nice API and an interesting parsing approach - but still left a lot of performance on the table so I thought I could quickly patch it up and call it a day. The project was named pugixml (where i stands for improved) in late May 2006.

The first version was assigned a number 0.1 in July, and was used in a few internal projects. It was tiny: 1800 lines of code (plus 700 line header), no tree modification, no Unicode support, no XPath, no compact mode, slower parser. But it was quite useful and so the first version 0.2 was released to the public in November. Originally pugixml was developed in Subversion, until eventually migrating to Git on github.com. Over the following years it quickly gained important features that were missing in the original release; code got faster through continuous tuning; some APIs were adjusted or removed. The library started gaining wider adoption.

In 2010, v1.0 came out. This represented a major stability point: it was the last release to remove or break any APIs, and since then pugixml has remained API-stable and also maintained binary compatibility. Since then, other important improvements have been introduced; for example, in 2015 a major new compilation mode, PUGIXML_COMPACT, allowed to significantly reduce the DOM memory consumption at a small performance cost with no change in API/ABI.

Development continues to this day, 20 years later; in some sense, pugixml is “complete” - the library has worked great for the last decade and all critical functionality is there. But it still requires continued maintenance, as new compilers and language features introduce new problems, some latent bugs are occasionally found, and occasional new minor features are being added. What started as a quick excursion turned into a life-long project - here’s to the next decade!


Behavior changes:

  • Elements that have a single empty PCDATA child are now printed as empty element tags (unless format_no_empty_element_tags is used)

Improvements:

  • PUGIXML_CHARCONV_FLOAT option can be enabled to switch floating point conversions to <charconv>; this requires C++17, makes the conversions locale-independent and can improve performance
  • Add xml_node::ensure_child and xml_node::ensure_attribute that return the child/attribute with the specified name, adding one if it does not exist
  • Improve performance of searching for nodes and attributes by name
  • Loading a document from an empty buffer no longer performs memory allocations

XPath improvements:

  • Improve performance of queries that evaluate or compare attribute values, like @attr > 5
  • Improve performance of queries that select nodes and attributes by name

Bug fixes:

  • Fix stack overflow when removing subtrees with extremely deep nesting
  • Fix integer overflows that could lead to crashes when loading very large (1+ GB) documents on 32-bit platforms in PUGIXML_WCHAR_MODE
  • Fix null pointer dereference when copying xpath_variable_set objects that contain string variables with unassigned values

CMake improvements:

  • Apple frameworks built with PUGIXML_BUILD_APPLE_FRAMEWORK now include framework headers
  • PUGIXML_INSTALL_SOURCE option can be used to install pugixml.cpp (useful for header-only mode)

Compatibility improvements:

  • Add project files and NuGet packages for Visual Studio 2026
  • Fix compatibility with C++20 modules when including pugixml.hpp in the global module fragment
  • Fix clang/gcc warnings -Wextra-semi-stmt, -Wsign-conversion, -Wuninitialized (GCC16)
  • Fix compilation for Embarcadero C++ XE5
  • Work around several static analysis false positives

Thanks to @​e-kwsm, @​luzpaz, @​bilbothebaggins, @​mosfet80, @​Treata11, @​sankhesh, @​jgressma, @​ravstrix, @​seanm and @​nolange for contributions!


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Monday through Friday (* * * * 1-5)
  • 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.

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


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

This PR was generated by Mend Renovate. View the repository job log.

@renovate-bot renovate-bot requested a review from a team as a code owner June 24, 2026 21:05

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request updates the 'com_github_zeux_pugixml' dependency in 'bazel/development2.bzl' from version 1.15 to 1.16, updating its URL, SHA-256 checksum, and strip prefix accordingly. There are no review comments, and I have no feedback to provide.

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.

1 participant