Perform necessary follow-on updates as a result of updating the noir git submodule.
noir-sync-update follows the SKILL.md standard. Use the install command to add it to your agent stack.
--- 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: 1. Read `noir/noir-repo/.release-please-manifest.json` to find the expected version (e.g., `1.0.0-beta.18`) 2. Check the current version in `avm-transpiler/Cargo.lock` by searching for `acir` or similar noir packages **To update the lock file**, run `cargo update` in `avm-transpiler` with **only noir-repo packages**: ```bash 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: 1. Run `git status avm-transpiler/` to confirm `Cargo.lock` was modified 2. Run `cargo check` to ensure it still builds 3. Grep `Cargo.lock` for `acir` to 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.lock` file in `avm-transpiler` should be modified. **DO NOT MODIFY `noir/noir-repo`**. - If updates are necessary due to changes in exports from `noir/noir-repo` packages, 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.