Skip to content

chore(deps): update rust crate jsonschema to 0.56.0 - #615

Merged
bzp2010 merged 1 commit into
mainfrom
renovate/jsonschema-0.x
Sep 16, 2026
Merged

bzp2010 merged 1 commit into
mainfrom
renovate/jsonschema-0.x

Conversation

@renovate

@renovate renovate Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
jsonschema workspace.dependencies minor 0.51.0 → 0.56.0

Release Notes

Stranger6667/jsonschema (jsonschema)

v0.56.0

Added
  • canonical::RawReason, what stopped a run from modeling a document, and canonical::RawView, carrying it beside the document and a pointer to the subschema the run stopped on.
  • ValidationOptions::is_known_format, whether a format of that name is checked under a draft.
Changed
  • BREAKING: canonical::CanonicalView::Raw carries a canonical::RawView in place of the document alone.
  • Canonicalization of a oneOf whose branches share a region too wide to expand, which spent the document's whole intersection allowance on that choice and kept the document Raw.
Performance
  • Preparing or building a schema that names no base URI parses the default one once for the process instead of once per schema.
  • Canonicalizing several subschemas of one prepared document compiles each pattern once for the document instead of once per call.
  • Canonicalization reads the facets no checker covers once per node instead of once per containment query.

v0.55.1

Changed
  • Canonicalization of an anyOf over an allOf through a $ref to a union, which left that union nested inside the outer one.
  • Canonicalization of an anyOf whose branch narrowing runs out of intersections, which left true as a branch inside the union.

v0.55.0

Changed
  • BREAKING: canonical::ObjectViolationView gained the PatternValueFails variant, which negation records for a patternProperties entry.
  • Canonicalization of not over patternProperties, which kept the entry under not instead of recording the demand a key breaks.
  • Canonicalization of unevaluated* beside a conditional reaching no key or index the node already evaluates, which spent a case on it.
  • Canonicalization of a conditional split outgrowing its per-node case budget, which kept documents like the Open API 3.2 meta-schema Raw.
  • Canonicalization of an anyOf over objects sharing a properties key under patternProperties, which settled only on a second pass.
  • Canonicalization of not over an allOf folded through a reference, which settled only on a second pass.
  • Canonicalization of a multipleOf divisor past f64 precision, which was not taken to divide itself.
  • Canonicalization of an anyOf over a value beside a window pinned to it, which settled only on a second pass.
  • Canonicalization of minProperties: 1 beside a not that already demands a key, which settled only on a second pass.
Fixed
  • absolute_keyword_location naming the sibling keyword whose validator carries the check: maxLength beside minLength, minItems, maxItems or type beside items, and a two-name required beside properties. #​1579
  • schemaLocation in evaluate output naming minLength for a maxLength failure. #​1579

v0.54.0

Added
  • backend = SerdeJson on #[jsonschema::validator], generating a validator that reads serde_json::Value.
  • PreparedDocument::unsatisfiable_pointers, listing every subschema no value satisfies.
Changed
  • Canonicalization of unevaluated* beside dependentSchemas or if/then/else, which kept the document Raw.
  • Canonicalization of not over patternProperties, which kept the document Raw.
Performance
  • validate and iter_errors check each assertion keyword with the is_valid path and build an error only for a failing one.
  • evaluate holds its output tree in one allocation instead of one per node.
  • A pattern of ^\S*$ scans bytes instead of decoding every character.
  • validate on properties beside a two-name required confirms both names in the pass that checks the properties, instead of looking each up first.
  • A string enum compares an option's length and first and last eight bytes before its full text.
  • A JSON Pointer segment is scanned for ~ and / eight bytes at a time before it is copied.
  • Canonicalization cloning leaves per intersection and the definition map per settled target.
Fixed
  • type: array with items and minItems/maxItems checking the built-in length bound even when a custom keyword overrides minItems or maxItems, so the bound was evaluated twice.
  • A custom keyword overriding type, required or maxLength not replacing the built-in check for that keyword.
  • A custom keyword overriding items, minLength, properties or additionalProperties leaving its sibling keywords unchecked.
  • #[jsonschema::validator] generated code that named serde_json directly, so it needed the consumer crate to depend on serde_json too.
  • Canonicalization of not over an object with properties, patternProperties and additionalProperties, which applied additionalProperties to the keys listed in properties.

v0.53.0

Added
  • Location::segments, iterating the segments without collecting them.
  • CanonicalizeOptions::prepare, canonicalizing any number of a document's subschemas by JSON Pointer, with the document indexed once.
  • CLI: the --at POINTER flag of jsonschema canonicalize, canonicalizing only the subschema at that pointer without breaking its references into the rest of the document.
  • CLI: jsonschema canonicalize reads YAML schemas (.yaml/.yml) as well as JSON.
  • canonical::{ArrayView, IntegerView, NumberView, ObjectView, StringView, TypedGroupView}, the payload types of CanonicalView, so consumers can name them in signatures.
Fixed
  • jsonschema-value failing to build with default-features = false.
  • jsonschema-value failing to build for wasm32-unknown-unknown, which needs getrandom's wasm_js backend.
  • Draft 4 type: integer accepting numbers written with an exponent, like 1e2.
  • Draft 4 type: integer answering differently for the same number across representations.
  • uniqueItems accepting 0 alongside -0.0 in arrays of more than 15 items.
Performance
  • Canonicalizing an allOf of object schemas walks their property maps once instead of looking every key up.
  • properties and required compare short names without memcmp.
  • Building a schema is up to 5% faster, from cheaper cache sharing and resolving each $ref target once.
  • Building a schema with an $id is up to 15% faster, from encoding each absolute location once.
  • required scans small objects once instead of looking up each key.
  • enum listing strings or integers, with or without null, matches against a set instead of comparing each candidate.
  • evaluate is up to 33% faster, from rendering each node's locations once.
  • CLI: 1.4-1.5x faster on large schemas, from reading files before parsing them.
  • Draft 4 type: integer with arbitrary-precision no longer allocates a string per number.
  • type: integer, and type sets containing it, are up to 54x faster on float-heavy instances with arbitrary-precision.
  • Draft 4 type: integer is up to 20x faster for the Pyo3 and Magnus representations.

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.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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
renovate Bot requested a review from bzp2010 as a code owner September 16, 2026 14:12
@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: c6a8102f-f777-4033-b80e-7ade8e9e5a41

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@bzp2010
bzp2010 merged commit eaf2f14 into main Sep 16, 2026
41 checks passed
@bzp2010
bzp2010 deleted the renovate/jsonschema-0.x branch September 16, 2026 14:27
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