Skip to content

fix(deps): update rust crate jsonschema to 0.61.0 - #454

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

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

Conversation

@renovate

@renovate renovate Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
jsonschema dependencies minor 0.56.0 → 0.61.0

Release Notes

Stranger6667/jsonschema (jsonschema)

v0.61.0

Added
  • Evaluation::root() and OutputUnit for walking evaluation output units without serializing them.
Fixed
  • . in pattern and patternProperties matched \r, U+2028 and U+2029 (it should reject every line terminator).
  • evaluate() reported a missing single required name beside additionalProperties: false at /additionalProperties (it should be /required).
  • Numeric keywords misjudging whole floats past 2^53. #​1825
  • Building a validator with an explicit draft retrieving the schema's $schema URI.
  • format: "date-time", "date" and "time" accepting +, ,, -, . or / where RFC 3339 requires a digit. #​1829
  • $ref pointers through a numeric object key (#/responses/200) skipping the references under their target.
  • oneOf / anyOf rejecting valid instances when a $ref inside a branch sits under an $id.
  • unevaluatedItems treated every element as evaluated beside a non-schema items value (it should evaluate none).
Performance
  • Building validators up to 15% faster on schemas that repeat the same $ref, from resolving each reference once.
  • Building registries up to 30% faster and validators up to 3% faster, from a cheaper walk over schema documents.
  • Building validators up to 25% faster on schemas that declare a base URI, from building absolute keyword locations on first use.
  • Building validators up to 3% faster, from cheaper compilation cache keys.
  • oneOf / anyOf up to 7x faster when branches fix a property with const or enum.
  • oneOf / anyOf skip branches that exclude the instance's value with not over enum or const.
  • properties up to 40% faster on objects with a few more keys than it declares.
  • minLength / maxLength skip counting code points when the byte length decides.
  • pattern starting with lookaheads (^(?=...)(?=...)...) up to 2x faster.
  • properties and additionalProperties up to 13% faster on schemas declaring 15 or more properties.
  • properties up to 12% faster on objects with keys it does not declare.
  • Validation up to 40% faster with serde_json's preserve_order feature.
  • unevaluatedProperties up to 10% faster on schemas that combine it with patternProperties or applicators.
  • required up to 40% faster when it lists every property of an object closed by additionalProperties: false.
  • properties, anyOf and other applicators faster on subschemas that only check a non-numeric type, directly or through $ref.
  • Building validators that reference file:// schemas is 10x or more faster, from reading each file in one call instead of one system call per byte.
  • evaluate() up to 20% faster on instances with many errors, from fewer allocations per error.
  • evaluate() up to 20% faster, from rendering instance locations only when the output reads them.
  • is_valid() and validate() up to 14% faster on small instances, from a cheaper per-call validation context.

v0.60.2

Fixed
  • Stack overflow when building validators for unevaluated* schemas with $ref cycles across $id resources.

v0.60.1

Fixed
  • Panic on numbers past f64 in const, enum, minimum, maximum, exclusiveMinimum, exclusiveMaximum and type: integer when another crate in the build enables serde_json/arbitrary_precision while the arbitrary-precision feature is off. #​1790
  • #[jsonschema::validator] panicking during expansion, or generating code that panics, on schema numbers past f64 when another crate in the build enables serde_json/arbitrary_precision while the arbitrary-precision feature is off. Such numbers are compile errors, as without that serde_json feature. #​1790
  • const, enum and uniqueItems treating objects with the same members in a different key order as unequal when another crate in the build enables serde_json/preserve_order. #​1791
  • Wrong results in type: integer, const, enum, uniqueItems, multipleOf, minimum, maximum, exclusiveMinimum and exclusiveMaximum for numbers with exponents past one million, such as 1e-2000000, with the arbitrary-precision feature.
  • #[jsonschema::validator] rejecting multipleOf with a positive divisor below the smallest f64, such as 1e-400, with the arbitrary-precision feature.
Performance
  • Validation of numbers with many digits or large exponents in const, enum, uniqueItems, type: integer, multipleOf, minimum, maximum, exclusiveMinimum and exclusiveMaximum with the arbitrary-precision feature taking time growing faster than the square of the digit count, instead of at most the square.
  • Validation of numbers with more than ten thousand digits, written or implied by their exponent, with the arbitrary-precision feature taking time linear in their written length instead of quadratic in their digit count.

v0.60.0

Changed
  • ValidationErrorKind::Enum and ValidationErrorKind::Constant holding their values as Arc<Value> shared with the validator, instead of a copy per error. #​1777
Performance
  • Validation with unfinished regex matches running each such match once instead of once per run, and comparing errors across runs in linear time instead of quadratic. #​1784
  • items and additionalProperties looking up a single-keyword subschema once per array or object instead of once per value.
  • is_valid and validate reading fewer cache lines per subschema, by keeping error locations apart from validators.
  • is_valid on recursive schemas caching only $ref results that took many steps to compute, instead of every one.
  • Error evaluation paths taking memory linear in the $ref nesting depth, not quadratic. #​1778

v0.59.0

Added
  • CLI: - as a path reads the schema or an instance from stdin.
  • CLI: -V as the version flag; -v stays as an alias.
Changed
  • CLI: Exit status 3 for errors that prevent a verdict and 2 for usage errors, so 1 always means an invalid instance or schema.
  • CLI: Errors print to stderr instead of stdout.
  • CLI: --version prints jsonschema-cli <VERSION> instead of Version: <VERSION>.
Fixed
  • CLI: Panic when stdout is closed early, as in jsonschema-cli validate ... | head.
  • CLI: Missing file path in the error for an unreadable instance in text output.
  • CLI: jsonschema-cli bundle, jsonschema-cli dereference and jsonschema-cli canonicalize truncating the --output file when the write fails partway.
  • CLI: jsonschema-cli validate --help describing --offline in terms of --resource, which validate does not accept.
  • CLI: Error and warning messages suggesting jsonschema commands instead of the installed jsonschema-cli binary.
  • Canonicalizing several subschemas of one prepared document, where a $ref in a later output could point at another subschema.
  • canonicalize leaving unevaluatedProperties or unevaluatedItems beside anyOf or oneOf raw.
  • canonicalize giving a different form for a oneOf depending on the order of its branches.
  • canonicalize output changing when canonicalized again, for a not over a $ref it cannot fully negate.
  • canonicalize output changing when canonicalized again, for a oneOf whose branches reduce to the same $ref.
  • canonicalize leaving an anyOf over many overlapping objects raw.
  • canonicalize leaving dependencies or dependentRequired raw when their keys form a long chain or cycle.
  • canonicalize treating -0 as a value distinct from 0 under arbitrary-precision.
  • Regex matches the engine cannot finish, such as on reaching the backtrack limit, counted as non-matches, letting not or patternProperties accept invalid instances. #​1715
  • canonicalize treating regex matches the engine cannot finish as non-matches.
Performance
  • canonicalize giving up sooner on an allOf over unions too wide to model.

v0.58.6

Fixed
  • \s in pattern missing most Unicode space separators and U+2028.
  • ECMA regex character class literals being interpreted as Rust set operators.

v0.58.5

Fixed
  • canonicalize keeping a reference to a cycle of bare references under not or oneOf instead of treating it as accepting every value.

v0.58.4

Fixed
  • Validator::draft returning the default draft instead of the one $schema declares.
  • unevaluatedProperties and unevaluatedItems beside a $recursiveRef ignoring what the reference target evaluates.
  • unevaluatedProperties ignoring the configured regex engine and its limits for patternProperties.
  • Absolute keyword location and schemaLocation of keywords a $ref JSON Pointer reaches through a subschema with its own $id.
  • type, minItems and maxItems ignored beside items when the applicator vocabulary is disabled.
  • Absolute keyword location and schemaLocation of keywords inside a nested $id resource counting from the document root.
  • required beside properties ignored when the applicator vocabulary is disabled, and required, minContains and maxContains applied when the validation vocabulary is disabled.
  • Absolute keyword location and evaluation output of type errors in a type-only items subschema pointing at items instead of the failing element's type.
  • Absolute keyword location of patternProperties annotations missing its JSON Pointer fragment.
  • Evaluation output of type: array beside schema-form items omitting passing type, minItems and maxItems units and nesting failing ones under items.
  • Evaluation output schemaLocation and absolute keyword location of $ref, $dynamicRef and $recursiveRef nodes not pointing at the reference target.
  • Evaluation output schemaLocation URIs not percent-encoding their fragment, such as a space in a property name.
  • Absolute keyword location of errors and annotations from a whole subschema, such as false, missing its JSON Pointer fragment.
  • Absolute keyword location of required, minContains and maxContains errors pointing at a sibling keyword.
  • Evaluation annotations from $ref siblings in Draft 4, 6 and 7 schemas.
  • Masked additionalItems messages counting allowed items instead of extra ones, and "1 items" in masked unevaluatedItems messages.
  • $dynamicRef and $recursiveRef resolving in the dynamic scope of another path to the same schema, depending on property order.
  • unevaluatedProperties and unevaluatedItems ignoring what then or else evaluates when if is true or false.
  • Stack overflow when building validators for long $ref chains.
  • format: "regex" and meta-schema validation rejecting escaped punctuation such as \- in patterns.
  • Build errors for an invalid patternProperties regex reporting the subschema instead of the pattern and its location.

v0.58.3

Fixed
  • Keywords of a subschema declaring a Draft 2019-09+ $schema under a Draft 4, 6 or 7 root being ignored.
  • Evaluation annotations including those from subschemas of a failing schema (a failing schema produces no annotations).
  • Embedded resources declaring their own $schema being checked against the root's meta-schema.

v0.58.2

Fixed
  • $dynamicRef targets in another document resolving relative references and reporting absolute keyword locations against the referencing document.
  • $ref to an $anchor or fragment $id validating against another anchor in the same document. #​1668
  • schema_path of errors under a $ref or $dynamicRef to a named schema pointing at the resource root instead of that schema.

v0.58.1

Fixed
  • Crash in Pyo3 validators when an Enum member's value override emptied a list or dict holding the instance being read.
Performance
  • uri and uri-reference formats check the syntax directly instead of parsing each value into a URI.
  • Enum members read their stored value directly instead of calling the value property in Pyo3 validators.

v0.58.0

Added
  • backend = Pyo3 on #[jsonschema::validator], generating a validator that reads Python objects in place.
  • backend = Magnus on #[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 of is_valid, validate, and iter_errors are generated.
  • json::Jsonb, validating a Postgres jsonb value in place, behind the jsonb feature.
Performance
  • oneOf and anyOf whose branches each require a property fixed to a distinct string validate only the branch matching the instance's value.
  • Generated validate checks required in the same pass over an object as properties, instead of looking up each required name.
Fixed
  • A oneOf over $ref branches beside a sibling none of them admits, which canonicalized to an allOf instead of false.
  • multipleOf incorrectly accepted 1e-400 and other magnitudes below the smallest f64 subnormal with arbitrary-precision (they are not zero).
  • Numeric keywords panicked on a custom representation holding a number past f64 without arbitrary-precision.

v0.57.0

Added
  • PreparedDocument::unsatisfiable, naming the keywords that leave each unsatisfiable subschema empty and where they are.
Changed
  • PreparedDocument::unsatisfiable_pointers is replaced by PreparedDocument::unsatisfiable.
Fixed
  • The instance path of a schema build error, which was empty instead of naming the keyword location that failed to compile.
  • PreparedDocument::unsatisfiable_pointers passed over a subschema that admits no value only once its references resolve, such as an allOf over two $refs.
Performance
  • Canonicalizing several subschemas of one prepared document parses each definition body once for the document instead of once per call.

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 force-pushed the renovate/jsonschema-0.x branch from b894269 to 90d661f Compare September 24, 2026 22:30
@renovate renovate Bot changed the title fix(deps): update rust crate jsonschema to 0.57.0 fix(deps): update rust crate jsonschema to 0.58.0 Sep 25, 2026
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch 5 times, most recently from 411ab5c to 2a76c14 Compare October 1, 2026 19:14
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch 2 times, most recently from b8c7523 to 388d709 Compare October 7, 2026 00:59
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch from 388d709 to 00046fa Compare October 13, 2026 13:18
@renovate renovate Bot changed the title fix(deps): update rust crate jsonschema to 0.58.0 fix(deps): update rust crate jsonschema to 0.59.0 Oct 17, 2026
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch 3 times, most recently from 9eae22f to 5c1f8ce Compare October 22, 2026 14:44
@renovate renovate Bot changed the title fix(deps): update rust crate jsonschema to 0.59.0 fix(deps): update rust crate jsonschema to 0.60.0 Oct 22, 2026
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch 3 times, most recently from 37b523e to 1ca31e8 Compare October 27, 2026 02:04
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch from 1ca31e8 to 2263e33 Compare November 5, 2026 21:57
@renovate renovate Bot changed the title fix(deps): update rust crate jsonschema to 0.60.0 fix(deps): update rust crate jsonschema to 0.61.0 Nov 8, 2026
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch from 2263e33 to 097e0e1 Compare November 8, 2026 17:02

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants