-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
Description
背景
kcovをCI/CDから削除しました(#49関連)。削除理由は以下の通りです:
- 保守コストの高さ: kcovのインストールとビルドがCI/CDで複雑(特にUbuntuではソースからのビルドが必要)
- CI/CDの不安定性: kcovの依存関係がCI/CD失敗の原因となり、本質的なテスト実行を妨げていた
- 実用性とのバランス: dotfiles管理という性質上、テストの実行自体が重要で、カバレッジ率の数値は二次的
目的
kcov削除により保守性は向上しましたが、コードカバレッジの可視化は品質管理に有用です。より保守しやすいカバレッジツールの導入を検討します。
要件
必須要件
- ✅ macOS/Ubuntu両対応(macOS優先)
- ✅ CI/CDでの安定した動作
- ✅ Codecovへのレポート連携
- ✅ BATSテストとの統合
- ✅ シンプルなインストール手順
優先要件
- 📊 HTMLレポート生成(ローカル確認用)
- 🚀 高速な実行
- 📦 パッケージマネージャーからのインストール対応
代替ツール候補
1. bashcov
- 概要: SimpleCov-based coverage for bash
- インストール:
gem install bashcov - 利点:
- RubyGemsで簡単インストール
- SimpleCov形式のレポート生成
- 安定した実績
- 欠点:
- Ruby/RubyGems依存
- 追加の言語スタックが必要
- Codecov連携: SimpleCovレポートをCodecovにアップロード可能
2. shcov
- 概要: Shell coverage tool
- インストール: Pure shell implementation
- 利点:
- 外部依存なし
- シンプルな実装
- 欠点:
- 成熟度が低い
- 機能が限定的
- Codecov連携が不明確
3. kcov(再評価)
- 概要: Code coverage tool for compiled/interpreted programs
- インストール: Homebrew(macOS)、ソースビルド(Ubuntu)
- 利点:
- 高機能
- Codecov標準対応
- 欠点:
- Ubuntu環境でのビルドが複雑
- CI/CDの保守コスト高
4. その他の選択肢
- bash-coverage: 実験的、メンテナンス状況不明
- Codecov Bash Uploader: カバレッジ計測なし、レポートアップロードのみ
- GitHub Actions標準ツール: 現時点でBash向けの標準ツールなし
検討事項
-
ツール選定基準
- CI/CD安定性 > 機能性
- 保守コスト最小化
- macOS環境での動作確認(優先環境)
-
段階的導入
- Phase 1: macOS環境のみでカバレッジ計測
- Phase 2: Ubuntu環境への拡大(必要に応じて)
-
代替アプローチ
- カバレッジ計測を別ワークフローに分離(本体テストへの影響最小化)
- オプトイン方式(デフォルトは無効、必要時のみ有効化)
-
費用対効果
- dotfilesプロジェクトにおけるカバレッジ率の実用価値
- テスト品質向上との比較
アクションアイテム
- bashcovのローカル検証(macOS環境)
- bashcovのCI/CD統合テスト
- Codecov連携の実装確認
- Ubuntu環境での動作検証
- パフォーマンス測定(テスト実行時間への影響)
- 導入可否の最終判断
参考リンク
関連
- feat: add brew-dump-explicit script and corresponding tests #49 feat: add brew-dump-explicit script and corresponding tests (kcov削除のPR)
coderabbitai and Copilot