Skip to content

chore(zk): add pinned Noir version compatibility gate for reproducibl…#317

Merged
ANAVHEOBA merged 1 commit intoANAVHEOBA:mainfrom
Litezy:feat-noir-version-compatibility
Apr 24, 2026
Merged

chore(zk): add pinned Noir version compatibility gate for reproducibl…#317
ANAVHEOBA merged 1 commit intoANAVHEOBA:mainfrom
Litezy:feat-noir-version-compatibility

Conversation

@Litezy
Copy link
Copy Markdown
Contributor

@Litezy Litezy commented Apr 24, 2026

Closes #308

Summary

Adds a pinned Noir version compatibility gate for circuit builds to enforce deterministic ZK compilation. Introduces .noir-version as the source of truth and adds a validation script to fail fast on toolchain mismatches, ensuring consistent artifact generation across environments.


Type of Change

  • Bug fix
  • New feature
  • Smart contract change
  • Documentation
  • Breaking change
  • Other (please describe)

Checklist

  • Tests added or updated
  • No hardcoded secrets or private keys
  • If contract change: cargo test passes
  • If frontend change: npm run typecheck passes
  • If backend change: npm test passes
  • Related issues linked (Closes ZK-064)
  • Self-review completed
  • Code follows project style guidelines

Screenshots (if applicable)

N/A


Testing

  • Verified .noir-version is correctly read by validation script
  • Tested mismatch scenario to confirm CI/script fails as expected
  • Confirmed nargo --version matches pinned version before build
  • Successfully rebuilt circuits with enforced version gate
  • Ensured CI pipeline runs version check before circuit compilation

Additional Notes

  • Introduces .noir-version as the single source of truth for Noir toolchain version
  • Adds script-based enforcement for local and CI environments
  • Prevents silent artifact drift caused by Noir upgrades
  • Ensures reproducible circuit builds across contributors and CI
  • Designed to fail fast when toolchain mismatch is detected

@ANAVHEOBA ANAVHEOBA merged commit 025e3d3 into ANAVHEOBA:main Apr 24, 2026
2 checks passed
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.

ZK-064: Add a pinned Noir-version compatibility gate for circuit builds and artifacts

2 participants