Extend notebook_validator.py with a colab-diff subcommand that fetches three files from googlecolab/backend-info: pip-freeze.gpu.txt -> snapshot at scripts/data/colab_pip_freeze.gpu.txt apt-list-gpu.txt -> snapshot at scripts/data/colab_apt_list.gpu.txt os-info-gpu.txt -> snapshot at scripts/data/colab_os_info.gpu.txt Each file is parsed with a format-specific parser (pip ==, apt listing, free-form os-info) and compared against the committed snapshot. The diff reports NEW / REMOVED / CHANGED keys per file. Wired into Notebooks CI two ways: - PR-time static job: advisory step (continue-on-error: true) so upstream Colab rotations surface in the PR check UI without blocking authors. - Daily static-with-pypi cron: --strict step so backend-info drift fails the cron within ~24h and the maintainer can refresh the snapshots intentionally. Catches the same bug classes the existing R-INST-002/003/004/005 rules catch, but earlier: when Colab bumps libcudnn / Python / torch wheels, we hear about it before a notebook breaks. Add baseline snapshots from current backend-info HEAD: 1136 apt packages, 4 os-info entries, 720 pip-freeze entries. |
||
|---|---|---|
| .. | ||
| data | ||
| enforce_kwargs_spacing.py | ||
| install_gemma4_mlx.sh | ||
| install_qwen3_6_mlx.sh | ||
| notebook_to_python.py | ||
| notebook_validator.py | ||
| run_ruff_format.py | ||
| scan_packages.py | ||