Work plan — QuantEcon/actions: v0.17.0 shipped; next the v0 move and wave 6's gate and workers

クローズ
#246 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
15/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
git, github-actions, shell
領域
devops

調査の方向性

Start by refreshing this plan against live state, then read the listed follow-up issues and their decision comments. The body says wave 1 is complete and proposes multiple wave 2 workstreams, including a staged release and release gate; the maintainer chooses which sessions to start. Done means completing an explicitly selected workstream and updating this plan to match the resulting live state.

索引モデルが issue の本文から書いたものです。

説明

Continuing from #212 (closed as superseded on 2026-11-04). This plan comes from the maintainer's decision session of 2026-11-04 and the whole-tracker audit run the same morning. It is worked by parallel Claude Code sessions, each owning one area and one pull request at a time, with an organiser session coordinating them. Six waves have run since 2026-11-04. This body is the single source of truth for the work. Revise it in place against live state before working from it.

Where we stand (verified 2026-11-10 05:20 UTC)

What State Measured
main 0f4ee09 (#290) 05:18 UTC, git ls-remote
Latest release v0.17.0, tag on fae622c, with its GitHub Release (#289). It carries wave 5 and #274. Nothing in it is marked ⚠️ BREAKING 05:18 UTC
v0 e40924a (v0.16.0), moved 2026-11-10 02:10 UTC with the maintainer's approval. It moves to v0.17.0 once a lecture-matrix run on main passes, again with approval 05:18 UTC, git ls-remote
v0.17.0 canary All green in QuantEcon/test-actions-lecture-intro; PR 82's closing comment has the table. #270's five execution-cache checks passed. #216: the Cloudflare preview's URLs came with no fallback warning. #224: setup-latex and setup-environment's install-latex each missed, then hit with no download. The 30-minute download limit also fired for real on a stalled Ubuntu mirror. publish.yml deployed. The branches and the tag are deleted ~03:55 UTC
Lecture matrix The scheduled run of 2026-11-09 (79) failed one leg on a GitHub 504 for a lecture's data (#285). Its rerun went 8/8 green, which cleared the v0.16.0 move. Run 80 (42744092827) started after #274's first promotion, on e38afc2, still with the 180-min ceiling. Its setup-environment and build-lectures are byte-identical to v0.17.0's. Six of eight legs are green; both lecture-python.myst legs are still running. If it passes, it can clear the v0.17.0 move 05:14 UTC
Container images :latest is now promoted only after the smoke test (#274). The first promotion (run 42743671096) moved quantecon to d6d17495… and quantecon-build to d7676921…. The first live prune (#290, run 42753845919) deleted 255 and 138 old versions, leaving 78 per image 05:00 UTC
Open PRs #279 (the maintainer's CHANGELOG footer fix; theirs to merge) 05:18 UTC
Sessions The organiser, mini:actions. Wave 6's gate and workers sessions launched 2026-11-10 05:17 UTC, and are doing their issue checks. The containers session finished and closed 05:18 UTC

Front of the plan:

  1. Read run 80's result. If it passes, ask the maintainer to move v0 to v0.17.0. If a lecture-python.myst leg times out at the old 180 min, dispatch a fresh matrix run on main, which has #288's 240 min, and decide on that one.
  2. Wave 6's checks, as they arrive: #136 and #135 from the gate session, and #145 from the workers session. Each question goes to the maintainer one at a time, and the agreed check is posted on its issue.
  3. After v0 moves to v0.17.0: a docs PR for PLAN's release line, and on the next day, a look at the lecture sites' first runs.
  4. The lecture sites' first runs on v0.16.0, from 2026-11-11. They are the first callers to meet #267's refusal of a line break in a single-value input.

Wave 5 and wave 6 (2026-11-07 to 2026-11-10)

Item Outcome
#270, #160's step 2 #280: the execution cache's key hashes the environment, and the templates restore the execution cache. Closed
#216 #281: preview-cloudflare's deploy-url uses the address Cloudflare serves the project at, read from wrangler's record of the deploy. Closed
#224 #283 (a new setup-latex action) and #284 (setup-environment's install-latex on the same cache). Closed
#142 phase 2 #274: main's build pushes candidates, smoke-tests them, and promotes both images to :latest together only if every test passes. Closed, with tracker #188
#286 #287: the lecture matrix files a cancelled run only when no newer run exists. Closed
#141, #196 #288: each leg's duration in the run's summary, with warnings, and a 240-min ceiling for lecture-python.myst. Closed. The lecture's own cost is QuantEcon/lecture-python.myst#1118: imp_sample takes 39% of its CPU execution time
#277 #290: a monthly pruner for old image versions, with a pins file. Closed after the first live run
#135, #136 In progress: the gate session builds #136's fixture and then #135's gate.yml in the canary. It is the first worker allowed to write there
#145 In progress: the workers session builds a sibling preview-workers action

The maintainer's calls of 2026-11-07 to 2026-11-10

Call Where it shows
Wave 5: three sessions, for #270, #224 and #216, each checking its issue first #280, #281, #283, #284
#270: keep build-jupyter-cache's full _build save (review M3); Changed, with no marker; the execution fallbacks mirror the build cache's #280
#224: a new setup-latex action, then setup-environment. The package list is required. download-timeout-minutes defaults to 30, where 0 means no limit, and setup-environment has a fixed 30. No saves from tag refs #283, #284
#216: read the subdomain from wrangler's pages-deploy-detailed record, and warn and fall back otherwise; Fixed, with no marker #281
The canary's set-up for wave 6: a release-gate environment restricted to main, holding gate-only tokens; a qe-preview-canary Worker on the org's Cloudflare account, with a per-Worker token #135, #145
Wave 6: containers, gate and workers. Containers ran first; gate and workers launched once credit allowed this plan
The lecture matrix takes #274's superseded-run rule; a run superseded by a dispatch files nothing either #286, #287
After the 504 on 2026-11-09: rerun the failed leg, and move v0 to v0.16.0 if green #285
#277: keep main's newest 10 builds and everything from the last 90 days; branch dispatches go after 14 days; a monthly workflow, dry run by default; a pins file; at most 50 deletions per image per run; a Changed entry with no marker. The first live run was watched #290, #277
#141 and #196: a 240-min ceiling and two warnings, with no issue filed; one PR for both; the lecture-side questions filed in lecture-python.myst #288, QuantEcon/lecture-python.myst#1118
v0.17.0: release, tag and canary at once #289
File #291 (Cloudflare Pages previews never 404), at low priority #291
Close tracker #188 once nothing is open under it #188

The calls of 2026-11-05 to 2026-11-07 are in this issue's revision of 2026-11-07 01:00 UTC (see its edit history) and in the PRs they name. The 2026-11-04 decisions still govern the gate work, so they stay below.

The 2026-11-04 decisions

# Decision Recorded on
1 Release gate: a gate.yml in the canary (QuantEcon/test-actions-lecture-intro), not a new repo. #136 is the gate fixture's content; #135 is gate.yml, with no v0-next tag #143, #135, #136
2 Previews outside a PR: an opt-in input in both preview actions, with a reserved dispatch- alias prefix, an event allow-list and a deployed output #143, #227, #193
3 Gate candidates: only commits reachable from main or a v* tag; secrets in a canary environment restricted to the canary's main #143
4 Gate builds are frozen: a committed image digest, cold builds, intersphinx off #143
5 publish-gh-pages is in the gate (deploy only); release-asset packaging is tested in this repo's harness (done in #257) #143
6 HTML-only previews hide the download buttons #146, #148
7 A parallel PDF check on PRs, which each site can switch off #146, #230
8 Run the #221 handover, then merge #220 and #221 done
9 Scheduled image rebuilds: pin the Ubuntu base by digest, Dependabot proposes base moves, drop the weekly schedule, correct the docs (done in #255) #234
10 #177: add visibility; keep require-access as a deprecated alias (removed in v0.16.0 by #276) #177
11 Next release: a small v0.13.0 soon done
12 This issue replaces #212 this plan

Releases

  • v0.13.0 to v0.16.0: shipped 2026-11-05 to 2026-11-07, each staged on the canary before v0 moved.
  • v0.17.0: shipped 2026-11-10, carrying wave 5 and #274 (#289). The canary is green, and v0 moves after a matrix run passes.
  • Next, v0.18.0: #290's entry is under [Unreleased]. Wave 6's preview-workers (#145) will be the first action change in it.

Follow-ups found during the waves

  • The image-size report is not exactly reproducible. The lean image's on-disk figure varied by 111,355 bytes with identical layers, depending on the runner's overlay2.
  • publish-gh-pages and a / in the tag. Under mode: all, it fails only at the release step, after the deploy. Left for the maintainer.
  • The two deploy-cloudflare callers are pinned to v0.12.0 and pass neither visibility nor require-access. Each needs visibility: private when it moves to v0.16.0 or later.
  • setup-latex and setup-environment share one LaTeX cache key (the same script), so a job of each with the same cache-version reuses the other's archives. This is by design; the v0.17.0 canary showed it.
  • Low priority, filed: #291 (Cloudflare Pages previews never 404) and #282 (a stub-API wrangler harness).

Explicitly not doing

  • #147's template items (the concurrency fallback, paths-ignore).
  • A v0-next tag (dropped by decision 1 of 2026-11-04).
  • Committing the 2026-11-04 audit bundle to .qe/dev/log/. That is the maintainer's call.
  • #18's caching. It is parked until a repository passes environment-update; its comment of 2026-11-07 gives the remedies in order.

Resuming

The organiser session is mini:actions, and the workers are mini:actions-<name>. The briefs live in the maintainer's checkout under .claude/briefs/ and are not committed:

  • HANDOVER.md is the organiser's start-up file, and start.sh starts a fresh organiser;
  • common.md holds the current worker rules, including the two-part issue check, and <name>.md each worker's brief;
  • proposal-checks/ holds each issue's check;
  • release-templates/ holds the last release's PR body, notes and canary files.

A fresh session can work from this issue, the merged PRs and the decision records alone: each PR body states its design, what it checked and what it leaves out.

Claude Code (on behalf of mmcky), organiser session

主要言語
Shell
スター
0
フォーク
1
平均マージ
18時間 51分
マージ済み PR(30日)
58

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

QuantEcon/actions のほかの issue

QuantEcon/actions の issue をすべて見る

似ている issue

Shell/Bash の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。