Mega-Gorilla / Mega-Gorilla/livecap-cli
chore(engines): define NeMo supported version policy and smoke-gate strategy
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 5
- Forks
- 1
- Avg merge
- 11h 26m
- Merged PRs (30d)
- 35
Description
Background
PR #323 (Issue #321 PR #2) で Canary / Parakeet の NeMo fallback chain (Path 2/3 + return_hypotheses=True TypeError fallback) を削除、framework contract を trust する方針に整理しました。同 PR plan で「nemo-toolkit version contract は >=2.3.0,<2.5.0 を維持」と決定しましたが、これは 暗黙的な policy として PR 内に残しており、project-level の明示的な policy ドキュメントは未整備です。
最近の cleanup 群 (PR #320 / PR #322 / PR #323 / PR #325 / PR #329) で「silent fallback を残さず hard fail」方針が固まったため、NeMo 互換性を smoke gate に委ねる という選択を取った以上、policy を明文化する必要があります。
要検討論点
1. nemo-toolkit>=2.3.0,<2.5.0 の根拠
pyproject.toml:83 の現行 range:
"nemo-toolkit>=2.3.0,<2.5.0", # 2.1.0 has canary transcription bug (empty output)
- 下限
2.3.0: Canaryreturn_hypotheses=True安定動作 (#311 PR-A.4.2 で verify、2.1.0 は canary transcription bug で除外) - 上限
<2.5.0: 上限の 根拠が PR 内 plan に明文化されておらず、暗黙的
→ 論点: 上限 <2.5.0 の根拠を実機 verify して明文化すべきか? それとも保守的に <2.5.0 を維持か?
2. lockfile (uv.lock) pinned vs version range の関係
uv.lockの pinned2.3.0が CI smoke の実行基準- user の
uv syncで<2.5.0の最新 (例:2.4.x) も install されうる - CI smoke は 2.3.0 のみ verify、2.4.x で動かなくなる risk あり
→ 論点:
- (a) 「対応保証 = pinned (
==2.3.0)」を明示、range は緩めに残す → user 自己責任 - (b) 「range 内なら動く」を主張、上限/下限の境界で smoke を回す
- (c) lockfile pinned を contract として CI smoke で verify、range は「動作期待 (未保証)」とする (現状の暗黙 policy)
3. CI smoke gate の役割
PR #323 で engine-smoke-gpu job が merge gate 化、test_token_confidence_populated で 3 case verify:
| Case | Expected token_confidence_mean |
|---|---|
canary_gpu_en |
> 0.05 (PR-A.4.2 baseline 0.0724) |
parakeet_gpu_en |
> 0.10 (PR-A.4.3 baseline 0.2452) |
parakeet_ja_gpu_ja |
> 0.02 (PR-A.0 baseline 0.0504) |
→ 論点:
- 上限 nemo (
2.4.x) で smoke を回す runner を追加するか? - 上限 nemo が動かなくなった時の検知方法は? (現状: user 報告か、scheduled CI で発覚)
- Renovate / Dependabot 導入の是非
4. Version bump 手順
新 nemo バージョン採用時の決定 flow:
- (a) 個別 PR で
pyproject.toml上限拡大 + smoke 実機 verify (manual review) - (b) Scheduled CI で latest nemo を試行、failure 時に notification
- (c) GitHub Dependabot auto-PR (smoke gate が pass すれば auto-merge)
- (d) (現状) 暗黙的、必要な時に PR で対応
→ 論点:
- どの方針を採るか?
- 上限拡大時の必要 verification は何か? (smoke 3 case pass 以外に必要なものは?)
- 上限 nemo で confidence threshold が下がった (例: 0.0724 → 0.04) ような subtle regression を検知する仕組みは必要か?
5. Fallback を増やさない方針の継続
PR #323 で削除した Path 2/3 (silent degradation 源) を、将来の nemo update 時に「互換のため再 introduce」しない原則を明文化:
- 新 nemo で
change_decoding_strategy(confidence_cfg=...)が rejected → fallback を増やさず、上限を<X.Yに下げる (= 互換性を broken と判断、nemo bump を delay) return_hypotheses=Trueが deprecated → API 削除と判断、対応 nemo 上限を更新 (= silent fallback を増やさない)
→ 論点: この原則を docs/development/nemo-version-policy.md (新規) と CLAUDE.md の Backward Compatibility Policy section に link で明文化するか?
提案する Policy 文書化
新規ファイル: docs/development/nemo-version-policy.md
以下 5 sections で構成:
- 対応 range の現状 (
>=2.3.0,<2.5.0) と各 boundary の根拠 (下限 = canary bug、上限 = 要 verify) - 動作保証 level:
- pinned (
uv.lock2.3.0) = fully guaranteed by CI smoke - range (
<2.5.0内の他 version) = 動作期待、未保証
- pinned (
- CI smoke gate の役割: PR-A.4.2/A.4.3/A.5.2 で確立した confidence populate verify (3 case + per-case threshold)
- Version bump workflow: 誰が trigger、何を確認、どこに記録 (PR title prefix
chore(deps): bump nemo-toolkit to X.Y等の convention) - Fallback addition の禁止原則: 互換目的の silent fallback は復活させない (PR #323 precedent 通り、上限を下げて互換切れを宣言する方を選ぶ)
Update: AGENTS.md / CLAUDE.md
NeMo 関連の判断で本 policy doc を reference するよう add link section。
Scope
IN scope (本 issue 実装時)
docs/development/nemo-version-policy.md新規作成、上記 5 sectionAGENTS.mdまたはCLAUDE.mdから policy 文書への link 追加- (option)
pyproject.toml:83の comment で>=2.3,<2.5の根拠を明文化 (現状 comment は下限のみ言及)
OUT scope
- 実際の nemo version bump (本 issue は policy 整備のみ)
- Renovate / Dependabot 導入 (別議論)
- 他 framework (transformers / torch / sherpa-onnx) の version policy (本 issue は NeMo 限定)
- 上限 nemo (
2.4.x) での実機 verify (実装段階で必要なら別 PR)
Acceptance criteria (実装段階)
- 論点 1-5 すべてに決定: 本 issue を policy 化する前に、design 決定を本 issue comment に明記
-
docs/development/nemo-version-policy.md新規作成、5 sections を明記 - 下限
>=2.3.0の根拠 (canary bug avoidance) を git history / PR #311 へ link - 上限
<2.5.0の根拠を実機 verify して明文化、または「保守的上限、未 verify」を明示 - CI smoke gate の役割 (PR #323 の
test_token_confidence_populated) を policy 文書から reference - AGENTS.md または CLAUDE.md から policy 文書への link 追加
- PR #323 で確立した「fallback を増やさない」原則を CLAUDE.md「Backward Compatibility Policy (pre-1.0)」の補足として記述
Related
- 起点: PR #323 (NeMo fallback chain cleanup、本 issue で policy 化が必要と判断された場)
- precedent (framework-trust 方針): PR #320 commit
ee1d2c1、PR #322、PR #325 - related cleanup: PR #329 (Issue #326 SharedEngineManager orphan 削除)
- 関連 file:
pyproject.toml:83—nemo-toolkit>=2.3.0,<2.5.0(本 issue の対象 range)uv.lock— pinnednemo-toolkit==2.3.0(現状の CI smoke 実行 version)tests/integration/engines/test_smoke_engines.py::test_token_confidence_populated— PR #323 で導入した merge gate (本 issue policy で reference 予定)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read pyproject.toml:83, uv.lock, tests/integration/engines/test_smoke_engines.py::test_token_confidence_populated, and the related PRs before resolving the five policy decisions in the issue. Then create docs/development/nemo-version-policy.md and add references in AGENTS.md or CLAUDE.md. Done means the decisions, version guarantees, smoke-gate role, bump workflow, and no-fallback principle are documented with the requested links.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- ci-cd, documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100