Skip to content

リリース & バージョニングポリシー

SemVer の解釈

ARI は Semantic Versioning 2.0 に従います。

バンプ変更内容
MAJOR (1.0 → 2.0)パブリックサーフェスへの後方非互換な変更ari.public.* シンボルの削除、MCP ツールのセマンティクス変更、チェックポイントフォーマットの破壊的変更
MINOR (0.6 → 0.7)後方互換な機能追加ari.public.* シンボル、新 MCP ツール、新 ari サブコマンド、安全なデフォルト値を持つ新環境変数
PATCH (0.7.0 → 0.7.1)バグ修正、ドキュメント更新、API サーフェスに影響しない内部リファクタリングツール I/O を変えない LLM プロンプト調整、ダッシュボード CSS、依存関係バンプ

SemVer 目的でのパブリックサーフェス:

  • CLI (ari ...) — ドキュメント化されたすべてのサブコマンドとフラグ。
  • ari.public.* Python インポート。
  • 各スキルの mcp.json ツール一覧、名前、リクエスト/レスポンスの形状。
  • viz REST API (/api/ 配下のすべて)。
  • ドキュメント化されたチェックポイントファイル (tree.jsonnodes_tree.jsonnode_report.jsonsettings.jsonworkflow.yamlexperiment.mdmanifest.lockpublish_record.jsonlineage_decisions.jsonl)。
  • ドキュメント化された環境変数 (docs/reference/environment_variables.md に記載のもの)。

パブリックサーフェスに含まれないもの:

  • ari.public.* 外のモジュール。
  • 内部専用ヘルパー (_ プレフィックスの名前)。
  • テストフィクスチャと vendor/ スナップショット (PaperBench、VirSci など)。
  • ari/prompts/ 配下のプロンプト文字列 (フェーズ PC が管理するが SemVer 保護対象外 — ツール I/O コントラクトが維持される限り、マイナーリリースで変更可能)。

サポートポリシー

ブランチステータスバックポート対象
main (最新マイナー)アクティブ機能追加 + バグ修正
直前のマイナー次のマイナーリリース後 6 か月 メンテナンスセキュリティ + 重大バグ修正のみ
それ以前のマイナーサポート終了なし

現在の状態は CHANGELOG.mdGitHub releases ページで確認できます。

非推奨化 & 削除

非推奨化 とは、パブリックシンボルまたは動作が削除される予告です。 以下のライフサイクルに従います:

  1. アナウンス — リリースノートと CHANGELOG.md で変更を告知。
  2. 警告 — ランタイムが少なくとも 1 つのマイナーリリースの間 DeprecationWarning を出力。
  3. 削除 — 次の MAJOR で警告を削除し、コードを除去。

現在進行中の例 (全プログラムは CONTRIBUTING.md::Deprecation process に折り込まれています):

項目アナウンス警告開始削除予定
$HOME/.ari/registries.yaml フォールバックv0.5.0v0.7.1v1.0
$HOME/.ari/registry-data フォールバックv0.5.0v0.7.1v1.0
レガシー v0.5 JSONL メモリストアv0.5.0v0.5.0v1.0
~/.ari/memory.json デフォルト引数v0.7.0v0.7.1 (削除済み)v1.0
ari/migrations/v05_to_v07/ シムv0.7.0v0.7.0v1.0

リリースチェックリスト

リリースを切る際:

  1. CHANGELOG.md に新しいセクションを追加する。エントリは Added / Changed / Fixed / Deprecated / Removed / Security に分類してまとめる。
  2. ari-core/pyproject.toml と各 ari-skill-*/pyproject.toml のバージョンをバンプする。
  3. フルテストスイートと refactor-guardsdocs-syncdocs-change-coupling CI ワークフローを実行する。
  4. ドキュメントゲートを実行する:
    • grep -rn '~/\.ari/' docs/ (refactor_audit.md を除く) がゼロを返す。
    • ドキュメント化されたすべての環境変数が実際のソース参照にマップされる。
    • ドキュメント化されたすべての MCP ツールがスキルの mcp.json に存在する。
    • python scripts/docs/check_doc_sources.py --require-all が 0 で終了する (すべての live doc の sources: パスが実在する)。
    • python scripts/docs/check_doc_links.py が 0 で終了する (docs 内リンク / HTML href が壊れていない)。
    • python scripts/docs/check_translation_freshness.py --strict が 0 で終了する (ja/zh 翻訳の last_verified が英語版より古くない — ソーストレーサビリティ 参照)。
    • python scripts/docs/check_i18n_js.py が 0 で終了する (3 つの docs/i18n/*.js のキー集合が一致する)。
    • python scripts/docs/check_readme_parity.py が 0 で終了する (ルート README.{md,ja,zh} の見出し構造が一致する)。 --strict なしなら警告のみの非ブロッキングレポート。
  5. タグ付け: git tag v0.X.Y && git push origin v0.X.Y
  6. GitHub でリリースを作成し、changelog の抜粋を添付する。
  7. バンドルを公開する: 同梱する必要があるアーティファクトに対して ari ear publish を実行する。

互換性ウィンドウ

  • MINOR リリースは前方互換です: 直前のマイナーで生成したチェックポイントは 新しいマイナーでも動作し続ける必要があります。
  • MAJOR リリースでは 1 回限りのマイグレーションステップが必要になる場合があります。 マイグレーションは docs/guides/migration.md に記載されており、 ari migrate ... で実行します。
  • スキルは独立してバージョン管理されます。0.7.x のスキルは ari-core の任意の 0.7.y と動作するはずです (マイナー内での互換性)。 マイナーをまたぐ場合は協調リリースを予定します。

関連

  • CHANGELOG.md — リリースごとのノート。
  • CONTRIBUTING.md::Deprecation process — 非推奨化の全プログラム。
  • docs/guides/migration.md — バージョンごとのマイグレーションレシピ。
  • docs/reference/public_api.md — このポリシーが保護するサーフェス。