feat: bootstrap HowToLens from autolens_workspace tutorials#1
Merged
Conversation
Extract the howtolens tutorial lecture series into its own repo. Mirrors
the autolens_workspace/autogalaxy_workspace/autofit_workspace layout:
scripts/chapter_1_introduction … chapter_4_pixelizations
scripts/simulator/ (runtime dataset generation)
notebooks/ (auto-generated from scripts)
config/ (PyAutoLens config files)
smoke_tests.txt (subset of chapter 1 for CI)
Datasets are generated at runtime — no .fits committed. Tutorials that
need pre-existing data auto-invoke their simulator; see tutorial 7's
subprocess pattern.
CI:
.github/workflows/smoke_tests.yml Python 3.12 + 3.13 matrix, checks out
all PyAutoLabs libraries, runs the
smoke list via run_smoke.py. Slack
notify on failure.
.github/workflows/url_check.yml copied verbatim from autolens_workspace.
Two chapter 1 tutorials are intentionally excluded from the initial
smoke list pending a content-alignment pass (documented in
smoke_tests.txt):
- tutorial_0_visualization — missing Path import + needs pre-simulated
dataset that HowToLens does not ship.
- tutorial_7_fitting — second dataset load at line ~615 has no
auto-sim fallback. Both issues pre-exist upstream in
autolens_workspace.
Follow-ups tracked on issue #78:
1. This bootstrap PR.
2. howtolens-workspace-cleanup — remove scripts/howtolens/ and
notebooks/howtolens/ from autolens_workspace, update cross-refs.
3. howtolens-docs-update — update PyAutoLens docs toctree, paper.md,
overview/*.rst to reference the new repo.
4. PyAutoBuild howtolens project target registration.
Refs PyAutoLabs/autolens_workspace#78.
Co-Authored-By: Claude Opus 4.7 <[email protected]>
This was referenced Apr 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Extracts the
howtolenstutorial lecture series fromautolens_workspaceinto its own repository. BringsHowToLensinto line with the other PyAutoLabs workspace repos so it can be built, smoke-tested, and released independently.chapter_optional,simulator/,config/,notebooks/,scripts/, CI workflows,README.rst,CLAUDE.md,smoke_tests.txt,version.txt,welcome.py,start_here.py).autolens_workspace/autogalaxy_workspace/autofit_workspacelayout —scripts/chapter_<N>_<name>/,notebooks/chapter_<N>_<name>/,config/,dataset/(runtime),output/(runtime).scripts/simulator/— no.fitscommitted. Tutorials that need pre-existing data invoke their simulator via subprocess (seetutorial_7_fitting.py's auto-sim block for the pattern).Chapters
chapter_1_introduction— grids, light/mass profiles, galaxies, tracers, simulated data, fittingchapter_2_lens_modeling— Bayesian inference, non-linear searches, fitting CCD imagingchapter_3_search_chaining— automated pipelines via chained searcheschapter_4_pixelizations— pixelized source reconstruction with inversions + regularizationchapter_optional— extras (e.g.tutorial_searches.py)CI
.github/workflows/smoke_tests.ymlPyAutoConf,PyAutoFit,PyAutoArray,PyAutoGalaxy,PyAutoLenson matching branch (falls back tomain), runspython .github/scripts/run_smoke.py. Slack-notifies on failure..github/workflows/url_check.ymlPyAutoBuild/autobuild/url_check.shrunner.smoke_tests.txtcurrently lists 6 chapter 1 tutorials (1, 2, 4, 5, 6, 8). Tutorials 0 and 7 are excluded pending a content-alignment pass — see the inline comment insmoke_tests.txt.Local smoke-test results
Ran chapter 1 locally with
PYAUTO_TEST_MODE=2 PYAUTO_FAST_PLOTS=1:Pathimport; depends on pre-simulateddataset/imaging/simple__no_lens_lightthat HowToLens does not shipdataset/imaging/howtolens)simple__no_lens_light__mass_sis) has no auto-sim fallback. Upstream autolens_workspace also failsFollow-ups (tracked on PyAutoLabs/autolens_workspace#78)
scripts/howtolens/andnotebooks/howtolens/fromautolens_workspace, update all cross-references.index.rsttoctree,howtolens/*.rst,README.rst,paper.md,overview/*.rst,general/workspace.rst) to point to the new repo.howtolensproject target registration —generate.pycurrently has nohowtolenstarget; needed before/pre_buildcan build notebooks for this repo.dataset/imaging/howtolens).Jammy2211/HowToLensto thePyAutoLabsorg.Test plan
/ship_workspacecan operate on HowToLens after PyAutoBuild registration (follow-up PR)Refs PyAutoLabs/autolens_workspace#78.
🤖 Generated with Claude Code