プラグインをサポートするアプリケーションがあります。どちらもセマンティック バージョニングを使用します。プラグインのバージョンの互換性を管理するには、どちらの方法が良いかを知りたいです。目標は、アプリケーションが現在のバージョンと互換性のないプラグインを読み込まないようにすることです。プラグインは他の誰かによって開発される可能性があることに注意してください。
私が取ったアプローチは、次のように機能します。
プラグインは、SupportedVersions を定義します。たとえば、アプリケーションのバージョンは 1.10.34 です。SupportedVersions は 1.09、1.10 の可能性があります。そのため、SupportedVersions にアプリケーションの現在のバージョンが含まれている場合にのみ、アプリケーションはプラグインをロードします。
このアプローチの問題は、アプリケーションに新しいバージョンがあるたびに、それをプラグインの SupportedVersions に追加する必要があることです。メジャー バージョンが同じであれば、プラグインをロードできますが、アプリケーションのメジャー バージョンが変更されたからといって、プラグインとの互換性が失われるわけではありません。
それで、それよりも良いアプローチはありますか?