Skip to content

Installer: multi-repo install, catalog expansion, and a machine-readable catalog export#1162

Open
SeaCelo wants to merge 2 commits into
PSLmodels:masterfrom
SeaCelo:installer-catalog
Open

Installer: multi-repo install, catalog expansion, and a machine-readable catalog export#1162
SeaCelo wants to merge 2 commits into
PSLmodels:masterfrom
SeaCelo:installer-catalog

Conversation

@SeaCelo

@SeaCelo SeaCelo commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Builds on the universal installer (#1142). Three additions:

Install several repos in one run. --repo can be repeated (--repo og-zaf --repo og-idn) or take a comma list; --all installs the whole catalog. (On Windows, where a parameter can't repeat, use the comma form: -Repo og-zaf,og-idn.) Each repo clones into its own subfolder under --dest and installs independently — if one fails it's reported and the rest continue, with a per-repo summary at the end. uv is installed once. A single repo keeps the existing per-step prompts; multiple run as a batch after one confirmation. --branch and --repo-url stay single-repo only.

Expanded catalog. Adds og-zaf, og-idn, og-phl alongside og-core/og-eth, now that they're uv-native.

A reliable way to read the catalog. --list (table) and --list-json (JSON) print the catalog and exit, and scripts/repos.json publishes the same data as a static file — so downstream tooling can stay in sync by fetching one URL instead of scraping the script or --help. A small CI check (.github/workflows/check_catalog.yml) fails if install.sh, install.ps1, and repos.json ever drift apart.

Hands-free, unattended use: bash install.sh --all --dest ~/OG --yes. scripts/QUICK_INSTALL.md is updated for all of the above.

Also tightens a few edges: clean error messages for unknown or missing flag values, and a correct non-zero exit when a non-interactive run can't proceed.

Tested: every selection mode on bash 3.2 (the macOS default) — repeated / comma / --all / dedup / single, plus the guardrail errors — all stopping before any real install; the catalog stays in sync via the new CI check. The PowerShell side mirrors the bash logic and its -ListJson path runs in CI, but I haven't yet run the full multi-repo install loop on Windows.

cc: @rickecon @jdebacker

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.26%. Comparing base (a0b9dc9) to head (8f322a5).
⚠️ Report is 35 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1162      +/-   ##
==========================================
- Coverage   73.38%   73.26%   -0.12%     
==========================================
  Files          21       21              
  Lines        5313     5394      +81     
==========================================
+ Hits         3899     3952      +53     
- Misses       1414     1442      +28     
Flag Coverage Δ
unittests 73.26% <ø> (-0.12%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 2 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@SeaCelo SeaCelo marked this pull request as ready for review June 24, 2026 02:29
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