cpanでモジュールを公開する

cpan.orgで私のモジュールの最初の公開の経験を共有したいと思います。 モジュール自体はすでに作成されていると想定しています。 私の場合、 VK :: Appモジュールでした。 これは、ディストリビューションを適切に構築し、cpan.orgで公開する方法に焦点を当てます。



モジュールの公開は、3つの段階で構成されています。





pause.perl.orgで登録する



cpanにモジュールをロードするために、特別なシステムpause.perl.orgが作成されましたリンクをたどり、複雑ではない登録手順を実行します。 その結果、 pause_idpause_id@cpan.orgの形式の電子メールを取得します。 登録時に入力したメールは、システムpause.perl.orgおよびcpantesters.orgからメッセージを受け取ります。 ただし、モジュールのドキュメントでは、 pause_id @ cpan.orgを電子メールとして正確に指定することをお勧めします。 pause_id@cpan.orgからプライベートメールへのリダイレクトを設定するには、 pause.perl.orgにログインし、メニュー項目「アカウント情報の編集」に移動し、「シークレットメールアドレス」フィールドにリダイレクトのメールアドレスを入力します。 [マイシークレットメールアドレス]ラジオボタンを選択し、[送信]をクリックします。 変更は数時間で有効になります。 ちなみに、このようなリダイレクトを設定しないと、cpanアカウントをすばらしいmetacpan.orgサービスにバインドできなくなります。 バインドするには、アクティベーションレターを送信するpause_idが必要です。



配布ビルド



このプロセスを自動化する多くのツールがあります。 この記事では、それらのほとんどについて説明します。



ExtUtils :: ModuleMakerを選択しました。 小さなmake_module.plスクリプトを作成します。

#!/usr/bin/perl use ExtUtils::ModuleMaker; $mod = ExtUtils::ModuleMaker->new( NAME => 'VK::App', ABSTRACT => 'Creation client applications for vk.com', VERSION => '0.01', LICENSE => 'perl', # You can choose one of the standard licenses by includin BUILD_SYSTEM => 'ExtUtils::MakeMaker', NEED_POD => '0', # Include POD section in *.pm files created. (Default is on NEED_NEW_METHOD => '0', # Include a simple new() method in the *.pm files cr INCLUDE_TODO => '0', INCLUDE_SCRIPTS_DIRECTORY => '1', AUTHOR => 'Misha Genaev', EMAIL => 'mag@cpan.org', CPANID => 'MAG', WEBSITE => 'http://genaev.com', FIRST_TEST_NUMBER => '1', ); $mod->complete_build();
      
      





ある種の一時ディレクトリに入れて実行します。 配布用のテンプレートを生成します。 次に、ディストリビューション自体のディレクトリを作成します。 モジュールの名前がVK :: Appで、そのバージョンが0.01の場合、ディレクトリはVK-App-0.01と呼ばれます。 その後、テンプレートをVK-App-0.01にコピーし、テンプレートApp.pmを実際のテンプレートに置き換えます。

 $ perl make_module.pl $ mkdir VK-App-0.01 $ cp -r VK/App/* VK-App-0.01 $ cp real/App.pm VK-App-0.01/lib/VK
      
      





他のモジュールに対するモジュールの依存関係は、Makefile.PLで指定されています。

 PREREQ_PM => { 'Test::Simple' => 0.44, 'LWP' => 5.834, 'LWP::Protocol::https' => '0', 'JSON' => 2.53, },
      
      





これらのうち、LWPとJSONの2つしかありませんでした。 Test :: Simpleは、配布テンプレートが生成されると自動的に追加されます。 モジュールのバージョンは、次のコマンドで確認できます。

 $ perl -MLWP -e 'print "$LWP::VERSION\n"' $ perl -MJSON -e 'print "$JSON::VERSION\n"'
      
      





適切なバージョンがある場合、Makefile.PLで0が指定されます。



すべての配布の準備ができました。 梱包する必要があり、パフォーマンスを確認できます。

 $ tar -czf VK-App-0.01.tar.gz VK-App-0.01 $ cd VK-App-0.01 $ perl Makefile.PL $ make $ make test
      
      





モジュール名を登録し、ディストリビューションをダウンロードします



モジュールを公開する際の重要なステップは、その名前を登録することです。 これを行うには、「名前空間の登録」のpause.perl.orgに移動し、すべてのフィールドに慎重に入力します。 「同様の機能を備えたモジュール」フィールドと「根拠」フィールドには特に注意を払う必要があります。 最初の方法は、同様のモジュールの名前をリストすることです。 第二に、あなたのモジュールが他のモジュールとどのように違うのか、そしてそれがあなたがそれを呼び出したものと正確に呼ばれるべき理由を詳細に教えてください。



その後、「CPANへのファイルのアップロード」に進み、VK-App-0.01.tar.gzアーカイブをそこにアップロードして待機します。 私の場合、モジュールは約1日後にcpan.orgに登場しました。



All Articles