-
Notifications
You must be signed in to change notification settings - Fork 219
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore!: Restrict packages to contain at most a single contract #2668
Conversation
Does this break anything in aztec-packages? |
Nope, they've been following this by convention already. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - I can see us needing a type alias for (CompiledContract, DebugArtifact) in the future
* master: chore: Embed a file map into `CompiledProgram`/`CompiledContract` (#2666)
Not anymore. |
* master: chore!: Restrict packages to contain at most a single contract (#2668)
* master: chore: fix npm token for abi_wasm publishing (#2633) chore(ci): switch to using `Swatinem/rust-cache` action (#2671) feat: compile circuits and query circuit sizes in parallel for `nargo info` (#2665) chore(ci): use mock backend for all tests (#2670) chore!: Restrict packages to contain at most a single contract (#2668) chore: Embed a file map into `CompiledProgram`/`CompiledContract` (#2666) feat: Compile workspace packages in parallel (#2612) fix(wasm): Avoid requesting stdlib paths from the source-resolver (#2650) chore: add abi_wasm to release-please (#2664) chore: refactor `execute_cmd` (#2656) chore: defer reporting of errors until after compilation and optimization is finished (#2659) fix: fix compilation using `aztec` feature flag (#2663) fix: remove duplicate file extension in stack trace (#2655) chore: use `DebugArtifact`s instead of `FileManager` to report errors (#2641) chore: Fix clippy warnings for rust version 1.67.0 (#2661) fix(wasm): Apply transformation map to circuit debug information in `noir_wasm` (#2635) fix: Fix `update_acir` deleting all debug information (#2643)
Description
Problem*
Resolves #2329
Summary*
We currently allow an unlimited number of contracts in a single package despite it being generally agreed that packages should contain a single contract.
We should start enforcing this before people start relying on this behaviour. It's also much more convenient for us to encode this expectation into the type system so we don't need to pass around
Vec<(CompiledContract, DebugArtifact)>
everywhere and instead have it match binary packages.I've then added an error which is returned if we find more than one contract within a package. Attempting to compile a contract package with multiple contracts will now print an error as below:
Documentation
This PR requires documentation updates when merged.
Contracts packages must only contain a single contract.
Additional Context
PR Checklist*
cargo fmt
on default settings.