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::Server
CPANモジュールパッケージを配置したいディレクトリで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/authenquery
minil.
内で、.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