Acknowledge the Colab rotation the oracle snapshot is measuring by danielhanchen · Pull Request #9376 · unslothai/unsloth · GitHub
Skip to content

Acknowledge the Colab rotation the oracle snapshot is measuring - #9376

Merged
danielhanchen merged 1 commit into
mainfrom
refresh-colab-oracle
Aug 20, 2026
Merged

Acknowledge the Colab rotation the oracle snapshot is measuring#9376
danielhanchen merged 1 commit into
mainfrom
refresh-colab-oracle

Conversation

@danielhanchen

Copy link
Copy Markdown
Member

Notebooks CI :: static + transitive resolve has failed all 20 of its last cron runs on one step, colab-diff --strict. Nothing is broken.

That step is a drift alarm: it compares googlecolab/backend-info against scripts/data/colab_*.txt and fails when Colab rotates. The Refresh Colab oracle step directly below it writes only into the runner's checkout, so no refresh is ever committed back and the alarm re-fires every night until someone acknowledges it. The step's own comment names the action: "refresh-colab --all acknowledges a report." This is that acknowledgement.

Drift is 127 entries: 5 new, 6 removed, 116 version bumps.

Why this is safe to take wholesale

The snapshot is the oracle lint --colab-pin resolves R-INST-002/003/004/005 against, so refreshing it could in principle move a verdict. It does not.

Exactly one rule-relevant pin drifted, peft 0.19.1 -> 0.20.0, and both sides sit above the 0.19 trigger in the peft/torchao floor table; torchao does not appear in the diff at all. Confirmed rather than argued, by linting unslothai/notebooks@main against the old and the new oracle and comparing findings:

R-API-003 R-INST-001 R-INST-003 R-INST-005
old oracle 6 8 36 1
new oracle 6 8 36 1

Identical. This changes what the alarm says and nothing about what the linter concludes.

Worth reading before the next rotation

os-info drift is printed but never fails, and nothing reads that file, so it is not a CI matter. It is still the most interesting line in the diff: Colab has moved from Python 3.12.13 to 3.13.15 (and R 4.6.0 to 4.6.1). Flagging it because that is the kind of change which surfaces in a notebook long before it surfaces in a lint rule.

The 36 R-INST-003 findings are pre-existing and stay open. They are real: peft's is_torchao_available() raises ImportError when torchao is installed below 0.16.0. That is a runtime check inside peft rather than a declared dependency, so it is invisible in PyPI requires_dist and reachable from any get_peft_model call (unslothai/notebooks#258). That backlog belongs to unslothai/notebooks, and the lint step is continue-on-error until it clears.

Verified

  • colab-diff --strict exits 0 against the refreshed snapshot.
  • tests/notebooks: 32 passed, 2 skipped.

`Notebooks CI :: static + transitive resolve` has failed all 20 of its last cron
runs on one step, `colab-diff --strict`. Nothing is broken. That step is a drift
alarm: it compares googlecolab/backend-info against scripts/data/colab_*.txt and
fails when Colab rotates, and the `Refresh Colab oracle` step below it writes only
into the runner's checkout. So no refresh is ever committed back, and the alarm
re-fires every night until someone acknowledges it, which is what this does. The
step's own comment names the action: "refresh-colab --all acknowledges a report."

The drift is 127 entries: 5 new, 6 removed, 116 version bumps.

Why this is safe to take wholesale
------------------------------------------------------------------------
The snapshot is the oracle `lint --colab-pin` resolves R-INST-002/003/004/005
against, so refreshing it could in principle move a verdict. It does not. Exactly
one rule-relevant pin drifted, peft 0.19.1 -> 0.20.0, and both sides sit above the
0.19 trigger in the peft/torchao floor table; torchao itself does not appear in the
diff at all. Confirmed rather than argued, by linting unslothai/notebooks@main
against the old and new oracles and comparing the findings:

  old   6 R-API-003, 8 R-INST-001, 36 R-INST-003, 1 R-INST-005
  new   6 R-API-003, 8 R-INST-001, 36 R-INST-003, 1 R-INST-005

Identical, so this commit changes what the alarm says and nothing about what the
linter concludes.

Worth reading before the next rotation
------------------------------------------------------------------------
os-info drift is printed but never fails, and nothing reads that file, so this is
not a CI matter. It is still the most interesting line in the diff: Colab has moved
from Python 3.12.13 to 3.13.15 (and R 4.6.0 to 4.6.1). Flagging it here because it
is the kind of change that surfaces in a notebook long before it surfaces in a lint
rule.

The 36 R-INST-003 findings are pre-existing and remain open. They are real: peft's
is_torchao_available() raises ImportError when torchao is installed below 0.16.0,
which is a runtime check inside peft rather than a declared dependency, so it is
invisible in PyPI metadata and reachable from any get_peft_model call. That backlog
belongs to unslothai/notebooks and the lint step is continue-on-error until it
clears.

Verified: colab-diff --strict exits 0; tests/notebooks 32 passed, 2 skipped.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 13c2f93a0d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

astunparse==1.6.3
atpublic==5.1
attrs==26.1.0
audioop-lts==0.2.2

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Skip Python 3.13-only pins in the Python 3.12 smoke seed

The refreshed Colab image now runs Python 3.13, and audioop-lts==0.2.2 declares Python >=3.13, but the smoke-install job still creates a Python 3.12 environment and copies every == pin not explicitly skipped into /tmp/seed_pins.txt. Consequently the bulk pip install cannot resolve this pin and enters the per-pin fallback; the workflow itself documents that this fallback exhausts the 25-minute job timeout before reaching the actual smoke checks. Filter pins by the runner's Python version or move this job to Python 3.13.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Exclude the new CUDA 13 NCCL package from CPU smoke jobs

When scheduled or opt-in smoke-install runs, the seed generator excludes nvidia-nccl-cu12 by exact name through colab_to_cpu_pin.json, but this newly added nvidia-nccl-cu13 name is not in that skip set. Every CPU-only matrix job will therefore attempt to download and install the large CUDA 13 NCCL wheel even though it cannot participate in the smoke test; extend the skip mapping to cover this variant or match the NCCL package family.

Useful? React with 👍 / 👎.

@danielhanchen
danielhanchen merged commit 484a0d9 into main Aug 20, 2026
15 checks passed
@danielhanchen
danielhanchen deleted the refresh-colab-oracle branch August 20, 2026 11:15
Souravrajvi0 pushed a commit to Souravrajvi0/unsloth that referenced this pull request Aug 21, 2026
…othai#9376)

`Notebooks CI :: static + transitive resolve` has failed all 20 of its last cron
runs on one step, `colab-diff --strict`. Nothing is broken. That step is a drift
alarm: it compares googlecolab/backend-info against scripts/data/colab_*.txt and
fails when Colab rotates, and the `Refresh Colab oracle` step below it writes only
into the runner's checkout. So no refresh is ever committed back, and the alarm
re-fires every night until someone acknowledges it, which is what this does. The
step's own comment names the action: "refresh-colab --all acknowledges a report."

The drift is 127 entries: 5 new, 6 removed, 116 version bumps.

Why this is safe to take wholesale
------------------------------------------------------------------------
The snapshot is the oracle `lint --colab-pin` resolves R-INST-002/003/004/005
against, so refreshing it could in principle move a verdict. It does not. Exactly
one rule-relevant pin drifted, peft 0.19.1 -> 0.20.0, and both sides sit above the
0.19 trigger in the peft/torchao floor table; torchao itself does not appear in the
diff at all. Confirmed rather than argued, by linting unslothai/notebooks@main
against the old and new oracles and comparing the findings:

  old   6 R-API-003, 8 R-INST-001, 36 R-INST-003, 1 R-INST-005
  new   6 R-API-003, 8 R-INST-001, 36 R-INST-003, 1 R-INST-005

Identical, so this commit changes what the alarm says and nothing about what the
linter concludes.

Worth reading before the next rotation
------------------------------------------------------------------------
os-info drift is printed but never fails, and nothing reads that file, so this is
not a CI matter. It is still the most interesting line in the diff: Colab has moved
from Python 3.12.13 to 3.13.15 (and R 4.6.0 to 4.6.1). Flagging it here because it
is the kind of change that surfaces in a notebook long before it surfaces in a lint
rule.

The 36 R-INST-003 findings are pre-existing and remain open. They are real: peft's
is_torchao_available() raises ImportError when torchao is installed below 0.16.0,
which is a runtime check inside peft rather than a declared dependency, so it is
invisible in PyPI metadata and reachable from any get_peft_model call. That backlog
belongs to unslothai/notebooks and the lint step is continue-on-error until it
clears.

Verified: colab-diff --strict exits 0; tests/notebooks 32 passed, 2 skipped.

Co-authored-by: danielhanchen <unslothai@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants