Skip to content

Expose active component versions through basectl version --all #2309

Description

@codeforester

Goal

Expose the identity of the Base, base-cli, and base-bash-libs providers selected by this installation.

Background

basectl version currently reports only Base. Source overrides and sibling checkouts can supersede installed packages, so package-manager versions and release pins do not identify the active provider.

Scope

Add basectl version --all and --all --json, preserving simple version output. Report versions, sources, resolved paths, Git revisions and dirty state for source checkouts; distinguish observed identity from release expectations. Reuse runtime resolution and Bash identity reporting in check/doctor. Update help, completions, docs and tests.

Acceptance Criteria

  • Existing version and --version output remains dependency-independent.
  • Detailed text and deterministic JSON describe all three components and selected Python environment.
  • Explicit, sibling and installed providers follow existing runtime precedence; installed metadata cannot mislabel a source override.
  • Missing/broken providers yield partial reports with unavailable/unknown state.
  • Source identity includes revision and dirty state; packaged installs work without Git.
  • No setup, installation or network activity occurs during inspection.

Validation

Focused Python and BATS fixtures for provider routing, source/package identity, missing providers, Git dirtiness, option errors and JSON; ShellCheck, full Base tests and diff check.

Non-Goals

Changing dependency selection, upgrading dependencies, release creation, or merging the PR.

Project Fields

Status: In Progress
Priority: P2
Area: CLI
Initiative: Adoption Polish
Size: M
Milestone: v1.10.0

Agent Assignment

Codex will implement and validate in the canonical issue worktree, then open a reviewable PR.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or product improvement

Type

No type

Projects

  • Status
    Done

Relationships

None yet

Development

No branches or pull requests

Issue actions