Skip to content

[ISSUE-12] Implement bounded full-build executor and material flow#80

Merged
Gonza10V merged 1 commit into
full_buildfrom
codex/implement-full-build-executor-and-material-flow
May 6, 2026
Merged

[ISSUE-12] Implement bounded full-build executor and material flow#80
Gonza10V merged 1 commit into
full_buildfrom
codex/implement-full-build-executor-and-material-flow

Conversation

@Gonza10V
Copy link
Copy Markdown
Contributor

@Gonza10V Gonza10V commented May 6, 2026

Motivation

  • Add a bounded fixed-point full-build executor that orchestrates stage runs, promotes missing dependencies, indexes generated products, aggregates expected blockers/approvals/warnings, and safely terminates on no progress or max iterations, and wire the public API to use planner/executor defaults when not injected.

Description

  • Added a lightweight BuildContext dataclass to hold sbol, inventory, build_document, options, and optional adapters/graph/logger (src/buildcompiler/execution/context.py).
  • Implemented FullBuildExecutor with a bounded worklist loop, deterministic promotion of missing inputs (promoted ids promoted:<stage>:<sha1-12>), product indexing/deduplication, optional transformation/plating chaining (deduped), and final FullBuildResult aggregation (src/buildcompiler/execution/executor.py).
  • Exported execution types from buildcompiler.execution and wired BuildCompiler.plan, BuildCompiler.execute, and module-level full_build to instantiate FullBuildPlanner/FullBuildExecutor when not injected; added clear ValueError when required dependencies are missing (src/buildcompiler/execution/__init__.py, src/buildcompiler/api/compiler.py).
  • Minor import fixes to avoid package import cycles by using buildcompiler.api.options where appropriate and small test additions (src/buildcompiler/stages/*, src/buildcompiler/planning/*, src/buildcompiler/inventory/selector.py).

Testing

  • Ran unit tests: pytest tests/unit/execution tests/unit/api which passed locally (14 passed, including new tests/unit/execution/test_executor.py).
  • Ran linter/format commands for touched files: ruff check / ruff format on the targeted files; ruff format reformatted 3 files and final checks passed for the edited files.
  • Noted environment/network limitation when running the full uv toolchain: uv run pytest ... failed due to fetching optional SBOLInventory dependency from GitHub (network/Git access error), so the smallest reproducible commands to verify this PR are the pytest and ruff commands listed above which succeeded locally.

Codex Task

@Gonza10V Gonza10V merged commit 66563eb into full_build May 6, 2026
0 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant