Update Rust crate scc to v3#8131
Conversation
b420c1e to
54242db
Compare
54242db to
054a7a8
Compare
054a7a8 to
cc71e7b
Compare
cc71e7b to
560c5b9
Compare
560c5b9 to
3e2aa12
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8131 +/- ##
==========================================
- Coverage 59.61% 59.57% -0.04%
==========================================
Files 1366 1367 +1
Lines 132649 132788 +139
Branches 6044 6045 +1
==========================================
+ Hits 79078 79108 +30
- Misses 52637 52743 +106
- Partials 934 937 +3 Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
3e2aa12 to
ad989b6
Compare
PR SummaryMedium Risk Overview There are no application source changes; consumers are Reviewed by Cursor Bugbot for commit c5c90b8. Bugbot is set up for automated code reviews on this repo. Configure here. |
7f67b75 to
bb961aa
Compare
bb961aa to
df14ab8
Compare
df14ab8 to
98e401d
Compare
98e401d to
6f35be8
Compare
6f35be8 to
bbaab79
Compare
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
bbaab79 to
c88ccef
Compare
|
| rstest = { version = "0.26.1", default-features = false } | ||
| rustc_version = { version = "0.4.1", default-features = false } | ||
| scc = { version = "2.4.0", default-features = false } | ||
| scc = { version = "3.0.0", default-features = false } |
There was a problem hiding this comment.
🔴 Bumping scc to 3.0 removes the scc::ebr module (scc 2.4 had pub use sdd as ebr;; 3.x drops it and re-exports Guard directly at the crate root), but three source files still import from the removed path and are not touched by this PR, so the workspace fails to compile with E0432: unresolved import scc::ebr:
libs/@local/harpc/server/src/session.rs:8—use scc::{ebr::Guard, hash_index::Entry};libs/@local/harpc/net/src/session/client/connection/mod.rs:13—use scc::ebr::Guard;libs/@local/harpc/net/src/session/server/connection/collection.rs:5—use scc::{HashIndex, ebr::Guard, hash_index::Entry};
Fix: replace scc::ebr::Guard with scc::Guard in those three files alongside the version bump. Renovate can't make source-level changes, so this needs a manual follow-up commit — which matches the 2026-06-21 "Artifact update problem" comment noting the branch is not mergeable as-is.
Extended reasoning...
What the bug is
The workspace scc dependency in Cargo.toml line 236 is bumped from 2.4.0 to 3.0.0 (and Cargo.lock resolves to scc 3.8.3). Between 2.4 and 3.0, scc removed the top-level ebr module. Three files in the harpc crates still import Guard through the removed path scc::ebr::Guard, so after the bump both harpc-net and harpc-server fail to compile with error[E0432]: unresolved import \scc::ebr`. Because both crates are workspace members (declared via harpc-net.path/harpc-server.path`), the entire workspace build breaks.
How I verified the API break
Downloading and extracting each crate version from crates.io:
scc-2.4.0/src/lib.rsline 69 has the backward-compat alias:/// Re-exports the `sdd` crate for backward compatibility. pub use sdd as ebr;
scc-3.0.0/src/lib.rsline 30 replaces it with a direct re-export of individual items — noebrmodule anywhere in the crate:pub use sdd::{AtomicShared, Guard, Shared, Tag};
scc-3.8.3/src/lib.rs(what the lockfile resolves to) line 5 similarly:pub use sdd::{AtomicShared, Bag, Guard, LinkedEntry, LinkedList, Queue, Shared, Stack, Tag};
The only remaining ebr references in scc 3.x are two doc comments in tree_index/leaf_node.rs. The module and re-export are gone.
Step-by-step proof
- Renovate updates
Cargo.toml:236toscc = { version = "3.0.0", ... }. - Cargo resolves
sccto3.8.3(per the lockfile diff atCargo.locklines 8615–8619). cargo build -p harpc-netreadslibs/@local/harpc/net/src/session/client/connection/mod.rs:13:use scc::ebr::Guard;- rustc resolves
scctoscc 3.8.3, looks for moduleebrinside its crate root, finds none, and emitserror[E0432]: unresolved import \scc::ebr``. - Same failure repeats for
.../server/connection/collection.rs:5(use scc::{HashIndex, ebr::Guard, hash_index::Entry};) andlibs/@local/harpc/server/src/session.rs:8(use scc::{ebr::Guard, hash_index::Entry};). harpc-netandharpc-serverare workspace members, socargo build --workspace(and CI) fail.
Why nothing else caught this
Renovate correctly bumped the version constraint but cannot perform source-level refactors. The bot's own 2026-06-21 "Artifact update problem" comment already flags that the branch has been unmergeable for months and explicitly warns "You probably do not want to merge this PR as-is." Cursor's Bugbot on 2025-12-16 also flagged this as Medium Risk because scc is consumed for HashIndex, ebr::Guard, and session collections with no accompanying source changes.
How to fix
In the same commit as the version bump, replace scc::ebr::Guard with scc::Guard in the three files above. Guard is still re-exported at the crate root in scc 3.x, so no other changes are required. The concrete edits are:
libs/@local/harpc/server/src/session.rs:8→use scc::{Guard, hash_index::Entry};libs/@local/harpc/net/src/session/client/connection/mod.rs:13→use scc::Guard;libs/@local/harpc/net/src/session/server/connection/collection.rs:5→use scc::{HashIndex, Guard, hash_index::Entry};
After that, cargo check --workspace should pass and the PR is mergeable.
This PR contains the following updates:
2.4.0→3.0.03.8.3(+1)Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.