Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
62adc45
feat(ci3): give single-instance PR runs a parent dashboard log
charlielye Jun 9, 2026
01f1bc5
chore: deployments
alexghr Jun 9, 2026
7e94c2c
chore: deployments (#23959)
PhilWindle Jun 9, 2026
664db0f
fix(ci3): scope build-instance name by repo to stop cross-repo reaping
charlielye Jun 10, 2026
b8b0d36
fix(ci3): scope build-instance name by repo to stop cross-repo reapin…
ludamad Jun 10, 2026
d6db011
feat(ci3): give single-instance PR runs a parent dashboard log (#23970)
ludamad Jun 10, 2026
8bfd77d
docs: update sponsored fpc address
critesjosh Jun 10, 2026
2ed6d2b
add reminder about funding testnet fpc
critesjosh Jun 10, 2026
56168b3
chore(ci): public nightlies skip scenario tests and the next tag
AztecBot Jun 11, 2026
0f2b8e1
chore(ci): public nightlies skip scenario tests and the next tag (#23…
AztecBot Jun 11, 2026
3d6efdf
fix(spartan): wait_for_ci3 finds aged runs and proceeds once CI3 comp…
AztecBot Jun 11, 2026
8b3fdb4
fix(spartan): wait_for_ci3 finds aged runs and proceeds once CI3 comp…
AztecBot Jun 11, 2026
5bb74e9
chore: deploy staging from `next` scripts/helm
AztecBot Jun 11, 2026
be3c547
chore: deploy staging from `next` scripts/helm (#24013)
alexghr Jun 11, 2026
faf7cfe
fix(docs): update sponsored fpc address docs (#23996)
critesjosh Jun 11, 2026
a62c059
docs(CLAUDE.md): discourage unprompted subagents and dynamic workflows
AztecBot Jun 11, 2026
dfb9ff3
docs(CLAUDE.md): discourage unprompted subagents and dynamic workflow…
ludamad Jun 11, 2026
8aed7c5
docs: update Aztec & Noir Developer Office Hours Google Meet link
AztecBot Jun 11, 2026
c11b084
update PR #24033
AztecBot Jun 11, 2026
e26c0c1
docs: update Aztec & Noir Developer Office Hours Google Meet link (#2…
critesjosh Jun 11, 2026
3b462ff
fix(ci): refresh grind launcher checkout to origin/next before launching
AztecBot Jun 11, 2026
fa06339
fix(ci): refresh grind launcher checkout to origin/next before launch…
spalladino Jun 11, 2026
0a48720
Merge remote-tracking branch 'origin/next' into ag/chore-mt-conflicts-2
alexghr Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .claude/skills/release-docs/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,14 @@ returned by the RPC (e.g. the network is still running `4.1.3` but the user
wants to prepare docs for `4.2.0`), this is a **pre-release** docs preparation.
Ask the user to confirm the target version, then use that version instead of
`nodeVersion` throughout the remaining steps. The git tag for the target version
must still exist. Contract addresses from the RPC reflect the *current* network
must still exist. Contract addresses from the RPC reflect the _current_ network
state (the old version); they are still valid if the upgrade reuses the same
contracts, but ask the user to confirm whether any addresses will change at
upgrade time.

**Run all work on the tag, not `next`.** Cut on the tag so the snapshot
reflects what shipped. Then stash, switch to `next`, pop. Backport any newer
docs from `next` into the snapshot as an explicit step *after* the cut.
docs from `next` into the snapshot as an explicit step _after_ the cut.

### Unversioned root pages

Expand Down Expand Up @@ -116,10 +116,11 @@ VERSION=<version> bash -i <(curl -sL https://install.aztec.network/<version>)
aztec get-canonical-sponsored-fpc-address
```

Store the address for updating docs.
Store the address for updating docs. Be sure to update the address with the appropriate value wherever it appears in the versioned docs.

**Note:** The Sponsored FPC is only deployed on devnet. For mainnet and testnet releases,
**Note:** The Sponsored FPC is deployed on testnet and devnet. For mainnet releases,
mark the SponsoredFPC row as "Not deployed" in the L2 Contract Addresses table.
If the Sponsored FPC address changes for a testnet release, send a reminder that the new address must be funded on testnet.

### Step 5: Update Version Configs

Expand Down Expand Up @@ -234,6 +235,7 @@ docs (Step 13), the generated content is included in the snapshot automatically.

1. **Triage existing TBD items.** Not all items under `## TBD` necessarily belong
to the current release. Review each entry and decide whether it:

- Shipped in this release → move it under the new `## <new version>` heading
- Targets a future major version → move it under a new `## Unreleased (v<next_major>)`
heading (create this heading if it doesn't exist, placed between `## TBD` and
Expand All @@ -250,6 +252,7 @@ docs (Step 13), the generated content is included in the snapshot automatically.

4. Check for missing migration items by analyzing the diff between the previous
release tag and the new one:

```bash
git diff v<old_version>..v<new_version> -- yarn-project/ noir-projects/
```
Expand Down
3 changes: 2 additions & 1 deletion .claude/skills/release-network-docs/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,13 +144,14 @@ in each table:

- **L1 Contract Addresses table**: update all addresses from the RPC response,
on-chain queries, and any additional addresses provided by the user.

- Mainnet: use `https://etherscan.io/address/0xADDR` link format
- Testnet: use `https://sepolia.etherscan.io/address/0xADDR` link format
- For contracts that are not deployed on this network, use `N/A`

- **L2 Contract Addresses table**: update if any canonical protocol contract
addresses changed (check the `protocolContractAddresses` from the RPC
response). SponsoredFPC is always "Not deployed" on mainnet and testnet.
response). SponsoredFPC is always "Not deployed" on mainnet.

Also grep for any old addresses that may appear elsewhere in the docs:

Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/deploy-staging-internal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ jobs:
tag: ${{ steps.resolve.outputs.tag }}
semver: ${{ steps.resolve.outputs.semver }}
steps:
- name: Checkout v5-next
- name: Checkout next
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
with:
ref: v5-next
ref: next
token: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
fetch-depth: 0
fetch-depth: 1

- name: Resolve nightly tag
id: resolve
Expand All @@ -50,6 +50,11 @@ jobs:
else
TAG="v5.0.0-nightly.$(date -u +%Y%m%d)"
echo "Using today's nightly tag: $TAG"
if ! git ls-remote --exit-code --tags origin "refs/tags/$TAG" >/dev/null; then
echo "Error: nightly tag $TAG does not exist on origin"
exit 1
fi
echo "Confirmed nightly tag $TAG exists on origin"
fi

SEMVER="${TAG#v}"
Expand Down Expand Up @@ -82,6 +87,7 @@ jobs:
network: staging-internal
semver: ${{ needs.determine-tag.outputs.semver }}
source_tag: ${{ needs.determine-tag.outputs.tag }}
ref: next
deploy_contracts: ${{ inputs.deploy_contracts == true }}
use_internal_docker_registry: true
secrets: inherit
12 changes: 9 additions & 3 deletions .github/workflows/deploy-staging-public.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ jobs:
tag: ${{ steps.resolve.outputs.tag }}
semver: ${{ steps.resolve.outputs.semver }}
steps:
- name: Checkout v5-next
- name: Checkout next
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
with:
ref: v5-next
ref: next
token: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
fetch-depth: 0
fetch-depth: 1

- name: Resolve nightly tag
id: resolve
Expand All @@ -50,6 +50,11 @@ jobs:
else
TAG="v5.0.0-nightly.$(date -u +%Y%m%d)"
echo "Using today's nightly tag: $TAG"
if ! git ls-remote --exit-code --tags origin "refs/tags/$TAG" >/dev/null; then
echo "Error: nightly tag $TAG does not exist on origin"
exit 1
fi
echo "Confirmed nightly tag $TAG exists on origin"
fi

SEMVER="${TAG#v}"
Expand Down Expand Up @@ -82,5 +87,6 @@ jobs:
network: staging-public
semver: ${{ needs.determine-tag.outputs.semver }}
source_tag: ${{ needs.determine-tag.outputs.tag }}
ref: next
deploy_contracts: ${{ inputs.deploy_contracts == true }}
secrets: inherit
4 changes: 4 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,10 @@ Tests should validate behavior, not mock call-count. Prefer `expect(result).toEq
Before writing a new helper, utility, or component, search for an existing one with Grep or Glob. Reuse or refactor to a shared module; do not introduce a parallel implementation.
</reuse_before_writing>

<agent_and_workflow_restraint>
Do the work in this session by default. Do not spawn parallel subagents (the Agent/Task tool) or launch dynamic workflows (the Workflow tool) unless the user explicitly asks for it. Each extra agent multiplies token spend — roughly 2x for one helper and far more when a request fans out to many — and the user cannot see the fan-out coming or stop it; a single prompt that quietly started ~30 agents has exhausted an operator's budget. Searching the codebase, summarizing, researching, and ordinary multi-file edits are inline work: run the tool calls yourself. Reach for a subagent only when the user requested orchestration, or when one clearly-scoped read-heavy helper genuinely needs isolation from the main context — prefer a single agent over many, and never start a dynamic workflow by default. If a task would benefit from parallel agents but the user has not asked, either do it directly or describe the multi-agent option and ask before spending the budget.
</agent_and_workflow_restraint>

<preserve_todos>
Preserve existing `// TODO`, `// TODO(name)`, and `// NOTE:` comments unless the current task is to resolve them. A "tidy up" refactor that deletes another author's deferred-work markers destroys context that is not recoverable from git history.

Expand Down
20 changes: 20 additions & 0 deletions ci3/dashboard/rk.py
Original file line number Diff line number Diff line change
Expand Up @@ -556,6 +556,26 @@ def make_options(param_name, options, current_value, suffix=''):
# Dashboard server needs local repo checkout at REPO_PATH
repo_path = os.environ.get('REPO_PATH')
if repo_path:
# Refresh the launcher checkout to current origin/next before launching.
# REPO_PATH only supplies the orchestration scripts (ci.sh/bootstrap_ec2);
# the grind target commit is checked out on the remote box. The launcher
# must stay current so grind uses the same transport (SSM) as the rest of
# CI -- a drifted checkout silently falls back to the retired SSH path and
# every instance times out waiting for SSH.
refresh = subprocess.run(
['git', '-C', repo_path, 'fetch', '--quiet', 'origin', 'next'],
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True
)
if refresh.returncode == 0:
refresh = subprocess.run(
['git', '-C', repo_path, 'checkout', '--quiet', '--force', 'origin/next'],
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True
)
if refresh.returncode != 0:
r.setex(run_id, 86400,
f'Failed to refresh launcher checkout at {repo_path}:\n{refresh.stdout}\n'.encode())
return redirect(f'/{run_id}')

subprocess.Popen(
['bash', '-c', f'cd {repo_path} && RUN_ID={run_id} CPUS={cpus} ./ci.sh grind-test {shlex.quote(full_cmd)} {grind_time} {jobs_pct} {memsuspend_pct} {commit}'],
stdout=subprocess.DEVNULL,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Every week you can join office hours and ecosystem calls to get unblocked, learn
## Aztec & Noir Developer Office Hours

- **When:** Thursdays · 14:00 - 15:00 UTC
- **Where:** [Google Meet](https://meet.google.com/sdd-rdsr-shu)
- **Where:** [Google Meet](https://meet.google.com/vev-waao-mab)
- **For:** Developers building with Aztec.nr smart contracts or writing and debugging Noir. Bring your questions about syntax, tooling, patterns, or protocol-level topics. Share a project you're working on, or just hang out with the Aztec Labs Dev Rel team and other devs.

---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Set the required environment variables:

```bash
export NODE_URL=https://rpc.testnet.aztec-labs.com
export SPONSORED_FPC_ADDRESS=0x254082b62f9108d044b8998f212bb145619d91bfcd049461d74babb840181257
export SPONSORED_FPC_ADDRESS=0x08b888c4be63ed67f61a622fdd013ea028326bac22a8982a3b5a7e9ec62f765b
```

### Step 2: Register the Sponsored FPC
Expand Down
2 changes: 1 addition & 1 deletion docs/docs-developers/docs/resources/community_calls.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Every week you can join office hours and ecosystem calls to get unblocked, learn
## Aztec & Noir Developer Office Hours

- **When:** Thursdays · 14:00 - 15:00 UTC
- **Where:** [Google Meet](https://meet.google.com/sdd-rdsr-shu)
- **Where:** [Google Meet](https://meet.google.com/vev-waao-mab)
- **For:** Developers building with Aztec.nr smart contracts or writing and debugging Noir. Bring your questions about syntax, tooling, patterns, or protocol-level topics. Share a project you're working on, or just hang out with the Aztec Labs Dev Rel team and other devs.

---
Expand Down
2 changes: 1 addition & 1 deletion docs/docs-developers/getting_started_on_testnet.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Set the required environment variables:

```bash
export NODE_URL=https://rpc.testnet.aztec-labs.com
export SPONSORED_FPC_ADDRESS=0x254082b62f9108d044b8998f212bb145619d91bfcd049461d74babb840181257
export SPONSORED_FPC_ADDRESS=0x08b888c4be63ed67f61a622fdd013ea028326bac22a8982a3b5a7e9ec62f765b
```

### Step 2: Register the Sponsored FPC
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/networks.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ Stable releases target roughly one per month, typically mid-month. Dates are not
| **Class Registry** | `0x0000000000000000000000000000000000000000000000000000000000000003` | `0x0000000000000000000000000000000000000000000000000000000000000003` |
| **MultiCall Entrypoint** | `0x0000000000000000000000000000000000000000000000000000000000000004` | `0x0000000000000000000000000000000000000000000000000000000000000004` |
| **Fee Juice** | `0x0000000000000000000000000000000000000000000000000000000000000005` | `0x0000000000000000000000000000000000000000000000000000000000000005` |
| **SponsoredFPC** | Not deployed | `0x254082b62f9108d044b8998f212bb145619d91bfcd049461d74babb840181257` |
| **SponsoredFPC** | Not deployed | `0x08b888c4be63ed67f61a622fdd013ea028326bac22a8982a3b5a7e9ec62f765b` |

## Governance parameters

Expand Down
24 changes: 24 additions & 0 deletions spartan/terraform/gke-cluster/iam.tf
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,30 @@ resource "google_dns_managed_zone_iam_member" "ci_rpc_dns_admin" {
member = "serviceAccount:${google_service_account.ci.email}"
}

resource "google_project_iam_member" "ci_network_deploy_project_roles" {
for_each = toset([
"roles/container.developer",
"roles/secretmanager.secretAccessor",
"roles/compute.loadBalancerAdmin"
])
project = var.project
role = each.key
member = "serviceAccount:${google_service_account.ci.email}"
}

resource "google_storage_bucket_iam_member" "ci_terraform_state_object_user" {
bucket = "aztec-terraform"
role = "roles/storage.objectUser"
member = "serviceAccount:${google_service_account.ci.email}"
}

resource "google_dns_managed_zone_iam_member" "ci_rpc_dns_admin" {
project = var.project
managed_zone = "rpc-aztec-labs-com"
role = "roles/dns.admin"
member = "serviceAccount:${google_service_account.ci.email}"
}

resource "google_service_account" "npm_registry_reader" {
account_id = var.npm_registry_reader_service_account_id
display_name = "npm Registry Reader Service Account"
Expand Down
Loading