chore(deps): upgrade tabled to 0.22 and retire RUSTSEC-2026-0173 - #2379
Merged
Conversation
`tabled_derive` 0.12, pulled in by `tabled` 0.22, drops its dependency on the unmaintained `proc-macro-error2`. That was the recorded removal condition for the RUSTSEC-2026-0173 suppression, so the bench harness moves to 0.22 and the suppression goes away instead of rotting in place. `proc-macro-error2` and `proc-macro-error-attr2` are gone from Cargo.lock; the advisory ignore is dropped from deny.toml and from the suppressed advisories table in the threat model. Also bumps the cargo-vet exemptions for `tabled`/`tabled_derive` to the new versions -- `cargo vet --locked` fails without it. RUSTSEC-2023-0071 (`rsa`) and RUSTSEC-2023-0089 (`atomic-polyfill`) stay suppressed: neither removal condition is met. `heapless` is still pinned at 0.7, which requires `atomic-polyfill`, and no patched `rsa` exists.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | 10c7628 | Commit Preview URL Branch Preview URL |
Sep 06 2026, 09:15 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
One fewer advisory suppression, because the underlying dependency is actually gone.
tabled_derive0.12 — pulled in bytabled0.22 — no longer depends on the unmaintainedproc-macro-error2. That was the exact removal condition recorded for the RUSTSEC-2026-0173 suppression, so the bench harness moves totabled0.22 and the suppression is deleted rather than left to rot:proc-macro-error2andproc-macro-error-attr2drop out ofCargo.lockentirely.RUSTSEC-2026-0173entry is removed from the[advisories] ignorelist indeny.toml.knowledge/security/threat-model.md, with a short note recording why it was legitimately retired — the section already warns that a suppression which merely stops matching is not evidence it can be dropped, so the distinction is worth writing down.cargo vetexemptions fortabled/tabled_deriveare bumped to the new versions. This is required, not cosmetic:cargo vet --lockedruns in CI and fails without it (proof below).The two remaining suppressions stay, because neither removal condition is met:
rsasshfeature onlyatomic-polyfillheaplessis still pinned at 0.7 (viamonty→postcard), which requires itThe
atomic-polyfillrow also gains that pin detail, so the next reader doesn't have to re-derive why it can't move yet.Why
Routine scheduled maintenance. Auditing all four workspace lockfiles against OSV turned up three advisories; all three were already accepted in
deny.toml, but one of them had a removal condition that upstream has since satisfied. Suppressions that outlive their justification are how an audit list stops being a signal, so it gets cleared the moment it can be.Before / After
Advisory scan across every
Cargo.lockin the repo (OSV, all four workspaces):Before
After
cargo vet --locked, with the exemption bump and without it:Bench table rendering is unchanged across the
tabledmajor bump (--category arithmetic, headers andTabledderive attributes intact):The committed
results/*.mdreports are unaffected:generate_markdown_reportbuilds those by hand withpush_strand never touchestabled, so the/benchessite aggregation contract is untouched.Risk
tabledis a build/dev-time table formatter used only bybashkit-bench, a benchmarking binary. It is not part of any shipped library, binding, or ABI surface.cargo clippy -p bashkit-bench --all-targets -- -D warningsis clean, and all 7 bench unit tests pass.tabled,tabled_derive,papergrid,testing_tableare all MIT, already allow-listed), socargo deny check licenses sourcesis unaffected.Checklist
bashkit-benchtests (7) pass, and the advisory removal is itself verified bycargo vet --lockedin CI.