この記事は, Perl Advent Calendar 2022の7日目の記事です*1.
昨日は, MacOlinさんの「perlでタイムスタンプを変更したい、Time::Pieceを使って」でした.
CPANモジュールの開発リリース(Development release)について
CPANモジュールを書いている方からすると非常に今更! という感じがするのですが, この機会にCPANモジュールの開発リリース(Development release)についてまとめておこうと思います.
さて, CPANモジュールを開発するにあたって, 「いい機能を開発したので, ちょっと試してみてほしい...!」という時があると思います. そういう時に使えるのがタイトルにあるDevelopment releaseです.
Development releaseの見え方
metacpanであるモジュールを見ると, 基本的には最新のDevelopment releaseではないモジュールが表示されます. 例えば, 拙作のClass::Accessor::Typedは, 現在Development releaseの0.03_02
が最新ですが, metacpanで表示すると0.03の様子が表示されます. しかしながら, Jump to version
を見ると, 次のように Development release である 0.03_02
が選べます.
Development releaseの場合, このように赤背景に白文字で「Development release」と表示されて, 区別できるようになっています.
Development releaseの扱い
Development releaseは開発版なので, 意図的に指定しないとインストールできないようになっています. 先のClass::Accessor::Typedの場合, 例えば cpanm Class::Accessor::Typed
のようにインストールした場合, 最新であるDevelopment releaseの0.03_02
ではなく, 0.03
がインストールされます.
なお, Development releaseのモジュールをApp::cpanminusやCartonでインストールする方法はちょうど過去にブログを書いていましたのでご参考まで:
Development releaseにする方法
さて, CPANモジュールをDevelopment releaseする方法としては, これまで見てきたように, モジュールのバージョンの末尾に _\d+
を付与する方法が代表的です. 例えば, Class::Accessor::Typedの0.03_02
では, 次のようなバージョン指定になっています:
our $VERSION = "0.03_02";
あとはこのまま, Minillaなどでリリースすれば, 自動的にDevelopment releaseとして扱われます. 便利ですね. なお, 例えば今0.10をリリースしたところだとして, その次のリリースのためのDevelopment releaseをする時に, 「これは0.11に向けたDevelopment releaseだから0.11_1がいいのか, それとも0.10_1なのか...?」と悩んだことがあったのですが, id:shoichikaji さんに次のように教えていただきました:
0.13_01の方がいいと思います。
— Shoichi Kaji (@shoichikaji) 2022年6月16日
0.14_01だと0.14よりversionが上の意味になってしまうので。
なおversion表記は0.14でtrialでリリースし、その後0.15を通常のリリースにするもありです。
なので, 先の場合では, 0.10の次のDeveloper releaseは0.10_1にすると良い, という訳ですね.
まとめ
備忘録を兼ねて, CPANモジュールのDevelopment releaseについて書きました.
Perl Advent Calendar 2022の8日目は, id:tomcha0079 さんの「2023年、Perlをはじめてみよう!」です. 実際, スイスアーミーナーフ的に使うPerlは2023年でも普通に便利なので, 今から始める価値はある... と自分は思っています.
*1:日付をいじってさも7日のうちに投稿しました, という体裁を整えていますが, 実際のところ7日の26時頃に公開しました... すいません...