Skip to content

Drop the elliptic-curve pin and the no-op tokio-stream = - #4576

Merged
cbeck88 merged 1 commit into
stagingfrom
deps/relax-exact-pins
Oct 25, 2026
Merged

cbeck88 merged 1 commit into
stagingfrom
deps/relax-exact-pins

Conversation

@cbeck88

@cbeck88 cbeck88 commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Motivation

Exact (=) requirements force every build onto one version and outlive the reason they were added. #4575 removed the crypto-bigint pin to move past RUSTSEC-2026-0387. This PR removes the other non-internal ones:

Dependency Was Now Why
elliptic-curve (root snarkos) =0.14.1 removed Pinned for k256 release candidates. k256 0.14.0 requires elliptic-curve ^0.14.1 itself, so the pin only blocks patch releases.
tokio-stream (node, node/router) =0.1 0.1 =0.1 matches any 0.1.x, the same as 0.1. The = only misleads.

No snarkos code uses elliptic-curve. It was a direct dependency only to carry the pin, so it goes along with its cargo-machete exemption. k256 still reaches it through snarkvm-console-algorithms.

The proptest comment said snarkVM uses 1.6; it is on 1.12 now. The 1.6 requirement admits 1.12, so only the comment goes.

The internal snarkos-* pins (=4.12.0) stay. Those crates are released together, so each has to take its siblings at exactly its own version.

Test Plan

  • Cargo.lock changes only by dropping the elliptic-curve edge from snarkos. cargo update --workspace locks 0 packages; every resolved version is unchanged.
  • cargo tree -e features -i elliptic-curve enables the same features before and after.
  • cargo check --workspace --all-targets --locked passes.

Documentation

None.

Backwards compatibility

No code changes, and the lockfile resolves to the same versions.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WknVbv96cQthGZ7Ztp2dEQ

@cbeck88
cbeck88 requested a review from vicsn October 25, 2026 12:09
elliptic-curve was pinned for k256 release candidates. k256 0.14.0
requires elliptic-curve ^0.14.1 itself, so the =0.14.1 pin only blocks
patch releases. No snarkos code uses the crate; it was a direct
dependency only to carry the pin, so it goes, with its cargo-machete
exemption. The resolved version and its enabled features are unchanged.

tokio-stream's "=0.1" means any 0.1.x, the same as "0.1".

The proptest comment said snarkVM uses 1.6; it uses 1.12 now. The "1.6"
requirement admits that, so only the comment goes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WknVbv96cQthGZ7Ztp2dEQ
@cbeck88
cbeck88 force-pushed the deps/relax-exact-pins branch from 829162b to 8fd2c27 Compare October 25, 2026 12:18
@cbeck88 cbeck88 changed the title Drop the elliptic-curve and crypto-bigint pins, and the no-op tokio-stream = Drop the elliptic-curve pin and the no-op tokio-stream = Oct 25, 2026

@vicsn vicsn left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM, should we add this to e.g. CONTRIBUTING.md or some other style guide, or I guess it could be mentioned in any internal prerelease prompt.

@cbeck88
cbeck88 merged commit 181d681 into staging Oct 25, 2026
22 checks passed
@cbeck88
cbeck88 deleted the deps/relax-exact-pins branch October 25, 2026 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants