chore(deps): update rust crate jsonschema to 0.56.0 - #615
Merged
Merged
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
bzp2010
approved these changes
Sep 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.51.0→0.56.0Release Notes
Stranger6667/jsonschema (jsonschema)
v0.56.0Added
canonical::RawReason, what stopped a run from modeling a document, andcanonical::RawView, carrying it beside the document and a pointer to the subschema the run stopped on.ValidationOptions::is_known_format, whether aformatof that name is checked under a draft.Changed
canonical::CanonicalView::Rawcarries acanonical::RawViewin place of the document alone.oneOfwhose branches share a region too wide to expand, which spent the document's whole intersection allowance on that choice and kept the documentRaw.Performance
v0.55.1Changed
anyOfover anallOfthrough a$refto a union, which left that union nested inside the outer one.anyOfwhose branch narrowing runs out of intersections, which lefttrueas a branch inside the union.v0.55.0Changed
canonical::ObjectViolationViewgained thePatternValueFailsvariant, which negation records for apatternPropertiesentry.notoverpatternProperties, which kept the entry undernotinstead of recording the demand a key breaks.unevaluated*beside a conditional reaching no key or index the node already evaluates, which spent a case on it.Raw.anyOfover objects sharing apropertieskey underpatternProperties, which settled only on a second pass.notover anallOffolded through a reference, which settled only on a second pass.multipleOfdivisor pastf64precision, which was not taken to divide itself.anyOfover a value beside a window pinned to it, which settled only on a second pass.minProperties: 1beside anotthat already demands a key, which settled only on a second pass.Fixed
absolute_keyword_locationnaming the sibling keyword whose validator carries the check:maxLengthbesideminLength,minItems,maxItemsortypebesideitems, and a two-namerequiredbesideproperties. #1579schemaLocationinevaluateoutput namingminLengthfor amaxLengthfailure. #1579v0.54.0Added
backend = SerdeJsonon#[jsonschema::validator], generating a validator that readsserde_json::Value.PreparedDocument::unsatisfiable_pointers, listing every subschema no value satisfies.Changed
unevaluated*besidedependentSchemasorif/then/else, which kept the documentRaw.notoverpatternProperties, which kept the documentRaw.Performance
validateanditer_errorscheck each assertion keyword with theis_validpath and build an error only for a failing one.evaluateholds its output tree in one allocation instead of one per node.patternof^\S*$scans bytes instead of decoding every character.validateonpropertiesbeside a two-namerequiredconfirms both names in the pass that checks the properties, instead of looking each up first.enumcompares an option's length and first and last eight bytes before its full text.~and/eight bytes at a time before it is copied.Fixed
type: arraywithitemsandminItems/maxItemschecking the built-in length bound even when a custom keyword overridesminItemsormaxItems, so the bound was evaluated twice.type,requiredormaxLengthnot replacing the built-in check for that keyword.items,minLength,propertiesoradditionalPropertiesleaving its sibling keywords unchecked.#[jsonschema::validator]generated code that namedserde_jsondirectly, so it needed the consumer crate to depend onserde_jsontoo.notover an object withproperties,patternPropertiesandadditionalProperties, which appliedadditionalPropertiesto the keys listed inproperties.v0.53.0Added
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.--at POINTERflag ofjsonschema canonicalize, canonicalizing only the subschema at that pointer without breaking its references into the rest of the document.jsonschema canonicalizereads YAML schemas (.yaml/.yml) as well as JSON.canonical::{ArrayView, IntegerView, NumberView, ObjectView, StringView, TypedGroupView}, the payload types ofCanonicalView, so consumers can name them in signatures.Fixed
jsonschema-valuefailing to build withdefault-features = false.jsonschema-valuefailing to build forwasm32-unknown-unknown, which needsgetrandom'swasm_jsbackend.type: integeraccepting numbers written with an exponent, like1e2.type: integeranswering differently for the same number across representations.uniqueItemsaccepting0alongside-0.0in arrays of more than 15 items.Performance
allOfof object schemas walks their property maps once instead of looking every key up.propertiesandrequiredcompare short names withoutmemcmp.$reftarget once.$idis up to 15% faster, from encoding each absolute location once.requiredscans small objects once instead of looking up each key.enumlisting strings or integers, with or withoutnull, matches against a set instead of comparing each candidate.evaluateis up to 33% faster, from rendering each node's locations once.type: integerwitharbitrary-precisionno longer allocates a string per number.type: integer, andtypesets containing it, are up to 54x faster on float-heavy instances witharbitrary-precision.type: integeris up to 20x faster for thePyo3andMagnusrepresentations.v0.52.1Fixed
multipleOfrejecting valid values like1070468.14for0.01withoutarbitrary-precision.Performance
minLengthandmaxLengthtogether now scan the string once.multipleOfwith a fractional divisor is 8-16x faster.unevaluatedPropertiesis up to 2.9x faster.evaluateis up to 27% faster on reference-heavy schemas.v0.52.0Added
Evaluation::is_valid.Location::is_empty.DisplayforErrorEntry.ValidationOptions::offlineandcanonical::CanonicalizeOptions::offline, refusing to fetch references outside the registry.idnaCargo feature, enabled by default, gating theidn-hostnameandidn-emailformats. #1313--offlineflag ofjsonschema validate,jsonschema bundleandjsonschema dereference.Changed
ValidationErrors'Displaygained the instance path of each error.default-features = false, theidn-hostnameandidn-emailformats now require the newidnafeature. Without it they are unknown formats, which are accepted by default, or rejected at build time undershould_ignore_unknown_formats(false). Addidnato the feature list to keep the previous behavior.Fixed
patternProperties$refmatches a keypropertiesnames.is_validdisagreeing withvalidate,iter_errors, andevaluateon a schema that reaches its own$reftwice, one of them undernot.format: emailandformat: idn-emailrejecting an empty quoted string as the local part (it should be accepted).format: emailandformat: idn-emailrejecting an address literal whoseIPv6:tag is not written in that exact case (the tag is case-insensitive).format: emailaccepting a non-ASCII character in the local part (it should be rejected).ValidationOptions::with_draftgating keywords on the vocabularies of the$schemait overrides, so the validator accepted every instance.Performance
iter_errorscollects into a single buffer instead of allocating and re-boxing an iterator at every schema node.Configuration
📅 Schedule: (UTC)
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.