Skip to content

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

Merged
jdebacker merged 2 commits into
PSLmodels:masterfrom
marcelolafleur:installer-catalog
Jun 26, 2026
Merged

Installer: multi-repo install, catalog expansion, and a machine-readable catalog export#1162
jdebacker merged 2 commits into
PSLmodels:masterfrom
marcelolafleur:installer-catalog

Conversation

@marcelolafleur

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.

@marcelolafleur marcelolafleur marked this pull request as ready for review June 24, 2026 02:29
@jdebacker

Copy link
Copy Markdown
Member

Nice updates, @SeaCelo. This will make it simple to add additional country calibrations in the future.

@jdebacker jdebacker merged commit 1e392a5 into PSLmodels:master Jun 26, 2026
9 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.

3 participants