前へ 目次へ 次へ

リリース番号

ADSにおいて、特にデベロッパにとって重要な意味を持つ「リリース番号」について解説します。

リリース番号はエージェントのバージョンを識別するための番号でADSに関わるプログラムがバージョンを判別するための内部データの一種です。

エージェント情報の「バージョン」は書式が制限されておらず、デベロッパが好きな表現で決めることができます。あくまでも表示のためのものであり、ユーザに見せるための情報と言い換えることができます。

これに対してリリース番号は単純な数値でパッケージの世代を表すもので、パッケージマネージャやオートアップデータがエージェントの更新をチェックするために比較の材料として使います。

前提となるリリース番号による更新チェックの仕組みは以下の様になっています。

パッケージマネージャやオートアップデータ(以下、クライアント)は更新をチェックしたいエージェントのリリース番号をサーバに問い合わせます。
サーバはADSに登録されているエージェント情報から最新版のリリース番号を返します。
クライアントはインストールされているエージェントのリリース番号とサーバから返されたリリース番号を比較します。
クライアント側のリリース番号よりサーバ側のリリース番号の方が大きい値を示していた場合、アップデート可能な最新版がADSに登録されたことを認識します。
クライアント側のリリース番号とサーバ側のリリース番号が一致すればインストールされているエージェントが最新版である事を意味します。

エージェントの新規登録からユーザ側の更新チェックまでの流れを以下にまとめてみます。

1.エージェントの新規登録

デベロッパが新しいエージェントをADSに登録します。
リリース番号は1以上の任意の番号を設定できます。
デフォルトのリリース番号は1です。
最大32767まで指定できますが、最大値を設定したら以後、更新してもオートアップデートができなくなります。

2.エージェントの登録完了

エージェントの情報がADSに登録され、ユーザからの問い合わせに応じる準備が完了します。

3.ユーザがエージェントをインストール

登録されたエージェントをユーザがパッケージマネージャを使ってインストールします。

4.エージェントの情報が保存される

パッケージマネージャはエージェントをインストールすると、エージェントの情報を保存します。
インストールしたエージェントのリリース番号は以後、バージョンのチェックのために使われます。

5.デベロッパがエージェントを更新する

デベロッパがエージェントを修正したり機能を強化するなど、ADSの登録情報に更新を加えます。
この例ではリリース番号を1増加させていますが、増加量は1より多くても構いません。
ただし、先述したように最大値の32767を設定したら以後、更新してもオートアップデートができなくなります。

エージェントの更新時、リリース番号は「上げること」と「変えないこと」は可能ですが、「下げること」はできません。仮にADSに登録されたリリース番号より小さい値で更新しようとしてもサーバはこれを適切に無視します。

6.エージェント更新完了

ADSのエージェント情報が更新され、ADSはエージェントのバージョンアップを認識します。
以後ユーザから問い合わせがあった場合には新しいリリース番号を返します。

7.ユーザの更新問い合わせ

既にエージェントAをインストールしているユーザが更新を問い合わせます。
サーバはエージェントAのリリース番号を「2」と答え、クライアントは保存されているリリース番号と比較します。

8.アップデート可能エージェントの認識

サーバが返したエージェントAのリリース番号は2。
インストールされているエージェントAのリリース番号が1。これによってエージェントAはアップデート可能だと認識されます。

ユーザの立場からはリリース番号を気にする必要がありません。
ユーザにとって重要なのはそのエージェントがアップデート可能であるか否かであり、その判断はパッケージマネージャやオートアップデータが行います。
通常、リリース番号はユーザの目に触れる事はありません。

デベロッパの立場から見たリリース番号は重要な意味がありますが、その扱い方は単純です。

「エージェントを更新した際、ユーザにアップデートして欲しい場合はリリース番号を上げる」

これだけです。もう少し現実に近い言い方をすれば、

「エージェントのバージョンを上げるときはバージョンを書き換えて、リリース番号を上げる」

というのがリリース番号の扱い方のほとんどを占めます。

「ほとんど」以外のケースとして以下に2つの例をあげます。

バージョン表記を書き換えなくてもリリース番号さえ上げればユーザはそのエージェントをアップデートする事ができます。
しかし、バージョン表記が変化していないのにアップデート可能になっている理由はユーザにはわかりません。従ってこのような方法は推奨されません。

逆に「更新時にリリース番号を上げたがバージョン表記を書き換えるのを忘れた」ような場合には、バージョン表記だけ修正すればよく、ここでリリース番号も上げてしまうと、ユーザに同じパッケージで二度以上アップデートさせてしまう場合があります。