Skip to content

feat(doctor): add health check command for environment diagnostics#11

Merged
trisdoan merged 6 commits intomainfrom
feat/doctor-command
Mar 3, 2026
Merged

feat(doctor): add health check command for environment diagnostics#11
trisdoan merged 6 commits intomainfrom
feat/doctor-command

Conversation

@trisdoan
Copy link
Collaborator

@trisdoan trisdoan commented Mar 2, 2026

Changes

Implements new doctor command with health checks:

  • check_config: validates config.toml syntax and schema
  • check_github_ssh: verifies GitHub SSH authentication
  • check_system_tools: validates required binaries (git, npm, uv, gh, psql)
  • check_tool_versions: inspects uv and npm tool installations from config
  • list_venvs: checks virtual environment status and Python versions
  • run_doctor: orchestrates all checks grouped by category

Output

image

nilshamerlinck and others added 4 commits March 2, 2026 17:50
Remove the oca-specific block and treat it like any other GitHub org,
using the config key verbatim in the URL and clone path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- RepoConfig: add extra="allow" so arbitrary org keys in [repos] are
  preserved; validate via model_validator
- Repo entries can be a plain string (uses all configured versions) or
  ["name", ["branch", ...]] (uses only those branches)
- Add _iter_org_entries helper to expand entries into (repo_name, branch)
  pairs; simplify _get_tasks accordingly
- Add InvalidRepoEntryError for malformed inline entries
- Update tests for new _get_tasks signature; add test for inline branch
  override syntax

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
With many repos, all progress bars were added upfront and the terminal
would overflow showing hundreds of 100% rows. Now tasks are hidden until
they start running (max_workers visible at a time), then printed as a
static line on completion. A single summary row shows X/N done.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Exhaustive config to contribute to OCA covering all OCA repositories.
Repos without Odoo version branches use inline branch override syntax:
["oca-port", ["main"]], ["oca-ci", ["master"]], etc.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Contributor

@nilshamerlinck nilshamerlinck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tested locally, works perfectly!

nilshamerlinck and others added 2 commits March 3, 2026 11:40
Add missing Ubuntu and Arch packages needed for common Odoo dependencies
(pycups, shapely, pysaml2, pyzbar, pdf2image, cairosvg) and general tools
(graphviz, ghostscript, fontconfig, poppler, cups).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implements new `doctor` command with health checks:
- check_config: validates config.toml syntax and schema
- check_github_ssh: verifies GitHub SSH authentication
- check_system_tools: validates required binaries (git, npm, uv, gh, psql)
- check_tool_versions: inspects uv and npm tool installations from config
- list_venvs: checks virtual environment status and Python versions
- run_doctor: orchestrates all checks grouped by category

Output: Rich table format with CheckStatus enum (OK/WARN/FAIL)
Exit code: 0 if all OK or WARN, 1 if any FAIL
@trisdoan trisdoan force-pushed the feat/doctor-command branch from 8d922cd to dba5a1d Compare March 3, 2026 08:22
@trisdoan trisdoan merged commit ad39aee into main Mar 3, 2026
5 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.

2 participants