Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
585 lines (320 sloc) 15.7 KB

NAME

Minilla - CPAN モジュールオーサリングツール

SYNOPSIS

minil new     - 新しいディストリビューションを作る
minil test    - テストケースを実行する
minil dist    - 配布用のtar玉を作る
minil install - ディストリビューションをインストールする
minil release - ディストリビューションをCPANにリリースする
minil run     - ビルドディレクトリに対して任意のコマンドを実行する

DESCRIPTION

Minilla は CPANモジュールのオーサリングツールです。Minillaは CPANディストリビューションのオーサリングのために、minilコマンドを用意します。

(M::I - inc) + shipit + (dzil - plugins)

これは、開発版リリースです。APIは予告なしに変更されるかもしれません

MOTIVATION

(動機)

CONVENTION

(慣習)

以上のように、Minilla は独断的です。Minillaには以下のような大胆な仮説と慣習があります。これらは姉妹プロジェクトのDist::Millaとほとんど互換性があります。

lib/以下にPure Perl でモジュールが書かれている
実行ファイルはなんであれ、script/ディレクトリ以下にある
モジュールは Git でメンテナンスされており、git ls-files は、リリースするものにマッチする
モジュールは、cpanfileに予め必要なものの静的なリストがある
モジュールには、Changes がある

GETTING STARTED

(始めましょう)

# First time only
% cpanm Minilla
# Minilla has only a few deps. It should be very quick

# Make a new distribution
% minil new Dist-Name
% cd Dist-Name/

# Git commit
% git commit -m "initial commit"

# Hack your code!
% $EDITOR lib/Dist/Name.pm t/dist-name.t cpanfile

# Done? Test and release it!
% minil release

このように、簡単です。

Module::InstallModule::BuildDist::Zilla、または、ShipItを使ったディストリビューションがすでにありますか? 移行もまた些細なことです。詳細は、Minilla::Tutorialの"MIGRATING"を見てください。

WHY MINILLA?

(なぜ MINILLA?)

Repository managed by Minilla is git install ready.

(Minillaで作成され、管理されたリポジトリは git インストールできます。)

Minillaで作成され、管理されたリポジトリは git インストールできます。 cpanm git://...で、インストールできます。

もちろん、Minilla を、 cpanm git://github.com/tokuhirom/Minilla.git からインストールできます。

Minilla is built on small libraries.

(Minilla は小さなライブラリでできています。)

Minilla は、ほんの少しの小さなライブラリで作られています。重たいモジュールに依存する巨大なリストなしに、インストールすることができます。

And, what is Minilla?

(Minillaって何?)

ミニラは怪獣(日本の巨大なモンスター)で、ゴジラの一連の映画から取られました。最初の若いゴジラです。
http://en.wikipedia.org/wiki/Minilla

CONFIGURATION

(設定)

Minilla は 設定より規約を用いています。

ですが、設定をminil.tomlファイルに TOMLフォーマットで書くことができます。Minilla は、プロジェクトのルートディレクトリにあるminil.tomlファイルを読みます。

name

ディレクトリ名から自動的に調べられるプロジェクト名の代わりに、'name'を書くことができます。

readme_from
readme_from="lib/My/Foo.pod"

README.md を生成するファイルを指定することができます。デフォルトではメインのモジュールのパスです。

abstract_from
abstract_from="lib/My/Foo.pod"

アブストラクトの情報をpodが書かれているファイルから取り出します。

authors_from
authors_from="lib/My/Foo.pod"

著者の情報をpodが書かれているファイルから取り出します。

authority
authority = "cpan:TOKUHIROM"

METAに x_authority 属性を設定します。 詳細は、http://jawnsy.wordpress.com/2011/02/20/what-is-x_authority/を見てください。

allow_pureperl
allow_pureperl=1

XSの部分がなくても、モジュールが機能的であることを示す真偽値です。XSモジュールが --pureperl_onlyでビルドされる時に、真でなければ失敗します。

Module::Build 0.4005以上のバージョンでのみ有効です。

no_github_issues
no_github_issues=true

Minilla はデフォルトで github の issues をバグトラッカーとして設定します。RTを使いたければ、この値を設定することができます。

no_index
[no_index]
directory=['t', 'xt', 'tools']

Minilla はデフォルトで META.jsonの no_index を directory => ['t', 'xt', 'inc', 'share', 'eg', 'examples', 'author']として 設定します。ですが、これらを変更したければ、このセクションの値をセットできます。このセクションが設定された場合、 指定された値のみが使われます。実際に、デフォルトの設定はマージされません。

c_source
c_source = ['src']

残りのビルドが依存している C のソースファイルのあるディレクトリ。 ディレクトリにある、すべての ".c" ファイルはオブジェクトファイルにコンパイルされます。 ディレクトリは C や XS ファイルのコンパイルとリンクの間、サーチパスに加えれられます。

script_files
script_files = ['bin/foo', 'script/*']

Minilla はデフォルトで、インストールスクリプトファイルを ['script/*', 'bin/*'] とします。

PL_files

PL ファイルを指定します。

[PL_files]
lib/Foo/Bar.pm.PL="lib/Foo/Bar.pm"
build.build_class

カスタムの Module::Build サブクラスを指定します。

[build]
build_class = builder::MyBuilder
FileGatherer.exclude_match
[FileGatherer]
exclude_match=['^author_tools/.*']

デフォルトにはありません。特定のファイルをディストリビューションから除外したければ、 exclude_match オプションを使ってください。パターンにマッチしたファイルは除外されます。

FileGatherer.include_dotfiles
[FileGatherer]
include_dotfiles=false

デフォルトでは、ドットから始まるファイルは、ディストリビューションに含まれません。 この設定はファイルとディレクトリの両方に及びます。

ほとんどすべての場合、デフォルトの値(偽)が正しいです。

release.pause_config
[release]
pause_config="/path/to/some/.pause"

この値を別のPAUSE設定ファイル(詳細は次を参照 "CONFIGURATION" in cpan_upload)に設定することで、 リリースステップで別のPAUSEサーバ(か、PAUSEのアップロードプロセスに十分に似せた何か)を使えます。

そうするためには、upload_uriエントリを加えて、代替のPAUSEサーバにしてください。 例:

upload_uri http://127.0.0.1:5000/pause/authenquery

この機能はCPAN::Uploaderには、公式に書かれていません。

FAQ

Why don't you provide plug-in support?

(なぜ、plug-inをサポートしないのですか?)

プラガブルなものがほしければ、既に dzil があります :P Minillaのような振る舞いが好きならば、Dist::Millaを使うことができます。Minillaの姉妹プロジェクトです。 Dist::Millaの振る舞いはMinillaと大部分似ています。

Why minil only supports git?

(なぜ、minil は git しかサポートしないのですか?)

今のところ、CPANモジュールにとってgitがベストなVCだと思うからです。

他のバージョンコントロールシステムを使いたければ、Dist::Millaを使うことができるでしょう。

And why...

(では、なぜ...)

はい。Dist::Millaを使えます。

Should I add (META.json|Build.PL) to repository?

((META.json|Build.PL)をリポジトリに加えるべきですか?)

はい。cpanm で git リポジトリからのインストールを可能にするために必要です。

How do I manage ppport.h?

(ppport.h をどのように管理しますか?)

ppport.h をリポジトリから消す理由がありますか?

How can I install script files?

(スクリプトファイルをどうやってインストールできますか?)

実行可能なものは script/ に入れてください。これは、Module::Build::Tinyのルールです。

How to switch from Module::Install/Module::Build/Dist::Zilla?

(Module::Install/Module::Build/Dist::Zillaからどのようにスイッチしますか?)

実験的な `minil migrate` サブコマンドを使えます。 詳細は、Minilla::CLI::Migrateを見てください。

AUTHORS

Tokuhiro Matsuno < tokuhirom@gmail.com >

Tatsuhiko Miyagawa

THANKS TO

RJBS, the author of Dist::Zilla. Dist::Zilla points CPAN authorizing tool.

SEE ALSO

LICENSE

Copyright (C) Tokuhiro Matsuno

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.