All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Compile-time feature gating for Cairo and Foundry functionality via Cargo features (
cairo,evm-foundry) - Consolidated architecture overview (
ARCHITECTURE_OVERVIEW.md) - EVM calldata generation now derives JSON from binary proof + public inputs
- EVM BB CLI integration updated to use verifier target (
-t evm) and VK-first prove flow bargo evm genonly initializes Foundry whenevm-foundryis enabledbargo doctorchecks feature-gated tools only when their features are enabled- Tests for Cairo workflows are feature-gated; EVM deploy/on-chain commands are hidden when
evm-foundryis off - Architecture and reference docs updated for new BB CLI behavior and feature gating
- CI installs Foundry via
foundry-toolchain, and installs bbup from Aztecnextbranch
ARCHITECTURE_SUMMARY.txt(merged intoARCHITECTURE_OVERVIEW.md)
bargo evm provenow works with bb 3.x CLI (removal of--output_format)- CI PATH handling for tool installers (Foundry/bbup)
- Runner abstraction with
CmdSpec,Runnertrait,RealRunner, andDryRunRunnerimplementations run_capture()method to Runner trait for stdout capture functionality- Command history tracking in
DryRunRunnerwithhistory()andclear_history()methods - Unified
run_tool()andrun_tool_capture()helpers for all external command execution - Auto-declare functionality for Cairo deploy command with
--auto-declareand--no-declareflags - Realistic fake output generation in
DryRunRunner::run_capture()for better testing - Enhanced command history tracking in
DryRunRunnerwith captured output storage - Backend trait methods now use
&mut selffor stateful operations (mutability upgrade) - Comprehensive test coverage for auto-declare functionality (10 new tests)
- Comprehensive test coverage for runner abstraction (14 new unit tests)
- New
run_nargo_commandhelper incommands::commonfor consolidated command execution - Comprehensive smoke test coverage for all major commands (14 tests total)
- Test cases for check, clean, rebuild, cairo gen, and evm gen commands
- Test coverage for verbose, dry-run, and package flag combinations
- Comprehensive rustdoc documentation for new helper functions
- Integration test framework with golden file snapshots for
bargo buildandcairo proveworkflows - Cross-platform path handling in integration tests using
path-slashcrate - Thread-safe test execution with
ScopedDirguard to prevent parallel test race conditions - Fixture-based testing with
simple_circuittest project intests/fixtures/ - Golden snapshot comparison for build artifacts in
tests/goldens/directory DryRunRunner-based integration tests that verify command execution without running external tools
- Command execution now uses runner abstraction for consistent dry-run and real execution modes
- All external tool commands (bb, garaga, forge, nargo) now use unified
run_tool()interface - Stdout capture operations (garaga calldata, foundry deploy) now use
run_tool_capture() - Config struct now includes
runnerfield withArc<dyn Runner>for command execution DryRunRunner::run_capture()now returns tool-specific fake output instead of generic placeholderDryRunRunner::history()now returnsVec<(CmdSpec, Option<String>)>to include captured output- Migrated
run_nargo_commandto use runner abstraction instead of direct backend calls - Cairo deploy command now auto-declares contracts by default (improves newcomer experience)
- Backend implementations now support stateful operations through mutable references
- Backend configuration now uses
configure()method instead of down-casting for type-specific settings - Improved dry-run mode handling for Cairo workflows
- Refactored
checkcommand to use consolidated helper pattern (reduced from 15 to 2 lines) - Refactored
buildandrebuildcommands to use consolidated helper pattern - Improved quiet flag handling in verbose logging output
cairo declarecommand (usecairo deploy --auto-declareinstead for automatic declaration and deployment)as_any_mut()method and RTTI down-casting from Backend trait (replaced withconfigure()method)- All legacy backend helper functions (
backends::bb::run,backends::nargo::run, etc.) - Direct
std::process::Commandusage outside ofrunner.rsmodule - Tool-specific command helpers (replaced with unified
run_tool()interface) - Enhanced global flag propagation consistency across all commands
- Deprecated helper functions:
run_bb_command(),run_garaga_command(),run_foundry_command() - Legacy
tests/integration.rssingle-file integration test (replaced with modulartests/*_integration.rsfiles) - All commands now properly honor --pkg, --verbose, --dry-run, and --quiet flags
- Removed unused imports causing compiler warnings
- Fixed code to compile cleanly with
RUSTFLAGS="-D warnings" - Ensured dry-run mode properly bypasses filesystem operations and external commands
- Fixed test failures for cairo and evm commands by providing required package overrides
- Consolidated argument building, logging, and dry-run handling patterns
- Eliminated code duplication across command modules
- Established consistent command execution pattern for all nargo-based commands
- Verified no unsafe blocks remain in codebase
- All acceptance criteria for Phase 3 satisfied
- Compile-time feature gating for Cairo and Foundry functionality via Cargo features (
cairo,evm-foundry) - Consolidated architecture overview (
ARCHITECTURE_OVERVIEW.md) - EVM calldata generation now derives JSON from binary proof + public inputs
- EVM BB CLI integration updated to use verifier target (
-t evm) and VK-first prove flow bargo evm genonly initializes Foundry whenevm-foundryis enabledbargo doctorchecks feature-gated tools only when their features are enabled- Tests for Cairo workflows are feature-gated; EVM deploy/on-chain commands are hidden when
evm-foundryis off - Architecture and reference docs updated for new BB CLI behavior and feature gating
ARCHITECTURE_SUMMARY.txt(merged intoARCHITECTURE_OVERVIEW.md)
bargo evm provenow works with bb 3.x CLI (removal of--output_format)