相互に依存しているソフトウェアコンポーネントのバージョン番号付けを行うための適切な方法を決定しようとしています。
もっと具体的に見てみましょう:
ソフトウェアコンポーネントAは組み込みデバイスで実行されるファームウェアであり、コンポーネントBは通常のPC(Linux / Windowsマシン)用のそれぞれのドライバーです。これらは、カスタムプロトコルを使用して互いに通信しています。当社の製品は開発者も対象としているため、両方のコンポーネントの安定版と不安定版(実験版)を提供します(ファームウェアはクローズドソースで、ドライバーはオープンソースです)。私たちの最大の困難は、通信プロトコルでAPIの変更を処理する方法です。
ドライバーに互換性チェックを実装している間(ファームウェアバージョンがドライバーのバージョンと互換性があるかどうかをチェックします)、バージョン番号付けの複数の方法について議論し始めました。
私たちは1つの解決策を思いつきましたが、車輪を再発明したいとも感じました。これがプログラマー/ソフトウェア開発者コミュニティーからフィードバックを得たい理由です。これはよくある問題だと私たちは考えているからです。
だからここに私たちのソリューションがあります:
広く使用されているmajor.minor.patchをフォローする予定ですバージョン番号、安定/不安定バージョンには偶数/奇数のマイナー番号を使用するです。APIに変更を導入する場合、マイナー番号を増やします。
この規則は、次の状況例につながります。
現在の安定版ブランチは1.2.1で、不安定版は1.3.7です。現在、unstableの新しいパッチによりAPIが変更され、新しい不安定なバージョン番号が1.5.0になります。不安定なブランチは安定していると見なされます。たとえば、1.5.3では、1.4.0としてリリースします。
以下の関連する質問のいずれかに対する回答があればうれしいです。
- 上記の問題を処理するためのベストプラクティスを提案できますか?
- 私たちの「カスタム」慣習は良いと思いますか?
- 説明されている規則にどのような変更を適用しますか?