Skip to content

Remove Binder links, switch to Colab-only, pin to workspace tag, then delete release branches #73

@Jammy2211

Description

@Jammy2211

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

  1. 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.
  2. 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.
  3. Make the release pipeline maintain the tag in those URLs so README links don't drift after every release.
  4. 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.
  5. 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

  1. 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).
  2. 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.
  3. 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).
  4. Sweep euclid_strong_lens_modeling_pipeline.
  5. Smoke tests + readthedocs preview build to confirm Sphinx docs render correctly.
  6. Open PRs (PyAutoBuild first, then the 6 README-bearing repos in parallel since they don't depend on each other), library-first merge gate.
  7. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions