chore: bump jsonschema from 0.49.9 to 0.50.0 (#3886)

Bumps [jsonschema](https://github.com/Stranger6667/jsonschema) from
0.49.9 to 0.50.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Stranger6667/jsonschema/releases">jsonschema's
releases</a>.</em></p>
<blockquote>
<h2>[Python] Release 0.50.0</h2>
<h3>Added</h3>
<ul>
<li><code>CanonicalSchema.union</code> and
<code>CanonicalSchema.subtract</code>.</li>
<li><code>canonical.UnsupportedResult</code>, raised where the canonical
form does not support a set operation's result.</li>
<li><code>canonical.IncompatibleOperands</code> where both operands read
<code>#</code> and it names a different document on each side.</li>
<li><code>canonical.Containment</code>,
<code>canonical.Satisfiability</code>,
<code>canonical.Distinctness</code> and
<code>canonical.CanonicalKind</code>: the possible answers of
<code>covers()</code>, <code>satisfiability()</code>, <code>kind</code>
and <code>ArrayView.distinctness</code>.</li>
</ul>
<h3>Changed</h3>
<ul>
<li><code>CanonicalSchema.is_satisfiable()</code> is now
<code>CanonicalSchema.satisfiability()</code>, answering with the
<code>canonical.Satisfiability</code> members <code>YES</code>,
<code>NO</code> or <code>UNKNOWN</code> - <code>YES</code> wherever a
value can be exhibited, not only for the forms listing their
members.</li>
<li><code>CanonicalSchema.covers()</code> decides through the difference
as well: <code>NO</code> where the argument keeps values the receiver
rejects, <code>YES</code> where nothing is left over.</li>
<li><code>CanonicalSchema.is_subset_of()</code> is now
<code>CanonicalSchema.covers()</code>, answering with the
<code>canonical.Containment</code> members <code>YES</code>,
<code>NO</code> or <code>UNKNOWN</code> for whether the receiver admits
every value the argument admits.</li>
<li><code>CanonicalSchema.kind</code> and
<code>ArrayView.distinctness</code> answer with the
<code>canonical.CanonicalKind</code> and
<code>canonical.Distinctness</code> members instead of strings.</li>
<li><code>CanonicalSchema.negate()</code> raises where it used to return
<code>None</code>.</li>
<li><code>canonical.UnmodeledOperand</code> is now
<code>canonical.UnsupportedOperand</code>, and means only that an
operand is a <code>Raw</code> pass-through.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Combining nodes of two different documents repointing a
<code>$ref</code> to <code>#</code> at the combined result instead of
the document it was written in, including one named by a definition the
result keeps.</li>
<li>Intersecting a <code>$ref</code> whose target is <code>true</code>
or <code>false</code>, which crashed the interpreter.</li>
<li>A key constraint left un-narrowed once a run is out of
intersections, which crashed the interpreter on the next read of
it.</li>
<li><code>CanonicalSchema.covers()</code> answering <code>UNKNOWN</code>
for a schema against itself, where that schema is a
<code>$ref</code>.</li>
<li><code>CanonicalSchema.union()</code> keeping a <code>$ref</code>
beside the schema it names, where the other three operations read
through it.</li>
<li><code>CanonicalSchema.covers()</code> and
<code>CanonicalSchema.subtract()</code> cancelling two nodes written the
same way whose <code>#</code> names a different document.</li>
<li>Two results accepting the same values comparing unequal over the
part of their documents neither reads.</li>
<li><code>additionalProperties</code> reaching a key the pattern map
matches when a finite key constraint closes the map, which dropped
values both operands accept.</li>
<li>A recursive definition stopping every other pointer in the document
from being read through.</li>
<li>One <code>$defs</code> entry read past a wider schema written out at
every use, rather than kept as the pointer it was.</li>
<li>Set operations rejecting one document canonicalized twice, and a
pruned result rejected against the document it came from, where the maps
resolve every shared reference the same way.</li>
<li>Set operations comparing a <code>$ref</code> as a pointer instead of
reading through it, so a schema written with a <code>$ref</code> did not
cancel against the same schema written out.</li>
<li><code>CanonicalSchema.subtract()</code> asking for a complement
where the difference is one of the operands or empty, declining on
schemas it can subtract.</li>
<li>Set operations keeping <code>$defs</code> entries the result no
longer references, which then showed up in the emitted schema.</li>
<li><code>CanonicalSchema.union()</code> declining over an approximated
intersection, where the union itself is exact.</li>
</ul>
<h2>[Ruby] Release 0.50.0</h2>
<ul>
<li><code>CanonicalSchema#union</code> and
<code>CanonicalSchema#subtract</code>.</li>
<li><code>JSONSchema::Canonical::UnsupportedResult</code>, raised where
the canonical form does not support a set operation's result.</li>
<li><code>JSONSchema::Canonical::IncompatibleOperands</code> where both
operands read <code>#</code> and it names a different document on each
side.</li>
<li><code>JSONSchema::Canonical::Containment</code>,
<code>Satisfiability</code>, <code>Distinctness</code> and
<code>Kind</code>: named constants for the symbols <code>covers</code>,
<code>satisfiability</code>, <code>kind</code> and
<code>ArrayView#distinctness</code> return, each with an
<code>ALL</code> list.</li>
</ul>
<h3>Changed</h3>
<ul>
<li><code>CanonicalSchema#satisfiable?</code> is now
<code>CanonicalSchema#satisfiability</code>, answering
<code>:yes</code>, <code>:no</code>, or <code>:unknown</code> -
<code>:yes</code> wherever a value can be exhibited, not only for the
forms listing their members.</li>
<li><code>CanonicalSchema#covers</code> decides through the difference
as well: <code>:no</code> where the argument keeps values the receiver
rejects, <code>:yes</code> where nothing is left over.</li>
<li><code>CanonicalSchema#is_subset_of</code> is now
<code>CanonicalSchema#covers</code>, answering <code>:yes</code>,
<code>:no</code>, or <code>:unknown</code> for whether the receiver
admits every value the argument admits.</li>
<li><code>CanonicalSchema#negate</code> raises where it used to return
<code>nil</code>.</li>
<li><code>JSONSchema::Canonical::UnmodeledOperand</code> is now
<code>JSONSchema::Canonical::UnsupportedOperand</code>, and means only
that an operand is a <code>Raw</code> pass-through.</li>
</ul>
<h3>Fixed</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Stranger6667/jsonschema/blob/master/CHANGELOG.md">jsonschema's
changelog</a>.</em></p>
<blockquote>
<h2>[0.50.0] - 2026-08-20</h2>
<h3>Added</h3>
<ul>
<li><code>CanonicalSchema::union</code> and
<code>CanonicalSchema::subtract</code>.</li>
<li><code>CanonicalizationError::UnsupportedResult</code>, reported
where the canonical form does not support a set operation's result.</li>
<li><code>OperandMismatch::DocumentRoots</code>, reported where both
operands read <code>#</code> and it names a different document on each
side.</li>
<li><strong>CLI</strong>: <code>jsonschema validate -i INSTANCE</code>
without a <code>SCHEMA</code> argument validates each instance against
the schema named in its own <code>$schema</code> property. <a
href="https://redirect.github.com/Stranger6667/jsonschema/issues/1470">#1470</a></li>
</ul>
<h3>Changed</h3>
<ul>
<li><code>CanonicalSchema::is_satisfiable</code> is now
<code>CanonicalSchema::satisfiability</code>, answering
<code>Yes</code>, <code>No</code>, or <code>Unknown</code> -
<code>Yes</code> wherever a value can be exhibited, not only for the
forms listing their members.</li>
<li><code>CanonicalSchema::covers</code> decides through the difference
as well: <code>No</code> where the argument keeps values the receiver
rejects, <code>Yes</code> where nothing is left over.</li>
<li><code>CanonicalSchema::is_subset_of</code> is now
<code>CanonicalSchema::covers</code>, answering <code>Yes</code>,
<code>No</code>, or <code>Unknown</code> for whether the receiver admits
every value the argument admits.</li>
<li><code>CanonicalSchema::negate</code> returns <code>Result</code>
rather than <code>Option</code>.</li>
<li><code>CanonicalizationError::UnmodeledOperand</code> is now
<code>CanonicalizationError::UnsupportedOperand</code>, and means only
that an operand is a <code>Raw</code> pass-through.</li>
<li>A conjunction over a <code>$ref</code> folds 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.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Combining nodes of two different documents repointing a
<code>$ref</code> to <code>#</code> at the combined result instead of
the document it was written in, including one named by a definition the
result keeps.</li>
<li>Intersecting a <code>$ref</code> whose target is <code>true</code>
or <code>false</code>, which panicked.</li>
<li>A key constraint left un-narrowed once a run is out of
intersections, which panicked on the next read of it.</li>
<li><code>CanonicalSchema::covers</code> answering <code>Unknown</code>
for a schema against itself, where that schema is a
<code>$ref</code>.</li>
<li><code>CanonicalSchema::union</code> keeping a <code>$ref</code>
beside the schema it names, where the other three operations read
through it.</li>
<li><code>CanonicalSchema::covers</code> and
<code>CanonicalSchema::subtract</code> cancelling two nodes written the
same way whose <code>#</code> names a different document.</li>
<li>Two results accepting the same values comparing unequal over the
part of their documents neither reads.</li>
<li><code>additionalProperties</code> reaching a key the pattern map
matches when a finite key constraint closes the map, which dropped
values both operands accept.</li>
<li>A recursive definition stopping every other pointer in the document
from being read through.</li>
<li>One <code>$defs</code> entry read past a wider schema written out at
every use, rather than kept as the pointer it was.</li>
<li>Set operations rejecting one document canonicalized twice, and a
pruned result rejected against the document it came from, where the maps
resolve every shared reference the same way.</li>
<li>Set operations comparing a <code>$ref</code> as a pointer instead of
reading through it, so a schema written with a <code>$ref</code> did not
cancel against the same schema written out.</li>
<li><code>CanonicalSchema::subtract</code> asking for a complement where
the difference is one of the operands or empty, declining on schemas it
can subtract.</li>
<li>Set operations keeping <code>$defs</code> entries the result no
longer references, which then showed up in the emitted schema.</li>
<li><code>CanonicalSchema::union</code> declining over an approximated
intersection, where the union itself is exact.</li>
<li>Resolving a reference against a base URI that carries a fragment,
which happens when a Draft 4-7 <code>$id</code> contains one. <a
href="https://redirect.github.com/Stranger6667/jsonschema/issues/1473">#1473</a></li>
<li><code>unevaluatedProperties</code> and <code>unevaluatedItems</code>
ignoring an <code>$id</code> on a subschema they walk through, so a
relative <code>$ref</code> inside it resolved against the enclosing
resource.</li>
</ul>
<h3>Performance</h3>
<ul>
<li><strong>CLI</strong>: ~25% less CPU per run from compile-time
meta-schema validators.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Stranger6667/jsonschema/commit/d4cfa64b8416963850b64d88ccd8e2055488ad13"><code>d4cfa64</code></a>
chore(ruby): Release 0.50.0</li>
<li><a
href="https://github.com/Stranger6667/jsonschema/commit/e71e1a9b6b99ae69a3ea29dc57df9f25a86d180b"><code>e71e1a9</code></a>
chore(python): Release 0.50.0</li>
<li><a
href="https://github.com/Stranger6667/jsonschema/commit/b99175ffd71cb6c8324fecbb0e5902595962911b"><code>b99175f</code></a>
chore(rust): Release 0.50.0</li>
<li><a
href="https://github.com/Stranger6667/jsonschema/commit/7595af93edec6e079cc8cbb42a45f18f7534778d"><code>7595af9</code></a>
feat: Extend canonicalization API</li>
<li><a
href="https://github.com/Stranger6667/jsonschema/commit/35cac763ad23006f379454abea00c9ced8955998"><code>35cac76</code></a>
fix: <code>unevaluatedProperties</code> and
<code>unevaluatedItems</code> ignoring an <code>$id</code> on a
su...</li>
<li><a
href="https://github.com/Stranger6667/jsonschema/commit/b57dbaf2809231ebb154a714717f2764dae1ec1e"><code>b57dbaf</code></a>
build(deps): bump taiki-e/install-action from 2.85.13 to 2.86.2</li>
<li><a
href="https://github.com/Stranger6667/jsonschema/commit/e52d5cb8cb397fc3cac5ced4ec3d5bfd9cb5e408"><code>e52d5cb</code></a>
build(deps): update hegeltest requirement from 0.29 to 0.30</li>
<li><a
href="https://github.com/Stranger6667/jsonschema/commit/2360146e0edefd04b7e4aa5b0fac07517d84487f"><code>2360146</code></a>
build(deps): bump taiki-e/install-action from 2.85.11 to 2.85.13</li>
<li><a
href="https://github.com/Stranger6667/jsonschema/commit/d35b2a4726b6236d6e70d0cb2993c655d542a184"><code>d35b2a4</code></a>
build(deps): bump astral-sh/setup-uv from 9.0.0 to 10.0.1</li>
<li><a
href="https://github.com/Stranger6667/jsonschema/commit/89f68567cb5b92df8e79ba36a4e45773e686077b"><code>89f6856</code></a>
build(deps): update fraction requirement from 0.15 to 0.16</li>
<li>Additional commits viewable in <a
href="https://github.com/Stranger6667/jsonschema/compare/ruby-v0.49.9...ruby-v0.50.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jsonschema&package-manager=cargo&previous-version=0.49.9&new-version=0.50.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
dependabot[bot]
2026-08-24 12:24:20 -07:00
committed by GitHub
parent 56bfa70af0
commit ecd36f6e93
2 changed files with 12 additions and 12 deletions
Generated
+11 -11
View File
@@ -1254,12 +1254,12 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
[[package]]
name = "fraction"
version = "0.15.4"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e076045bb43dac435333ed5f04caf35c7463631d0dae2deb2638d94dd0a5b872"
checksum = "33fee0259ffdc3d7bd64438b6b08437884d4df5700f9cb8a23b079c3958ae578"
dependencies = [
"lazy_static",
"num",
"num-bigint",
]
[[package]]
@@ -1824,9 +1824,9 @@ dependencies = [
[[package]]
name = "jsonschema"
version = "0.49.9"
version = "0.50.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59ec8a241beed129f06114aa68007e905ca350e7baeb6e17a7631bb7978d91b2"
checksum = "7bd2225bc56c338f18465ce618e5e56fff1295fcb0a0cb338b28010193f26949"
dependencies = [
"ahash",
"bytecount",
@@ -1853,18 +1853,18 @@ dependencies = [
[[package]]
name = "jsonschema-regex"
version = "0.49.9"
version = "0.50.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91994f45017ed5e66aa8e59b8415f4cb033a6380d7200387b7cf117595fbdf85"
checksum = "497fbf3b1ca53b1e23a253f636e88e7a2031387388b8140199a0f240fcadf647"
dependencies = [
"regex-syntax",
]
[[package]]
name = "jsonschema-value"
version = "0.49.9"
version = "0.50.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ec7637f83e510868ae6ed625f7ebfbbde4554ee8ce49854caa5126a8b9b9ecb"
checksum = "b84ca3f39446973a810fc90fc2645ada8c24284f6deb009c78b776813973887d"
dependencies = [
"ahash",
"bytecount",
@@ -2976,9 +2976,9 @@ dependencies = [
[[package]]
name = "referencing"
version = "0.49.9"
version = "0.50.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6efa2154ea6f5ce0fdecdd2a8d18f2fa1a39a8fbba91564f555a592e4dce8278"
checksum = "7a0a32a2a2c2d7dd0ee54705b5fd641be73037271928f68e9b0e7205b71c9d30"
dependencies = [
"ahash",
"fluent-uri",
+1 -1
View File
@@ -326,7 +326,7 @@ regex = "1.12.3"
vt100 = "0.16.2"
wt-perf = { path = "tests/helpers/wt-perf" }
similar = "3.1.1"
jsonschema = { version = "0.49", default-features = false }
jsonschema = { version = "0.50", default-features = false }
[[bench]]
name = "alias"