Skip to content

[codex] Constrain dev setup to Base project#76

Merged
codeforester merged 1 commit into
codex/add-gh-dev-dependencyfrom
codex/infer-setup-project-from-manifest
May 26, 2026
Merged

[codex] Constrain dev setup to Base project#76
codeforester merged 1 commit into
codex/add-gh-dev-dependencyfrom
codex/infer-setup-project-from-manifest

Conversation

@codeforester
Copy link
Copy Markdown
Owner

@codeforester codeforester commented May 26, 2026

Summary

Clarifies and enforces the basectl setup --dev boundary: Base developer dependencies are only valid for the Base project.

What Changed

  • Resolves the setup project name from base_manifest.yaml when no positional project argument is provided.
  • Keeps normal project setup ergonomic: basectl setup from a project checkout can still use the manifest project name.
  • Fails cleanly when --dev is used for any project other than base, without emitting a fatal stack trace.
  • Allows explicit Base setup from any checkout: basectl setup base --dev now uses $BASE_HOME/base_manifest.yaml instead of discovering the current repo's manifest.
  • Moves developer dependency installation until after Base's Python bootstrap packages are available and the --dev project boundary has been validated.
  • Runs the Python project setup layer through Base's bootstrap virtual environment while exporting BASE_PROJECT=<project> for artifact reconciliation.
  • Updates BATS coverage for explicit project forwarding, omitted-project manifest inference, Base manifest forwarding, and the non-Base --dev failure path.

Why

--dev currently means "install Base developer/test tooling" such as BATS and GitHub CLI. It should not apply to downstream projects like brew. From /Users/rameshhp/work/brew, basectl setup --dev should produce a normal usage error. But basectl setup base --dev is explicit Base setup, so it should not accidentally read brew/base_manifest.yaml just because that is the current working directory.

Impact

  • basectl setup from a Base-compatible project checkout can still infer the project from base_manifest.yaml.
  • basectl setup --dev is allowed only for base.
  • basectl setup --dev from brew exits 1 with a clean ERROR: message before installing BATS/gh or running project artifact setup.
  • basectl setup base --dev from brew targets Base's own manifest and completes as Base setup.

Validation

  • bats cli/bash/commands/basectl/tests/setup.bats passed all 42 tests.
  • Verified from /Users/rameshhp/work/brew that /Users/rameshhp/work/base/bin/basectl setup --dev exits with: ERROR: --dev is only supported for the Base project. Run without --dev for project 'brew'.
  • Verified from /Users/rameshhp/work/brew that /Users/rameshhp/work/base/bin/basectl setup base --dev reads /Users/rameshhp/work/base/base_manifest.yaml and completes successfully.

@codeforester codeforester force-pushed the codex/infer-setup-project-from-manifest branch from fc15fc0 to 311ae63 Compare May 26, 2026 22:36
@codeforester codeforester changed the title [codex] Infer setup project from manifest [codex] Constrain dev setup to Base project May 26, 2026
@codeforester codeforester force-pushed the codex/infer-setup-project-from-manifest branch from 311ae63 to 99baf48 Compare May 26, 2026 22:48
@codeforester codeforester force-pushed the codex/infer-setup-project-from-manifest branch from 99baf48 to 9192d52 Compare May 26, 2026 22:54
@codeforester codeforester marked this pull request as ready for review May 26, 2026 23:01
@codeforester codeforester merged commit 2e1e406 into codex/add-gh-dev-dependency May 26, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant