[Namazu-devel-ja 1585] --version-info LTVERSION について
Tadamasa Teranishi
yw3t-trns @ asahi-net.or.jp
2007年 5月 5日 (土) 10:24:31 JST
寺西です。
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 @ asahi-net.or.jp
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 メーリングリストの案内