APIの安定性とリリースタイプ
APIの安定性
Koinプロジェクトは、バージョン間での高い互換性を維持することにコミットしています。Kotszillaチームとすべての現行メンテナーは、新しいリリースで導入されるいかなる変更、機能強化、または最適化も、既存のアプリケーションを破壊しないことを確実にするために取り組んでいます。 私たちは、安定した予測可能なアップグレードパスがユーザーにとって重要であることを理解しており、APIを進化させる際に混乱を最小限に抑えるよう努めています。
実験的API - @KoinExperimentalAPI
イノベーションを促進しつつ、貴重なコミュニティフィードバックを収集するため、@KoinExperimentalAPI
アノテーションのもとで新機能とAPIを導入しています。この指定は以下を示します。
- 活発な開発中: APIはまだ設計フェーズにあり、変更される可能性があります。
- フィードバックを推奨: 開発者の皆様には、これらの機能をテストし、その経験を共有していただくことで、設計の洗練と改善にご協力をお願いしています。
- 破壊的変更の可能性: これらのAPIは実験的であるため、コミュニティからの入力に基づいて反復するにつれて、後続のリリースで変更または削除される可能性があります。
非推奨ポリシー - @Deprecated
APIの一部が段階的に廃止される際に円滑な移行を確実にするため、Koinは@Deprecated
アノテーションを使用してこれらの領域を明確にマークします。私たちの非推奨化戦略には以下が含まれます。
明確な警告: 非推奨APIには、推奨される代替案または非推奨の理由を示すメッセージが付随しています。
非推奨レベル:
- Warning (警告): APIはまだ利用可能であるものの、その使用は推奨されず、可能な限り早期に置き換えるべきであることを示します。
- Error (エラー): APIがもはや使用を意図されておらず、コンパイルされないことを示し、重要な変更が速やかに対応されることを確実にします。
このアプローチは、開発者が古いAPIに依存するコードを特定し、更新するのに役立ち、技術的負債を削減し、よりクリーンで堅牢なコードベースへの道を開きます。 更新の複雑さに応じて、APIと共にReplaceWith
が提供される場合があります。
内部API - @KoinInternalAPI
Koinフレームワーク内で厳密に内部使用を意図した機能のために、私たちは@KoinInternalAPI
アノテーションを導入しています。これらのAPIは公開契約の一部ではなく、以下に該当します。
- 内部使用のみ: Koinの内部メカニズム専用に設計されています。
- 変更される可能性あり: 将来のリリースで事前の通知なしに変更または削除される場合があります。
- 外部での使用を避ける: 長期的な互換性を維持するため、開発者はアプリケーションコードでこれらのAPIの使用を推奨されません。
Kotlinの@OptInアノテーションによるオプトイン
Koinにおける実験的APIと非推奨APIの両方の使用はオプトインを必要とし、開発者がAPIのステータスと潜在的なリスクについて完全に認識していることを確実にします。 Kotlinの@OptIn
アノテーションを使用することで、あなたのコードが実験的または非推奨とマークされたAPIに依存していることを明示的に認めることになります。
リリースタイプ
Koinはセマンティックバージョニング (SemVer) に準拠しており、各リリースの成熟度と意図された使用法を示す追加のプレフィックス識別子を使用します。私たちが使用するプレフィックスは次のとおりです。
- リリース候補 (RC): これらのリリースは、安定版の機能が完成した候補です。それらは最終テストと洗練が行われます。RCバージョンは高い互換性を持つことを意図していますが、公式リリース前の最終フィードバックに基づいて軽微な変更が発生する可能性があります。
- アルファ / ベータ: アルファ版とベータ版は、主にテストとフィードバックのために提供されます。それらはしばしば実験的な機能を含み、安定版APIの保証に完全に準拠しない場合があります。開発者は非本番環境でこれらのリリースを試すことを推奨され、潜在的な問題を特定し、将来の改善を導くのに役立つように活用できます。