chore(deps): update rust crate jsonschema (0.49.9 → 0.58.1) - #107
Open
atvik-renovate[bot] wants to merge 1 commit into
Open
atvik-renovate[bot] wants to merge 1 commit into
atvik-renovate[bot] wants to merge 1 commit into
Conversation
atvik-renovate
Bot
force-pushed
the
renovate/jsonschema-0.x
branch
2 times, most recently
from
August 26, 2026 20:35
b648ff6 to
54dda3e
Compare
atvik-renovate
Bot
force-pushed
the
renovate/jsonschema-0.x
branch
from
August 29, 2026 23:46
54dda3e to
94250eb
Compare
atvik-renovate
Bot
force-pushed
the
renovate/jsonschema-0.x
branch
from
September 5, 2026 20:44
94250eb to
82a5682
Compare
atvik-renovate
Bot
force-pushed
the
renovate/jsonschema-0.x
branch
from
September 8, 2026 23:55
82a5682 to
425618b
Compare
atvik-renovate
Bot
force-pushed
the
renovate/jsonschema-0.x
branch
from
September 9, 2026 21:07
425618b to
839602d
Compare
atvik-renovate
Bot
force-pushed
the
renovate/jsonschema-0.x
branch
from
September 13, 2026 08:38
839602d to
098653b
Compare
atvik-renovate
Bot
force-pushed
the
renovate/jsonschema-0.x
branch
from
September 24, 2026 23:38
098653b to
fe2c731
Compare
atvik-renovate
Bot
force-pushed
the
renovate/jsonschema-0.x
branch
from
September 28, 2026 14:34
fe2c731 to
35c2d2c
Compare
Contributor
Author
|
This branch has not been deployed
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.49→0.580.58.3(+1)Release Notes
Stranger6667/jsonschema (jsonschema)
v0.58.1Fixed
Pyo3validators when anEnummember'svalueoverride emptied a list or dict holding the instance being read.Performance
urianduri-referenceformats check the syntax directly instead of parsing each value into a URI.Enummembers read their stored value directly instead of calling thevalueproperty inPyo3validators.v0.58.0Added
backend = Pyo3on#[jsonschema::validator], generating a validator that reads Python objects in place.backend = Magnuson#[jsonschema::validator], generating a validator that reads Ruby objects in place.jsonschema::meta::pyo3, the bundled meta-schema validators for a schema held as a Python object.jsonschema::meta::magnus, the bundled meta-schema validators for a schema held as a Ruby object.methods = { ... }on#[jsonschema::validator], selecting which ofis_valid,validate, anditer_errorsare generated.json::Jsonb, validating a Postgresjsonbvalue in place, behind thejsonbfeature.Performance
oneOfandanyOfwhose branches each require a property fixed to a distinct string validate only the branch matching the instance's value.validatechecksrequiredin the same pass over an object asproperties, instead of looking up each required name.Fixed
oneOfover$refbranches beside a sibling none of them admits, which canonicalized to anallOfinstead offalse.multipleOfincorrectly accepted1e-400and other magnitudes below the smallestf64subnormal witharbitrary-precision(they are not zero).f64withoutarbitrary-precision.v0.57.0Added
PreparedDocument::unsatisfiable, naming the keywords that leave each unsatisfiable subschema empty and where they are.Changed
PreparedDocument::unsatisfiable_pointersis replaced byPreparedDocument::unsatisfiable.Fixed
PreparedDocument::unsatisfiable_pointerspassed over a subschema that admits no value only once its references resolve, such as anallOfover two$refs.Performance
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.v0.51.0Added
ValidationOptions::with_vocabularyand thevocabulariesattribute onjsonschema::validator, declaring support for a vocabulary this crate does not implement.--vocabularyflag ofjsonschema validate.Changed
Vocabularygained theFormatAssertionvariant, which its Draft 2020-12 URI parses to instead ofVocabulary::Custom, and is markednon_exhaustive.Fixed
uniqueItemslength ceiling not reading anitemsorcontainsschema written as a$ref.formatrejects.formataccepted under a meta-schema requiring the Format-Assertion vocabulary (it should be rejected).trueread as an annotation, so a meta-schema requiring it accepted values itsformatrejects.https://json-schema.org/draft/2020-12/meta/format-assertionmeta-schema not declaring its vocabulary, so a schema written against it annotatedformatinstead of asserting it.$idkeeping its$vocabularyunread, so a schema written against it got every Draft 2020-12 vocabulary.$schemarejected as an unknown meta-schema (it should build).regexformat reading the Rust regex dialect (it should read the ECMA-262 dialect in Unicode mode).uri-templateformat rejecting an apostrophe in a literal (it should accept it, per RFC 6570 errata 6937).durationformat accepting weeks combined with a time part, such asP1WT1H(it should reject it).unevaluatedPropertiesorunevaluatedItemsbeside a$refthat cycles back to the node, written as#, through its$id, or through a chain of definitions.Performance
unevaluatedPropertiesorunevaluatedItemsover a deepallOfor$refchain costs its depth instead of its square.v0.50.1Changed
CanonicalSchema::satisfiabilityanswersYesfor a string whosepatternorformata matching value can be built from.CanonicalSchema::satisfiabilityanswersNowhere aformattakes no string of the length the schema asks for.Fixed
CanonicalSchema::negatetaking apart a union that reads a definition through its ownif, so a schema and its negation shared a value.CanonicalSchema::subtractdropping a Draft 4 array member an element demand partly takes.CanonicalSchema::coversansweringYeswhere a Draft 4 element demand refuses a member.maxLengthis0keeping apattern,format, or content facet unread, so the same constraints written in one object and written as anallOfreached different canonical forms.Performance
notover a wide object schema costs its branch count instead of its square.notover an object schema is linear in its property count, not quadratic.notover an object schema withadditionalProperties: falseno longer costs cubic time in its property count.v0.50.0Added
CanonicalSchema::unionandCanonicalSchema::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.jsonschema validate -i INSTANCEwithout aSCHEMAargument validates each instance against the schema named in its own$schemaproperty. #1470Changed
CanonicalSchema::is_satisfiableis nowCanonicalSchema::satisfiability, answeringYes,No, orUnknown-Yeswherever a value can be exhibited, not only for the forms listing their members.CanonicalSchema::coversdecides through the difference as well:Nowhere the argument keeps values the receiver rejects,Yeswhere nothing is left over.CanonicalSchema::is_subset_ofis nowCanonicalSchema::covers, answeringYes,No, orUnknownfor whether the receiver admits every value the argument admits.CanonicalSchema::negatereturnsResultrather thanOption.CanonicalizationError::UnmodeledOperandis nowCanonicalizationError::UnsupportedOperand, and means only that an operand is aRawpass-through.$reffolds 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
$refto#at the combined result instead of the document it was written in, including one named by a definition the result keeps.$refwhose target istrueorfalse, which panicked.CanonicalSchema::coversansweringUnknownfor a schema against itself, where that schema is a$ref.CanonicalSchema::unionkeeping a$refbeside the schema it names, where the other three operations read through it.CanonicalSchema::coversandCanonicalSchema::subtractcancelling two nodes written the same way whose#names a different document.additionalPropertiesreaching a key the pattern map matches when a finite key constraint closes the map, which dropped values both operands accept.$defsentry read past a wider schema written out at every use, rather than kept as the pointer it was.$refas a pointer instead of reading through it, so a schema written with a$refdid not cancel against the same schema written out.CanonicalSchema::subtractasking for a complement where the difference is one of the operands or empty, declining on schemas it can subtract.$defsentries the result no longer references, which then showed up in the emitted schema.CanonicalSchema::uniondeclining over an approximated intersection, where the union itself is exact.$idcontains one. #1473unevaluatedPropertiesandunevaluatedItemsignoring an$idon a subschema they walk through, so a relative$refinside it resolved against the enclosing resource.Performance
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ 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.
This PR has been generated by Mend Renovate CLI.