Perlモゞュヌルの䜜成

真珠のモゞュヌルを開発するずき、モゞュヌルのタスクずコヌドに実質的に関係しない倚くの䜜業をしなければなりたせん-ダヌスの兞型的なファむル/ディレクトリの䜜成から、新しいバヌゞョンをリリヌスするのに必芁なダヌスの同䞀の操䜜を完了するたで。



退屈で怠け者であり、倚くの堎合゚ラヌを匕き起こすずいう事実に加えおバヌゞョン番号などのメタ情報をいく぀かのファむルで曎新する必芁がある、たたはリリヌス時にコマンドの䞀郚を意図せずにスキップするため、Perlov TIMTOWTDIによっおすべおがさらに耇雑になりたす-いく぀かの異なるビルドシステムがありたす、誰もが自分の長所ず短所を持っおいたすただし、それらをリストする単玔なタブレットはありたせん。公匏にもコミュニティからも掚奚されたせん。



さらに、私たちの倚くは長幎真珠で曞いおおり、 perlnewmodを最埌に読んだのは真珠を勉匷したずきでした。 その結果、新しいモゞュヌルが䜜成されるず、これは15幎前のスタむルで行われるこずが倚く、アセンブリシステムはほがランダムに遞択されたす -叀くお䜿い慣れた正確なEUMMたたは他の1぀必芁ではないため 、しかし、新しい問題を䜜成するこずなく、EUMMよりも簡単で䟿利であるこずを期埅しお... ...



以䞋は、真珠モゞュヌルの開発プロセスを促進し、モゞュヌルをよりモダンにし、他の開発者がモゞュヌルを簡単に改良できるようにする、2015幎の初めに利甚可胜なツヌルを簡単に説明しおいたす。 私は圌らの䞻な長所ず短所をリストしようずしたしたが、 自分では䜿甚したせんでした。コメントに応じおこのリストを補足/修正したす。





タスク



それでは、Perlモゞュヌルのオヌサリングプロセスに通垞含たれるタスクのリストを䜜成したしょう。



新しいモゞュヌルを䜜成するずきのタスク
  1. 著者名/メヌルアドレスを蚭定
  2. ラむセンスを定矩する
  3. 組立システムを遞択
  4. 远加機胜を遞択したす。
    • XSサポヌト
    • 基本的なテストスむヌトドキュメントのチェック、スペル、コヌド品質、䟝存関係、システムファむルのビルドなど
    • モゞュヌルのドキュメントからのREADMEの自動生成
    • vcsを䜿甚する
    • GitHub、Travis CIずの統合
  5. モゞュヌルのスケルトンを䜜成したす-開発ずリリヌスに必芁な䞀連のファむルを含むディレクトリ
    • モゞュヌル自䜓のスケルトンずドキュメント
    • 基本的なテストスむヌト
    • 倉曎点
    • Readme
    • 免蚱
    • システムファむルを構築する
    • 䟝存関係のリストビルドシステムファむルに含たれるこずもありたす
    • VCSを䜿甚する堎合リポゞトリずその蚭定


新しいバヌゞョンのリリヌスのタスク
  1. 䟝存関係リストを曎新する
  2. モゞュヌルを組み立おる
  3. テストを実行する
  4. 新しいバヌゞョン番号を遞択し、いく぀かのファむルで倉曎したすいく぀かのファむルで-いく぀かの堎所で
  5. 倉曎の倉曎を説明する
  6. 珟圚の日付ずリリヌスバヌゞョンを倉曎に远加する
  7. READMEを曎新
  8. VCSを䜿甚する堎合
    1. バヌゞョンの倉曎、倉曎、およびその他すべおの倉曎されたファむルをコミットする
    2. 新しいバヌゞョンのタグを远加
    3. セントラルリポゞトリGitHubを䜿甚する堎合-倉曎を送信する
  9. モゞュヌルでアヌカむブを䜜成
  10. CPANにアップロヌドする


理想的には、新しいモゞュヌルを䜜成するずきに必芁なすべおの決定XSでの必芁性を陀くを1回行い、将来的には1぀のコマンドで新しいモゞュヌルを䜜成する必芁がありたす。 たた、リリヌスでは、理想的には、1぀のチヌムが新しいバヌゞョン番号を遞択し、倉曎の倉曎を説明する以倖のすべおの手順に埓う必芁がありたす。



曎新ここを読んで、「オヌサリング」ずは䜕か、Makefile.PL / Build.PLの通垞の䜿甚ずの違いを理解しおいない堎合-これら2぀の コメントを読んでください。



$バヌゞョン



完璧な䞖界では、Perlのバヌゞョン番号に぀いおブログを曞くこずはありたせん。

「バヌゞョン番号は退屈なはずです」-David Golden
質問の最埌に進む前に、1぀の問題を説明する必芁がありたす。それは、モゞュヌルバヌゞョンの圢匏を遞択するこずです。 これは蚘事のトピックに盎接関係しおいたせんが、この遞択はオヌサリングプロセス䞭に行う必芁があり、芋た目ほど簡単ではありたせん。



モゞュヌルのバヌゞョンを誀っお宣蚀する方法はたくさんあるので 、正しいものだけをリストしたす-ずっず少ないです。



叀い10進数/叀いスタむルの10進数



安定リリヌスお奜みで2桁/ 3桁



our $VERSION = '0.08'; our $VERSION = '0.008'; package MyModule 0.08; # need perl-5.12 package MyModule 0.008; # need perl-5.12
      
      





0.09



/ 0.009



リリヌス前のCPANテスタヌをテストするためのアルファ版



 our $VERSION = '0.08_01'; our $VERSION = '0.008_001';
      
      





たたは、ずにかくナヌザヌにアルファ版が衚瀺されない堎合、安定リリヌスず䞍安定リリヌスの2぀の独立したシヌケンスを䜿甚できたす。



ドット付き10進数



安定リリヌスバヌゞョンでは3぀以䞊の数字を䜿甚できたす



 use version; our $VERSION = 'v0.8.0'; # need perl-5.8.1 our $VERSION = 'v0.8.0'; # need perl-5.10 package MyModule v0.8.0; # need perl-5.12
      
      





v0.8.1



のリリヌス前にCPANテスタヌをテストするためのアルファ版



 use version; our $VERSION = 'v0.8.0_1'; # need perl-5.8.1 our $VERSION = 'v0.8.0_1'; # need perl-5.10
      
      





"v0.8_1"



は安定版"v0.8.0"



ず"v0.8.1"



間のアルファ版ずしおも䜿甚できたすが、バヌゞョンは1぀しかありたせん。耇数のアルファ版をリリヌスする必芁がある堎合は、番号"v0.8.1"



安定版をリリヌスしお"v0.8.1"



倱敗したす。



セマンティック



珟時点では、セマンティックバヌゞョニングの仕様に完党に準拠する方法はありたせん。 "1.2.3-alpha1"



ずしお定矩されおいるプレリリヌスバヌゞョンは、パヌルモゞュヌルに適甚できたせん。 最も近いオプションは䞊蚘の3芁玠のドットず数字のバヌゞョンです-仕様に埓っお次の安定バヌゞョンを決定するためのルヌルに埓い、テキストのプレリリヌスバヌゞョンの代わりに数倀アルファバヌゞョンをリリヌスできたす。



トラむアル



アルファ版は、倖囜人の同僚が蚀うように、「お尻が痛い」こずに気づきたした。 実際、これは実際の「アルファ」に関するものではありたせん。実際のアルファ、ベヌタ、およびその他のプレリリヌスバヌゞョンは、セマンティックバヌゞョニングの仕様に蚘茉されおおり、pearlではサポヌトされおいたせん。 これは、 CPANにこのバヌゞョンの「むンデックスを䜜成しない」コマンドを䞎えるこずです。 したがっお、2぀のタむプのデヌタを1぀の倉数CPANのバヌゞョン番号ずフラグに"v0.8.1"



させるず、スタむルが悪く、芋苊しくなり、混乱したすリリヌス前に遞択するもの"v0.8.1"



- "v0.8_1"



たたは"v0.8.0_1"



その他の問題が発生したす。アルファバヌゞョンはパッケヌゞで指定できたせん。䞀郚の叀いバヌゞョン5.8.1たでのperlでは正しく動䜜したせん。



少し前に、CPANに新しい方法が远加され、コマンドにこのバヌゞョンを「むンデックスを䜜成しない」-モゞュヌルのアヌカむブ名に"TRIAL"



ずいう名前が含たれおいる堎合。 したがっお、「アルファ」バヌゞョンは䜿甚できなくなりたす。 䞀郚のナヌティリティ Dist :: Zilla 、 shipitなどは、CPANに"-TRIAL"



する前に"-TRIAL"



モゞュヌルを䜿甚しおアヌカむブ名に远加するパラメヌタヌをサポヌトしおいたす。 "v1.2.3-TRIAL"



 "v1.2_3"



ずは異なりたすは"v1.2_3"



の通垞バヌゞョンであるため、次のバヌゞョンは"v1.2.4"



たたは"v1.2.4-TRIAL"



たす。



モゞュヌルスケルトン/ボむラヌプレヌト



これらのナヌティリティは、新しいモゞュヌルを䜿甚しおディレクトリを䜜成し、テンプレヌトの皮類に応じお必芁なファむルの基本セットをそのモゞュヌルに栌玍したす。 これは最も叀いもので、これたでのずころ、新しいモゞュヌルを䜜成する䞻な方法です。 このアプロヌチの問題は、これらのファむルの倧郚分は䞀床䜜成するだけでは䞍十分であり、モゞュヌルの新しいバヌゞョンがリリヌスされたずきに絶えず曎新する必芁があるこずです。 そのため、倚くはこれらのナヌティリティ通垞はDist :: Zillaに基づいおいたすの代わりに、より耇雑な゜リュヌションを埐々に䜿甚し始めおいたす。



h2xs、モゞュヌル::スタヌタヌ



これらのモゞュヌルの䜿甚法はperlnewmodで説明されおいたすが、ポむントは非垞に時代遅れであり、実際にはサポヌトされおおらず 、耇雑すぎお十分な柔軟性がないこずです。



CPANには、 同様の モゞュヌルが倚数ありたすが、私が芋たものはすべお䜜者のニヌズに合わせたものであり、柔軟性に欠けおいたした。実際、テンプレヌトに埓っお新しいモゞュヌルを䜿甚しおカタログを生成するタスクは非垞に単玔で、ほずんどの人が独自のバむクを䜜成したす私のものは~/bin/



にある20行のスクリプトで、これも完党にカスタマむズ可胜です。



構築する



モゞュヌルの95に耇数のpmファむル、テスト、および暙準の小さなXSが含たれおいるため、どのビルドシステムでも凊理できたす。



5.10.1以降、configure_requiresのサポヌトが登堎したした-぀たり これでMETA.{json,yml}



perl Makefile.PL



たたはperl Build.PL



実行する前にむンストヌルするモゞュヌルをMETA.{json,yml}



で指定できたす。 蚀い換えるず、ナヌザヌが、たずえばModule :: Build :: Tinyをむンストヌルしおいるかどうかは問題ではありたせん。これを䜿甚しおモゞュヌルをビルドできたす。 たたは、モゞュヌル甚のビルドシステムを䜜成できたす。



ExtUtils :: MakeMaker別名EUMM



機胜

短所

利点

モゞュヌル::ビルド別名MB



機胜

短所

利点

モゞュヌル::むンストヌル別名MI



機胜

短所

利点

EUMMずモゞュヌル::ビルドに察するコミュニティの満堎䞀臎の嫌悪感にもかかわらず、私はモゞュヌル::むンストヌルが最近真剣に受け止められなくなったずいう印象を受けたした-圌が時々䜜成した問題は圌のメリットを䞊回っおいたした。



モゞュヌル::ビルド:: Tiny別名MBT



機胜

Build.PL



は次のようになりたす。



 use 5.008001; # only if you need it use Module::Build::Tiny; Build_PL();
      
      





奇劙なこずに、これを䜿甚するこずもできたす-䟝存関係管理にcpanfileファむルを䜿甚し、オヌサリングにmbtinyナヌティリティを䜿甚 Build.PL



、 MANIFEST



、 META.{json,yml}



生成しMETA.{json,yml}



、モゞュヌルでアヌカむブを準備したす-モゞュヌルがしたこずビルドおよびモゞュヌルアセンブリプロセスに適甚されないもの。 たたは、 mbtiny



代わりにDist :: Zillaを䜿甚したすちなみに、 Dist :: MillaずMinillaはMBTを䜿甚したす。ビルドシステムが機胜し、「䞍芁な」タスクを匕き受けない堎合、このような掗緎されたシステムに非垞に䟿利です。



䟝存関係管理



cpanfile



これは、䟝存関係をビルドシステムずはcpanfile



ファむルで指定するアプロヌチです。 これにはいく぀かの理由がありたす。





バヌゞョン管理/ VCS



真珠モゞュヌルの堎合、䞀方では、モゞュヌルを構築するために必芁なすべおのファむルをリポゞトリに保存する必芁があるこずに留意する必芁がありたす cpanm



を介しおリポゞトリから盎接むンストヌルでき、他の開発者がフォヌク埌にプロゞェクトの䜜業バヌゞョンを取埗できるようにするため䞀方、䞍必芁な自動生成ファむルたずえば、モゞュヌル::むンストヌルファむルをinc/



で散らかさないようにするには、垞にそれらをコミットする必芁があり、さらにdiffなどを散らかしたす。 これは特にDist :: Zillaのナヌザヌに圓おはたりたす-プルリク゚ストを受け取りたい堎合は、些现なこずを修正したい人にプロゞェクトのビルドを開始するために150-200の远加モゞュヌルをむンストヌルするように匷制する必芁はありたせん。



Github



GitHubを䜿甚する堎合、ほずんどの堎合、远加のモゞュヌル蚘述をREADME.md



に蚘述するか、モゞュヌルのPODドキュメントからこのファむルの自動生成を構成する必芁がありたす。 2番目のケヌスでは、远加の芁玠を远加する必芁がある堎合がありたす。たずえば、Travis CIのプロゞェクトのビルドステヌタスです。



継続的むンテグレヌション/ CI



CPANテスタヌ



2013幎4月たで、 CPANテスタヌは個別のtest_requiresをサポヌトしおいたせんでした 䟝存関係はテストの実行にのみ必芁です。 同時に、組立システムは長い間それらを瀺すこずを可胜にしおきたした...しかし、これは機胜したせんでした。 その結果、䞀郚のモゞュヌル開発者は非垞に怒っおおり、スマヌトなtest_requiresなしで新しいバヌゞョンをリリヌスし、この機胜を忘れおいたした。 だから、 すでに可胜です test_requiresの詳现は、ビルドシステムの異なるバヌゞョンによるサポヌトを必芁ずしたす。



原則ずしお、CPAN Testersサヌビスは基本的なニヌズをカバヌしたすが、1぀の欠点がありたす。テストはリリヌス埌に行われたす。 リリヌス前にCPAN Testerを介しおモゞュヌルを実行するには、特別なアルファバヌゞョンをリリヌスする必芁がありたす -それでも、これはリリヌスであり、CPAN Testersはそれほど速く動䜜したせん。



GitHub + Travis CI



GitHub Travis CIのモゞュヌルを䜿甚しおリポゞトリに接続するこずにより、perlのいく぀かのバヌゞョンで リリヌスする前にモゞュヌルの珟圚のバヌゞョンのテストを自動化できたすただし、異なるプラットフォヌムの点ではCPANテスタヌほどクヌルではありたせんが、マシンでのみテストを実行するよりも優れおいたす 



リリヌス



アプリ:: scan_prereqs_cpanfile



モゞュヌルの䟝存関係を分析し、 cpanfile



を生成するか、珟圚のcpanfile



ずの差異を衚瀺するためのscan-prereqs-cpanfileコマンドを提䟛したす手動で倉曎し、単に再生成するこずはお勧めできたせん。



Perl ::バヌゞョン



ほがすべおのモゞュヌルファむルのバヌゞョン番号を倉曎するperl-reversionコマンドを提䟛したす。



README



をサポヌトしおいREADME



、 README.md



サポヌトしおいたせREADME.md



。



CPAN ::アップロヌダヌ



コマンドラむンからCPANにモゞュヌルをアップロヌドするためのcpan-uploadコマンドを提䟛したす。 PAUSEのログむン/パスワヌドを~/.pause



は、GnuPGで暗号化できたす。



Github



残念ながら、GitHubは、新しいバヌゞョンのタグを远加するずきにたずえば、プラグむンでCPANがGitHubからモゞュヌルをポンプできないず蚀う方がおそらく正しいかもしれたせんが、パヌルモゞュヌルをCPANに自動的にアップロヌドできたせんjQuery。 しかし、私はただこのアむテムをここに残したす。突然、適切な人がそれを芋お、機胜を远加したす。



サポヌト



CPAN RT



CPANバグトラッカヌは、長幎利甚可胜な唯䞀のオプションです。 その䞍䟿なむンタヌフェヌスを考えるず、それは非垞に悲しかったです。 䞀方、モゞュヌルの開発時にVCSを䜿甚しない堎合でも䜿甚できたす。



幞いなこずに、 META.{json,yml}



指定できるようになりたしMETA.{json,yml}



もちろん、ハンドルではなく、䜿甚されおいるビルドシステムを通じお 代替バグトラッカヌ GitHubなどを指定したす。 残念ながら、これによりCPANおよびMetaCPANサむトのバグトラッカヌぞのリンクが倉曎されたすが、CPAN RTでモゞュヌルのチケットを远加する機胜は無効になりたせんただし、優先バグトラッカヌが別の堎所にあるずいう通知が衚瀺されたす。 もちろん、バグトラッカヌを倉曎した埌、 珟圚のバグはRTに残りたす。



Github



GitHubでプロゞェクトをサポヌトするこずの利点ず利䟿性に぀いおは説明したせん特にCPAN RTず比范しお顕著です。 さらに、Gitが気に入らなくおも、問題なくMercurialをロヌカルで操䜜でき、プロゞェクトをGitHubに保持できたす hg-gitプラグむンを䜿甚。



珟圚のチケットをCPAN RTからGitHub Issuesに移動したい堎合は、 rt-to-github.plたたは叀いバヌゞョンのこの倉曎を詊すこずができたす。



オヌサリング



このセクションでは、モゞュヌルのオヌサリングプロセスを完党に匕き継ぐナヌティリティに぀いお説明したす。倚くの堎合、䞊蚘のナヌティリティを䜿甚しお個々のオヌサリングサブタスクを解決したす。



2぀のサヌバヌがあり、1぀がむンストヌルされたばかりで、27個のCPANモゞュヌルしかありたせん。2番目のサヌバヌは、長幎にわたっお倚くの真珠プロゞェクトを開発しおおり、248個のCPANモゞュヌルがむンストヌルされおいたす。 このセクションで説明するナヌティリティのために、各サヌバヌにむンストヌルする必芁がある远加のCPANモゞュヌルの数を蚈算したした。





距離::ゞラ



これは本圓のモンスタヌです。 圌は䜕でもしたす CPANでは、Dist :: Zillaの機胜を拡匵する480のディストリビュヌションに玄900のモゞュヌルが含たれおいたす。 これらの480個のディストリビュヌションのうち、315個はプラグむンDist :: Zilla :: Plugin :: *であり、別の100個はこれらのプラグむンの異なるコレクションDist :: Zilla :: PluginBundle :: *です。



問題は2぀しかありたせん。圌があなたが個人的に必芁ずするこずを始めるのに䜕日を費やす必芁があるか、そしおそれを䜿甚するためにむンストヌルする必芁があるモゞュヌルの数です。



最初の問題に぀いおは䜕も蚀えたせん。 私はあえお参加し、自分のためにそれをカスタマむズしようずしたせんでした。 誰がこれをしたか-コメントであなたの印象を共有しおください。



2番目の問題も十分に重芁です。モゞュヌルぞのパッチずプルリク゚ストを受け取りたい堎合、モゞュヌルを倉曎したい人がこれを非垞に簡単に行えるこずが必芁です。 いく぀かの行を修正するためにCPANの半分をむンストヌルする必芁がある堎合著者によるず半分ではなく0.6のみであるず䞻匵したす、非暙準のビルドプロセスに察凊する堎合、パッチを埅ちたせん。



距離::ミラ



機胜

短所Distず比范しお:: Zilla

利点

ミニヌラ



機胜

短所

利点

束野埳宏Minillaの著者ずほが同じ方法でオヌサリングを行う堎合、たたはオヌサリングの正確性を気にしない堎合、䞻なこずは、すべおが箱から出しおすぐに機胜するこずです぀たり、gitずGitHubを䜿甚倚数のモゞュヌルをむンストヌルする必芁がありたした-Minillaは最適です。 他に䜕かを行う必芁がある堎合は、代替品を探す必芁がありたすほずんどの堎合、Dist :: Millaです。



Shipit



1぀のコマンドでshipit



、新しいバヌゞョンをリリヌスするずきに必芁なほずんどの操䜜を実行できたす。



モゞュヌルディレクトリ.shipit



にファむルが䜜成されたす。次のようなものです。



 steps = FindVersion、ChangeVersion、CheckChangeLog、DistTest、Commit、Tag、MakeDist、UploadCPAN 


そしお今、起動するず、次の操䜜shipit



が実行され.shipit



たす



  1. 圌らはあなたに新しいバヌゞョン番号を尋ねたす
  2. 新しいバヌゞョンはモゞュヌルコヌドで蚘述されたす
  3. の゚ントリの可甚性を確認し、Changes



    远加を提案したす
  4. テストを実行したすサポヌトMakefile.PL



    およびBuild.PL



    
  5. コミットしたすGit / Mercurial / SVNをサポヌト
  6. 新しいバヌゞョンのタグを远加
  7. モゞュヌルでアヌカむブを準備する
  8. CPANにアヌカむブをアップロヌド


䜿甚可胜なすべおの操䜜はプラグむンずしお蚭蚈されおいるため、CPANには远加のモゞュヌルがいっぱいですREADME



PODからの生成、PODでのバヌゞョンの曎新、各モゞュヌルのコヌドでの新しいバヌゞョンの䜜成、゜ヌシャルネットワヌクでのアナりンスなど。



ShipItがサポヌトされるかどうかは明らかではありたせん-数幎間曎新されおおらず、珟圚著者はDist :: Millaに積極的に取り組んでおり、ShipItからDist :: Millaぞの移行に぀いお説明しおいたす。私の意芋では、ShipItは必芁なほずんどすべおを実行し、同時に非垞に小さく、シンプルで、拡匵可胜で、䟝存関係がありたせん。著者が圌に䜕を奜たなかったか、そしお圌がShipItのプラグむンに䞍足しおいる機胜を远加する代わりに、Dist :: Zillaのラッパヌを䜜成するこずにした理由はわかりたせん。によるずDist :: ZillaDist :: Zillaを開発する前にShipItを積極的に䜿甚しおいたShipItの䞻な問題は、プラグむンで拡匵する際の耇雑さず柔軟性の欠劂です。確かに、Dist :: Zillaはこの問題を培底的に解決したした。



アプリ:: ModuleBuildTiny



私はそれを蚘事に含める䟡倀があるかどうか長い間考えおいたした。その機胜は初歩的であり、珟圚のバヌゞョンは0.005で、1幎間誰も曎新しおいたせん...しかし、先日、著者が積極的に取り組んでいただけでなく、Dist :: ZillaたたはMinillaではなく、Module :: Build :: Tinyを盎接䜿甚する必芁がありたす。



少なくずもその機胜を䞊蚘のナヌティリティず比范した堎合、これはオヌサリングナヌティリティずは異なりたす。しかし、著者は「スタンドアロンオヌサリングツヌル」ず呌んでいたため、このセクションで怜蚎したす。その非垞に限られた機胜を考えるず、Dist :: Zillaなしで完党なオヌサリング機胜を取埗するために、他の小さなナヌティリティ次のセクションで説明を䜿甚しおみたす。



たず第䞀に、CPANのモゞュヌルを䜜成する最も最小限の方法は次のずおりです。



 mkdir -p Example-MBtiny/lib/Example/ cd Example-MBtiny vi lib/Example/MBtiny.pm mbtiny dist
      
      





その結果、Example-MBtiny-$VERSION.tar.gz



CPANにアップロヌドできるものを取埗したす。モゞュヌルを含むディレクトリには他のファむルはありたせんlib/Example/MBtiny.pm



。このアヌカむブのみが䜜成されたす。



今すぐ䜜成たたは任意のナヌティリティを生成するGitHubの䞊にレむアりト党おのモダンなモゞュヌル内に通垞存圚するすべおの暙準のファむルREADME.md



、LICENSE



、Changes



、t/*



、.gitignore



、.travis.yml



だけでなく、リポゞトリを䜜成するず、我々はすべおのこれらのファむルに远加し、GitHubの䞊で蚘入しおください。



次の質問は、どのスタむルを䜿甚するかですmbtiny



。





GitHubを䜿甚する堎合、プロゞェクトに远加する必芁がありmetamerge.json



、その内容は生成䞭に考慮されたすMETA.{json,yml}







 { "resources" : { "bugtracker" : { "web" : "https://github.com/powerman/Example-MBtiny/issues" }, "homepage" : "https://github.com/powerman/Example-MBtiny", "repository" : { "type" : "git", "url" : "git://github.com/powerman/Example-MBtiny.git", "web" : "https://github.com/powerman/Example-MBtiny" } } }
      
      





新しいバヌゞョンをリリヌスするずき、远加のナヌティリティが圹立ちたす。



 # update dependencies scan-prereqs-cpanfile >cpanfile # ... update META.* from cpanfile if you added META.* into the repo mbtiny regenerate # build & test mbtiny test # update version everywhere ver=1.2.3 perl-reversion -set $ver # don't forget to update version & date vi Changes # regenerate README.md with badges cp BADGES.md README.md pod2markdown lib/Example/MBtiny.pm >> README.md # release git commit -a -m "release $ver" git tag $ver git push mbtiny dist cpan-upload Example-MBtiny-$ver.tar.gz
      
      





ご芧のずおり、毎回これをすべお手動で行うこずは良い考えではありたせん。䜕かを忘れおしたい、どこかで間違えられたす。しかし、これをスクリプトにするこずは難しくありたせん。このような単玔な2぀のスクリプトこのスクリプトずテンプレヌトによっお新しいモゞュヌルのスケルトンを䜜成するスクリプトは、Dist :: Zillaなしで最新のモゞュヌルを䜜成するのに十分です。



たずめ





オヌサリング甚のナヌティリティの遞択に関しおは、明確な掚奚事項を提瀺するこずは困難です。攟棄されおいないものを遞択した堎合





モゞュヌル䜜成者向けのさたざたなナヌティリティ





______________________

AsciiDocのhabrahabrバック゚ンドを䜿甚しお倉換されたテキスト。



All Articles