Skip to content

Migrate both containers to the Anaconda 2026.06 baseline - #95

Merged
mmcky merged 1 commit into
mainfrom
ci/dependabot-hold-conda-science-stack
Jul 8, 2026
Merged

mmcky merged 1 commit into
mainfrom
ci/dependabot-hold-conda-science-stack

Conversation

@mmcky

@mmcky mmcky commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

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.

Lean-container versions (2025.12 → 2026.06)

Package Was Now
numpy 2.3.5 2.4.6
scipy 1.16.3 1.17.1
pandas 2.3.3 3.0.3
matplotlib 3.10.6 3.10.9
seaborn 0.13.2 0.13.2
sympy 1.14.0 1.14.0
numba 0.62.1 0.65.1
networkx 3.5 3.6.1
statsmodels 0.14.5 0.14.6
scikit-learn 1.7.2 1.8.0

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-service pins are unchanged. Resolved with:

conda search 'anaconda=2026.06' --info -c defaults --subdir linux-64

Validation

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 :latest via workflow_run, so this can't be fully validated pre-merge; worth watching that run once it lands.

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings July 8, 2026 05:56
@mmcky mmcky added the maintenance Routine housekeeping: style, formatting, env & dependency upkeep label Jul 8, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 ignore list.
  • Adds anaconda to 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.

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
mmcky force-pushed the ci/dependabot-hold-conda-science-stack branch from 5a7f9f0 to 0cee54f Compare July 8, 2026 06:10
@mmcky mmcky changed the title ci: hold pinned conda science stack in Dependabot ignore list Migrate both containers to the Anaconda 2026.06 baseline Jul 8, 2026
@mmcky
mmcky merged commit 46f3a31 into main Jul 8, 2026
1 check passed
@mmcky
mmcky deleted the ci/dependabot-hold-conda-science-stack branch July 8, 2026 06:16
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>
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintenance Routine housekeeping: style, formatting, env & dependency upkeep

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants