Skip to content

chore(deps): update cargo minor/patch updates - #1792

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/cargo-minorpatch-updates
Open

chore(deps): update cargo minor/patch updates#1792
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/cargo-minorpatch-updates

Conversation

@renovate

@renovate renovate Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change Pending
jsonschema workspace.dependencies minor 0.490.52 0.53.0 (+1)
quick-xml workspace.dependencies minor 0.410.42

Release Notes

Stranger6667/jsonschema (jsonschema)

v0.52.0

Added
  • Evaluation::is_valid.
  • Location::is_empty.
  • Display for ErrorEntry.
  • ValidationOptions::offline and canonical::CanonicalizeOptions::offline, refusing to fetch references outside the registry.
  • idna Cargo feature, enabled by default, gating the idn-hostname and idn-email formats. #​1313
  • CLI: the --offline flag of jsonschema validate, jsonschema bundle and jsonschema dereference.
Changed
  • ValidationErrors' Display gained the instance path of each error.
  • BREAKING: With default-features = false, the idn-hostname and idn-email formats now require the new idna feature. Without it they are unknown formats, which are accepted by default, or rejected at build time under should_ignore_unknown_formats(false). Add idna to the feature list to keep the previous behavior.
Fixed
  • Canonicalization not idempotent where a patternProperties $ref matches a key properties names.
  • is_valid disagreeing with validate, iter_errors, and evaluate on a schema that reaches its own $ref twice, one of them under not.
  • format: email and format: idn-email rejecting an empty quoted string as the local part (it should be accepted).
  • format: email and format: idn-email rejecting an address literal whose IPv6: tag is not written in that exact case (the tag is case-insensitive).
  • format: email accepting a non-ASCII character in the local part (it should be rejected).
  • ValidationOptions::with_draft gating keywords on the vocabularies of the $schema it overrides, so the validator accepted every instance.
Performance
  • iter_errors collects into a single buffer instead of allocating and re-boxing an iterator at every schema node.

v0.51.0

Added
  • ValidationOptions::with_vocabulary and the vocabularies attribute on jsonschema::validator, declaring support for a vocabulary this crate does not implement.
  • The --vocabulary flag of jsonschema validate.
Changed
  • Vocabulary gained the FormatAssertion variant, which its Draft 2020-12 URI parses to instead of Vocabulary::Custom, and is marked non_exhaustive.
Fixed
  • The uniqueItems length ceiling not reading an items or contains schema written as a $ref.
  • The Draft 2020-12 Format-Assertion vocabulary read as an annotation, so a meta-schema requiring it accepted values its format rejects.
  • An unrecognized format accepted under a meta-schema requiring the Format-Assertion vocabulary (it should be rejected).
  • A meta-schema requiring a vocabulary this crate does not implement accepted (it should be rejected).
  • The Draft 2019-09 Format vocabulary declared true read as an annotation, so a meta-schema requiring it accepted values its format rejects.
  • The bundled https://json-schema.org/draft/2020-12/meta/format-assertion meta-schema not declaring its vocabulary, so a schema written against it annotated format instead of asserting it.
  • A meta-schema without $id keeping its $vocabulary unread, so a schema written against it got every Draft 2020-12 vocabulary.
  • A schema naming a bundled vocabulary meta-schema as its $schema rejected as an unknown meta-schema (it should build).
  • The regex format reading the Rust regex dialect (it should read the ECMA-262 dialect in Unicode mode).
  • The uri-template format rejecting an apostrophe in a literal (it should accept it, per RFC 6570 errata 6937).
  • The duration format accepting weeks combined with a time part, such as P1WT1H (it should reject it).
  • Stack overflow compiling unevaluatedProperties or unevaluatedItems beside a $ref that cycles back to the node, written as #, through its $id, or through a chain of definitions.
Performance
  • Building unevaluatedProperties or unevaluatedItems over a deep allOf or $ref chain costs its depth instead of its square.

v0.50.1

Changed
  • CanonicalSchema::satisfiability answers Yes for a string whose pattern or format a matching value can be built from.
  • CanonicalSchema::satisfiability answers No where a format takes no string of the length the schema asks for.
Fixed
  • CanonicalSchema::negate taking apart a union that reads a definition through its own if, so a schema and its negation shared a value.
  • CanonicalSchema::subtract dropping a Draft 4 array member an element demand partly takes.
  • CanonicalSchema::covers answering Yes where a Draft 4 element demand refuses a member.
  • A string schema whose maxLength is 0 keeping a pattern, format, or content facet unread, so the same constraints written in one object and written as an allOf reached different canonical forms.
Performance
  • not over a wide object schema costs its branch count instead of its square.
  • not over an object schema is linear in its property count, not quadratic.
  • not over an object schema with additionalProperties: false no longer costs cubic time in its property count.

v0.50.0

Added
  • CanonicalSchema::union and CanonicalSchema::subtract.
  • CanonicalizationError::UnsupportedResult, reported where the canonical form does not support a set operation's result.
  • OperandMismatch::DocumentRoots, reported where both operands read # and it names a different document on each side.
  • CLI: jsonschema validate -i INSTANCE without a SCHEMA argument validates each instance against the schema named in its own $schema property. #​1470
Changed
  • CanonicalSchema::is_satisfiable is now CanonicalSchema::satisfiability, answering Yes, No, or Unknown - Yes wherever a value can be exhibited, not only for the forms listing their members.
  • CanonicalSchema::covers decides through the difference as well: No where the argument keeps values the receiver rejects, Yes where nothing is left over.
  • CanonicalSchema::is_subset_of is now CanonicalSchema::covers, answering Yes, No, or Unknown for whether the receiver admits every value the argument admits.
  • CanonicalSchema::negate returns Result rather than Option.
  • CanonicalizationError::UnmodeledOperand is now CanonicalizationError::UnsupportedOperand, and means only that an operand is a Raw pass-through.
  • A conjunction over a $ref folds through the body it names, so canonicalizing a document and combining its parts with the set operations reach one form; a document holding a reference cycle keeps the form it had.
Fixed
  • Combining nodes of two different documents repointing a $ref to # at the combined result instead of the document it was written in, including one named by a definition the result keeps.
  • Intersecting a $ref whose target is true or false, which panicked.
  • A key constraint left un-narrowed once a run is out of intersections, which panicked on the next read of it.
  • CanonicalSchema::covers answering Unknown for a schema against itself, where that schema is a $ref.
  • CanonicalSchema::union keeping a $ref beside the schema it names, where the other three operations read through it.
  • CanonicalSchema::covers and CanonicalSchema::subtract cancelling two nodes written the same way whose # names a different document.
  • Two results accepting the same values comparing unequal over the part of their documents neither reads.
  • additionalProperties reaching a key the pattern map matches when a finite key constraint closes the map, which dropped values both operands accept.
  • A recursive definition stopping every other pointer in the document from being read through.
  • One $defs entry read past a wider schema written out at every use, rather than kept as the pointer it was.
  • Set operations rejecting one document canonicalized twice, and a pruned result rejected against the document it came from, where the maps resolve every shared reference the same way.
  • Set operations comparing a $ref as a pointer instead of reading through it, so a schema written with a $ref did not cancel against the same schema written out.
  • CanonicalSchema::subtract asking for a complement where the difference is one of the operands or empty, declining on schemas it can subtract.
  • Set operations keeping $defs entries the result no longer references, which then showed up in the emitted schema.
  • CanonicalSchema::union declining over an approximated intersection, where the union itself is exact.
  • Resolving a reference against a base URI that carries a fragment, which happens when a Draft 4-7 $id contains one. #​1473
  • unevaluatedProperties and unevaluatedItems ignoring an $id on a subschema they walk through, so a relative $ref inside it resolved against the enclosing resource.
Performance
  • CLI: ~25% less CPU per run from compile-time meta-schema validators.
tafia/quick-xml (quick-xml)

v0.42.0

Compare Source

This is a large release. The primary change is an ergonomic improvement across the entire API -
quick_xml now makes use of &str and String types where possible instead of
&[u8] and Vec<u8>. This requires significant refactoring of downstream code,
but should result in a net simplification as well as potential performance improvements,
and opens up additional opportunities in future releases.

The MSRV has been raised to 1.86. We now use Rust 2024 Edition.

Breaking Changes
  • #​963: Reader now validates that input is valid UTF-8 when constructing events.
    Non-UTF-8 input passed to Reader::from_reader() without DecodingReader will now
    produce Error::Encoding instead of silently passing through invalid bytes.
    Use DecodingReader to transcode non-UTF-8 sources.
  • #​963: Name types (QName, LocalName, Prefix, Namespace, PrefixDeclaration)
    now wrap &str instead of &[u8]. into_inner() returns &str, and AsRef<str>
    is implemented (AsRef<[u8]> has been removed). ResolveResult::Unknown now contains String
    instead of Vec<u8>, and NamespaceError variants contain String instead of Vec<u8>.
  • #​963: Removed the decoder: Decoder field from event types (BytesStart, BytesText,
    BytesCData, BytesRef) and Attributes. The decoder() method is no longer available
    on these types. Decode methods on events now always assume UTF-8 input.
    Error::missed_end() no longer takes a Decoder parameter.
  • #​963: Event types (BytesStart, BytesEnd, BytesText, BytesCData, BytesPI,
    BytesRef) now store Cow<str> internally instead of Cow<[u8]>. into_inner() on
    BytesText, BytesCData, BytesPI, and BytesRef now returns Cow<str>.
    BytesStart::set_name() now takes &str instead of &[u8].
  • #​963: All event types and the Event enum now implement Deref<Target = str>
    instead of Deref<Target = [u8]>. Explicit AsRef<str> impls are provided to
    avoid ambiguity.
  • #​963: Removed decode() methods from BytesText, BytesCData, and BytesRef.
    Content is already available as &str via Deref. The xml10_content(),
    xml11_content(), xml_content(), and html_content() methods now return
    Cow<str> directly instead of Result<Cow<str>, EncodingError>.
  • #​963: Attribute::value is now Cow<'a, str> instead of Cow<'a, [u8]>.
    The From<(&[u8], &[u8])> impl has been removed.
  • #​963: BytesDecl::version(), encoding(), and standalone() now return
    Cow<'_, str> instead of Cow<'_, [u8]>.
  • #​963: Removed Reader::decoder() method. Use Reader::encoding() instead
    (available with the encoding feature). Removed decoder() from the XmlRead
    serde trait. Removed all methods from Decoder (the struct is kept only for
    backward compatibility with deprecated Attribute methods).
  • #​980: NamespaceError::TooManyDeclarations has been renamed to TooManyBindings,
    and NamespaceResolver::set_max_declarations_per_element has been renamed to
    NamespaceResolver::set_max_namespace_bindings, and the semantic behavior has
    changed slightly. The default maximum has also been reduced from 256 to 128.
  • #​1000: DeError::UnexpectedStart renamed to DeError::MixedContent. That error
    is emitted when you try to deserialize boolean, number or string field from
    something like <field>text <tag/> another text</field>.
Bug Fixes
  • #​670: Serde serializer now escapes \r, \n, and \t in attribute values
    as &#&#8203;13;, &#&#8203;10;, and &#&#8203;9; respectively, preventing silent data loss from
    XML attribute-value normalization on round-trip. Likewise Attribute::from
    performs the same transformation.
  • #​953: The serde Deserializer now correctly handles namespaces. Previously
    the namespace bindings might be applied or removed before the event actually
    was consumed which lead to a couple of bugs.
  • #​989: Attributes::new and Attributes::html now return empty iterators when
    their starting position is past the end of the input instead of panicking.
  • #​977: NamespaceResolver::push (and hence every NsReader Start/Empty
    event) now returns the new NamespaceError::TooDeeplyNested when a document
    nests elements deeper than u16::MAX, instead of overflowing the internal
    u16 depth counter. Previously the unguarded nesting_level += 1 panicked
    under overflow-checks builds and silently wrapped in release, corrupting
    namespace-scope bookkeeping on deeply nested untrusted input.
  • #​980: NamespaceResolver now caps the total number of in-scope namespace
    bindings (default 128, configurable via set_max_namespace_bindings),
    replacing the previous per-element max_declarations_per_element limit.
  • #​978: The serde Deserializer now enforces a configurable recursion-depth
    limit (default 128, matching serde_json). Deeply nested XML returns
    DeError::TooDeeplyNested instead of overflowing the native call stack.
    Use Deserializer::recursion_limit() to adjust.
  • #​990: \r in text content is now escaped as &#&#8203;13; by the serde serializer,
    BytesText::new(), escape(), partial_escape(), and minimal_escape(),
    preventing silent conversion to \n from XML end-of-line normalization on
    round-trip. Note that \r cannot be preserved through CDATA serialization
    because character references are not permitted inside CDATA sections.
Misc Changes
  • #​269: Added getting-started examples (getting_started, writer,
    serde_roundtrip, reader_patterns, visitor) and an examples/README.md
    guide on choosing between the serde and pull-reader/writer APIs.
  • #​331: Documentation about lifetimes of the events and attributes has been clarified.
  • #​859: Added an example showing how to pretty-print serialized XML.
  • #​983: Adopted an AI use and contribution policy for new upstream contributions.
  • #​963: MSRV bumped to 1.86 (April 2025)
  • #​963: Deprecated Attribute methods that take a Decoder parameter, since
    attribute values are now always valid UTF-8: decoded_and_normalized_value(),
    decoded_and_normalized_value_with(), decode_and_unescape_value(), and
    decode_and_unescape_value_with(). Use normalized_value() and
    normalized_value_with() instead.
  • #​1002: Added NamespaceResolver::with that allows temporary applying namespace
    bindings from the start tag for the scope of a provided closure F, without making any
    persistent change to the resolver. It is useful to check a peeked event which is
    not yet consumed in custom implementations of peekable reader.
  • #​1002: Added Deserializer::resolver and Deserializer::resolver_mut methods
    to get a namespace resolver used by this deserializer, because it no longer uses
    an NsReader internally.
  • #​1005: Implement Hash, PartialOrd, and Ord across all Bytes* types.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 5am on monday"
  • 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.


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

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

@mergify
mergify Bot had a problem deploying to Mergify Merge Protections August 31, 2026 01:57 Failure
@renovate
renovate Bot had a problem deploying to func-tests-live August 31, 2026 01:57 Failure
@mergify

mergify Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Merge Protections

🔴 1 of 6 protections blocking · waiting on 🤖 CI

Protection Waiting on
🔴 🤖 Continuous Integration 🤖 CI
🟢 👀 Review Requirements
🟢 Enforce conventional commit
🟢 🔎 Reviews
🟢 📕 PR description
🟢 🚦 Auto-queue

🔴 🤖 Continuous Integration

Waiting for

  • check-success=ci-gate
This rule is failing.
  • all of:
    • check-success=ci-gate

Show 5 satisfied protections

🟢 👀 Review Requirements

  • any of:
    • author = renovate[bot]
    • #approved-reviews-by>=2
    • author = dependabot[bot]
    • author = mergify-ci-bot

🟢 Enforce conventional commit

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|internal|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?!?:

🟢 🔎 Reviews

  • #changes-requested-reviews-by = 0
  • #review-requested = 0
  • #review-threads-unresolved = 0

🟢 📕 PR description

  • body ~= (?ms:.{48,})

🟢 🚦 Auto-queue

When all merge protections are satisfied, this pull request will be queued automatically.

@renovate
renovate Bot force-pushed the renovate/cargo-minorpatch-updates branch from 1b1cc8d to 86cc5da Compare September 2, 2026 22:33
@renovate

renovate Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.toml
Artifact update for jsonschema resolved to version 0.52.1, which is a pending version that has not yet passed the Minimum Release Age threshold.
Renovate was attempting to update to 0.52.0
This is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.
Until Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with `rangeStrategy=pin` for apps, or `rangeStrategy=widen` for libraries)
See also: https://docs.renovatebot.com/dependency-pinning/

@mergify
mergify Bot had a problem deploying to Mergify Merge Protections September 2, 2026 22:33 Failure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

0 participants