[Phase 16] S12 — Release DAG and release-time evidence
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
- 8/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- github-actions, python
- Lĩnh vực
- build-system, devops, release, security
Hướng nghiên cứu
Start with the step plan in docs/roadmap/phase-16-trust-surface-hardening.md (lines 636-680) and the release workflow it describes, and note that #889 must land first as the review standard. The issue spans many units and needs throwaway-tag verification on a scratch branch, so it is not a first task. Done means the listed exit criteria pass: the wheel-contract step fails on a missing package-data glob while pytest tests/ stays green, and a supply-chain gate blocks publish.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Roadmap · Phase 16, step S12 · size XL · 9 unit(s) · planned in
docs/roadmap/phase-16-trust-surface-hardening.md:636-680
Summary
Every unit is a defect in the release DAG or in the evidence that DAG should produce, and they share one blast radius: they can only be verified by pushing throwaway tags. Zero lines of the wheel's Python modules execute in any of the twelve release-matrix cells — tests/__init__.py plus pytest's default prepend import mode put the checkout ahead of site-packages — and the SBOM step is metadata-only. What the matrix really gates (wheel build, metadata validity, twine check, cross-platform dependency resolution) is kept.
Units
| Unit | Tracked by (October 2026 review) |
|---|---|
F-W20260729-OPS-01 |
#110 · #111 · #558 · #566 · #702 · #704 · #748 |
F-W20260729-OPS-02, F-W20260729-OPS-03, F-W20260729-OPS-04, F-W20260729-OPS-05, F-W20260729-OPS-06, F-W20260729-OPS-15, F-W20260729-OPS-16, F-W20260729-OPS-19 |
#114 · #303 · #423 · #465 · #533 · #558 · #566 · #607 · #638 · #668 · #686 · #702 · #776 · #795 |
Blocked by
#889 — the standard this step is reviewed against; write it first.
Decisions this step executes
- C-12 — wheel testing: keep the source suite and add a wheel-contract step.
- C-13 — the release-record check exempts PEP 440 pre-releases; tag ↔ version and ancestry are still enforced for every tag.
- C-14 — publishing is gated on a supply-chain scan.
Plan
- Add a
wheel-contractstep run from outside the checkout, mirroring the nightly'swheel-install-smoke. - Add a
supply-chain-gatejob that runs the nightly's two helpers against the tagged SHA. - Local verification is impossible for four criteria: use a scratch branch and throwaway
v0.0.0-test-*tags per rejection case plus a deliberately broken wheel; then restore, re-tag green, delete every throwaway tag from the remote and confirm no[X.Y.Z]heading was left inCHANGELOG.md.
Exit criteria
- Omitting a package-data glob turns the matrix red at the wheel-contract step while
pytest tests/stays green. - A mismatched, off-main or record-less tag cannot reach
build. - A tagged SHA with an unsuppressed
pip-auditfinding cannot reachpublish; a clean one leaves a retained artefact referencing that SHA. - Every referable BOM object has a globally unique
bom-ref, validated against the official CycloneDX schema plus the semantic checks the schema cannot express. - The exact documented command downloads all SBOMs for a real released tag.
- A policy guard rejects any non-local
uses:that is not a full 40-character SHA. - A meta-test compares documentation claims against the workflow trigger inventory, so no document can claim enforcement CI does not perform.
How to deliver
- One root-cause family, committed on its own; then an Opus review round and a Sonnet review round, each with verified findings fixed and committed before the next step begins.
- A reproducer that is red before the fix and green after; the full gauntlet from
CLAUDE.mdpasses under./.venv/bin/python. - Every English documentation edit ships with its Turkish mirror in the same commit; a new or renamed audit event gets its EN and TR catalog rows in the same PR.
- A step that grows a deferred module carries its
budget_historyjustification in the same diff; a widened guard rolls out non-strict first, then flips. - Commit bodies cite
Absorbs F-W20260729-…; the CHANGELOG[Unreleased]section gets an entry only for a change a user or library consumer can observe (decision C-20).
Planned in docs/roadmap/phase-16-trust-surface-hardening.md (read at f94595f). Unit IDs (F-W20260729-…) come from the 2026-07-29/30 full-project review; the issue numbers next to them are the October 2026 review's records of the same defects.
- Ngôn ngữ chính
- Python
- Star
- 9
- Fork
- 1
- Merge trung bình
- 8 giờ 10 phút
- Pull request đã merge (30 ngày)
- 5
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- 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 HodeTech/ForgeLM
-
area: dev-tooling bug severity: low source: roadmap wave: 4
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
Site: the theme-locked --code-comment grey (#6a6f80) on the dark code surface is 3.8:1, below WCAG AA, in both themes (F-W1-SITE-06)Có thể đã có người làm @vortsghost2025 đã nhận hôm nay. Đang mởarea: site bug good first issue severity: low source: review-2026-09 wave: 4
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
-
documentation good first issue severity: medium source: review-2026-09 wave: 3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
documentation good first issue severity: low source: review-2026-09 wave: 4
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 80/100
-
documentation severity: medium source: review-2026-09 wave: 3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Tất cả issue của HodeTech/ForgeLM
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
task
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
danparshall/claude_researcher#87 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
datajoint/datajoint-python#1586 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
1D intercept of length 1 is accepted as `fix_params` in population GLM with more than 1 unitCó thể đã có người làm @dhvani7014 đã nhận hôm nay. Đang mởbug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
flatironinstitute/nemos#642 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Broken links in the docsĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
uniswap-python/uniswap-python#487 ·