版番号という恐怖

なんか以前のコーディング規約といい、ヤヴァいとこ踏みまくってますが。
ソフトウェアをリリースするときのバージョン番号って、あれは絶対なにかあるね。自分だけで作ってリリースするだけならもちろんご自由にどうぞ、でいいんだけども、こっちが依頼して、こういう番号にしてくれとまで言って、それがただの番号だからね、と何度言っても、ほんとうに通じない。さいとうさんがAさんに以下のようにバージョン規約をお願いしたとしよう。

  1. 仕事の区切りや経理の締めなどで、さいとうが契約上正式に受領したものはメジャーバージョンを1つあげ、マイナーバージョンを0にリセットした番号を付ける。
  2. さいとうとAさんの間で、テストやデバッグなどの理由で適宜必要に応じてソースを渡す場合は、現行のメジャーバージョンにマイナーバージョンを1つあげてつける。
  3. メジャー・マイナー間の番号の繰り上がりは無い。番号9の次はそのまま10、11、12、...と続ける。

たったこれだけの事が実に通じない。どう通じないのか挙げてみよう。なにかの法則が見えるかもしれない。

  1. 最初の0.1、0.2くらいまではいいが、0.3あたりから付けるのを渋り始める。
  2. 0.7、0.8あたりになると「まだ0.8とは言えないんですが」と怪しい言い訳を始める。
  3. 0.9を過ぎると0.91とか0.92とかいう番号を使い始める。無用なteenyを足し付けるのも常套手段。
  4. "0.7"の番号の後ろに以下の文字を意味無く(ここ重要)付けたがり始める:
    • "alpha、beta"のギリシア文字英語表記
    • "RC"、"Preview"といった、リリースの意味合いを付加したもの
    • "0.7ksaito"みたいに自分や会社の名前
  5. 上記の意味無し文字を付けた後にまた修正が入ると、なぜか(ここがまたわからんのだが)、その後は平気で文字列の後ろにベタに10進数を書く。
    • "0.7alpha2"
    • "0.8ksaito4"
  6. 上記の複数桁、teeny、各文字列の使用方法が一環せず、ひとつを採用して何度かバージョンを上げてはまた別の方法を採用する。
    • "0.95.4ksaitoRC2"
  7. 番号は、マイナーバージョンの後ろに採用された方法ほど少なくなる。
  8. 複数の方法(マイナーバージョンを含めて大体3方法程度)を並行採用して複雑な番号体系になってしまうと、いきなり番号を付けなくなる。
    • 番号無しでリリース
    • 日付で付ける
    • "最新(latest)"などと形容する

こんなとこですか。

  • 0.1から0.7、0.8あたりでゴネるのは小数表記を意識してるんだろうけれど、版番号は別に小数では無いし、大体国によって小数点はピリオドだったりカンマだったりする。ピリオド表記国特有の症状なのかねえ。でもその1.0を回避したい思いが0.9.1なんかに流れちゃったら小数表記じゃなくなってるんだけども、それは構わないらしい。まあとにかく、大体バージョン0.9あたりが、その後もうまくリリース管理できるかどうかの分水嶺(笑)。
  • alpha、betaはIBMだったかのむかーしの版表記だったはずで、結構厳しいルールだったのが一般に流布されて適当に使われ始めたんじゃなかったっけ。jargonで見たんだっけな。数字だと嫌で文字順だと平気なのがまたよくわからん。1.0さえ書かなければなんでもいいんだろうか。
  • 昔質問した事があって、alpha、betaに比べて"RC(リリース候補)"や"Preview"は「かっこいい」んだそうで。へええ。
  • まあどの方法でも文句はないんだけども、一番困るのは、メジャー、マイナーの他にそんなにいっぱいカウント方法を出されてもわからん事だ。でも、どうしてもやるやつは、やる。もう自分の経験と判断を大いに語って、やりやがる。
  • そして崩壊すると日付を使いだす。正式版か開発途中かすらわからん、順列だけしかない情報になぜ4桁や6桁や8桁も使うのか。見づらいっちゅうねん。
  • "latest"や版番号無しで出したやつには普通に「死ね」とか言います。お前のlatestはオレのlatestじゃねえ。

全然まとまらんが、

  1. "リリース 1.0"=「やったねオレ!!」という感情
  2. 小数表記と桁上がり感
  3. なんかかっこいい

という気持ちが入り混ざってるんでしょうかねえ。私は番号は「仕事/契約上、かならずすぐわからなければならないことが、書類も見ず話も聞かずに一目でわかるように」つけるのが一番助かるので、それで付けるようにしてます。フリーソフトウェアとちょっと考えが違うのは、

  • 大きな仕様変更もあるけど、相手に正式納品した時点でメジャーを上げる。
  • 開発中の場合はマイナーだけをいじる。だから、マイナーが0以外のものは客が文句を言ってもサポート対象にならないので、しない。

ってあたりかな。この何年か、やたらと奇数偶数でやりたがるのが居ますが、客相手に「開発版」も無いだろうよ、ってことで却下。0.9の次が0.10なのは気持ち悪いって人の気持ちはわからないでもないけれど、なにせこっちは仕事ですから、「開発開始から10回以内にリリース」なんて事はあるわけないし、じゃあどう付けようか、などとそんな事で頭を使いたくないのでそのまま連番。


書き出した時はなんかちょっとは結論がつくはずだったんだが、今日はここでおしまい。オチがやったねと小数だけじゃ全然ダメダメだが、なにしろ腹が減った。風呂入って晩飯にしよう。もう午前だけど。