Skip to content

fix: Colab link rot — pin/repoint chapter README URLs, purge allowlists (phase 2) #21

Description

@Jammy2211

Overview

Phase 2 of the Colab maturity work (tracker: PyAutoLabs/PyAutoBuild#124). Phase 1 (merged 2026-07-09: PyAutoLabs/PyAutoConf#120, PyAutoLabs/PyAutoBuild#125, PyAutoLabs/PyAutoHeart#44) made every generated notebook Colab-runnable by construction and added forbidden-URL guards that now flag the accumulated link rot. This phase fixes the rot so the Monday central url-check sweep can go green.

--auto run (effective level: safe — mechanical, well-specified link repair; header safe, difficulty medium). Plan below per the autonomy contract; ship goes through the four-leg autonomous gate and ends at PR-open. Note: the Brain Feature Agent recommended re-homing as research; overridden inline — the task has an explicit repo list, concrete edits, and a verifiable done-condition (url_check.sh green per repo).

Scope split at launch: PyAutoLens + PyAutoGalaxy are claimed by release-docs-polish-learn-paths (awaiting-input, uncommitted). Their docs/howto* dead-link fixes + allowlist purges are deferred to a follow-up leg registered in planned.md, blocked on that task. This run covers HowToFit, HowToGalaxy, HowToLens, euclid_strong_lens_modeling_pipeline.

Plan

  • HowToLens — pin the 71 unpinned blob/main Colab URLs in scripts/*/README.md (mirrored in notebooks/*/README.md) to the current release tag 2026.7.6.649; fix dead filenames (tutorial_11_adapt_regularization.py.ipynbtutorial_11_adaptive_regularization.ipynb, etc.); verify every link target exists in the repo; purge the now-fixed Colab entries from .url_check_allowlist.txt.
  • HowToGalaxy — repoint the 28 wrong-repo chapter README Colab URLs (autogalaxy_workspace/...HowToGalaxy/... at the current tag); verify targets; purge fixed allowlist Colab entries.
  • HowToFit — verify every chapter README Colab link target exists at the pinned tag; fix the two moved/renamed tutorials frozen in the allowlist; purge fixed entries.
  • euclid_strong_lens_modeling_pipeline — replace the forbidden Jammy2211 Colab URL in README.md with the PyAutoLabs form.
  • Verify — run the merged Heart url_check.sh (offline guard, now including the new patterns) over each repo: must exit clean.
Detailed implementation plan

Affected Repositories

  • HowToLens (primary)
  • HowToGalaxy
  • HowToFit
  • euclid_strong_lens_modeling_pipeline

Branch Survey

Repository Current Branch Dirty?
./HowToLens main 20 modified (regenerated dataset FITS/JSON — unrelated churn)
./HowToGalaxy main 13 modified (same)
./HowToFit main 315 modified (same)
./euclid_strong_lens_modeling_pipeline main 1 modified (test_report.md)

Dirty files are local dataset-regeneration churn, none overlapping this task's files; worktrees branch from origin/main.

Suggested branch: feature/colab-link-rot
Work Classification: Workspace
Worktree root: ~/Code/PyAutoLabs-wt/colab-link-rot/

Implementation Steps

  1. Script an audit: extract every colab.research.google.com URL from chapter READMEs in the three HowTo repos, map to the expected local notebooks/... path, report missing targets.
  2. Fix systematically: right repo (HowToGalaxy), pinned tag (HowToLens), corrected filenames (all three); mirror scripts/ README edits into notebooks/ READMEs.
  3. euclid README: Jammy2211PyAutoLabs owner (verify the target notebook exists; otherwise repoint to the imaging start_here).
  4. Purge fixed Colab entries from each repo's .url_check_allowlist.txt (leave non-Colab entries).
  5. Gate: bash PyAutoHeart/heart/checks/url_check.sh <repo> clean per repo; four-leg autonomous-ship gate; PRs with pending-release.

Key Files

  • HowTo*/scripts/*/README.md + HowTo*/notebooks/*/README.md — Colab link lists
  • HowTo*/.url_check_allowlist.txt — grandfathered rot to purge
  • euclid_strong_lens_modeling_pipeline/README.md

Original Prompt

Click to expand starting prompt

See PyAutoMind/issued/colab_link_rot.md (line-rot inventory from the 2026-07-09 census in issued/colab_maturity.md).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions