Skip to content

Commit c11bc68

Browse files
authored
chore: merge v5 into v5-next (#24700)
Merges public `v5` into public `v5-next` so ongoing development can continue on `v5-next` while `v5` stays the release line. Requested in #engineering. `v5` was ~887 commits ahead of the merge base and `v5-next` ~31, and the merge is **not** clean — 4 conflicts. Structured as three commits for review: ### Commit 1 — raw merge (conflict markers committed) `Merge remote-tracking branch 'origin/v5'` — the merge commit with the conflict markers left in place, so you can see exactly what git couldn't auto-resolve: - `yarn-project/txe/esbuild/plugins/size_guard.mjs` - `noir-projects/aztec-nr/aztec/src/standard_addresses.nr` *(generated)* - `yarn-project/standard-contracts/src/standard_contract_data.ts` *(generated)* - `noir-projects/noir-contracts/pinned-standard-contracts.tar.gz` *(generated, binary)* ### Commit 2 — hand resolution - **`size_guard.mjs`** — resolved by hand. Kept the higher `totalLimitMiB = 15` (from `v5`): merging `v5`'s larger bundle content into `v5-next` needs the bigger cap. Merged both bump-log lines chronologically. - The 3 generated standard-contract artifacts were left at the `v5-next` baseline as a placeholder (correctly flagged by CI: `BBApiException: verification key has wrong size: expected 5216, got 4576` — the old pinned VKs don't match `v5`'s bb). ### Commit 3 — regenerated standard-contract artifacts Ran the real regeneration on the merged tree: `noir-projects/noir-contracts/bootstrap.sh pin-standard-build` + `yarn workspace @aztec/standard-contracts run generate`, iterated to a fixpoint (3 rounds — the standard contracts embed each other's address stamps via aztec-nr, so re-pinning shifts addresses until they stabilize). All four standard-contract addresses changed, as expected: the merged tree combines **v5-next's** handshake forgery-protection changes with **v5's** `aztec-nr` + protocol-constants + bb (VK format) changes, so the addresses match neither committed side. Verified locally on the merged tree: full `noir-contracts` build and full `yarn-project` build (the CI job that failed) both pass, including the standard-contracts drift check. Everything else auto-merged (including `constants.gen.ts` / `constants.nr` and the handshake contract/aztec-nr source). Opened as a draft for review per the usual conflict-PR flow. --- *Created by [claudebox](https://claudebox.work/v2/sessions/97f178a58b3b68fb) · group: `slackbot`*
2 parents c84e21d + b7d45e4 commit c11bc68

921 files changed

Lines changed: 103638 additions & 21501 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ci3_labels_to_env.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,9 @@ function main {
127127
echo "WARNING: Skipping main CI because Chonk input refresh was requested; the update step will run after this step succeeds." >&2
128128
ci_mode="skip"
129129
elif has_label "ci-release-pr"; then
130+
# Release-PR mode creates and pushes a release tag for this PR's head (ci3.sh::handle_release_pr).
131+
# In the private repo that tag triggers a private release via the safety gate below — this is the
132+
# manual way to cut a private release from a PR, alongside the nightly tag cron.
130133
ci_mode="release-pr"
131134
elif has_label "ci-full"; then
132135
ci_mode="full"
@@ -141,6 +144,9 @@ function main {
141144
elif has_label "ci-barretenberg" || [ "$target_branch" == "merge-train/barretenberg" ]; then
142145
ci_mode="barretenberg"
143146
elif [[ "${GITHUB_REF:-}" == refs/tags/v* ]]; then
147+
# A pushed semver tag is a release; REF_NAME is the tag (see ci3/source_refname). In the private
148+
# repo this is the nightly path (nightly-release-tag*.yml push v<ver>-nightly.<date> tags on next and
149+
# v5-next); the private-repo safety gate below routes it to the internal Artifact Registry.
144150
ci_mode="release"
145151
else
146152
ci_mode="fast"
@@ -149,6 +155,17 @@ function main {
149155
echo "CI_MODE=$ci_mode" >> $GITHUB_ENV
150156
echo "CI mode: $ci_mode"
151157

158+
# Private-repo safety gate. The release flow can publish to DockerHub/npmjs/crates.io/github; that
159+
# MUST NEVER run in the private fork. So whenever this repo would release — for ANY trigger (a pushed
160+
# nightly tag, a ci-release-pr tag, anything future) — force the private path: publish only the docker
161+
# image and npm packages to our internal Artifact Registry (bootstrap.sh::private_release). Keyed on
162+
# the repo name (case-insensitive) so it can't be reached in the public repo.
163+
if [ "$ci_mode" = "release" ] &&
164+
[ "$(printf '%s' "${GITHUB_REPOSITORY:-}" | tr 'A-Z' 'a-z')" = "aztecprotocol/aztec-packages-private" ]; then
165+
echo "PRIVATE_RELEASE=1" >> $GITHUB_ENV
166+
echo "SKIP_COMPAT_E2E=1" >> $GITHUB_ENV
167+
fi
168+
152169
# Determine if benchmarks should be uploaded (merge-queue, full, or full-no-test-cache modes)
153170
if [[ "$ci_mode" == "merge-queue" || "$ci_mode" == "merge-queue-heavy" || "$ci_mode" == "full" || "$ci_mode" == "full-no-test-cache" ]]; then
154171
echo "SHOULD_UPLOAD_BENCHMARKS=1" >> $GITHUB_ENV

.github/workflows/avm-circuit-inputs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ concurrency:
1515

1616
jobs:
1717
collect-avm-circuit-inputs:
18+
if: github.repository != 'AztecProtocol/aztec-packages-private'
1819
runs-on: ubuntu-latest
1920
steps:
2021
- name: Checkout
@@ -66,6 +67,7 @@ jobs:
6667

6768
avm-check-circuit:
6869
needs: collect-avm-circuit-inputs
70+
if: github.repository != 'AztecProtocol/aztec-packages-private'
6971
runs-on: ubuntu-latest
7072
steps:
7173
- name: Checkout

.github/workflows/ci3.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ name: CI3
77
on:
88
workflow_dispatch:
99
push:
10+
branches:
11+
- next
1012
tags:
1113
- "v*"
1214
pull_request:
@@ -115,6 +117,9 @@ jobs:
115117
EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY: ${{ secrets.GCP_SEPOLIA_API_KEY }}
116118
EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER: "X-goog-api-key"
117119
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
120+
# Internal GCP Artifact Registry the private repo's release pushes the docker image to (see
121+
# bootstrap.sh::private_release). Empty in the public repo, where releases publish normally.
122+
INTERNAL_DOCKER_REGISTRY: ${{ vars.INTERNAL_DOCKER_REGISTRY }}
118123
MERGE_GROUP_BASE_REF: ${{ github.event.merge_group.base_ref }}
119124
PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
120125
PR_HEAD_REF: ${{ github.event.pull_request.head.ref }}

.github/workflows/docs-typesense.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ jobs:
3939
run: |
4040
set -euo pipefail
4141
42+
if [ -z "$TYPESENSE_API_KEY" ] || [ -z "$TYPESENSE_HOST" ]; then
43+
echo "Typesense secrets are not configured; skipping docs search reindex."
44+
exit 0
45+
fi
46+
4247
docker run \
4348
-e "TYPESENSE_API_KEY=$TYPESENSE_API_KEY" \
4449
-e "TYPESENSE_HOST=$TYPESENSE_HOST" \

.github/workflows/fuzzing-docker-avm-build-private.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
name: Build Private Fuzzing AVM Container
22

33
on:
4-
push:
5-
branches:
6-
- next
74
workflow_dispatch:
85
inputs:
96
commit:

.github/workflows/fuzzing-docker-build-private.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
name: Build Private Fuzzing Container
22

33
on:
4-
push:
5-
branches:
6-
- next
74
workflow_dispatch:
85
inputs:
96
commit:
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Nightly Release Tag (v4-next)
1+
name: Nightly Release Tag (v5-next)
22
on:
33
schedule:
44
# Run the workflow every night at 5:00 AM UTC.
@@ -9,24 +9,24 @@ permissions:
99
contents: write
1010

1111
concurrency:
12-
group: ${{ github.workflow }}-v4-next
12+
group: ${{ github.workflow }}-v5-next
1313

1414
jobs:
15-
nightly-release-tag-v4-next:
15+
nightly-release-tag-v5-next:
1616
runs-on: ubuntu-latest
1717
steps:
1818
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
1919
with:
20-
ref: v4-next
20+
ref: v5-next
2121
token: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
2222

23-
- name: Create v4-next Nightly Tag
23+
- name: Create v5-next Nightly Tag
2424
run: |
2525
git config --global user.email "tech@aztecprotocol.com"
2626
git config --global user.name "AztecBot"
2727
current_version=$(jq -r '."."' .release-please-manifest.json)
2828
echo "Current version: $current_version"
2929
nightly_tag="v${current_version}-nightly.$(date -u +%Y%m%d)"
30-
echo "v4-next nightly tag: $nightly_tag"
30+
echo "v5-next nightly tag: $nightly_tag"
3131
git tag -a "$nightly_tag" -m "$nightly_tag"
3232
git push origin "$nightly_tag"
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Public Next PR Body
2+
3+
on:
4+
push:
5+
branches:
6+
- next
7+
- public-next
8+
workflow_dispatch:
9+
10+
concurrency:
11+
group: public-next-pr-body
12+
cancel-in-progress: true
13+
14+
jobs:
15+
update-public-next-pr-body:
16+
name: Update next to public-next PR body
17+
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
20+
pull-requests: write
21+
steps:
22+
- name: Checkout public-next workflow scripts
23+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
24+
with:
25+
ref: public-next
26+
fetch-depth: 0
27+
token: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
28+
29+
- name: Update holding PR body
30+
env:
31+
GH_TOKEN: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
32+
BASE_BRANCH: public-next
33+
HEAD_BRANCH: next
34+
run: ./scripts/merge-train/update-public-next-pr-body.sh
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Public Next Auto-Pull
2+
3+
on:
4+
push:
5+
branches:
6+
- public-next
7+
workflow_dispatch:
8+
9+
concurrency:
10+
group: public-next-to-next
11+
cancel-in-progress: false
12+
13+
jobs:
14+
merge-to-next:
15+
name: Merge public-next to next
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Checkout public-next automation
19+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
20+
with:
21+
ref: public-next
22+
fetch-depth: 0
23+
token: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
24+
persist-credentials: true
25+
26+
- name: Configure Git
27+
run: |
28+
git config user.name AztecBot
29+
git config user.email tech@aztecprotocol.com
30+
31+
- name: Merge public-next into next
32+
env:
33+
GH_TOKEN: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
34+
SOURCE_BRANCH: public-next
35+
TARGET_BRANCH: next
36+
CONFLICT_EXIT_CODE: 1
37+
run: ./scripts/merge-train/merge-public-next.sh
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Public v5-next PR Body
2+
3+
on:
4+
push:
5+
branches:
6+
- v5-next
7+
- public-v5-next
8+
workflow_dispatch:
9+
10+
concurrency:
11+
group: public-v5-next-pr-body
12+
cancel-in-progress: true
13+
14+
jobs:
15+
update-public-v5-next-pr-body:
16+
name: Update v5-next to public-v5-next PR body
17+
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
20+
pull-requests: write
21+
steps:
22+
- name: Checkout public-v5-next workflow scripts
23+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
24+
with:
25+
ref: public-v5-next
26+
fetch-depth: 0
27+
token: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
28+
29+
- name: Update holding PR body
30+
env:
31+
GH_TOKEN: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
32+
BASE_BRANCH: public-v5-next
33+
HEAD_BRANCH: v5-next
34+
run: ./scripts/merge-train/update-public-next-pr-body.sh

0 commit comments

Comments
 (0)