Adopt the `minimal_config` test factory across the suite and add a CI guard on its adoption rate
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 45/100
调研方向
Start by reading minimal_config in tests/_helpers/factories, then grep tests/test_*.py for inline "name_or_path": dicts to see which modules still build configs by hand. The guard script tools/check_test_factory_adoption.py does not exist yet; it needs to fail below 70% adoption and be wired into ci.yml and tests/test_guard_wiring.py. Done means the migrated modules pass, the guard runs in CI, and the CHANGELOG names the deferral ID.
由索引模型根据 Issue 内容生成。
描述
Deferred work ·
F-PR29-A4-03· severity Low · cost ~3-4 h · recorded indocs/roadmap/risks-and-decisions.md:81
Summary
tests/_helpers/factories.minimal_config is documented as the single source of a minimal valid ForgeConfig, but only 21 of 128 test modules use it and 21 modules build inline config dicts without it, so a schema change has to be applied by hand to every inline copy. The PR #29 plan was a bulk migration plus tools/check_test_factory_adoption.py failing CI below 70 % adoption; adoption has since fallen from 30 % to about 16 % as the suite grew.
Condition or budget
None recorded (the row still names v0.6.x, long past). Guard threshold: 70 % adoption.
State today (re-checked 2026-10-09)
21 of 128 tests/test_*.py modules use the factory; 36 modules hold 116 inline "name_or_path": config dicts; tools/check_test_factory_adoption.py does not exist.
Acceptance criteria
- Inline
ForgeConfigdicts in tests useminimal_config(...)(or document why they cannot). -
tools/check_test_factory_adoption.pyfails below the agreed rate and is wired intoci.yml, theCLAUDE.md/AGENTS.md/CONTRIBUTING.mdgauntlet andtests/test_guard_wiring.py. - The row is removed from the deferral table and the CHANGELOG names its ID (the table's removal contract).
Recorded in docs/roadmap/risks-and-decisions.md (read at f94595f) and re-checked against the code on 2026-10-09. The row leaves that table only when the fix is on main, the CHANGELOG names its ID and any promised guard exists.
- 主要语言
- Python
- 星标
- 9
- 派生
- 1
- 平均合并
- 8 小时 10 分钟
- 30 天内合并 PR
- 5
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
HodeTech/ForgeLM 的其他 Issue
-
area: dev-tooling bug severity: low source: roadmap wave: 4
难度 2/5 1-3 小时 新手友好度 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)可能已有人在做 @vortsghost2025 于 1 天前认领。 未关闭area: site bug good first issue severity: low source: review-2026-09 wave: 4
难度 2/5 1-3 小时 新手友好度 66/100
-
Choosing-a-trainer table documents KTO rows as {prompt, response, label}, but the KTO loader requires a completion column (F-W1-DOCS-TRAIN-02)可能已有人在做 @vortsghost2025 今天认领。 未关闭documentation good first issue severity: medium source: review-2026-09 wave: 3
难度 2/5 1-3 小时 新手友好度 75/100
-
documentation good first issue severity: low source: review-2026-09 wave: 4
难度 1/5 1-3 小时 新手友好度 80/100
-
documentation severity: medium source: review-2026-09 wave: 3
难度 2/5 1-3 小时 新手友好度 72/100
相似的 Issue
-
md/asciidoc/csv: an explicit `encoding="utf-8"` keeps a leading BOM, the auto-detect path drops it未关闭
难度 2/5 1-3 小时 新手友好度 82/100
docling-project/docling#4846 ·
维护者通常 1 天内回复
-
area/sessions comp/dashboard comp/desktop comp/gateway comp/tui duplicate P2 sweeper:risk-session-state type/bug
难度 2/5 1-3 小时 新手友好度 78/100
NousResearch/hermes-agent#138914 · 1 条评论 ·
维护者通常 1 天内回复
-
bot-triaged module: activation checkpointing module: inductor oncall: pt2 triaged
难度 2/5 1-3 小时 新手友好度 62/100
维护者通常 1 天内回复
-
[oblt-aw][autodoc] Update PR Actions Detective E2E prerequisites and fix dashboard-format table typo未关闭documentation
难度 2/5 1-3 小时 新手友好度 75/100
elastic/oblt-aw#2382 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复