Files
hakorune/docs/development/current/main/phases/phase-287/P2-INSTRUCTIONS.md
tomoaki 4cc324c06e smokes(v2): Slim quick profile (Phase 287 P1)
Phase 287 P1 completed: Quick profile optimization

Changes:
- Moved 204 heavy tests from quick to integration profile
- Reduced execution time: 449.1s → 55.0s (88% reduction)
- Reduced test count: 651 → 447 tests (31% reduction)
- Maintained relative path structure for --filter compatibility

Moved test directories (14 total):
- phase2100, phase2211, phase2120, phase2220, phase251
- phase2160, phase2047-2051 (7 dirs), analyze

Profile responsibilities:
- quick: Fast feedback (55s, 447 tests)
- integration: Comprehensive validation (selfhost, S3, LLVM)

Documentation updates:
- tools/smokes/v2/README.md: Profile definitions
- docs/development/current/main/phases/phase-287/README.md: P1 results

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-25 07:48:18 +09:00

2.9 KiB
Raw Blame History

Phase 287 P2optional: quick を「45秒」へ寄せる指示書

目的

  • tools/smokes/v2/run.sh --profile quick~45秒以内へ寄せる。
  • quick の責務を「最小ゲート」に寄せ、網羅・重い導線は integration/full/plugins に移す。
  • 意味論は不変(テスト分類/配置のみ)。

前提P1の到達点

  • quick は 55秒 / 447 tests まで改善済み。
  • ここからの削減は「残っている遅いテストをさらに移す」だけで狙うrunner改造や並列化はP3

成功条件(受け入れ基準)

  • quick が 45秒以内(目安)で完走する。
  • 速さ優先。テスト本数 ~100 は“理想”だが、P2 では 時間を第一にする。
  • --filter の導線を壊さない(移動は相対パス維持を基本にする)。

手順

0) まずP1の成果をコミット推奨

P2 を始める前に、P1 を1コミットに固める後戻りを容易にする

git add -A
git commit -m "smokes(v2): slim quick profile (Phase 287 P1)"

1) quick の再計測(現状の遅い上位を出す)

./tools/smokes/v2/measure_test_times.sh quick /tmp/smoke_test_times_quick_p2.txt
head -50 /tmp/smoke_test_times_quick_p2.txt.sorted

ここで「上位(遅い順)に何が残っているか」を確認する。

2) “遅いファミリー” を integration へ寄せる(構造的に解決)

基本方針:

  • まず ディレクトリ単位で git mv(最小手数・効果大)。
  • 例外的に“その中の1本だけ quick に残したい”場合のみ個別に戻す。
  • 移動先は tools/smokes/v2/profiles/integration/ で、相対パス階層を維持する。

例(イメージ):

git mv tools/smokes/v2/profiles/quick/core/phaseXXXX tools/smokes/v2/profiles/integration/core/

判定基準P2で移す寄せ方:

  • 1本が重い>0.5s 以上が繰り返し出る)
  • crate exe / S3 / selfhost / 長尺の外部I/O / 大量fixture を含む
  • “壊れたら困る入口” ではないquickの責務外

3) 45秒に届くまで「上位を削る」を繰り返す

time ./tools/smokes/v2/run.sh --profile quick
  • 45秒を切ったらP2は終了。
  • 切らない場合は、計測の上位から追加で移す。

4) docs を更新SSOTを合わせる

  • docs/development/current/main/phases/phase-287/README.md に P2 の Before/After秒・本数を追記。
  • tools/smokes/v2/README.md の目安quick=~45sは“達成/未達”を明記(未達なら次の方針も書く)。

非ゴールP2ではやらない

  • runner の並列化(--jobs を実装して速くする): Phase 287 P3
  • quick を “マニフェスト(明示リスト)” 管理に変える: 必要なら別提案runner変更を伴う