Repository navigation
chore(deps): land the safe rust-dependencies bumps and hold oxc at 0.117.x - #2761
Merged
Merged
Conversation
…117.x This week's aggregated `chore(deps)` group (#2758) could not merge as one unit: three patch bumps are fine, and the `oxc_*` 0.117 -> 0.154 jump in the same PR cannot land at all. Landed here: sha2 0.11.0 -> 0.11.1, syn 3.0.8 -> 3.0.9, tokio 1.53.2 -> 1.53.3. Lockfile-only; `cargo build --workspace` is clean. The first two already went in through the fuzz lockfile in #2755. `cargo vet` needed no new exemptions for them. Refreshing `imports.lock` picks up upstream mozilla/bytecodealliance audits that already cover all three, and it retires seven exemptions those imports now subsume (bit-set, bit-vec, core_detect, futures-core, pastey, pkg-config, tracing-core), so the audited share of the graph goes up rather than down. `oxc_*` is added to dependabot's `ignore` list. bashkit declares five oxc crates for the wasm32-unknown-unknown TypeScript path, where `zapcode_browser/parser` walks the oxc AST directly, and the versions exist to match what upstream ZapCode vendors. `zapcode-core` 1.5.1 requires `oxc ^0.117` and does not move with them, so the bump resolved a second copy of all 13 oxc crates and put the two sides of one parser pipeline 37 minor versions apart. oxc 0.154 also requires rustc 1.97.0 against the 1.95.0 pin, which is what reddened the `WASM web package` job, and it pulled in 19 unvetted crates. Ignored outright rather than by update-type: every release past 0.117.x splits the graph the same way, so there is no version to bump to until `zapcode-core` moves upstream. Without the entry dependabot reopens the same unlandable PR every week.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | 5ef9f35 | Commit Preview URL Branch Preview URL |
Oct 20 2026, 10:17 AM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Resolves this week's aggregated
chore(deps)group (#2758), which could notmerge as one unit — three patch bumps in it are fine, the
oxc_*jump is not.Landed:
sha20.11.0 → 0.11.1,syn3.0.8 → 3.0.9,tokio1.53.2 →1.53.3. Lockfile-only. The first two already went in through the fuzz lockfile
in #2755, so this brings the root lockfile in step.
Supply chain: no new exemptions. Refreshing
imports.lockpicks up upstreammozilla / bytecodealliance audits that already cover all three, and retires
seven exemptions those imports now subsume —
bit-set,bit-vec,core_detect,futures-core,pastey,pkg-config,tracing-core. Theaudited share of the graph goes up, not down.
Held:
oxc_*is added to dependabot'signorelist, with the rationale inknowledge/operations/dependencies.mdalongside the existingbranchesandidna_adapterentries.Why
The
oxc_*0.117.0 → 0.154.0 bump in #2758 fails three independent ways:MSRV. oxc 0.154 requires rustc 1.97.0 against the 1.95.0 in
rust-toolchain.toml. This is what reddened theWASM web packagejob:The same shape as the wasmtime 49.x failure in chore(deps): bump the fuzz-dependencies group in /crates/bashkit/fuzz with 2 updates #2708, which is why
wasmtimeis already ignored.It splits the oxc graph in two.
zapcode-core1.5.1 requiresoxc ^0.117, so it does not move with bashkit's declaration. The bumpedlockfile carries both trees:
bashkit declares those five crates for the
wasm32-unknown-unknownTypeScript path, where
zapcode_browser/parserwalks the oxc AST directly,and
crates/bashkit/Cargo.tomlsays the versions exist to match whatupstream ZapCode vendors. The bump puts the two sides of one parser pipeline
37 minor versions apart.
Supply chain. It adds 19 unvetted crates —
compact_str0.10,phf0.14,oxc_index5.0 and the oxc stack — doubling the vendored oxcsurface for a bump that cannot build anyway.
Ignored outright rather than by update-type: every release past 0.117.x splits
the graph the same way, so there is no version to bump to. Lifting it waits on a
zapcode-corerelease built against a newer oxc, and then means bumping thepinned toolchain and porting the vendored parser together — a deliberate change,
not an aggregated
chore(deps)PR. Without the entry dependabot reopens thesame unlandable PR every week, which is what the
montyandget-size2comments in that file describe happening before.
Before / After
Before — #2758's
Auditjob, with the oxc stack in the tree:After — oxc held, the three patch bumps carried, imports refreshed:
scripts/tests/test_dependabot_coverage.pypasses with the new entry, theconfig parses with
oxc_*in theignorelist for the/cargo entry, andjust check-okfandjust check-doc-linksare both clean.The intermediate step is worth stating explicitly: I reproduced #2758's
Auditfailure locally, then confirmed that holding oxc reduces it to exactlythe three patch bumps, and that an
imports.lockrefresh clears those withouta single hand-written trust decision.
Risk
loosened checks:
cargo vetstill passes with them gone, because therefreshed upstream audits cover those crates for real. If an import later
disappears,
cargo vetfails closed in CI rather than silently accepting.oxc_*ignore means dependabot stops proposing oxc bumps entirely. Thatis intended, and the knowledge entry records when to drop it.
Checklist
test_dependabot_coverage.pycovers the configshape; the bumps are lockfile-only with no new code surface to test
oxcstays on theversion the vendored parser is written against