Skip to content

feat(deps): upgrade jaq to 3.0, digest crates to 0.11#893

Merged
chaliy merged 2 commits intomainfrom
claude/lock-dependencies-ljSes
Mar 28, 2026
Merged

feat(deps): upgrade jaq to 3.0, digest crates to 0.11#893
chaliy merged 2 commits intomainfrom
claude/lock-dependencies-ljSes

Conversation

@chaliy
Copy link
Copy Markdown
Contributor

@chaliy chaliy commented Mar 28, 2026

Summary

  • Upgrade jaq-core 2.2→3.0, jaq-std 2.1→3.0, jaq-json 1.1→2.0
  • Upgrade md-5, sha1, sha2 from 0.10→0.11 (digest ecosystem 0.11)
  • generic-array removed from dep tree (replaced by hybrid-array)

Why

These were flagged as outdated during maintenance but skipped because cargo update only resolves within semver-compatible ranges. Major version bumps require editing Cargo.toml constraints.

Changes

jq.rs — Rewrote jaq integration for 3.0 API:

  • Custom DataT impl (InputData/InputDataRef) for input/inputs filter support
  • Manual serde_json::Valuejaq_json::Val conversion (From impls removed in jaq-json 2.0)
  • Updated Compiler/Ctx/Filter API (Vars::new, filter.id.run, Ctx::new(data, vars))
  • Chain jaq_core::defs() alongside std/json defs (new requirement in 3.0)

checksum.rs — No code changes needed (digest 0.11 API compatible)

jq.test.sh — Fixed jq_try spec test: .foo on null returns null (not error) in jaq 3.0, matching real jq behavior

Test plan

  • 54 jq unit tests pass
  • 115 jq spec tests pass (0 failures, 1 skipped)
  • 4 checksum unit tests pass
  • Full test suite green
  • cargo clippy --all-targets --all-features -- -D warnings clean
  • cargo fmt --check clean

chaliy added 2 commits March 28, 2026 03:52
Breaking dependency upgrades:
- jaq-core 2.2→3.0, jaq-std 2.1→3.0, jaq-json 1.1→2.0
- md-5, sha1, sha2: 0.10→0.11 (digest ecosystem 0.11)

jaq 3.0 required rewriting the jq builtin integration:
- Custom DataT impl for input/inputs filter support
- Manual serde_json::Value ↔ jaq_json::Val conversion
  (Val no longer implements From<serde_json::Value>)
- Updated Compiler/Ctx/Filter API (Vars, filter.id.run, etc.)
- Chain jaq_core::defs() alongside std/json defs

Fixed jq_try spec test: .foo on null returns null (not error)
in jaq 3.0, matching real jq behavior.

Digest 0.11 upgrade was seamless — no code changes needed.
Add/update cargo-vet exemptions for 20 new/changed transitive
dependencies from the jaq 3.0 and digest 0.11 upgrades.
@chaliy chaliy merged commit 0244f62 into main Mar 28, 2026
27 checks passed
@chaliy chaliy deleted the claude/lock-dependencies-ljSes branch March 28, 2026 04:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant