CPANへのリリース
さて、
Changesを書く
まずは、Changesファイルに書きます。Minillaが出力したChangesのひな型に{{$NEXT}}という文字列がありますが、
この{{$NEXT}}部分がリリース時にv0.のようにバージョン番号とリリース時間に自動置換され、
アップロード用の設定ファイルを配置する
CPANモジュールをPAUSEにアップロードするための設定も必要です。.pauseというファイルをホームディレクトリ上にパーミッション0600で作成し、
user songmu
password パスワードCPANにアップロードする
さあ、minil releaseコマンドを実行するだけです。
アップロードされる内容を事前に確認したいのであれば、minil distを実行するとCPANにアップロードされるtarボールを手もとに作ることができるので、Acme-Songmuv0.という名前になります。
minil releaseを実行するとリリースフローが始まり、
このとき、
バージョンは自動的にサジェスチョンされ、
% minil release
Retrieving meta data from lib/Acme/Songmu.pm.
Name: Acme::Songmu
Abstract: Songmu's sample module
Version: v0.0.1
Next Release? [v0.0.1]
(省略)
Result: PASS
Wrote Acme-Songmu-v0.0.1.tar.gz
Upload to CPAN
Release to CPAN ? [y/n] y
registering upload with PAUSE web server
POSTing upload for /path/to/Acme-Songmu-v0.0.1.tar.gz to h
ttps://pause.perl.org/pause/authenquery
PAUSE add message sent ok [200]
(省略)しばらくするとCPANのサイト上にモジュールの情報が表示され、
おめでとうございます! これで、
CPANモジュールを更新する
CPANモジュールは機能追加やバグ修正を行いながら更新していくものです。そういった新バージョンのリリース作業も、minil releaseを実行するだけで簡単に行えます。
プライベートモジュールでのMinillaの活用
前節まで、
基本的には、minilnewでひな型を作り、
以降では、
CPANへの暴発アップロードを防ぐ
プライベートモジュールをうっかりオープンなCPANにアップロードしてしまうと大変です。Minillaはminil releaseで簡単にリリースできるため、
Minillaには暴発アップロードを防ぐためのrelease.という設定項目が備わっています。minil.に次のように記述します。
[release]
do_not_upload_to_cpan=trueこの設定をしておくと、
プライベートモジュール用サーバを構築する
Minillaで作成したプライベートモジュールをプロジェクトに導入する方法はいくつかあります。cpanmgit://のようにリポジトリから直接インストールする方法や、git submoduleを活用する方法などがお手軽ですが、
OrePAN2::ServerでDarkPANを構築する
プライベートモジュールやCPANの部分ミラー用途で使うイントラネット用のCPANは、OrePAN2::ServerというCPANモジュールがお手軽でお勧めです。
OrePAN2::Serverのインストールはいつものようにcpanmで行えます。インストールすると、orepan2-server.というコマンドラインサーバがインストールされます。
% cpanm -n OrePAN2::ServerCPANモジュールパッケージを配置したいディレクトリでorepan2-server.を実行すると、
- モジュールダウンロード用URL
- http://
localhost:5888/ orepan - モジュールアップロード用URL
- http://
localhost:5888/ authenquery
実運用ではnginxなどでプロキシさせると思いますが、
MinillaからOrePAN2::Serverへモジュールをアップロードする
先ほど構築したプライベートモジュール用サーバにMinillaを使ってモジュールをアップロードしてみましょう。手順は以下です。
- ❶ アップロード設定ファイルをリポジトリに配置する
( .pause) - ❷
minil.にアップロード設定ファイルのパスを設定するtoml ( release.)pause_ config - ❸
minil releaseを行う
.pauseは、OrePAN2::Serverにアップロードするためにupload_というフィールドが必要です。また、passwordフィールドは、.pauseファイルの内容は次のようになります。
user songmu
password <dummy>
upload_uri http://127.0.0.1:5888/authenqueryminil.内で、.pauseファイルのパスを次のように設定します。
[release]
pause_config = "./.pause"このとき、release.の設定がある場合は削除してください。
これらのファイルをリポジトリにコミットし、minilreleaseを実行すると、OrePAN2::Serverにアップロードが実施されます。
OrePAN2::Serverにアップロードされたモジュールをインストールする
OrePAN2::Serverにアップロードされたモジュールをインストールしてみましょう。とはいえ、cpanmの--mirrorオプションを付けるだけで実現できます。
% cpanm --mirror=http://localhost:5888/orepan Acme::Songmuモジュールのインストールが完了すれば成功です。これで、
まとめ
Minillaを使ったCPANモジュールのオーサリングについて一通り解説しました。Minillaが開発されたことにより、
さて、
本誌最新号をチェック!
WEB+DB PRESS Vol.130
2022年8月24日発売
B5判/168ページ
定価1,628円
(本体1,480円+税10%)
ISBN978-4-297-13000-8
- 特集1
イミュータブルデータモデルで始める
実践データモデリング
業務の複雑さをシンプルに表現! - 特集2
いまはじめるFlutter
iOS/Android両対応アプリを開発してみよう - 特集3
作って学ぶWeb3
ブロックチェーン、スマートコントラクト、NFT

