| name | noir-sync-update |
| description | Perform necessary follow-on updates as a result of updating the noir git submodule. |
Noir Sync Update
Workflow
Copy this checklist and track progress:
Noir Sync Update Progress:
- [ ] Step 1: Ensure that the new submodule commit has been pulled.
- [ ] Step 2: Update the `Cargo.lock` file in `avm-transpiler`.
- [ ] Step 3: Update the `yarn.lock` file in `yarn-project`.
- [ ] Step 4: Format `noir-projects`.
- [ ] Step 5: Check `noir-projects` still compiles.
After each step, commit the results.
Critical Verification Rules
ALWAYS verify file changes with git status after any modification step before marking it complete. Command output showing "updating" does not guarantee the file was written to disk.
IMPORTANT: Always run git status from the repository root directory, not from subdirectories. Running git status noir-projects/ from inside noir-projects/ will fail silently.
Step 1: Ensure that the new submodule commit has been pulled
Run ./bootstrap.sh in noir to ensure that the new submodule commit has been pulled.
This shouldn't update any files such that a commit is necessary.
Step 2: Update Cargo.lock in avm-transpiler
Before updating, determine the expected noir version:
- Read
noir/noir-repo/.release-please-manifest.jsonto find the expected version (e.g.,1.0.0-beta.18) - Check the current version in
avm-transpiler/Cargo.lockby searching foraciror similar noir packages
To update the lock file, run cargo update in avm-transpiler with only noir-repo packages:
cd avm-transpiler
cargo update -p acir -p acir_field -p acvm -p acvm_blackbox_solver -p bn254_blackbox_solver -p brillig -p brillig_vm -p fm -p iter-extended -p noirc_abi -p noirc_arena -p noirc_artifacts -p noirc_errors -p noirc_evaluator -p noirc_frontend -p noirc_printable_type -p noirc_span
IMPORTANT: Do NOT use cargo update without -p flagsāthis will update ALL dependencies, not just noir-repo packages.
After updating, verify:
- Run
git status avm-transpiler/to confirmCargo.lockwas modified - Run
cargo checkto ensure it still builds - Grep
Cargo.lockforacirto verify the version matches the expected version from.release-please-manifest.json
It's possible that changes in dependencies result in avm-transpiler no longer building.
- If transient dependency mismatches mean changes to the dependency tree are necessary, then the
Cargo.lockfile inavm-transpilershould be modified. DO NOT MODIFYnoir/noir-repo. - If updates are necessary due to changes in exports from
noir/noir-repopackages, then perform the necessary updates to import statements, etc.
Step 3: Update yarn.lock in yarn-project
Run yarn install in yarn-project to update the yarn.lock file.
After running, verify with git status yarn-project/yarn.lock that the file was modified before committing.
Step 4: Format noir-projects
Run ./bootstrap.sh format in noir-projects.
This is necessary as the updates to the noir compiler may result in the formatter handling the same code differently.
Failing to run the formatter will result in a CI failure.
After running, check git status noir-projects/ for any formatting changes that need to be committed.
Step 5: Check noir-projects still compiles
Run ./bootstrap.sh in noir-projects.
As a sanity check, we want to ensure that noir-projects still compiles after the update.