Skip to content

Commit 5f0a7b8

Browse files
committed
chore: merge next into merge-train/barretenberg (raw, conflict markers)
2 parents 398a5e6 + 116776c commit 5f0a7b8

38 files changed

Lines changed: 851 additions & 283 deletions

File tree

.claude/skills/merge-train-infra/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ The merge-train system is fully automated via GitHub Actions in `.github/workflo
2121

2222
5. **Recreation & Wakeup** (`merge-train-recreate.yml`): Triggered when a PR is closed (merged). If the merged PR's head branch starts with `merge-train/`, recreates the branch from the base branch (usually `next`). Then runs `scripts/merge-train/wakeup-prs.sh` to add the `ci-wakeup-pr-after-merge` label to all open PRs targeting the branch that have passed CI and have automerge enabled. This triggers a CI re-run (typically a no-op via tree-hash cache) so those PRs can proceed through the merge queue. The label is immediately removed by a step in `ci3.yml` so it can be re-applied on subsequent merges.
2323

24-
6. **Failure Notification** (`merge-queue-dequeue-notify.yml`): Triggered when a PR is dequeued from the merge queue. If the PR's head branch starts with `merge-train/` and the PR was NOT merged, sends a Slack notification via `ci3/merge_train_failure_slack_notify`.
24+
6. **Failure Notification** (`merge-queue-dequeue-notify.yml`): Triggered when a PR is dequeued from the merge queue. If the PR's head branch starts with `merge-train/` and the PR was NOT merged, sends a Slack notification via `ci3/merge_train_failure_slack_notify`. That script also kicks off a ClaudeBox session to investigate/fix the dequeued PR (`ci3/slack_notify_with_claudebox_kickoff`), passing `--repo "$GITHUB_REPOSITORY"` so the session runs in the mode matching the repo the train lives on. When the train is on a private mirror (`…-private`), `claudebox.yml` selects private mode; otherwise it stays public. Without that repo hint a private-train fix session lands in public mode and cannot read the PR or open the fix.
2525

2626
## CI Integration Details
2727

.github/workflows/ci3.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,11 @@ on:
1616
merge_group: {}
1717

1818
concurrency:
19-
# Allow full concurrency for merge-train PRs, one-run-per-branch for everything else.
20-
group: ci3-${{ (startsWith(github.event.pull_request.head.ref, 'merge-train/') && github.run_id) || github.event.merge_group.head_ref || github.ref_name }}
19+
# merge-train PRs: one run per commit — distinct commits run concurrently (each is a real
20+
# train state to test), but duplicate events for the same commit (synchronize + the bot's
21+
# label re-applies) collapse. Keying on head.sha instead of run_id is what collapses them;
22+
# run_id is unique per run and never collapsed anything. Everything else: one run per branch.
23+
group: ci3-${{ (startsWith(github.event.pull_request.head.ref, 'merge-train/') && github.event.pull_request.head.sha) || github.event.merge_group.head_ref || github.ref_name }}
2124
cancel-in-progress: true
2225

2326
jobs:

.github/workflows/claudebox.yml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ on:
1919
description: 'Git ref the session should work against (e.g., origin/merge-train/barretenberg)'
2020
required: false
2121
type: string
22+
repo:
23+
description: 'Repo the work targets (owner/repo). Defaults to this repo. A private target (…-private) makes the session run in private mode.'
24+
required: false
25+
type: string
26+
mode:
27+
description: 'ClaudeBox repo-access mode (public|private). Leave empty to infer from the target repo.'
28+
required: false
29+
type: string
2230
slack_channel:
2331
description: 'Slack channel ID to thread status into (set by the kickoff script)'
2432
required: false
@@ -124,15 +132,19 @@ jobs:
124132
CLAUDEBOX_LINK: ${{ steps.parse.outputs.link }}
125133
COMMENT_ID: ${{ github.event.comment.id || '' }}
126134
RUN_COMMENT_ID: ${{ steps.status_comment.outputs.run_comment_id || '' }}
127-
REPO: ${{ github.repository }}
135+
REPO: ${{ inputs.repo || github.repository }}
128136
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
129137
AUTHOR: ${{ github.event.comment.user.login || github.actor }}
130138
SLACK_CHANNEL: ${{ inputs.slack_channel || '' }}
131139
SLACK_THREAD_TS: ${{ inputs.slack_thread_ts || '' }}
132-
# Public mode grants the session read-write access to public repos
133-
# (aztec-packages). Without it the session only gets the group's
134-
# unscoped repos and cannot open PRs against aztec-packages.
135-
CLAUDEBOX_MODE: ${{ vars.CLAUDEBOX_MODE || 'public' }}
140+
# Mode selection, in priority order:
141+
# 1. an explicit `mode` input (caller knows best);
142+
# 2. private, when the target repo is a private mirror (…-private) —
143+
# e.g. a merge-train dequeue on aztec-packages-private, which a
144+
# public-mode session cannot read or open a fix PR against;
145+
# 3. the repo/org default (public) for ordinary /claudebox work on
146+
# aztec-packages.
147+
CLAUDEBOX_MODE: ${{ inputs.mode || (endsWith(inputs.repo || github.repository, '-private') && 'private' || vars.CLAUDEBOX_MODE || 'public') }}
136148
run: |
137149
if [ -z "${CLAUDEBOX_API_SECRET:-}" ]; then
138150
echo "ERROR: CLAUDEBOX_API_SECRET is not set; cannot dispatch ClaudeBox v2"

.github/workflows/merge-train-create-pr.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ jobs:
2424
branch="${{ github.ref_name }}"
2525
2626
# Determine base branch. Most trains target next; trains suffixed
27-
# with -v5 (e.g. spartan-v5, fairies-v5) target the v5 release line
28-
# (v5-next) instead.
27+
# with -v<N> (e.g. spartan-v5, fairies-v5, spartan-v6) target the
28+
# matching release line (v5-next, v6-next) instead.
2929
base_branch="next"
30-
if [[ "$branch" == *-v5 ]]; then
31-
base_branch="v5-next"
30+
if [[ "$branch" =~ -v([0-9]+)$ ]]; then
31+
base_branch="v${BASH_REMATCH[1]}-next"
3232
fi
3333
3434
# Skip if this is a merge commit (multiple parents) -- unless its
@@ -55,7 +55,7 @@ jobs:
5555
5656
# Create PR with ci-no-squash label
5757
labels="ci-no-squash"
58-
if [[ "$branch" == "merge-train/spartan" || "$branch" == "merge-train/spartan-v5" || "$branch" == "merge-train/ci" ]]; then
58+
if [[ "$branch" == "merge-train/spartan" || "$branch" == "merge-train/spartan-v5" || "$branch" == "merge-train/spartan-v6" || "$branch" == "merge-train/ci" ]]; then
5959
labels="$labels,ci-full-no-test-cache"
6060
fi
6161
# Trains targeting the v5 release line are ports into v5-next.

.github/workflows/merge-train-next-to-branches.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
branches:
66
- next
77
- v5-next
8+
- v6-next
89

910
jobs:
1011
merge-to-trains:
@@ -27,13 +28,17 @@ jobs:
2728
GH_TOKEN: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
2829
COMMIT_SHA: ${{ github.sha }}
2930
run: |
30-
# The -v5 trains track the v5 release line (v5-next); every other
31-
# train tracks next. Sync only the trains fed by the branch that was
32-
# just pushed.
31+
# The -v<N> trains track the matching release line (v5-next, v6-next);
32+
# every other train tracks next. Sync only the trains fed by the
33+
# branch that was just pushed.
3334
if [[ "${{ github.ref_name }}" == "v5-next" ]]; then
3435
for branch in merge-train/spartan-v5 merge-train/fairies-v5; do
3536
./scripts/merge-train/merge-next.sh "$branch" v5-next || true
3637
done
38+
elif [[ "${{ github.ref_name }}" == "v6-next" ]]; then
39+
for branch in merge-train/spartan-v6; do
40+
./scripts/merge-train/merge-next.sh "$branch" v6-next || true
41+
done
3742
else
3843
for branch in merge-train/avm merge-train/barretenberg merge-train/ci merge-train/docs merge-train/fairies merge-train/spartan; do
3944
./scripts/merge-train/merge-next.sh "$branch" || true

.github/workflows/merge-train-stale-check.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,22 @@ jobs:
3838
BASE_BRANCH: v5-next
3939
run: ./ci3/merge_train_stale_check merge-train/spartan-v5 '#team-alpha'
4040

41+
spartan-v6:
42+
name: Check merge-train/spartan-v6
43+
if: ${{ github.event_name != 'schedule' || github.repository == 'AztecProtocol/aztec-packages' }}
44+
runs-on: ubuntu-latest
45+
permissions:
46+
contents: read
47+
pull-requests: read
48+
steps:
49+
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
50+
- name: Run stale check
51+
env:
52+
GH_TOKEN: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }}
53+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
54+
BASE_BRANCH: v6-next
55+
run: ./ci3/merge_train_stale_check merge-train/spartan-v6 '#team-alpha'
56+
4157
fairies-v5:
4258
name: Check merge-train/fairies-v5
4359
runs-on: ubuntu-latest

.github/workflows/metrics-deploy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ on:
4141
description: Optional Terraform list of Slack user IDs to mention on Grafana alert notifications
4242
required: false
4343
type: string
44-
default: '["U0AHB6VR8N5"]'
44+
default: '["U0AQPRA1FSL"]'
4545
secrets:
4646
GCP_SA_KEY:
4747
required: true
@@ -78,7 +78,7 @@ on:
7878
slack_alert_mention_user_ids:
7979
description: Optional Terraform list of Slack user IDs to mention on Grafana alert notifications
8080
required: false
81-
default: '["U0AHB6VR8N5"]'
81+
default: '["U0AQPRA1FSL"]'
8282

8383
jobs:
8484
metrics_deployment:

barretenberg/cpp/src/barretenberg/common/map.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ Cont<OutElem> map(Cont<InElem, Args...> const& in, F&& op)
2121

2222
/*
2323
* Generic map function for mapping a std::array's elements to another type.
24-
* TODO: this has only been added because I (Mike) couldn't get the above to work
25-
* with an array.
2624
*/
2725
template <std::size_t SIZE,
2826
typename InElem,
@@ -34,5 +32,8 @@ std::array<OutElem, SIZE> map(std::array<InElem, SIZE> const& in, F&& op)
3432
std::transform(in.begin(), in.end(), result.begin(), op);
3533
return result;
3634
}
35+
<<<<<<< HEAD
3736

37+
=======
38+
>>>>>>> origin/next
3839
} // namespace bb::transform

barretenberg/cpp/src/barretenberg/common/printf.hpp

Lines changed: 0 additions & 6 deletions
This file was deleted.

barretenberg/cpp/src/barretenberg/flavor/mega_avm_flavor.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,6 @@ class MegaAvmFlavor : public MegaAVMFlavor_Generated {
5757
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH = MAX_PARTIAL_RELATION_LENGTH + 1;
5858
static constexpr size_t NUM_RELATIONS = std::tuple_size_v<Relations>;
5959

60-
static constexpr size_t num_frs_comm = FrCodec::calc_num_fields<Commitment>();
61-
static constexpr size_t num_frs_fr = FrCodec::calc_num_fields<FF>();
62-
6360
static constexpr size_t NUM_SUBRELATIONS = compute_number_of_subrelations<Relations>();
6461
using SubrelationSeparator = FF;
6562

0 commit comments

Comments
 (0)