Skip to content

chore: rev-pin librustzcash and librustvoting deps (P5/P7)#17

Merged
czarcas7ic merged 1 commit into
shielded-votefrom
adam/p5-p7-ios-sdk-rev-pins
Apr 10, 2026
Merged

chore: rev-pin librustzcash and librustvoting deps (P5/P7)#17
czarcas7ic merged 1 commit into
shielded-votefrom
adam/p5-p7-ios-sdk-rev-pins

Conversation

@czarcas7ic

Copy link
Copy Markdown

Summary

  • Replace floating branch = "shielded-voting-wallet-support" with rev = "6858db4..." for all 9 librustzcash [patch.crates-io] entries
  • Pin librustvoting to current main HEAD (8ff4432)
  • Regenerate Cargo.lock

Note: orchard and voting-circuits remain as bare git URLs (no rev pin) because Cargo treats ?rev= URLs as a different source than the path deps voting-circuits uses internally for orchard, which would cause duplicate compilation. The lockfile freezes the actual commits.

Context

Sean's review (P5) flagged that floating branch pins are dangerous — a compromised branch or accidental force-push silently changes what gets compiled. Rev pins make dependency resolution deterministic and auditable.

P7 identified that librustvoting and the iOS SDK were using different librustzcash branches. librustvoting has been consolidated to shielded-voting-wallet-support with rev pins (valargroup/zcash_voting#13, merged). This PR does the same for the iOS SDK.

After merge

Delete valargroup/librustzcash branch valargroup/pczt-governance-extensions-0.11 (no longer referenced by any consumer):

gh api -X DELETE repos/valargroup/librustzcash/git/refs/heads/valargroup/pczt-governance-extensions-0.11

Test plan

  • cargo build --release succeeds
  • Single orchard, imt-tree, voting-circuits entries in lockfile
  • All librustzcash crates resolve to 6858db4 (same as before, just formalized)
  • No branch = pins remaining in Cargo.toml

Replace floating `branch = "shielded-voting-wallet-support"` with
explicit rev pins for all 9 librustzcash [patch.crates-io] entries.
Pin librustvoting to current main HEAD.

orchard and voting-circuits remain as bare git URLs because Cargo
treats ?rev= URLs as a different source than the path deps that
voting-circuits uses internally for orchard, which would cause
duplicate compilation. The lockfile freezes the actual commit.

Co-Authored-By: Claude <noreply@anthropic.com>
@czarcas7ic czarcas7ic marked this pull request as ready for review April 10, 2026 21:58
@czarcas7ic czarcas7ic merged commit 505e93b into shielded-vote Apr 10, 2026
3 checks passed
p0mvn added a commit that referenced this pull request Apr 11, 2026
This reverts merge commit 71a6e0f (PR #16).

Restores the call to wallet_db.generate_orchard_witnesses_at_frontier()
instead of the standalone function in voting::orchard_witnesses. The
Cargo.lock is left as-is since subsequent PRs (#17, #18) already
updated it.

Made-with: Cursor
greg0x pushed a commit that referenced this pull request Apr 13, 2026
chore: rev-pin librustzcash and librustvoting deps (P5/P7)
greg0x pushed a commit that referenced this pull request Apr 13, 2026
This reverts merge commit 71a6e0f (PR #16).

Restores the call to wallet_db.generate_orchard_witnesses_at_frontier()
instead of the standalone function in voting::orchard_witnesses. The
Cargo.lock is left as-is since subsequent PRs (#17, #18) already
updated it.

Made-with: Cursor
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.

1 participant