Goal
Opt the base-cli repository's authoritative test command into the optional uv
dependency groups it already documents, so basectl setup base-cli prepares
the environment required by basectl test base-cli.
Background
base_manifest.yaml declares python.manager: uv and runs
./tests/full_validate.sh. The test suite includes the benchmark gate, whose
comparator contract requires the cyclopts package from the benchmark extra.
The Base enhancement in basefoundry/base#2393 / PR #2394 adds the generic
test.uv_extras manifest contract and carries it through uv setup and test
execution.
Scope
- Add
uv_extras: [dev, typer, quality, benchmark] to base_manifest.yaml.
- Keep the existing command and dependency declarations unchanged.
- Verify the manifest remains compatible with the Base setup and test flow once
the paired Base PR is available.
Acceptance Criteria
Validation
./tests/full_validate.sh
basectl setup base-cli
basectl test base-cli
Non-Goals
- Do not duplicate benchmark dependencies outside
pyproject.toml.
- Do not change the benchmark implementation or comparator policy.
- Do not merge the companion PR until the paired Base enhancement is available.
Project Fields
- Status: Backlog
- Priority: P2
- Area: Setup
- Initiative: pyproject/uv
- Size: T
Goal
Opt the base-cli repository's authoritative test command into the optional uv
dependency groups it already documents, so
basectl setup base-clipreparesthe environment required by
basectl test base-cli.Background
base_manifest.yamldeclarespython.manager: uvand runs./tests/full_validate.sh. The test suite includes the benchmark gate, whosecomparator contract requires the
cycloptspackage from thebenchmarkextra.The Base enhancement in basefoundry/base#2393 / PR #2394 adds the generic
test.uv_extrasmanifest contract and carries it through uv setup and testexecution.
Scope
uv_extras: [dev, typer, quality, benchmark]tobase_manifest.yaml.the paired Base PR is available.
Acceptance Criteria
base_manifest.yamldeclares thedev,typer,quality, andbenchmarkuv extras for the test command.basectl setup base-cliselects those extras through the Base manifestcontract.
basectl test base-clireaches the benchmark comparator contract withoutrequiring a separate user install command.
Validation
./tests/full_validate.shbasectl setup base-clibasectl test base-cliNon-Goals
pyproject.toml.Project Fields