概要
現在、aldc は latex-environment をダウンロードする際に以下の形式でブランチアーカイブを使用しています:
${REPOSITORY_URL}/archive/refs/heads/${BRANCH}.zip
この方法について、GitHub releases の使用を検討することを提案します。
現在の実装の課題
ブランチアーカイブ方式の問題点
-
バージョン管理の不安定性
- ブランチの内容が予告なく変更される可能性
- 特定の時点での状態を保証できない
- 再現可能性の問題
-
依存関係管理の困難さ
- 明確なバージョン番号がない
- 互換性の確認が困難
- 破壊的変更の通知が困難
-
ユーザーエクスペリエンスの問題
- どのバージョンを使用しているか不明
- 安定版と開発版の区別ができない
- 問題発生時のトラブルシューティングが困難
GitHub Releases を使用する利点
1. バージョン管理の改善
- セマンティックバージョニング: v1.0.0, v1.1.0 などの明確なバージョン番号
- 安定性: リリース後の内容は変更されない
- タグベース: 特定のコミットに対応する確実な参照
2. 依存関係管理の向上
- 互換性マトリクス: どのバージョンが互換性があるか明確
- 破壊的変更の通知: メジャーバージョンアップで明示
- 段階的アップグレード: マイナーバージョンでの安全な更新
3. ユーザーエクスペリエンスの改善
- 明確な選択肢: 安定版、プレリリース版の区別
- リリースノート: 変更内容の詳細な説明
- ダウンロード統計: 利用状況の把握
技術的実装方法
GitHub Releases API の活用
# 最新リリースの取得
curl -s https://api.github.com/repos/smkwlab/latex-environment/releases/latest
# 特定バージョンの取得
curl -s https://api.github.com/repos/smkwlab/latex-environment/releases/tags/v1.0.0
ダウンロード URL の変更
# 現在の方式
${REPOSITORY_URL}/archive/refs/heads/${BRANCH}.zip
# 提案する方式
${REPOSITORY_URL}/archive/refs/tags/${VERSION}.zip
# または
${REPOSITORY_URL}/releases/download/${VERSION}/latex-environment-${VERSION}.zip
実装上の検討事項
1. バージョン指定方法
- デフォルト動作: 最新安定版を使用
- 明示的指定:
--version v1.2.0 のようなオプション
- プレリリース:
--pre-release フラグでベータ版を使用
2. 下位互換性
- 既存のブランチ指定方式も維持
- 段階的な移行をサポート
- 移行期間中の警告メッセージ
3. エラーハンドリング
- 指定されたバージョンが存在しない場合の処理
- ネットワークエラー時のフォールバック
- 不正なバージョン形式の検証
影響範囲
latex-environment リポジトリ
- GitHub Actions でのリリース自動化
- バージョンタグの適切な付与
- リリースノートの作成
aldc の変更点
- バージョン解決ロジックの実装
- CLI オプションの追加
- エラーメッセージの改善
エコシステム全体
- 他のコンポーネントとの整合性確保
- ドキュメントの更新
- ユーザー向けの移行ガイド
提案する実装手順
- Phase 1: GitHub Releases API 対応の実装
- Phase 2: CLI オプションの追加とテスト
- Phase 3: デフォルト動作の変更
- Phase 4: 旧方式の廃止予定告知
関連Issue・PR
- latex-environment リポジトリでのリリース自動化
- ecosystem-manager.sh での対応
- ドキュメントの更新
この変更により、より安定で管理しやすいバージョン管理システムを構築できると考えています。ご検討をお願いします。
概要
現在、aldc は latex-environment をダウンロードする際に以下の形式でブランチアーカイブを使用しています:
この方法について、GitHub releases の使用を検討することを提案します。
現在の実装の課題
ブランチアーカイブ方式の問題点
バージョン管理の不安定性
依存関係管理の困難さ
ユーザーエクスペリエンスの問題
GitHub Releases を使用する利点
1. バージョン管理の改善
2. 依存関係管理の向上
3. ユーザーエクスペリエンスの改善
技術的実装方法
GitHub Releases API の活用
ダウンロード URL の変更
実装上の検討事項
1. バージョン指定方法
--version v1.2.0のようなオプション--pre-releaseフラグでベータ版を使用2. 下位互換性
3. エラーハンドリング
影響範囲
latex-environment リポジトリ
aldc の変更点
エコシステム全体
提案する実装手順
関連Issue・PR
この変更により、より安定で管理しやすいバージョン管理システムを構築できると考えています。ご検討をお願いします。