xfy technologyでのバージョン管理仕様

xfy technologyでのバージョンの定義や比較方法、バージョンの付け方のポリシーの例を紹介します。

1. 概要

xfyユーザーエージェントは、複数のxfyプラグインから構成されています。これらのxfyプラグインの間には、依存関係があるものがあります。依存関係にあるxfyプラグインが更新されたときには、ほかのxfyプラグインに対する互換性を確認する必要があります。また、更新されたxfyプラグインが、クライアントの環境にインストールされているxfyプラグインより新しいか新しくないかを判断する必要があります。これらを判断するときには、xfyプラグインに設定されているバージョン情報を利用します。

この文書では、xfyプラットフォームで使用できるxfyプラグインJARファイルやパッケージに設定するバージョンの仕様と、バージョン設定のガイドラインを説明します。

2. バージョン仕様

バージョン番号や、バージョンの比較方法に関する仕様を説明します。

2.1. バージョン番号

xfy technologyで使用するバージョン番号は、ピリオド(.)で区切られた4つの数値で表示される文字列です。4つの数値は、前から順にメジャーバージョン、マイナーバージョン、ビルドナンバー、リビジョンを表します。

メジャーバージョン
xfyコンポーネントやxfyプラグイン、パッケージの管理者が自由に付ける内部的なバージョンです。開発サイクルでは、このバージョンを変更する頻度は低いことが想定されます。
0から99999までの数値を設定できます。
メジャーバージョンは必ず設定します。
マイナーバージョン
xfyコンポーネントやxfyプラグイン、パッケージの管理者がマイナーチェンジの場合に変更する値です。メジャーバージョンと同様、開発サイクルで変更する頻度は低いことが想定されます。
0から99999までの数値を設定できます。
マイナーバージョンは省略できます。マイナーバージョンを省略する場合は、ビルドナンバーとリビジョンも共に省略します。省略した場合は0で補完されます。
ビルドナンバー
xfyコンポーネントやxfyプラグイン、パッケージのビルドチームが付ける、何回目のビルドかを表す番号です。基本的には開発サイクルに従ったビルドごとに番号を増やします。
0から99999までの数値を設定できます。
ビルドナンバーは省略できます。ビルドナンバーを省略する場合は、リビジョンも省略します。省略した場合は0で補完されます。
リビジョン
xfyコンポーネントやxfyプラグイン、パッケージのビルドチームが指定する、いくつかの意味に利用される番号です。利用例として、バグ番号やサービスパック番号、旧ビルド番号などが挙げられます。
0から9999999999までの数値を設定できます。
リビジョンは省略できます。省略した場合は0で補完されます。

それぞれのバージョン番号を省略した場合の動作については、「バージョンの比較方法」もご覧ください。

2.2. バージョン情報を利用する場面

xfy technologyでは、次のような目的でバージョン情報を利用します。

  • 依存関係にあるxfyプラグインの互換性チェック
    ほかのxfyプラグインが依存しているxfyプラグインが更新されたときに、互換性が保たれているか失われたかをバージョン情報で表します。
  • xfyプラグインやパッケージを配信するときの更新チェック
    クライアントのxfyユーザーエージェントにインストールされているxfyプラグインやパッケージのバージョンを取得し、配信されるxfyプラグインやパッケージと比較します。

2.3. バージョンの比較方法

バージョンは以下のルールに基づいて比較されます。

  • バージョンはメジャーバージョン、マイナーバージョン、ビルドナンバー、リビジョンの順に比較されます。メジャーバージョン、マイナーバージョン、ビルドナンバー、リビジョンのそれぞれの値は、独立した整数として比較されます。
    [例]1.10は1.2より大きい。
    すべての番号が同じであった場合のみ、バージョンが同一と見なされます。
  • メジャーバージョンは必ず指定します。それ以外は省略できます。省略された場合は、0で補完されます。
    [例]1.0は1.0.0.0と等価です。

3. xfy technologyで用いられるバージョンの種類

xfy technologyでは、3種類のバージョン番号が存在します。これらは、それぞれのバージョンの仕様と規約に従い、バージョン管理されます。

3.1. xfyプラグインのバージョン

xfyプラグインは、xfyプラットフォームに機能を追加するときの物理的な最小単位です。xfyプラグインのバージョンはプラグインマニフェストファイルに記述されるバージョンです。このバージョンは、xfyプラグイン開発者が規約に基づいて自由に設定できます。

このバージョンはxfyプラグイン単位で設定され、パッケージ管理ツールの内部処理のためだけに使用されます。xfyプラグインのバージョンがユーザーの目に触れることはありません。

プラグインマニフェストファイルについて詳しくは、「プラグインファイルマニフェストリファレンス」をご覧ください。

3.2. プラグインが対象とするxfyプラットフォームのバージョン

プラグインマニフェストファイルには、xfyプラグインのバージョンのほかに、対象とするxfyプラットフォームのバージョンも記載します。この項目もバージョンの仕様と規約に基づいて記述します。ただし、リビジョンとビルドナンバーは無視されます。

記述される対象のxfyプラットフォームのバージョンについては、「xfyプラグイン情報仕様」をご覧ください。

3.3. パッケージのバージョン

xfy technologyのパッケージは、1つ以上のプラグインから構成される論理的なまとまりです。ユーザーがxfyプラットフォームに機能を追加するときは、パッケージが最小単位となります。このパッケージにもバージョンを設定します。パッケージのバージョンは、ユーザーに直接参照されます。パッケージのバージョンは、次の目的で利用されます。

  • ユーザーにパッケージが更新されたことを認識させる
  • パッケージ管理ツールの内部処理で使用する

4. バージョンの設定方針の例

xfyコンポーネントやxfyプラグイン、パッケージを更新するときは、その変更の内容や量に基づいてバージョン番号を変更する必要があります。ここでは、一般的な更新の呼称と併せて、バージョンの設定方針の例を示します。

一般に、プログラムの更新には次のような形態があります。

メジャーバージョンアップ
機能追加を伴う更新です。追加された機能の数が多い場合や、前バージョンに比べて革新的な機能が追加された場合を指します。不具合の修正も含まれます。
マイナーバージョンアップ
機能追加を伴う更新です。追加された機能が比較的少ない場合を指します。不具合の修正も含まれます。
メジャーバージョンアップかマイナーバージョンアップかは、戦略的に判断されることがあります。
リリースアップ
機能追加を伴わない更新です。報告されている不具合の修正を主な目的とします。ロットアップと呼ぶ場合もあります。

このような更新の形態に合わせてバージョン番号の設定方針を決めておくと、クライアント環境にインストールされているプログラムの更新状況を調べることができます。次の表に、xfy technologyのバージョン番号を設定する方針の例を示します。

最初のリリース 最初の正式バージョンであることを示すバージョン番号を設定する。
[例]1.0.1.0
メジャーバージョンアップ メジャーバージョンを1増やし、ほかの番号を初期状態に戻す。
[例]2.0.1.0
マイナーバージョンアップ マイナーバージョンを任意の値で増やし、ビルドナンバーとリビジョンを初期状態に戻す。メジャーバージョンは変更しない。
[例]1.3.1.0
リリースアップ ビルドナンバーやリビジョンに適切な値を設定する。メジャーバージョンとマイナーバージョンは変更しない。
[例]1.0.24.3