2007年5月 5日

[Namazu-devel-ja 1585] --version-info LTVERSION について

寺西です。

Namazu では、--version-info で設定する値を configure.in の
LTVERSION で設定しますが、
--version-info について理解しておらず、今まで LTVERSION を全く変更
していませんでした。

そのため、2.0.13から2.0.17まで LTVERSION="7:0:0" でしたが、この間

libnmz が未修正であったわけではありません。
リビジョンの変更やインターフェイスの変更はありました。
そのため、バージョンアップすると古い namazu クライアントが動かなく
なるといった問題があったと思います。

以下、自分用の資料的意味を含めてまとめておきます。

-------------------

LTVERSION="C:R:A"

C - A から C までのインターフェイスをサポート

Namazu 2.0.12 "6:0:3" インターフェイス番号3〜6までと互換
Namazu 2.0.13 "7:0:0" Namazu 2.0.12 と互換性なし
:
Namazu 2.0.17 "7:0:0" Namazu 2.0.13から2.0.17は互換性あり
となっているが、これは間違い

-------------------

前回のリリースバージョンと比較してLTVERSIONを設定するものとする。

C:R:A   未修正
C:R+1:A インターフェイス互換性ありの些細な修正(バグ修正)
C+1:0:A+1 インターフェイス追加(互換性維持)
C+1:0:0 インターフェイス削除(互換性なし)

のいずれか。
インターフェイス番号が爆発的に増えないようするため、前回リリース
バージョンと比較して設定するため、pre, RC を含め、libnmz変更の度に
番号をインクリメントすることはしない。
このため、次のバージョンは C+2:0:0 など +2 とならない。

-------------------

例えば

新しい関数の追加 -> C+1:0:A+1
関数の削除 -> C+1:0:0
構造体のメンバ追加/削除 -> C+1:0:0
実装の修正 -> C:R+1:A

関数名の変更 -> C+1:0:0
関数の戻り値変更 -> C+1:0:0
引数の数、型変更* -> C+1:0:0
構造体の変更* -> C+1:0:0

* extern された構造体(ポインタは除く)が修正された場合はインター
フェイスの互換性は崩れる。
* extern された関数の引数で指定している構造体(ポインタを除く)が
修正された場合はインターフェイスの互換性は崩れる。

注意)
構造体や関数の引数、戻り値が同じであっても、例えば新しいモード
をサポートした場合は、やはりインターフェイスの追加となる。

-------------------

stable-2-0, development-2-1, HEAD の LTVERSION

これらは現在同じ "7:0:0" ですが、このため、development-2-1 を
インストールすると stable-2-0 が正しく動かなくなる不具合があります。

そこで、インターフェイス番号を次のように割り振るのはどうでしょうか?

2.0.X では 0 <= C <= 99 とする。
2.1.X では 100 <= C <= 199 とする。
2.2.X では 200 <= C <= 299 とする。
2.3.X では 300 <= C <= 399 とする。

各ブランチでインターフェイス番号は2桁あれば十分でしょう。
3.X.X とか 4.X.X とかまでは考えていませんが、ライブラリ名を変更すれ
ば良いと思います。

-------------------

Namazu 2.0.17 は LTVERSION="7:0:0"
Namazu 2.0.18 は

A. "7:0:0" Namazu 2.0.17 と同じ(libnmzに修正なし)
B. "7:1:0" libnmzの内部実装を修正 Namazu 2.0.17 と互換
C. "8:0:1" インターフェイス7番の上位互換
D. "8:0:0" インターフェイス7番と互換性なし

のどれか。
libnmz は関数追加予定なので C, D のいずれかでなければならない。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E

_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja

投稿者 xml-rpc : 2007年5月 5日 10:24
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/58153
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。