Skip to content

feat(noir-projects): publish compiled protocol artifacts to npm - #25075

Merged
nchamo merged 3 commits into
merge-train/fairiesfrom
nchamo/artifacts-aws-upload
Aug 1, 2026
Merged

feat(noir-projects): publish compiled protocol artifacts to npm#25075
nchamo merged 3 commits into
merge-train/fairiesfrom
nchamo/artifacts-aws-upload

Conversation

@nchamo

@nchamo nchamo commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Motivation

The compiled Noir artifacts under noir-projects/fnd are only reachable from inside this repo. A separate repo generating TypeScript bindings from them has no Noir toolchain and no way to compile them itself, so it needs them from npm.

The change

Three new packages, published from noir-projects/fnd on a release tag:

  • @aztec/noir-protocol-circuits-artifacts — the protocol circuits, plus the reset config and dimensions files that the reset-data and ABI generators read
  • @aztec/mock-protocol-circuits-artifacts — the mock circuits used by proving system integration tests
  • @aztec/protocol-contracts-artifacts — the contracts named in protocol_contracts.json, plus that manifest

They carry raw artifacts only. Generating TypeScript from them stays with the consumer.

Each package is assembled at release time into a dist/ staging directory, rebuilt from nothing on every run and gitignored, following what noir/bootstrap.sh and bb.ts already do for their generated packages. The manifests declare no files list and dist carries no ignore file, so npm packs the directory wholesale and the staging code is the only place that decides what ships.

The protocol circuits package blanks file_map and debug_symbols, a fifth of its download that nothing generating bindings reads. The contract artifacts keep theirs because PXE resolves a failing public call against contract debug info.

Nothing consumes the packages yet: the in-repo generators still read the target directories directly, and noir-projects/fnd is not in the private_release list.

nchamo added 2 commits July 30, 2026 17:44
Publishes the compiled Noir protocol circuits, mock circuits and protocol contracts as three npm packages, so a repo without a Noir toolchain can generate its own TypeScript bindings from them.

Staging copies each subproject's build output into the package that publishes it, strips the source mapping from the protocol circuits to match what noir-protocol-circuits-types publishes today, and checks every staged file against the tarball npm would upload before anything is published.
@nchamo nchamo self-assigned this Jul 31, 2026
@nchamo nchamo added ci-draft Run CI on draft PRs. ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure labels Jul 31, 2026
@nchamo
nchamo marked this pull request as ready for review July 31, 2026 16:57
@nchamo
nchamo requested a review from nventuro July 31, 2026 16:57
Comment thread noir-projects/fnd/noir-protocol-circuits-artifacts/package.json Outdated
Comment thread noir-projects/fnd/noir-protocol-circuits-artifacts/README.md Outdated
Comment thread noir-projects/fnd/bootstrap.sh
@nchamo
nchamo merged commit f599add into merge-train/fairies Aug 1, 2026
12 checks passed
@nchamo
nchamo deleted the nchamo/artifacts-aws-upload branch August 1, 2026 14:20
rangozd pushed a commit to rangozd/aztec-packages that referenced this pull request Aug 5, 2026
BEGIN_COMMIT_OVERRIDE
fix(pxe): validate a BoundedVec against its storage array on
deserialization (AztecProtocol#25035)
chore: add disclaimers on poc contracts (AztecProtocol#24975)
chore: begin nr constant cleanup (AztecProtocol#25014)
fix(txe): authorize sync_state utility calls in inlined contexts
(AztecProtocol#25034)
refactor(stdlib): a function's return type is a single optional AbiType
(AztecProtocol#25066)
feat(pxe): hash-pinned node read cache (AztecProtocol#24969)
feat(noir-projects): publish compiled protocol artifacts to npm (AztecProtocol#25075)
fix(ci): trim GitHub commit API response in upload_benchmarks to avoid
E2BIG on large merge commits (AztecProtocol#25077)
END_COMMIT_OVERRIDE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-draft Run CI on draft PRs. ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants