Skip to content

chore(deps): update rust crate jsonschema to 0.52 - autoclosed - #1955

Closed
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/jsonschema-0.x
Closed

chore(deps): update rust crate jsonschema to 0.52 - autoclosed#1955
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/jsonschema-0.x

Conversation

@renovate

@renovate renovate Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
jsonschema workspace.dependencies minor 0.490.52

Release Notes

Stranger6667/jsonschema (jsonschema)

v0.52.1

Fixed
  • multipleOf rejecting valid values like 1070468.14 for 0.01 without arbitrary-precision.
Performance
  • minLength and maxLength together now scan the string once.
  • multipleOf with a fractional divisor is 8-16x faster.
  • unevaluatedProperties is up to 2.9x faster.
  • evaluate is up to 27% faster on reference-heavy schemas.

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.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "every weekend"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, 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
renovate Bot force-pushed the renovate/jsonschema-0.x branch 3 times, most recently from 5c8f075 to f5995a5 Compare August 23, 2026 20:41
@renovate renovate Bot changed the title chore(deps): update rust crate jsonschema to 0.50 chore(deps): update rust crate jsonschema to 0.51 Aug 23, 2026
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch from f5995a5 to 50d54c5 Compare August 27, 2026 00:35
@renovate renovate Bot changed the title chore(deps): update rust crate jsonschema to 0.51 chore(deps): update rust crate jsonschema to 0.52 Aug 27, 2026
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch 2 times, most recently from f84d2a5 to 438fc3c Compare August 31, 2026 09:05
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch from 438fc3c to e5b5e19 Compare August 31, 2026 10:42
@gtema gtema closed this Aug 31, 2026
@renovate renovate Bot changed the title chore(deps): update rust crate jsonschema to 0.52 chore(deps): update rust crate jsonschema to 0.52 - autoclosed Aug 31, 2026
@renovate
renovate Bot deleted the renovate/jsonschema-0.x branch August 31, 2026 11:40
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