Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Adopt the `minimal_config` test factory across the suite and add a CI guard on its adoption rate

オープン
#910 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
リファクタリング
明瞭さ
おおむね明確
活発さ
活発
技術スタック
github-actions, python
領域
ci-cd, testing

調査の方向性

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 の本文から書いたものです。

説明

area: dev-tooling severity: low source: roadmap wave: 4

Deferred work · F-PR29-A4-03 · severity Low · cost ~3-4 h · recorded in docs/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 ForgeConfig dicts in tests use minimal_config(...) (or document why they cannot).
  • tools/check_test_factory_adoption.py fails below the agreed rate and is wired into ci.yml, the CLAUDE.md / AGENTS.md / CONTRIBUTING.md gauntlet and tests/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
平均マージ
4時間 3分
マージ済み PR(30日)
3

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

HodeTech/ForgeLM のほかの issue

HodeTech/ForgeLM の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。