概要
SourceSage v7.0.0は、プロジェクトの方向性を再定義し、コア機能に焦点を当てたメジャーアップデートです。
これまでのAIを活用した多彩な実験的機能(CommitCraft, DocuMind, IssueWizeなど)を廃止し、「リポジトリの静的分析」と「リリースレポート生成」という2つの強力な機能に特化しました。
この変更により、ツールはよりシンプルで軽量になり、CI/CDパイプラインへの統合やローカルでの手軽な分析がさらに容易になりました。
また、内部的にも大きな刷新を行っており、Pythonのモダンなパッケージング手法 (pyproject.toml) への完全移行や、高速なパッケージ管理ツール uv への正式対応、そして rich ライブラリ導入によるCLIの表現力向上など、開発体験と使いやすさを大幅に改善しています。
✨ 主な変更点
🎯 機能の絞り込みとシンプル化
- コア機能への集中: 実験的なAI機能群を削除し、以下の2つの安定した機能に特化しました。
- Repository Summary Generation: リポジトリ構造を解析し、AIが読みやすい形式のサマリーを生成します。
- Release Report Generation: 2つのGitタグ間の差分からリリースレポートを自動生成します。
- コードベースのスリム化: 不要になった多数のモジュールを削除し、メンテナンス性と信頼性を向上させました。
🛠️ モダンな開発環境への移行
pyproject.tomlへの完全移行: 従来のsetup.pyを廃止し、PEP 621に準拠したpyproject.tomlでのパッケージ管理に完全に移行しました。ビルドバックエンドにはhatchlingを採用しています。uvの公式サポート: 高速なパッケージ管理ツールuvを全面的にサポートし、開発環境のセットアップを高速化しました。(uv.lockファイルを追加)ss短縮コマンドの追加:sourcesageコマンドのエイリアスとしてssを導入し、より素早くコマンドを実行できるようになりました。
💅 CLIの改善
- リッチなUI/UX:
richライブラリを導入し、コマンドラインの出力を視覚的に分かりやすく刷新しました。カスタムヘルプ画面や、処理状況を示すステータス表示により、操作性が向上しています。
💥 破壊的変更
- 以下の実験的機能と、それに関連するCLIオプションは削除されました。
CommitCraft(コミットメッセージ生成支援)DocuMind(リリースノート自動生成)IssueWize(GitHub Issue作成支援)
- これに伴い、
google-generativeai,litellmなどの大規模言語モデル関連の依存ライブラリも削除されました。
📝 ファイル変更の詳細
追加された主要ファイル
pyproject.toml: 新しいパッケージ定義ファイル。依存関係、ビルド設定、スクリプトなどが集約されています。uv.lock:uv用の依存関係ロックファイル。sourcesage/logging_utils.py:richライブラリを利用した新しいロギング設定モジュール。sourcesage/modules/DiffReport/: リリースレポート生成機能がこの新しいモジュールに再構成されました。
削除された主要ファイル
setup.py:pyproject.tomlへの移行に伴い削除されました。.aira/: AIRA連携用の設定ファイルが削除されました。sourcesage/modules/:CommitCraft,DocuMind,IssueWize,ChangelogGenerator,GitHubIssueRetrieveなど、廃止された機能に関連する多数のモジュールが削除されました。sourcesage/config/:STAGE_INFOやISSUES_RESOLVEなどのテンプレートファイルが削除されました。
更新された主要ファイル
README.md: プロジェクトの新しい方針に合わせて、機能説明やクイックスタートなどを全面的に書き直しました。sourcesage/cli.py:richを統合し、不要なコマンドオプションを削除するなど、大幅にリファクタリングされました。sourcesage/core.py: 廃止された機能の呼び出しを削除し、コアロジックがシンプルになりました。.SourceSageignore: Terraform関連ファイル、各種ロックファイル (uv.lock,yarn.lockなど) を無視するようルールを拡張しました。