Uh oh!
There was an error while loading. Please reload this page.
ci(rust): bump jaq-core from 2.2.1 to 3.1.1 - #98
Conversation
Bumps [jaq-core](https://github.com/01mf02/jaq) from 2.2.1 to 3.1.1. - [Release notes](https://github.com/01mf02/jaq/releases) - [Commits](https://github.com/01mf02/jaq/commits/v3.1.1) --- updated-dependencies: - dependency-name: jaq-core dependency-version: 3.1.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
opieter-aws
commented
Sep 1, 2026
@strandly-the-agent review this major version upgrade. Do we need or want this? Clearly it beaks CI. |
strandly-the-agent
left a comment
There was a problem hiding this comment.
Verdict: close this PR — it can never go green, and Dependabot can't fix it. Recommend @dependabot ignore this major version (reopenable later).
Answering your questions directly:
- Need it? No.
cargo auditis clean on jaq 2.2.1 (the Security-audit leg passes), and jaq 3's headline safety win —haltno longer killing the host process — is already covered by our sandbox stubs insrc/commands/jq.rs:44. - Why CI breaks: the PR bumps only
jaq-core→ 3.1.1, butjaq-std2.1.2 andjaq-json1.1.3 still pinjaq-core ^2, so both 2.2.1 and 3.1.1 end up in the graph andjq.rsfails with 15 type-mismatch errors (reproduced locally). Same dead end as #15/#4, which this superseded — this will recur every jaq-core release until we ignore the major or migrate. - Want it? Mildly, eventually — upstream focus is 3.x and it brings jq-compat fixes. I tested the real path: a coordinated
jaq-core 3 + jaq-std 3 + jaq-json 2bump resolves cleanly but leaves ~22 compile errors, all confined tosrc/commands/jq.rs(258 lines). A small manual migration PR — happy to open it if you want jaq 3; otherwise ignoring the major costs us nothing today.
Evidence & migration details
Verification ledger
- ✅ Reviewed head
d7b6d59vs base6fecd79; diff is Cargo.toml (jaq-core = "2"→"3") + Cargo.lock only. - ✅ Lockfile on this PR contains both
jaq-core 2.2.1(via jaq-std/jaq-json) andjaq-core 3.1.1(via strands-shell) — the dual-version graph is visible in the Cargo.lock diff. - ✅
cargo check --workspaceon the PR head: 15 errors, e.g. rustc: "there are multiple different versions of cratejaq_corein the dependency graph" (expectedjaq_core 2.2.1::Native<Val>, found3.1.1::Native<Val>atjq.rs:74). - ✅
cargo checkwith the coordinated bump (jaq-core = "3",jaq-std = "3",jaq-json = "2"): resolves and builds deps fine, 22 errors, all insrc/commands/jq.rs— no other file in the workspace touches jaq. - ✅ crates.io index: the coherent jaq-3 stack is
jaq-core 3.1.1+jaq-std 3.0.3+jaq-json 2.0.3. ⚠️ Unchecked: whether the jaq#439 empty-array-indexing panic (fixed in 3.1) is reachable through ourjqbuiltin on 2.2.1 — my repro build hit a sandbox disk limit. If it is reachable, it's a user-triggerable panic and would strengthen the "want" case.
What the migration actually involves (from the 22 errors)
jaq_core::Native<V>→Native<D: DataT>(useJustLut<Val>); thehalt_error/envstub plumbing andCompilergenerics change accordingly.jaq_json::Val: From<serde_json::Value>is gone in jaq-json 2 — the serde interop moved (feature renamedserde_json→serde, now viaserde_core), so input/output conversion needs rewriting.filter.run(...)moved (compile::Filternow wraps it; roughlyfilter.id.run(lut, ...)).- All confined to
run_filter()insrc/commands/jq.rs; existing jq integration tests intests/shell_integration.rscover the behavior, so regressions would surface.
Config note (why this keeps happening)
dependabot.yml deliberately leaves majors ungrouped for attribution, which is right in general — but lockstep crate families like jaq-* can never pass CI solo. A cargo groups entry matching jaq-* for major updates would at least produce one coherent candidate PR; it still can't write the jq.rs code changes, so the manual migration PR remains the actual path either way.
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
Bumps jaq-core from 2.2.1 to 3.1.1.
Release notes
Sourced from jaq-core's releases.
... (truncated)
Commits
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 commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill 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 versionwill 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 dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)