Reproducibility: what would it take to rebuild a published lecture exactly?
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- docker, github-actions, shell
- Lĩnh vực
- build-system, ci-cd, devops
Hướng nghiên cứu
Bắt đầu với containers/quantecon/Dockerfile, containers/quantecon-build/Dockerfile và .github/workflows/build-containers.yml, sau đó xem lại PLAN.md:82 cùng các tệp consumer được tham chiếu. Phạm vi có thể thực hiện ngay là marker /etc/quantecon-container, nhưng issue rộng hơn yêu cầu xác định cách việc nhận diện và khả năng tái lập của các recipe có thể cùng tồn tại với các floating tag; các tiêu chí hoàn tất vẫn chưa được hợp nhất.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Shell
- Star
- 0
- Fork
- 1
- Merge trung bình
- 18 giờ 51 phút
- Pull request đã merge (30 ngày)
- 58
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của QuantEcon/actions
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 84/100
Maintainer thường phản hồi trong vòng 1 ngày
-
low-priority
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày
-
infrastructure low-priority
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 39/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 1/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của QuantEcon/actions
Issue tương tự
-
S3: friction & debt ws:testing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
MedakaLang/medaka#5184 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Link Checker ReportĐang mởautomated issue report
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
a2aproject/A2A#2445 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Blacklist | solotogelbisa.comĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
MadiroGlobalHealth/UVL-EMR#580 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Storage with Nitro Sandboxes: clarify which CSI volumes are supported (third-party NFS volumes fail)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
awsdocs/amazon-eks-user-guide#1259 ·