Skip to content

Update Rust crate scc to v3#8131

Open
hash-worker[bot] wants to merge 1 commit into
mainfrom
deps/rs/scc-3.x
Open

Update Rust crate scc to v3#8131
hash-worker[bot] wants to merge 1 commit into
mainfrom
deps/rs/scc-3.x

Conversation

@hash-worker

@hash-worker hash-worker Bot commented Nov 30, 2025

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change Pending
scc workspace.dependencies major 2.4.03.0.0 3.8.3 (+1)

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 4am every weekday,every weekend"
  • Automerge
    • "before 4am every weekday,every weekend"

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@hash-worker hash-worker Bot enabled auto-merge November 30, 2025 15:14
@github-actions github-actions Bot added the area/deps Relates to third-party dependencies (area) label Nov 30, 2025
@hash-worker hash-worker Bot requested a review from a team November 30, 2025 15:44
@codecov

codecov Bot commented Dec 9, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.57%. Comparing base (3616854) to head (c5c90b8).
⚠️ Report is 2 commits behind head on main.

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     
Flag Coverage Δ
apps.hash-ai-worker-ts 1.39% <ø> (ø)
apps.hash-api 6.39% <ø> (ø)
blockprotocol.type-system 40.84% <ø> (ø)
local.claude-hooks 0.00% <ø> (ø)
local.harpc-client 51.49% <ø> (ø)
local.hash-backend-utils 2.81% <ø> (ø)
local.hash-graph-sdk 10.00% <ø> (ø)
local.hash-isomorphic-utils 0.18% <ø> (ø)
rust.antsi 0.00% <ø> (ø)
rust.error-stack 90.87% <ø> (ø)
rust.harpc-codec 84.70% <ø> (ø)
rust.harpc-types 0.00% <ø> (ø)
rust.harpc-wire-protocol 92.23% <ø> (ø)
rust.hash-codec 72.76% <ø> (ø)
rust.hash-graph-authorization 62.59% <ø> (+0.18%) ⬆️
rust.hash-graph-postgres-store 29.38% <ø> (ø)
rust.hash-graph-store 38.21% <ø> (ø)
rust.hash-graph-temporal-versioning 47.95% <ø> (ø)
rust.hash-graph-types 0.00% <ø> (ø)
rust.hash-graph-validation 83.43% <ø> (ø)
rust.hashql-ast 87.23% <ø> (ø)
rust.hashql-compiletest 28.40% <ø> (ø)
rust.hashql-core 79.58% <ø> (-0.03%) ⬇️
rust.hashql-diagnostics 72.31% <ø> (ø)
rust.hashql-eval 74.97% <ø> (-0.26%) ⬇️
rust.hashql-hir 89.06% <ø> (ø)
rust.hashql-mir 88.04% <ø> (-0.40%) ⬇️
rust.hashql-syntax-jexpr 94.04% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@cursor

cursor Bot commented Dec 16, 2025

Copy link
Copy Markdown

PR Summary

Medium Risk
Major bump of lock-free concurrent containers used on harpc RPC session/request paths; breakage would surface as compile or subtle concurrency bugs, but the diff is limited to manifests.

Overview
Renovate bumps the workspace scc dependency from 2.4.0 to 3.0.0 in Cargo.toml, with Cargo.lock resolving scc 3.8.3 and related transitive updates (notably sdd / new saa, plus assorted lockfile churn such as windows-sys, spin, and getrandom).

There are no application source changes; consumers are harpc-net and harpc-server, which use scc::HashIndex, hash_index::Entry, and ebr::Guard for lock-free session and in-flight request tracking. Review should focus on scc v3 compatibility and behavior of those concurrent maps under load, not on new logic in this diff.

Reviewed by Cursor Bugbot for commit c5c90b8. Bugbot is set up for automated code reviews on this repo. Configure here.

@vercel

vercel Bot commented Jan 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ds-theme Error Error Jul 2, 2026 7:53pm
hash Ready Ready Preview, Comment Jul 2, 2026 7:53pm
hashdotdesign Ready Ready Preview, Comment Jul 2, 2026 7:53pm
hashdotdesign-tokens Ready Ready Preview, Comment Jul 2, 2026 7:53pm
petrinaut Ready Ready Preview Jul 2, 2026 7:53pm

@codspeed-hq

codspeed-hq Bot commented Jan 16, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 80 untouched benchmarks


Comparing deps/rs/scc-3.x (c5c90b8) with main (3c2befa)1

Open in CodSpeed

Footnotes

  1. No successful run was found on main (4acc9bf) during the generation of this report, so 3c2befa was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@hash-worker

hash-worker Bot commented Jun 21, 2026

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.toml
Artifact update for scc resolved to version 3.8.3, which is a pending version that has not yet passed the Minimum Release Age threshold.
Renovate was attempting to update to 3.8.1
This is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.
Until Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with `rangeStrategy=pin` for apps, or `rangeStrategy=widen` for libraries)
See also: https://docs.renovatebot.com/dependency-pinning/

Comment thread Cargo.toml
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 }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 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:8use scc::{ebr::Guard, hash_index::Entry};
  • libs/@local/harpc/net/src/session/client/connection/mod.rs:13use scc::ebr::Guard;
  • libs/@local/harpc/net/src/session/server/connection/collection.rs:5use 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.rs line 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.rs line 30 replaces it with a direct re-export of individual items — no ebr module 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

  1. Renovate updates Cargo.toml:236 to scc = { version = "3.0.0", ... }.
  2. Cargo resolves scc to 3.8.3 (per the lockfile diff at Cargo.lock lines 8615–8619).
  3. cargo build -p harpc-net reads libs/@local/harpc/net/src/session/client/connection/mod.rs:13: use scc::ebr::Guard;
  4. rustc resolves scc to scc 3.8.3, looks for module ebr inside its crate root, finds none, and emits error[E0432]: unresolved import \scc::ebr``.
  5. Same failure repeats for .../server/connection/collection.rs:5 (use scc::{HashIndex, ebr::Guard, hash_index::Entry};) and libs/@local/harpc/server/src/session.rs:8 (use scc::{ebr::Guard, hash_index::Entry};).
  6. harpc-net and harpc-server are workspace members, so cargo 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:8use scc::{Guard, hash_index::Entry};
  • libs/@local/harpc/net/src/session/client/connection/mod.rs:13use scc::Guard;
  • libs/@local/harpc/net/src/session/server/connection/collection.rs:5use scc::{HashIndex, Guard, hash_index::Entry};

After that, cargo check --workspace should pass and the PR is mergeable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/deps Relates to third-party dependencies (area)

Development

Successfully merging this pull request may close these issues.

2 participants