Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds Nix flake support and integration: new Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant GH as GitHub Actions
participant Runner as CI Runner
participant Nix as Nix (flakes)
participant Flake as flake.nix
participant Fetch as Remote fetch (tarballs/git)
participant Script as scripts/nix-versions.sh
participant Cargo as Cargo / Rust build
GH->>Runner: trigger workflow (CI or Release)
Runner->>Nix: install Nix with flakes
Runner->>Flake: evaluate `packages.cli` / build flake target
Flake->>Fetch: fetch Noir / Barretenberg / crates
Fetch-->>Flake: deliver artifacts & hashes
Runner->>Script: run `scripts/nix-versions.sh` (validate hashes)
Script->>Nix: prefetch URLs & compute SRI
Script-->>Runner: validation result
Runner->>Cargo: build e3-cli via flake
Cargo-->>Runner: produce build artifacts
Runner->>GH: report job success/failure
Estimated code review effort🎯 4 (Complex) | ⏱️ ~40 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
It works now. However I had 1 error while compiling the Interfold dependencies in Rust: |
|
So I can't really debug this - there must be something platform specific around building noir on mac that is not handled in a standard way. We can resort to using the release binaries which is more akin to how the old version worked but this means we cannot use this to install specific commits which I believe is really valuable for testing in production. |
cedoor
left a comment
There was a problem hiding this comment.
tACK, some issue on mac but that won't be the main target I guess, so approved anyway
So I setup a nix flake over here that was doing some fancy stuff to sync versions but in reality it is way more useful to have a nix flake build directly off a specific commit.
This makes any version of enclave easy to install using nix by just pointing to the live github repo:
Eg.
Or a branch like this one:
Or event just a commit:
You can also use refresh to update the local git cache and reinstall everything:
How to test this:
Install the nix package manager:
curl -fsSL https://install.determinate.systems/nix | sh -s -- installUninstall enclave if you have it installed.
Do this to get a devshell with everything installed:
When you're done, type
exitor pressCtrl-Dto leave the dev shell.Maintenance
Another benefit here is that this is semi-automated (almost)
There is a test added here that scans for dependency inaccuracies.
It will fail and show the dependency sha that needs to be added to the
flake.nixI put it within our release to do a nix build ensuring this works for release but do a dependency check on PR so we can catch dependency updates early.
It will break and show the hash mismatch you then copy the new hash to the flake overwriting the old one. I think it should be a pretty low lift.
Example of where to change the hashes.
It should show:
This script also validates the hashes within versions.json which aids in security.
So you could just do find replace on that.
Summary by CodeRabbit
New Features
Documentation
Chores