Masteries

技術的なことや仕事に関することを書いていきます.

CPANモジュールの開発リリース(Development release)について

この記事は, Perl Advent Calendar 2022の7日目の記事です*1.

qiita.com

昨日は, MacOlinさんの「perlでタイムスタンプを変更したい、Time::Pieceを使って」でした.

qiita.com

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でインストールする方法はちょうど過去にブログを書いていましたのでご参考まで:

papix.hatenablog.com

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.10の次のDeveloper releaseは0.10_1にすると良い, という訳ですね.

まとめ

備忘録を兼ねて, CPANモジュールのDevelopment releaseについて書きました.

Perl Advent Calendar 2022の8日目は, id:tomcha0079 さんの「2023年、Perlをはじめてみよう!」です. 実際, スイスアーミーナーフ的に使うPerlは2023年でも普通に便利なので, 今から始める価値はある... と自分は思っています.

tomcha.hatenablog.jp

*1:日付をいじってさも7日のうちに投稿しました, という体裁を整えていますが, 実際のところ7日の26時頃に公開しました... すいません...