Reproducibility: what would it take to rebuild a published lecture exactly?
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- docker, github-actions, shell
- 領域
- build-system, ci-cd, devops
調査の方向性
まず containers/quantecon/Dockerfile、containers/quantecon-build/Dockerfile、.github/workflows/build-containers.yml から始め、次に PLAN.md:82 と、そこで参照されている consumer ファイルを確認してください。直ちに対応可能な範囲は /etc/quantecon-container マーカーですが、より広い issue では、識別と recipe の再現性を floating tag とどのように両立させるかを定義する必要があります。完了基準はまだ整理されていません。
索引モデルが issue の本文から書いたものです。
説明
From QuantEcon/meta#52 (2021, closed as answered): can containers give us reproducible QuantEcon environments? Answered for our CI here; this issue holds the rest.
1. No environment a reader or collaborator can reproduce. Images are internal — an anonymous pull of ghcr.io/quantecon/quantecon returns UNAUTHORIZED — so readers get Colab.
2. Our own builds are not reproducible either.
- Consumers float on a mutable tag: builds emit a commit-SHA tag beside
:latest(type=sha,prefix={{branch}}-→main-<short-sha>,.github/workflows/build-containers.yml:63,:105), but every consumer and doc pins:latest(README.md:108,docs/CONTAINER-GUIDE.md:9-10,setup-environment/README.md:34-35); neither is stable, since the weekly rebuild (cron: '0 2 * * 1',:11) re-pushes both at the same commit. The SHA names the recipe commit, not the image; only the digest is durable and nothing records it — the publish manifest carries name/tag/commit/timestamp/size, no container identity (publish-gh-pages/action.yml:126-135). - Recipes float too:
FROM ubuntu:24.04, tag not digest (containers/quantecon/Dockerfile:1,containers/quantecon-build/Dockerfile:1); unpinned TeXLive/systemapt-get install(containers/quantecon/Dockerfile:8); unpinnedquantecon-book-networksin both env files (containers/quantecon/environment.yml:25,containers/quantecon-build/environment.yml:74); lean image's Jupyter Book stack floor-pinned>=(containers/quantecon-build/environment.yml:65-73). Only the Miniconda installer is fetched under a checksum (containers/quantecon/Dockerfile:77-78), so date- or digest-addressing a past image still would not make it rebuildable. - Unversioned AMI: lecture repo GPU workflows name the RunsOn AMI bare,
image=quantecon_ubuntu2404, no digest or version. - Unpinned build-time installs:
pip install -U "jax[cuda13]"in bothlecture-python.mystandlecture-jax, pluspip install numpyroin the former.
Only the first two are owned here, but all four compose.
Identify (which environment built this publish?) is cheap and already homed: #30's field list includes container tag/digest, PLAN.md:82 names container digest capture. Rebuild (from the recipe) needs a base-image digest pin plus an apt pin set, and must not be assumed by it.
Any answer must be additive: floating is deliberate — exact pins on action refs stranded lecture-dp three releases behind (PLAN.md:33), and the proposed fix there is a staging tag plus a release gate (#135), not a repin of consumers.
- Record the building commit SHA in
/etc/quantecon-container, today a bare marker line, an untaggedimage=ghcr.io/quantecon/quantecon, andbuild_date(containers/quantecon/Dockerfile:99-101). Makes containers self-identifying; #30 needs it regardless.
QuantEcon/meta#349 (pixi lockfiles) and QuantEcon/meta#165 (uv) cover the conda and pip layer, both scoped to maintainer/CI tooling; the system and reader layers are untracked. Not urgent, not necessarily one piece of work — filed to give the question a public home.
- 主要言語
- Shell
- スター
- 0
- フォーク
- 1
- 平均マージ
- 20時間 3分
- マージ済み PR(30日)
- 48
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
QuantEcon/actions のほかの issue
-
low-priority
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 1/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
メンテナーはふだん 1 日以内に返信
-
bug infrastructure
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
メンテナーはふだん 1 日以内に返信
QuantEcon/actions の issue をすべて見る
似ている issue
-
ci: Simplify e2e base image build対応中かも @nealrichardson が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
メンテナーはふだん 1 日以内に返信
-
help wanted new command
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
tldr-pages/tldr#25111 ·
メンテナーはふだん 1 日以内に返信
-
chore
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
alunduil/alunduil-chezmoi#1170 ·
メンテナーはふだん 1 日以内に返信
-
package-update
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
fabriziosalmi/secure-proxy-manager#619 ·
メンテナーはふだん 1 日以内に返信