Skip to content

chore(deps): bump jsonschema from 0.18.3 to 0.58.6 - #866

Merged
e54-bot merged 2 commits into
mainfrom
claude/chore-469-jsonschema-8498ee
Oct 20, 2026
Merged

e54-bot merged 2 commits into
mainfrom
claude/chore-469-jsonschema-8498ee

Conversation

@e54-bot

@e54-bot e54-bot commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

Supersedes #469 (not closed here). That branch was conflicted and did not port agent_contract_vocabulary.rs.

Change

  • jsonschema 0.18 → 0.58 (resolves to 0.58.6); used only in wright-cli tests.
  • JSONSchema::compile → validator_for; validate → iter_errors. No assertions removed.

Strictness comparison

  • 0.18.3 builds without its draft202012 feature by default, so the $schema: .../2020-12/schema in both schemas was unrecognised and the validator fell back to Draft 7. 0.58 honours 2020-12.
  • Both schemas use no 2020-12-only keywords (prefixItems, unevaluated*, dependent*, $dynamicRef, array items). Their $ref siblings are only description, so Draft 7 vs 2020-12 sibling handling does not change results.
  • No format keyword is used as an assertion, so format-assertion defaults do not apply.
  • Result: same effective strictness; all invalid-case assertions still pass.

Verification

cargo fmt --check, cargo clippy -p wright-cli --all-targets -- -D warnings, cargo test -p wright-cli: all pass.

Port the wright-cli schema tests to validator_for and iter_errors. Supersedes #469, which missed agent_contract_vocabulary.rs.

@Teakowa Teakowa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: changes requested (round 1). The port is correct. One dependency-footprint issue should be fixed before merge.

Blocking: crates/wright-cli/Cargo.toml:39 takes the default features of jsonschema 0.58.
They enable HTTP/file $ref resolution and pull in reqwest, rustls-platform-verifier, aws-lc-rs/aws-lc-sys (C build, needs cmake), jni and more. That is about 262 of the 442 added Cargo.lock lines, and it is all for a dev-dependency used on local, self-contained schemas. Failure scenario: every test build on every runner now compiles aws-lc-sys and needs cmake, and a schema $ref to a remote URL would make a test fetch from the network. Fix: jsonschema = { version = "0.58", default-features = false }. I checked this on the branch: agent_contract (13), agent_contract_vocabulary (2) and diagnostics_schema (1) all pass and the lock shrinks by 262 lines. I did not commit the change.

Checked and fine

  1. jsonschema appears only in wright-cli [dev-dependencies] and three test files (agent_contract.rs, agent_contract_vocabulary.rs, diagnostics_schema.rs). No user was missed, including agent_contract_vocabulary.rs.
  2. Strictness: the root of wright-agent-v1.schema.json holds only $schema, $id, title, $defs and $ref. The tests overwrite the root $ref, so Draft 7 versus 2020-12 sibling handling cannot change results. This agrees with the PR body. Format assertions are not used.
  3. Mutation: I added a required zzz to EditRange in the agent schema and to the check schema. agent_contract and diagnostics_schema both failed. The existing invalid-instance loop in agent_contract_vocabulary still passes.
  4. The diff is a mechanical API rename (compile to validator_for, validate to iter_errors). No assertion was dropped or weakened.
  5. Local cargo fmt --check, clippy -p wright-cli --all-targets -D warnings and the three test targets pass. Full cargo test -p wright-cli was not run by me.

Unconfirmed: at review time CI still had Rust (stable) / Quality, Product integration and some dist-validation jobs pending.

The tests validate local schemas only. Drop the HTTP resolver and TLS stack from the lockfile.

@Teakowa Teakowa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approve (round 2). The blocker is fixed.

  • Diff: e897d6bf changes only crates/wright-cli/Cargo.toml (default-features = false) and Cargo.lock (+3/−263).
  • Dependency footprint: aws-lc-sys and cmake are gone from Cargo.lock. reqwest remains once, as on main, and cargo tree -i shows it does not come from jsonschema. The lock has no cmake entry, so the build needs no C toolchain for TLS.
  • Tests: locally, agent_contract (13), agent_contract_vocabulary (2) and diagnostics_schema (1) pass. cargo fmt --check and clippy -p wright-cli --all-targets -D warnings are clean.
  • Mutation: with a required zzz added to EditRange in the agent schema and to the check schema, agent_contract and diagnostics_schema both fail. Invalid instances are still rejected.

Not confirmed: PR CI (including Quality, Build dist and Product integration) was still pending at review time. I ran the three jsonschema test targets, not the full cargo test -p wright-cli.

@e54-bot
e54-bot enabled auto-merge (squash) October 20, 2026 16:17
@e54-bot
e54-bot merged commit c25f208 into main Oct 20, 2026
35 checks passed
@e54-bot
e54-bot deleted the claude/chore-469-jsonschema-8498ee branch October 20, 2026 16:23
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Make Workshop Great Again Oct 20, 2026
Teakowa added a commit that referenced this pull request Oct 20, 2026
Add four classes: unconditional async writes (#829/#863, escalated as wright#868), Connection: close dropping pipelined requests (#827→#864), E2E asserting before awaited state (#829→#863/#865), and dependency-bump footprint growth (#866).

Co-authored-by: Teakowa <27560638+Teakowa@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

2 participants