Skip to content

Implement parallel Base check probes #510

@codeforester

Description

@codeforester

Finding

docs/check-parallelism.md already captures a good design for speeding up basectl check, but the implementation still collects the base environment probes serially in setup_collect_base_check_results.

basectl check is a high-frequency command. It should feel nearly instant when the machine is healthy.

Project fields

  • Priority: P2
  • Size: M
  • Initiative: Performance

Expected outcome

Independent Base environment probes should run in parallel while preserving deterministic text and JSON output order.

Good first targets from the existing design doc:

  • Homebrew presence and path discovery
  • Xcode Command Line Tools presence
  • Homebrew Python formula presence
  • Base virtual environment integrity
  • Base bootstrap Python package checks

Suggested implementation

  • Follow the shape in docs/check-parallelism.md.
  • Have each probe write structured result data to a temp file or equivalent result channel.
  • Merge results in the current display order before printing text or JSON.
  • Keep state-mutating work, especially setup_refresh_brew_path, in the parent shell.
  • Do not parallelize profile or project artifact checks until the Python layer has an explicit concurrent diagnostic API.

Validation

  • Add BATS coverage for deterministic text output order.
  • Add BATS coverage for deterministic JSON output order.
  • Test missing Homebrew with other probes still reported.
  • Test package checks do not fail spuriously when the venv is absent.
  • Run env -u BASE_HOME ./bin/base-test.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions