Background
Follow-up to autolens_workspace#71 (default-branch-release-to-main). The release branch has been retired in favour of tagging on main and pinning each cloned workspace to its library version via version.txt. However, deletion of the release branches on origin is currently blocked because 50 files across 9 repos still reference them in user-facing Binder/Colab URLs of the form:
https://mybinder.org/v2/gh/Jammy2211/<workspace>/release?filepath=...
https://colab.research.google.com/github/Jammy2211/<workspace>/blob/release/<path>
Both URLs are also wrong on the owner axis: the workspace repos now live under PyAutoLabs/<workspace> and only resolve via GitHub's transferred-repo redirect.
Decision
- Drop Binder entirely. Delete every
mybinder.org/... URL across all 9 repos. Where a file currently has only a Binder link, replace it with the Colab equivalent. Where a file has both Binder and Colab side-by-side (|-separated in RST), strip the Binder part and tidy the separator.
- Keep Colab only, and pin every Colab URL to the workspace tag that matches the latest released library version (currently
2026.4.13.6), under the PyAutoLabs owner. This mirrors the pip-install + clone-tagged-workspace contract: a "Try on Colab" click gives the user the workspace at the same version their installed library is on, reproducibly.
- Make the release pipeline maintain the tag in those URLs so README links don't drift after every release.
- Add a CI guard that fails the build if
mybinder.org, Jammy2211/, or /blob/release/ reappear in any doc/README path under the affected repos.
- Once merged and verified, delete the three
release branches from origin.
Affected Repositories
- Libraries (READMEs + Sphinx docs + paper.md): PyAutoFit, PyAutoGalaxy, PyAutoLens
- Workspaces (READMEs + start_here.{ipynb,py} + howto chapter intros): autofit_workspace, autogalaxy_workspace, autolens_workspace
- PyAutoBuild (release.yml: tag-bumper step + CI guard workflow)
- euclid_strong_lens_modeling_pipeline (one README — bundle for convenience)
50 files in total identified via grep.
Implementation Steps
- Audit the 50 files and classify each: Binder-only, Colab-only, both. Note any chapters where Colab equivalents don't yet exist (autofit howto chapters look Binder-only — need Colab URLs minted).
- Land PyAutoBuild changes first:
- New CI workflow that fails if forbidden patterns appear (
mybinder.org, gh/Jammy2211/(autofit|autogalaxy|autolens)_workspace, /blob/release/).
- New release-pipeline step that
seds the version tag in every README/docs file under the 6 affected repos as part of the version bump commit. Use a literal current-tag string as the bump target so the diff is easy to audit.
- Sweep the 6 workspace + library repos: rewrite all 50 files. Smoke-test by clicking the new Colab links manually (or curl-checking they resolve to a real notebook).
- Sweep euclid_strong_lens_modeling_pipeline.
- Smoke tests + readthedocs preview build to confirm Sphinx docs render correctly.
- Open PRs (PyAutoBuild first, then the 6 README-bearing repos in parallel since they don't depend on each other), library-first merge gate.
- Delete
release from PyAutoLabs/{autofit,autogalaxy,autolens}_workspace.
Suggested branch
feature/release-url-sweep-and-tag-pinning
Affected repos
PyAutoFit, PyAutoGalaxy, PyAutoLens, PyAutoBuild, autofit_workspace, autogalaxy_workspace, autolens_workspace, euclid_strong_lens_modeling_pipeline
Notes
- PyAutoLens
v1.15.x legacy tags are not relevant — workspace pinning uses the date-based 2026.x.x.x scheme, same as the others.
- Binder removal is irreversible from a user-experience standpoint. Confirmed acceptable in scoping conversation: simpler maintenance, single "Try in browser" surface, Colab is the de-facto target for ML/Python tutorials anyway.
Background
Follow-up to autolens_workspace#71 (
default-branch-release-to-main). Thereleasebranch has been retired in favour of tagging onmainand pinning each cloned workspace to its library version viaversion.txt. However, deletion of thereleasebranches on origin is currently blocked because 50 files across 9 repos still reference them in user-facing Binder/Colab URLs of the form:https://mybinder.org/v2/gh/Jammy2211/<workspace>/release?filepath=...https://colab.research.google.com/github/Jammy2211/<workspace>/blob/release/<path>Both URLs are also wrong on the owner axis: the workspace repos now live under
PyAutoLabs/<workspace>and only resolve via GitHub's transferred-repo redirect.Decision
mybinder.org/...URL across all 9 repos. Where a file currently has only a Binder link, replace it with the Colab equivalent. Where a file has both Binder and Colab side-by-side (|-separated in RST), strip the Binder part and tidy the separator.2026.4.13.6), under the PyAutoLabs owner. This mirrors the pip-install + clone-tagged-workspace contract: a "Try on Colab" click gives the user the workspace at the same version their installed library is on, reproducibly.mybinder.org,Jammy2211/, or/blob/release/reappear in any doc/README path under the affected repos.releasebranches from origin.Affected Repositories
50 files in total identified via grep.
Implementation Steps
mybinder.org,gh/Jammy2211/(autofit|autogalaxy|autolens)_workspace,/blob/release/).seds the version tag in every README/docs file under the 6 affected repos as part of the version bump commit. Use a literal current-tag string as the bump target so the diff is easy to audit.releasefromPyAutoLabs/{autofit,autogalaxy,autolens}_workspace.Suggested branch
feature/release-url-sweep-and-tag-pinningAffected repos
PyAutoFit, PyAutoGalaxy, PyAutoLens, PyAutoBuild, autofit_workspace, autogalaxy_workspace, autolens_workspace, euclid_strong_lens_modeling_pipeline
Notes
v1.15.xlegacy tags are not relevant — workspace pinning uses the date-based2026.x.x.xscheme, same as the others.