Perform necessary follow-on updates as a result of updating the noir git submodule.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
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`.
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.
More by AztecProtocol
View allSpawn an independent Claude instance in a git worktree to work on a task in parallel. Use when the user wants to delegate a task to run independently while continuing the current conversation.
Investigate CI failures by following log links from ci.aztec-labs.com. Given a GitHub Actions URL, PR number, or direct CI log URL, fetch logs and recursively follow nested log links to trace the root cause of build or test failures.
Updates changelog documentation for contract developers and node operators by analyzing branch changes relative to 'next'. Use when preparing a PR, updating migration notes, documenting breaking changes, or when asked to update changelog/release notes.
Guidelines for writing module READMEs that explain how a module works to developers who need to use it or understand its internals. Use when documenting a module, package, or subsystem.
