Migrate both containers to the Anaconda 2026.06 baseline - #95
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the repository’s Dependabot configuration to prevent weekly PR churn from conda scientific-stack upgrades that are intentionally pinned to the Anaconda 2025.12 baseline used across QuantEcon lecture builds.
Changes:
- Adds the pinned conda scientific stack packages (numpy, scipy, pandas, matplotlib, seaborn, sympy, numba, networkx, statsmodels, scikit-learn) to the conda ecosystem
ignorelist. - Adds
anacondato the same ignore list so Dependabot doesn’t propose date-based metapackage bumps (e.g., 2025.12 → 2026.06). - Updates the surrounding comment to accurately describe Dependabot behavior for date-version pins.
This was referenced Jul 8, 2026
All flagship lecture repos now pin `anaconda=2026.06`, so move the containers to match — keeping them reproducible and consistent with the source repos and with each other (the #28 / PR #84 rationale, now retargeted from 2025.12 to 2026.06): - Full `quantecon` image: anaconda 2025.12 -> 2026.06. - Lean `quantecon-build` image: repin the individual scientific stack to the exact anaconda=2026.06 linux-64 py313 (MKL) versions — numpy 2.4.6, scipy 1.17.1, pandas 3.0.3, matplotlib 3.10.9, numba 0.65.1, networkx 3.6.1, statsmodels 0.14.6, scikit-learn 1.8.0 (seaborn 0.13.2 / sympy 1.14.0 unchanged). Resolved via `conda search anaconda=2026.06 --info`; linux-64 keeps MKL as the default BLAS, so the existing mkl pins stand. These are the deliberate coordinated-bump versions — not Dependabot's latest, which overshoot the baseline (numpy 2.5.0, scipy 1.18.0, etc.). Also add the pinned stack + `anaconda` to the Dependabot conda `ignore` list so it holds at 2026.06 until the next coordinated bump, instead of being drifted piecemeal (the #86 / #87 PRs this supersedes). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mmcky
force-pushed
the
ci/dependabot-hold-conda-science-stack
branch
from
July 8, 2026 06:10
5a7f9f0 to
0cee54f
Compare
This was referenced Jul 22, 2026
Merged
mmcky
added a commit
that referenced
this pull request
Jul 23, 2026
* Release v0.9.0 Moves [Unreleased] into a dated 0.9.0 section and closes the gaps that made the section an inaccurate description of what ships. Minor rather than patch: dropping the bare `build-` restore-key changes default restore behaviour for consumers — an environment.yml change is now a genuine cache miss and a cold build, where it previously restored a _build produced by the superseded environment. Marked BREAKING with a migration note, per the 0.x policy in CONTRIBUTING. Two accuracy fixes were needed before this could be tagged honestly: The Anaconda 2026.06 migration had no entry at all, despite being live in `:latest` since 2026-07-08. Added under Changed. The #28 entry stated the baseline is `anaconda=2025.12`, which stopped being true when #95 landed in this same unreleased block. It now points forward to the migration entry rather than asserting a stale baseline. Also logs the dependabot bumps that reached the composite actions — actions/cache v5 to v6 in build-jupyter-cache, restore-jupyter-cache and setup-environment, and action-gh-release v3.0.1 in publish-gh-pages — which are consumer-facing and were previously unlogged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Address Copilot review on #113 Past-tense the #28 bullet: it asserted the 2025.12 baseline as current fact ('that every lecture repo builds against', 'already pins') while the same release records the move to 2026.06. The forward-pointer alone left two false present-tense claims ahead of it. Drop the version number from the Version History line rather than re-setting it. It was stale at v0.8.0, which is why this PR touched it, and it would have been briefly false again between this merge and the v0 tag move. The latest release is already the topmost dated section. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Aug 6, 2026
mmcky
added a commit
that referenced
this pull request
Aug 7, 2026
…95 Verified rather than assumed: all eleven science-stack packages plus anaconda are in .github/dependabot.yml under `ignore` with no `update-types`, so every update type is blocked, and #95 corrected the header comment in the same change. The old comment claimed a date-pin meant the metapackage "stays put", which is the misconception that allowed #86/#87 to be proposed in the first place. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
mmcky
added a commit
that referenced
this pull request
Aug 7, 2026
…ws (#130) * docs(plan): record the v0.11.0 release and clear two stale backlog rows Current state: latest release is v0.11.0 and `@v0` points at it, which is the fact that matters — build-jupyter-cache reaches setup-environment and build-lectures through the pinned `@v0` ref, so neither alerting fix existed for any consumer until the tag moved. Also notes what the release unblocks: whether an issue is actually *filed* is the half the in-repo harness structurally cannot cover, so the canary is the only place it runs, and it only began running it when v0 moved. Two backlog rows referenced PRs that are long since resolved — #86/#87 closed and the stack moved as a set in #95, #90 merged, #88 closed. The repo has no open PRs at all. Both rows are struck rather than deleted, matching how the other closed items are recorded here. Consumers table: lecture-dp is moving from @v0.8.0 to @v0 in lecture-dp#52. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): close backlog item 3 — the conda ignore entries landed in #95 Verified rather than assumed: all eleven science-stack packages plus anaconda are in .github/dependabot.yml under `ignore` with no `update-types`, so every update type is blocked, and #95 corrected the header comment in the same change. The old comment claimed a date-pin meant the metapackage "stays put", which is the misconception that allowed #86/#87 to be proposed in the first place. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(plan): drop a stranded preposition, close a multi-sentence bullet Two style fixes from Copilot on #130, taken selectively. Line 16 gets its missing terminal period: that bullet carries internal sentence-ending periods and then stops, so it was inconsistent with itself. Line 13 loses the stranded preposition ("which @v0 now points at" → "and @v0 points to it"). It was not the incomplete sentence the review took it for, but it read awkwardly at the end of a bullet. Deliberately NOT adding terminal periods to the single-fragment bullets: lines 14 and 15 predate this PR and end without one, so no-period is the convention here and line 13 would have become the odd one out. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
mmcky
added a commit
that referenced
this pull request
Aug 11, 2026
Five stale facts, all overtaken by v0.11.1 (#131/#132): - latest release read v0.11.0 - backlog item 5 (#14, the Cloudflare alias URL) was still listed as open although #131 shipped it; its disposition row still said "Still valid" - the dependency policy still pinned the baseline to anaconda=2025.12, four months after #95 migrated both images to 2026.06 - the rollout section still showed lecture-dp and lecture-python.myst on @v0.8.0, contradicting the "every consumer now tracks @v0" line above it The disposition table covered 8 issues while 21 are open, so it was no longer usable as a status view. Adds a second table for everything opened after the July review, including #135. Item 3's "=2025.12" is left as-is: it narrates the misconception that produced #86/#87, not the current baseline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
mmcky
added a commit
that referenced
this pull request
Aug 11, 2026
#137 corrected the consumers table and added release gating; this clears what it did not touch, found while triaging all 20 open issues: - backlog item 5 (#14, the Cloudflare alias URL) was still listed as open although #131 shipped it in v0.11.1; its disposition row still read "Still valid" - the dependency policy still pinned the baseline to anaconda=2025.12, a month after #95 migrated both images to 2026.06 - rollout Phase 1 still put lecture-dp on @v0.8.0, contradicting the consumers table above it The disposition table covered 8 issues while 23 are open, so it had stopped working as a status view. Adds a second table for everything opened after the July review. Item 3's "=2025.12" is left alone: it narrates the misconception that produced #86/#87, not the current baseline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
mmcky
added a commit
that referenced
this pull request
Aug 11, 2026
…ker (#139) #137 corrected the consumers table and added release gating; this clears what it did not touch, found while triaging all 20 open issues: - backlog item 5 (#14, the Cloudflare alias URL) was still listed as open although #131 shipped it in v0.11.1; its disposition row still read "Still valid" - the dependency policy still pinned the baseline to anaconda=2025.12, a month after #95 migrated both images to 2026.06 - rollout Phase 1 still put lecture-dp on @v0.8.0, contradicting the consumers table above it The disposition table covered 8 issues while 23 are open, so it had stopped working as a status view. Adds a second table for everything opened after the July review. Item 3's "=2025.12" is left alone: it narrates the misconception that produced #86/#87, not the current baseline. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Moves both container images to the Anaconda 2026.06 baseline — matching the QuantEcon lecture repos, which now all pin
anaconda=2026.06— and holds them there via Dependabot's ignore list.quanteconimage —anaconda=2025.12→anaconda=2026.06.quantecon-buildimage — repins the individually-pinned scientific stack to the exact versionsanaconda=2026.06resolves to on linux-64 / py313 (the MKL build)..github/dependabot.yml— adds the scientific stack +anacondato the condaignoreblock so Dependabot stops re-proposing off-baseline bumps. Supersedes deps: bump the conda group across 1 directory with 7 updates #86 and deps: bump the conda-major group across 2 directories with 2 updates #87.Lean-container versions (2025.12 → 2026.06)
These are the deliberate coordinated-bump versions, resolved authoritatively rather than taken from Dependabot's "latest" — which overshoots the baseline (it proposed numpy 2.5.0, scipy 1.18.0, matplotlib 3.11.0, scikit-learn 1.9.0). linux-64 keeps MKL as the default BLAS, so the existing
mkl/mkl-servicepins are unchanged. Resolved with:conda search 'anaconda=2026.06' --info -c defaults --subdir linux-64Validation
The 2026.06 stack (including the pandas 2→3 jump) is already exercised by the lecture repos' own CI, since they build against
anaconda=2026.06— this PR just brings the containers into line with an already-validated baseline. Note the container tests (test-containers-lectures.yml) run post-merge on:latestviaworkflow_run, so this can't be fully validated pre-merge; worth watching that run once it lands.🤖 Generated with Claude Code