Skip to content

[ISSUE-03] Implement BuildOptions option groups#70

Merged
Gonza10V merged 1 commit into
full_buildfrom
codex/implement-buildoptions-option-groups
May 5, 2026
Merged

[ISSUE-03] Implement BuildOptions option groups#70
Gonza10V merged 1 commit into
full_buildfrom
codex/implement-buildoptions-option-groups

Conversation

@Gonza10V
Copy link
Copy Markdown
Contributor

@Gonza10V Gonza10V commented May 5, 2026

Motivation

  • Provide a focused, safe configuration/contract layer for the full_build clean-architecture refactor so later planner, executor, stage, inventory, adapter, and reporting components can consume typed option groups.
  • Keep defaults conservative and compiler-only, avoid pulling optional automation dependencies, and ensure mutable defaults are isolated across instances.

Description

  • Added src/buildcompiler/api/options.py implementing ProtocolMode and composed option dataclasses: CombinatorialOptions, Lvl2SearchOptions, PlanningOptions, ExecutionOptions, SelectionOptions, ProtocolOptions, ReportingOptions, ApprovalOptions, ReagentOptions, DomesticationOptions, and BuildOptions, using field(default_factory=...) for nested/mutable defaults.
  • Updated src/buildcompiler/api/__init__.py to export BuildOptions, the focused option-group dataclasses, and ProtocolMode for lightweight imports.
  • Added unit tests tests/unit/api/test_options.py that validate required defaults and mutable-default isolation across BuildOptions instances.
  • Reused existing domain approval enum (ApprovalStatus) in domain contracts and avoided importing or requiring optional automation packages in core option modules.

Testing

  • Ran import smoke checks with PYTHONPATH=src python -c "from buildcompiler.api.options import BuildOptions; BuildOptions()" and PYTHONPATH=src python -c "from buildcompiler.api import BuildOptions; BuildOptions()", both of which succeeded.
  • Ran unit tests with PYTHONPATH=src pytest tests/unit/api/test_options.py, which passed (2 passed), and broader package tests with PYTHONPATH=src pytest tests/unit/domain tests/unit/api, which also passed (5 passed).
  • Attempting uv run pytest tests/unit/api/test_options.py failed here due to environment resolution of an optional SBOLInventory dependency (git fetch returned HTTP 403), so uv-based verification could not complete in this environment.
  • Ran lint/format checks ruff check . and ruff format --check . which reported pre-existing repository issues unrelated to these changes (these lint/format failures are outside the scope of this PR).

Closes #55

Codex Task

@Gonza10V Gonza10V merged commit d5108ec into full_build May 5, 2026
0 of 4 checks passed
@Gonza10V Gonza10V deleted the codex/implement-buildoptions-option-groups branch May 5, 2026 20:20
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