Skip to content

feat: bootstrap HowToGalaxy repo with tutorial content and CI#1

Merged
Jammy2211 merged 1 commit intomainfrom
feature/howtogalaxy-bootstrap
Apr 21, 2026
Merged

feat: bootstrap HowToGalaxy repo with tutorial content and CI#1
Jammy2211 merged 1 commit intomainfrom
feature/howtogalaxy-bootstrap

Conversation

@Jammy2211
Copy link
Copy Markdown
Collaborator

Summary

Extracts the HowToGalaxy tutorial series from autogalaxy_workspace/howtogalaxy/ into its own dedicated repository at PyAutoLabs/HowToGalaxy, mirroring the HowToLens pattern.

This is sub-task 1 of 3 in the HowToGalaxy extraction:

  1. [this PR] Bootstrap PyAutoLabs/HowToGalaxy with tutorial content + CI scaffolding
  2. Clean howtogalaxy/ out of autogalaxy_workspace (separate PR)
  3. Update PyAutoGalaxy docs / README / Colab URLs to point at the new repo (separate PR)

What's included

Tutorial content (ported from autogalaxy_workspace/howtogalaxy/)

  • scripts/ — all 5 chapters plus simulators/:
    • chapter_1_introduction/ — grids, galaxies, data, fitting, methods, summary
    • chapter_2_modeling/ — non-linear search, galaxy modeling
    • chapter_3_search_chaining/ — search chaining, prior passing, pipelines
    • chapter_4_pixelizations/ — pixelized reconstructions, inversions, regularization
    • chapter_optional/ — alternative non-linear searches
    • simulators/ — simulator scripts that generate tutorial datasets at runtime
  • notebooks/ — matching .ipynb versions (regenerated by PyAutoBuild downstream)
  • config/ — full PyAutoGalaxy config tree (from autogalaxy_workspace/config/)

Path prefix scripts/howtogalaxy/scripts/ (and same for notebooks/) rewritten via sed across all files.

Scaffolding (derived from HowToLens, rewritten for PyAutoGalaxy)

  • .github/workflows/smoke_tests.yml — runs .github/scripts/run_smoke.py against smoke_tests.txt (without the PyAutoLens checkout/install step HowToLens has)
  • .github/workflows/url_check.yml — same link-checking workflow as HowToLens
  • .github/scripts/run_smoke.py — verbatim from HowToLens
  • welcome.py — rewritten for import autogalaxy as ag, HowToGalaxy working-directory checks
  • start_here.py — rewritten for HowToGalaxy's chapter layout (chapter_2_modeling, not chapter_2_lens_modeling)
  • README.rst, CLAUDE.md — HowToGalaxy-specific (references PyAutoGalaxy, autogalaxy_workspace, and notes the PyAutoBuild target still needs adding)
  • CITATIONS.rst — replaced with PyAutoGalaxy's version
  • CODE_OF_CONDUCT.md, CONTRIBUTING.md, runtime.txt, .gitignore, LICENSE — from HowToLens
  • requirements.txtautogalaxy\nnumba
  • version.txt2026.4.13.6 (matches the current autogalaxy_workspace release; tagged in this PR)
  • smoke_tests.txt — chapter-1 tutorials 1, 2, 4, 5

Smoke test status (verified locally, PYAUTO_TEST_MODE=2)

Tutorial Status
tutorial_1_grids_and_galaxies.py ✅ PASS
tutorial_2_data.py ✅ PASS
tutorial_4_methods.py ✅ PASS
tutorial_5_summary.py ✅ PASS

Intentionally excluded from smoke_tests.txt

  • tutorial_0_visualization.py — inherits an upstream bug (uses Path(...) without importing) and references dataset/imaging/simple__sersic with no auto-sim fallback
  • tutorial_3_fitting.py — auto-sim block calls scripts/imaging/simulator.py (does not exist in HowToGalaxy); a second dataset load for dataset/imaging/simple has no auto-sim fallback

Both are tracked as a content-alignment follow-up to this bootstrap PR.

Known follow-ups

  • Register howtogalaxy target in PyAutoBuild/autobuild/config.yaml so notebooks regenerate automatically (same pattern as the HowToLens follow-up).
  • Fix tutorial_0 imports and add auto-sim blocks to tutorials 0 and 3 so they can join smoke_tests.txt.

Test plan

  • Chapter-1 smoke tests pass locally under PYAUTO_TEST_MODE=2
  • CI smoke_tests.yml workflow passes on this PR
  • CI url_check.yml workflow passes on this PR

Closes PyAutoLabs/autogalaxy_workspace#35 (sub-task 1 of 3).

🤖 Generated with Claude Code

Extracts the HowToGalaxy tutorial series from autogalaxy_workspace into its
own dedicated repository, mirroring the HowToLens pattern.

Contents ported from autogalaxy_workspace/howtogalaxy/:
- scripts/ — chapter_1_introduction, chapter_2_modeling, chapter_3_search_chaining,
  chapter_4_pixelizations, chapter_optional, simulators (path prefix `howtogalaxy/`
  stripped)
- notebooks/ — matching .ipynb versions (paths rewritten the same way)
- config/ — full PyAutoGalaxy config tree (copied from autogalaxy_workspace/config/)

Scaffolding derived from HowToLens (rewritten for PyAutoGalaxy):
- .github/workflows/ — smoke_tests.yml (drops PyAutoLens install), url_check.yml
- .github/scripts/run_smoke.py — verbatim from HowToLens
- welcome.py — rewritten for `import autogalaxy as ag`, HowToGalaxy paths
- start_here.py — rewritten for HowToGalaxy's chapter layout
- README.rst, CLAUDE.md — HowToGalaxy-specific prose
- version.txt — 2026.4.13.6 (matches autogalaxy_workspace release)
- smoke_tests.txt — chapter-1 tutorials 1, 2, 4, 5

Smoke tests 0 and 3 are intentionally excluded with explanatory comments;
tracked as a content-alignment follow-up.

Closes PyAutoLabs/autogalaxy_workspace#35 (sub-task 1 of 3).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.

feat: bootstrap PyAutoLabs/HowToGalaxy from autogalaxy_workspace

1 participant