The -W gate is blind in ci.yml, and a warning-only cache failure discards a completed execution
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 72/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- github-actions, jupyter, python
- 領域
- build-system, ci-cd
調査の方向性
まず cache.yml と publish.yml を読み、2つの build steps、doctree の処理、Upload "_build" folder (cache) step に注目します。cache workflow を実行または調査して、-W build がソースを再読み込みすること、および実行が warnings で終了した場合に build artifact がアップロードされることを確認します。適切な場合、run は引き続き failure を報告する必要があります。
索引モデルが issue の本文から書いたものです。
説明
Summary
Two independent weaknesses in cache.yml turned a one-line content defect into four days without a usable execution cache, and hid it from the check that should have caught it first.
What happened
Four cache.yml runs failed or were cancelled between 2026-08-20 and 2026-08-24, while the last success was 2026-08-17. The publish build for publish-2026aug24 consequently fell back on the eight-day-old artifact, which shipped a site with inconsistent chapter numbering (filed separately).
The causes were not a single recurring one:
| Run | Date | Cause |
|---|---|---|
| 32331172292 | 2026-08-20T04:14Z | FileNotFoundError: '_fonts/SourceHanSerifSC-SemiBold.otf' in learning_approximation.md, plus the hoist_failure warning below — fixed by #262 |
| — | 2026-08-20T22:56Z | hoist_failure warning alone |
| 32433407779 | 2026-08-21T00:38Z | cancelled by hand two minutes in, not a failure |
| 32686259809 | 2026-08-24T03:23Z | hoist_failure warning alone — fixed by #265 |
The hoist_failure cause was one Sphinx warning promoted to an error by -W: lectures/hoist_failure.md:34: WARNING: Document headings start at H2, not H1 [myst.header]. The stale duplicated frontmatter block left in the body by the #260 resync parsed as body text, and its trailing --- turned the block into a setext H2 ahead of the real # 故障树不确定性.
Both underlying defects were lecture-content defects introduced by translate seed/forward operations, and both are now fixed. What follows is why they cost four days.
Defect 1 — the -W gate never re-reads, so it fires late and in the wrong workflow
cache.yml runs the sphinx-tojupyter build and then the HTML build with -W. Because the doctrees survive between them, the -W step re-reads nothing, so the warning surfaces only on a cold run. The same shape exists in publish.yml, where the rm -r _build/.doctrees line is commented out.
The consequence is that a content defect that should fail a PR's CI instead fails the weekly cold cache build, days later and far from the change that caused it.
Suggested fix: clear _build/.doctrees between the two builds so the -W step re-reads every source. Smallest change with the strongest guarantee. Alternatively drop -W from the tojupyter step and rely on a re-reading HTML step.
Defect 2 — a warning-only failure discards 106 minutes of successful execution
On the 2026-08-24 run, all 142 notebooks executed successfully (142 Executed notebook in lines, zero CellExecutionError) over 1h46m, and the artifact was then thrown away because the upload step does not run on failure.
Suggested fix: add if: success() || failure() to the Upload "_build" folder (cache) step. jupyter-cache does not store failed executions, so the artifact stays correct even when a lecture genuinely errors, and the run's red status remains the signal. This change alone would have made the 2026-08-24 publish a cache hit despite the hoist_failure defect.
Also noted
cache.yml still carries bare apt-get install steps with no timeout-minutes and no retry — the weakness PR #263 would have hardened before it was closed. Not implicated in any of these four failures (apt was green throughout: graphviz 31s, texlive 3m28s), but it remains the open item behind the documented hang class.
Refs: QuantEcon/project-translation#48 (delivery integrity); #262, #265 (the two content fixes); #263 (closed apt hardening).
- 主要言語
- TeX
- スター
- 5
- フォーク
- 4
- 平均マージ
- 18時間 24分
- マージ済み PR(30日)
- 2
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
QuantEcon/lecture-python.zh-cn のほかの issue
-
Phase 2 tidy-up: revert intersphinx-qualified references once their target lectures are translatedオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
QuantEcon/lecture-python.zh-cn#173 · コメント 2 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 28/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
QuantEcon/lecture-python.zh-cn#266 · コメント 4 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 76/100
QuantEcon/lecture-python.zh-cn#205 · コメント 1 件 ·
QuantEcon/lecture-python.zh-cn の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
HarperFast/harper#2860 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
anthropics/skills#1893 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
pnpm install exits 1: MemoryCore/pnpm-workspace.yaml ships "set this to true or false" placeholdersオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
TencentCloud/TencentDB-Agent-Memory#1544 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
YosysHQ/oss-cad-suite-build#216 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
openwatersio/slackwater.xyz#124 ·
メンテナーはふだん 1 日以内に返信