Skip to content

chore(deps): update rust crate jsonschema to 0.49 - #218

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

chore(deps): update rust crate jsonschema to 0.49#218
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/jsonschema-0.x

Conversation

@renovate

@renovate renovate Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change OpenSSF
jsonschema workspace.dependencies minor 0.460.49 OpenSSF Scorecard

Release Notes

Stranger6667/jsonschema (jsonschema)

v0.49.9

Added
  • Canonicalization of a oneOf whose branches name object targets a required constant tells apart, which degrades to a union.
Changed
  • CanonicalSchema::to_json_schema on a definition emits only the definitions that one names, not the whole document's.
Fixed
  • Canonicalization running without end on a conjunction over unions; past a ceiling on the meets it takes, the document stays unmodeled.

v0.49.8

Performance
  • Up to 380x faster canonicalization of a oneOf whose overlapping branches carry many properties, which no longer removes shared regions the exactly-one spelling discards.
Fixed
  • Draft detection treating the version-less http://json-schema.org/schema meta-schema URI as a custom dialect, where it names the current draft.
  • A patternProperties entry matching every key leaving additionalProperties: false spelled as a key constraint, where it forbids nothing.
  • unevaluatedProperties/unevaluatedItems set to true forcing the whole document to stay unmodeled beside an unresolved applicator, where the keyword rejects nothing regardless of the evaluated set.
  • unevaluatedProperties/unevaluatedItems beside a $ref forcing the whole document to stay unmodeled, where the reference's own evaluated properties or items are known once it is resolved.

v0.49.7

Added
  • CanonicalizeOptions::with_retriever to fetch external resources absent from the registry.
  • CanonicalizeOptions::with_base_uri to resolve relative references in the root schema.
  • Canonicalization of a oneOf whose branches name disjoint targets, which degrades to a union.
  • Canonicalization of a vacuous patternProperties entry beside schema-valued additionalProperties, where matching keys escape its value constraint.
  • Canonicalization of a Draft 4 closed pattern map with a reference nested under a property.
  • Canonicalization of Draft 4 closed pattern maps that meet through an applicator.
  • The complement of a reference back to a target already being negated, which stays symbolic instead of declining.
  • CanonicalSchema::definition resolving # to the document the handle was read against.
Performance
  • Up to 150x faster canonicalization of not over a union of many branches.
  • 2% faster emission of canonical schemas, which no longer formats copied string values.
  • 5% faster emission of canonical schemas, which no longer formats object keys while copying them.
  • Up to 12% faster canonicalization of schemas that repeatedly intersect the same branches.
  • 13% faster canonicalization of a non-dynamic OpenAPI document, which no longer scans every schema object for dynamic references.
  • Faster canonicalization of schemas with local $defs references, which avoid decoding unescaped definition names.
  • 23% faster canonicalization of an object whose keys a finite property-name set spells.
  • 3% faster intersection of schemas where one side constrains nothing.
  • Up to 31x faster canonicalization of a oneOf whose many branches overlap.
  • Up to 14x faster canonicalization of a union whose object branches share no values.
  • 7% faster canonicalization of schemas that reach the same pair of nodes repeatedly.
  • 5% faster canonicalization of objects, whose property maps no longer reach the allocator.
  • Up to 8% faster canonicalization of schemas that reach true and false subschemas repeatedly.
  • 2% faster canonicalization of schemas that assert known string formats.
Fixed
  • CanonicalSchema::definition and CanonicalSchema::definitions handing out a target that names the document root without that document, where # points at the target instead.
  • An items tail beyond an array's length ceiling surviving canonicalization, where it governs no element.
  • CanonicalSchema::to_json_schema leaving the document root out of a node emitted below it, where # points at that node instead.

v0.49.6

Added
  • Canonicalization of a negated uniqueItems, where the complement demands a repeated element under the length floor two elements imply.
  • Canonicalization of a negated array tuple, where each position's complement stands under the length that reaches it.
  • Canonicalization of contains demands sharing no value, where their counts add up into a length floor.
  • CanonicalSchema::negate through references, where the complement of the resolved target takes the reference's place.
  • Canonicalization of negated propertyNames and additionalProperties, where the complement spells the violating-key demand instead of a not residual.
  • Canonicalization of negated additionalProperties under Draft 4, where the violating-key demand spells the closed property map.
  • Canonicalization of not a reference, where the complement of the resolved target takes the pointer's place.
  • Canonicalization of a negated oneOf, where the complement spells the values no branch admits beside the values two branches share.
  • Canonicalization of negated items under Draft 4, where the violating-element demand spells the barred element schema.
Changed
  • ArrayView reports distinctness in three states, so an array demanding a repeated element reads apart from one demanding distinct elements.
Fixed
  • CanonicalSchema::negate keeping a root self-reference in the complement, where it points at the complement instead of the source.
  • An additionalItems that tails no tuple keeping the whole document unmodeled under Draft 2020-12.

v0.49.5

Added
  • Canonicalization of not an integer schema under Draft 4, which the number leaf carries as barred integers.
  • Canonicalization of not a multipleOf, which numeric leaves carry as barred divisors.
  • Canonicalization of not an integer schema, where a barred divisor of one spells the non-integer numbers.
  • Canonicalization of not a pattern, which string leaves carry as barred patterns.
  • Canonicalization of not a typed value set under Draft 4, such as {"type": "integer", "enum": [1, 2]}.
  • CanonicalSchema::is_subset_of, whether the other schema admits every value this one admits.
  • Canonicalization of a reference cycle carrying no assertion, which admits every value.
Fixed
  • CanonicalSchema::is_subset_of failing to prove a union of array branches a subset of itself.
  • CanonicalSchema::intersect admitting values one side rejects when its additionalProperties governs the keys the other side's patternProperties match.
  • A satisfiable multipleOf schema collapsing to the empty set when f64 rounds its bounds together.
  • Two spellings of one number canonicalizing to different texts under arbitrary-precision when the fraction exceeds the expansion cap.
  • Numeric bounds and multipleOf comparing values through a lossy f64 conversion under arbitrary-precision, such as 1e-400 passing {"maximum": 0}.
  • A union branch left unabsorbed when a sibling complement shed a conjunct from another branch.
  • A union keeping an integer branch beside a number branch that admits every value of it.

v0.49.4

Added
  • Canonicalization of not a string format, which the string leaf carries as barred formats.
  • Canonicalization of not an existential demand, which an array fails exactly when no element matches.
  • Canonicalization of not a string value set, which the string leaf carries as excluded values.
  • Canonicalization of unevaluatedItems beside contains, where the elements it matches are evaluated and the tail admits either.
  • Canonicalization of unevaluated* beside anyOf or oneOf, where every branch evaluating the same keys or indexes pins what is left over.
  • Canonicalization of not an array element schema, which an array fails exactly when one element violates it.
  • CanonicalSchema::intersect, the values both schemas admit.
  • CanonicalSchema::negate, the values a schema rejects.
  • CanonicalSchema::definition, one reference target by URI.
Fixed
  • An integer past i64 admitted by a fractional bound f64 rounds it onto, such as -10000000000000000000000000 under {"maximum": -10000000000000000000000000.1}.
  • An integer past 2^53 admitted by a bound f64 rounds onto it, such as 9007199254740992 under {"minimum": 9007199254740993}.
  • A contains subschema beside both minContains and maxContains overwriting a sibling keyword of the same name, such as items.
Performance
  • CanonicalSchema hashing and equality cost the node instead of the whole document.

v0.49.3

Added
  • Canonicalization of a recursive schema with no finite witness, which now folds to false.
  • Canonicalization of $dynamicRef and $recursiveRef, which resolve through the dynamic scope and stay symbolic like any other reference. A dangling $dynamicRef errors rather than staying Raw.
  • Canonicalization of minContains under uniqueItems, where a demand asking for more matches than its own schema has distinct values now folds to false.
  • Canonicalization of a Draft 4 patternProperties coverage closed by additionalProperties: false, spelled as the closed map it was parsed from.
  • Canonicalization of a oneOf whose branches repeat, where a repeated branch can never contribute exactly one match.
  • Canonicalization of a $ref whose target is an empty schema, which now folds to false.
  • Canonicalization of unevaluatedItems beside allOf, where every branch must pass and so the indexes they evaluate are known without the instance.
  • Canonicalization of unevaluatedProperties beside allOf, where every branch must pass and so what they evaluate is known without the instance.
  • Canonicalization of a Draft 4 type list holding integer beside other types with enum, which previously modeled only when spelled as an allOf.
  • Canonicalization of patternProperties patterns matching finitely many keys, such as ^a$ and ^(a|b)$.
  • Canonicalization of unevaluatedProperties and unevaluatedItems when no in-place applicator sits beside them.
Fixed
  • additionalItems values that are not schemas silently ignored beside an array-form items (they should fail the build like additionalProperties).
  • additionalItems beside a boolean items rejecting every instance, such as {"additionalItems": false, "items": false}.
  • additionalItems beside a non-array items value failing schema compilation with an error blaming additionalItems (the keyword should be ignored).
  • Draft 4 rejecting a size bound at or past 2^64, such as {"maxItems": 18446744073709551616}.
  • An integer past the f64 range admitted by a fractional bound it exceeds, such as 1e400 under {"exclusiveMaximum": 0.1}.
  • A $ref at the root of an $id-bearing subresource dropped as a self-reference when its pointer matched the one that reached that subresource.
  • Canonicalization reusing one definition's body for a same-named definition in another resource, when the name spells a canonical URI.
  • unevaluatedItems counting prefixItems as evaluating elements before Draft 2020-12, where it is not a keyword.
Performance
  • Up to 70% faster evaluate by building each location in a single allocation instead of two, reusing the instance location a node already built, and caching evaluation paths across instance nodes.

v0.49.2

Performance
  • Faster serialization of canonicalized schemas.
  • Faster macro code generation for subschemas with many keywords.
  • Up to 70x faster canonicalization of multipleOf beside numeric bounds far from zero.

v0.49.1

Fixed
  • jsonschema-value: Ruby builds on x64-mingw-ucrt.

v0.49.0

Added
  • Generic JSON input: options_for builds a validator over any instance representation implementing json::Json, so instances validate without conversion to serde_json::Value. #​239
  • meta::validate_for and meta::is_valid_for for checking a schema document held in any representation implementing json::Json against its meta-schema.
  • EXPERIMENTAL: Schema canonicalization via jsonschema::canonicalize. It reduces a reasonable subset of JSON Schemas to their normal forms.
Fixed
  • multipleOf incorrectly accepted integers past u64 that are not multiples of the divisor.

v0.48.5

Fixed
  • Packaging issue again.

v0.48.2

Performance
  • Faster validator compilation by pre-sizing internal caches.

v0.48.1

Fixed
  • Missing required errors in evaluate() output for schemas with properties and a two-entry required array. #​1220
  • contentEncoding errors for invalid UTF-8 after decoding incorrectly had empty instance_path and schema_path.
Performance
  • Faster code generation for #[jsonschema::validator] (~5% across benchmarked schemas), via aliasing repeated paths in the emitted code.

v0.48.0

Added
  • iter_errors for #[jsonschema::validator]-generated validators.
Fixed
  • Per-branch context on generated anyOf and oneOf validation errors, matching runtime validators.
  • $recursiveRef in generated validators incorrectly resolved to the innermost $recursiveAnchor (it should resolve to the outermost one).
  • Integer instances just outside the i64/u64 range incorrectly compared against numeric bounds through lossy f64 rounding under arbitrary-precision (e.g. {"minimum": -9223372036854775808} accepted -9223372036854775809).
Changed
  • One canonical number spelling from canonical::json::to_string under arbitrary-precision ("1e-2" becomes "0.01", "1.50" becomes "1.5") and correctly-rounded float parsing (serde_json's float_roundtrip).
Performance
  • Faster multipleOf validation for integer instances with integer divisors, via integer arithmetic instead of floating-point modulo.

v0.47.0

Added
  • #[jsonschema::validator] attribute macro (behind the macros feature) that compiles a JSON Schema into is_valid and validate implementations at build time.
  • Keyword::iter_errors for reporting multiple validation errors from a single custom keyword. #​1071
Changed
  • Bump MSRV to 1.85.0.
Performance
  • Faster meta-schema validation and schema compilation with the macros feature, via compile-time meta-schema validators.
Fixed
  • type under items asserted with the Validation vocabulary disabled.
  • Disabled vocabularies ignored for $ref targets without their own $schema (e.g. $defs entries).

v0.46.10

Fixed
  • Stack overflow with a self-referential $dynamicRef combined with unevaluatedProperties or unevaluatedItems.
  • Incorrect unevaluatedProperties and unevaluatedItems results when a meta-schema disables the Applicator vocabulary.

v0.46.9

Fixed
  • multipleOf incorrectly rounds integer instances above 2^53 to f64 before the divisibility check on builds without the arbitrary-precision feature.
  • Stack overflow while preparing a registry containing deeply nested schema documents.

v0.46.8

Fixed
  • idn-email format rejected non-ASCII characters in quoted local parts (e.g. "δοκιμή"@example.com).

v0.46.7

Fixed
  • idn-hostname format accepted A-labels that decode to a disallowed code point (e.g. xn--7a).

v0.46.6

Added
  • IntoRegistryResource for Arc<Value>. #​1129
Fixed
  • prefixItems incorrectly recognised as a known keyword in Draft 2019-09 and earlier (it is 2020-12 only).
  • pattern validation errors displayed the internally translated regex instead of the original schema pattern. #​1149

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 4am on Monday"
  • 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.

@pv-release-regent

Copy link
Copy Markdown
Contributor

Release Regent — projected release

If this PR is merged now, the next release will be v0.7.0.
(Projection based on commits since v0.6.0. Updates automatically when other PRs land.)

Note: Release PR for v0.7.0 is already open. This PR's changes will be included in a subsequent release.

Available commands

Command Effect
!release major Force at least a major version bump for this PR
!release minor Force at least a minor version bump
!release patch Force at least a patch version bump
!set-version X.Y.Z Pin the exact release version

@codecov

codecov Bot commented Aug 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.54%. Comparing base (26390a7) to head (875c7d4).
⚠️ Report is 5 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #218   +/-   ##
=======================================
  Coverage   82.54%   82.54%           
=======================================
  Files          92       92           
  Lines       22921    22921           
  Branches    22921    22921           
=======================================
  Hits        18920    18920           
  Misses       3799     3799           
  Partials      202      202           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch 3 times, most recently from cf87355 to add8135 Compare August 9, 2026 01:51
@renovate
renovate Bot force-pushed the renovate/jsonschema-0.x branch from add8135 to 875c7d4 Compare August 10, 2026 23:11
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