Skip to content

chore: Merge next into merge-train/barretenberg#23191

Merged
federicobarbacovi merged 20 commits into
merge-train/barretenbergfrom
fb/fix_conflicts_two
May 12, 2026
Merged

chore: Merge next into merge-train/barretenberg#23191
federicobarbacovi merged 20 commits into
merge-train/barretenbergfrom
fb/fix_conflicts_two

Conversation

@federicobarbacovi
Copy link
Copy Markdown
Contributor

Merge next into merge-train/barretenberg to resolve conflicts

nchamo and others added 20 commits May 11, 2026 08:36
…yte code size blow up (#23062)

Resolves
[F-637](https://linear.app/aztec-labs/issue/F-637/aztec-nr-macros-contain-self-construction-to-a-function-to-prevent)

Stacks on #23061

- New `generate_public_self_creator` emits a per-contract
`__aztec_nr_internals__create_public_self<let N: u32>()` helper
- `generate_public_external` now emits a single call to it instead of
inlining the preamble. This can be seen in the snapshots.
- Helper is emitted from `process_functions` and gated on
`public_functions.len() > 0`

~~Improvements tested locally:~~

I need to test further. Either way this is cleaner macro code.
BEGIN_COMMIT_OVERRIDE
refactor(pxe): use findLeavesIndexes for read request verification
(#23123)
refactor(pxe): skip storage reads for never-updated contracts (#23131)
fix(pxe): skip registerContractFunctionSignatures when no public fns
(#23134)
refactor(pxe): prefetch updated class id hints per unique contract
(#23130)
chore(aztec-nr): Public self constructor function to prevent static byte
code size blow up (#23062)
refactor(pxe): avoid expensive toTx() call when computing tx hash
(#23136)
END_COMMIT_OVERRIDE
## Summary

Companion to #23146
(merge-train/barretenberg), recreated against `next`.

`barretenberg/sol/bootstrap.sh::build_sol` runs `forge fmt` before
`forge build`. PR #22659 (now in `next` via merge-train/fairies) trimmed
unused imports from `test/utils/Debug.sol`; once trimmed, the multi-line
import block was short enough that `forge fmt` collapses it to a single
line. That rewrites the file mid-CI and trips `ci3/cache_content_hash`
with `ERROR: Noticed changes to rebuild patterns during CI run`,
disabling cache hits for every downstream `*-tests` target — as seen in
http://ci.aztec-labs.com/1778494208886637.

This PR puts `Debug.sol` directly into the forge-fmt-stable form
(single-line import). After rebase, this is the only diff against
`next`.

## Verification

```bash
cd barretenberg/sol
forge fmt --check    # clean
forge fmt            # no changes
```

Full analysis:
https://gist.github.com/AztecBot/86bb7e59c1a9998f77dd1bc51dd9319d
## Summary

`ci-network-scenario` raced `ci-release-publish` on nightly tag runs:
the
scenarios pulled `aztecprotocol/aztec:<tag>` from Docker Hub before that
image had been pushed, so the latest nightly failed.

Example: [run
25710972450](https://github.com/AztecProtocol/aztec-packages/actions/runs/25710972450)
(`v5.0.0-nightly.20260512`) — scenarios started at 03:17 and failed by
03:35,
while `ci-release-publish` only finished at 03:44.

The proposed workflow change lives at `.github-new/workflows/ci3.yml`
because this session was not started with `ci-allow`. To land, copy it
over
`.github/workflows/ci3.yml` in a follow-up commit (or re-run with
`ci-allow`).

## Fix

Add `ci-release-publish` to `ci-network-scenario`'s `needs`, and gate on
its result being `success` or `skipped`:

- Nightly tag → `ci-release-publish` runs and must succeed before
  scenarios start.
- PR with `ci-network-scenario` label → `ci-release-publish` is skipped
  (its `if:` requires a tag), and the scenario job builds + pushes to
  `aztecdev` itself, so the `skipped` branch keeps the gate happy.
- If `ci-release-publish` fails on a nightly, scenarios are now skipped
  rather than failing with a Docker pull error.

No cycle: `ci-network-scenario → ci-release-publish → [ci,
ci-compat-e2e] → ci`.

Details:
https://gist.github.com/AztecBot/040284e4d65a4f5161d430eecbc9ac1a

## Test plan

- [ ] Promote `.github-new/workflows/ci3.yml` to
`.github/workflows/ci3.yml`.
- [ ] Next nightly tag triggers `ci-release-publish` first;
`ci-network-scenario`
  starts only after the image is on Docker Hub.
- [ ] A PR with the `ci-network-scenario` label still runs scenarios as
  before (label-driven path: `ci-release-publish` is skipped).

ClaudeBox log: https://claudebox.work/s/af8eefbd781c1674?run=1
Adds a multi-producer, single-consumer shared-memory IPC transport. Internally this is **N SPSC rings (one per producer) + a shared doorbell futex** — there is no shared producer ring. Each client writes only to its own SPSC ring; producers ring the doorbell to wake the consumer, which then checks which ring has data and reads from it. Each client also has its own SPSC response ring.

This is the same pattern that existed in earlier IPC iterations and is what \`aztec-wsdb\` will could use when serving both the TS layer and a C++ AVM worker pool from the same world state if we need the performance.

Right now though we'll use UDS. This is just if needed in future.
…23040)

Adds a multi-producer, single-consumer shared-memory IPC transport.
Internally this is **N SPSC rings (one per producer) + a shared doorbell
futex** — there is no shared producer ring. Each client writes only to
its own SPSC ring; producers ring the doorbell to wake the consumer,
which then checks which ring has data and reads from it. Each client
also has its own SPSC response ring.

This is the same pattern that existed in earlier IPC iterations and is
what \`aztec-wsdb\` will could use when serving both the TS layer and a
C++ AVM worker pool from the same world state if we need the
performance.

Right now though we'll use UDS. This is just if needed in future.
Automated update of Noir submodule to latest nightly.

**Current**: unknown
**New**: nightly-2026-05-12

[View changes in
noir-lang/noir](noir-lang/noir@1d9727a...nightly-2026-05-12)
@federicobarbacovi federicobarbacovi marked this pull request as ready for review May 12, 2026 13:25
@federicobarbacovi federicobarbacovi merged commit 2913c00 into merge-train/barretenberg May 12, 2026
22 checks passed
@federicobarbacovi federicobarbacovi deleted the fb/fix_conflicts_two branch May 12, 2026 13:38
rangozd pushed a commit to rangozd/aztec-packages that referenced this pull request May 16, 2026
BEGIN_COMMIT_OVERRIDE
chore: circuit to polys cleanup (AztecProtocol#23013)
chore: translator fixes (AztecProtocol#22983)
chore: cycle group defense in depth (AztecProtocol#23118)
chore: add a shplemini failure test (AztecProtocol#23147)
feat: multi-app kernel circuits (AztecProtocol#23076)
chore(dsl): require MemOp index and value to be witnesses (AztecProtocol#23171)
chore: Fix merge-train conflicts (AztecProtocol#23173)
chore: Merge next into merge-train/barretenberg (AztecProtocol#23191)
fix: Fix conflicts next vs merge-train/barretenberg (AztecProtocol#23194)
chore: poly audit followup (AztecProtocol#23053)
chore: shrink msm test size while maintaining coverage (AztecProtocol#23226)
END_COMMIT_OVERRIDE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants