chore(deps): take the two upgrades the declared ranges already permit - #70
Conversation
CireSnave's standing rule, verbatim: "I want all of my projects' dependencies on their most recent versions at all times." Measured across all 24 direct crates.io dependencies of this workspace: current 18 behind, range already permits 2 smallvec 1.15.2->1.16.0, uuid 1.24.0->1.26.1 behind, needs a manifest bump 4 safetensors sha2 sysinfo tokenizers unknown 0 This commit takes the two that need no manifest change. The four that do are a separate piece of work with real breakage risk and are NOT bundled here -- a zero-risk lockfile update should not be held hostage to four API upgrades. ##⚠️ THE C2 GATE CAUGHT IT, WHICH IS THE POINT OF THE GATE C2 FAILED: mlmf-core's transitive dependency set changed. added: ["smallvec v1.16.0"] removed: ["smallvec v1.15.2"] Blessed via `scripts/check-deps.sh --bless`, and the snapshot diff is exactly one line. A dependency change cannot land here silently, and the gate names its own remedy rather than leaving the reader to find it. ## How the answer was reached, and the instrument's own defects Two independent methods, and a third that settles them: 1. a sparse-index read of every declared dep, comparing Cargo.lock against the latest UNYANKED STABLE release 2. cargo-outdated 0.19.0 (newly installed, authorised for this) 3. `cargo update --dry-run`, which is the operation itself (1) and (2) name the SAME SIX crates. (3) confirms both move.⚠️ READ THE LOCKFILE, NOT THE MANIFEST. `uuid` is declared `1.0` and locked at 1.24.0 against an available 1.26.1 -- the caret range PERMITS the upgrade, so a manifest-only check reports compliance for exactly the case this rule targets. Four of the six are the opposite shape: `0.7` genuinely excludes `0.8.0`.⚠️ AND MY FIRST PASS HAD TWO DEFECTS, BOTH PRODUCING FALSE "BEHIND" ROWS: it ranked PRE-RELEASES as latest (smallvec 2.0.0-alpha.13 over 1.15.2), and it joined MULTIPLE locked versions into one string before comparing, so thiserror's "1.0.69,2.0.20" read as behind when our declared edge is current at 2.0.20. Fixed both, and the fix changed smallvec's verdict in BOTH directions: it is genuinely behind, at 1.16.0, not at an alpha. RIGHT VERDICT, WRONG REASON is not a pass -- the second reading is what makes the row actionable.⚠️ AND I NEARLY REPORTED A DISAGREEMENT THAT WAS MY OWN MISREADING. cargo-outdated prints `Compat: ---` for uuid, which I first took as "no semver-compatible upgrade exists" -- contradicting my own analysis. `cargo update --dry-run` moves it. The tools agreed; I had misread a column. Before recording two instruments as disagreeing, check that you read both. SEPARATE FINDING, not addressed here: `thiserror` appears TWICE in Cargo.lock, 1.0.69 and 2.0.20. Our declared edge is 2 and it resolves to the latest; the 1.0.69 is a transitive duplicate someone else pulls. Recorded rather than fixed. VERIFIED: cargo clippy --workspace --all-targets --all-features exit 0 cargo fmt --all --check exit 0 cargo test -p mlmf --lib 106 passed cargo test -p mlmf --doc 29 passed cargo test -p mlmf-core 132 passed, 18 binaries cargo test -p mlmf-hf-layout exit 0 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdVuiraXRfDHQ227cjBt51
There was a problem hiding this comment.
Sorry @ciresnave-bot, you've used your own review budget of 250,000 diff characters for the last 7 days.
You can request another review in 5 days and 11 hours by commenting @sourcery-ai review. Upgrade to get a review now.
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThis PR performs a zero-manifest-change dependency refresh: Cargo.lock advances smallvec and uuid to the latest stable versions permitted by existing declarations, and the mlmf-core transitive-dependency snapshot is blessed for the resulting smallvec replacement. The implementation was cross-checked with three dependency-discovery/update methods and validated with formatting, clippy, and workspace/package tests. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
CireSnave's standing rule, verbatim: "I want all of my projects' dependencies on
their most recent versions at all times."
The measurement — all 24 direct crates.io dependencies
smallvec1.15.2→1.16.0,uuid1.24.0→1.26.1safetensorssha2sysinfotokenizersThis PR takes the two needing no manifest change. The four that do are a
separate branch with real breakage risk — a zero-risk lockfile update should not
be held hostage to four API upgrades.
Blessed, and the snapshot diff is exactly one line. A dependency change cannot
land here silently, and the gate names its own remedy.
Three methods, and how they were read
Cargo.lockagainst the latest unyanked stablecargo update --dry-run— the operation itself(1) and (2) name the same six. (3) confirms both move.
uuidis declared1.0and locked at1.24.0 against an available 1.26.1 — the caret range permits the upgrade, so a
manifest-only check reports compliance for exactly the case this rule targets.
smallvec 2.0.0-alpha.13over 1.15.2.thiserror's"1.0.69,2.0.20"read as behind when our edge is current at 2.0.20.Both fixed — and the fix changed smallvec's verdict in both directions: it is
genuinely behind, at 1.16.0, not at an alpha. Right verdict, wrong reason is not
a pass.
cargo-outdated prints
Compat: ---foruuid, which I first took as "nosemver-compatible upgrade exists" — contradicting my own analysis.
cargo update --dry-runmoves it. The tools agreed; I had misread a column. Before recordingtwo instruments as disagreeing, check that you read both.
Separate finding, not addressed here
thiserrorappears twice inCargo.lock— 1.0.69 and 2.0.20. Our declared edgeis
2and resolves to the latest; the 1.0.69 is a transitive duplicate someone elsepulls. Recorded rather than fixed.
Verification
🤖 Generated with Claude Code
https://claude.ai/code/session_01MdVuiraXRfDHQ227cjBt51
Summary by Sourcery
Update the permitted smallvec and uuid dependency versions without changing manifest constraints.
Enhancements: