名前¶
Minilla - CPAN module authoring tool
Minilla - CPAN モジュールオーサリングツール
概要¶
minil new - Create a new dist
minil test - Run test cases
minil dist - Make your dist tarball
minil install - Install your dist
minil release - Release your dist to CPAN
minil run - Run arbitrary commands against build dir
minil new - 新しいディストリビューションを作る
minil test - テストケースを実行する
minil dist - 配布用のtar玉を作る
minil install - ディストリビューションをインストールする
minil release - ディストリビューションをCPANにリリースする
minil run - ビルドディレクトリに対して任意のコマンドを実行する
説明¶
Minilla is a CPAN module authoring tool. Minilla provides minil command for authorizing a CPAN distribution.
Minilla は CPANモジュールのオーサリングツールです。Minillaは CPANディストリビューションのオーサリングのために、minilコマンドを用意します。
(M::I - inc) + shipit + (dzil - plugins)
THIS IS A DEVELOPMENT RELEASE. API MAY CHANGE WITHOUT NOTICE.
これは、開発版リリースです。APIは予告なしに変更されるかもしれません
動機¶
慣習¶
As stated above, Minilla is opinionated. Minilla has a bold assumption and convention like the followings, which are almost compatible to the sister project Dist::Milla.
以上のように、Minilla は独断的です。Minillaには以下のような大胆な仮説と慣習があります。これらは姉妹プロジェクトのDist::Millaとほとんど互換性があります。
- Your module written in Pure Perl are located in lib/.
- Your executable file is in script/ directory, if any
- Your module is maintained with Git and
git ls-files
matches with what you will release - Your module has a static list of prerequisites that can be described in cpanfile
- Your module has a Changes file
- lib/以下にPure Perl でモジュールが書かれている
- 実行ファイルはなんであれ、script/ディレクトリ以下にある
- モジュールは Git でメンテナンスされており、
git ls-files
は、リリースするものにマッチする - モジュールは、cpanfileに予め必要なものの静的なリストがある
- モジュールには、Changes がある
始めましょう¶
# 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
It's that easy.
このように、簡単です。
You already have distributions with Module::Install, Module::Build, Dist::Zilla or ShipIt? Migrating is also trivial. See "MIGRATING" in Minilla::Tutorial for more details.
Module::Install、Module::Build、Dist::Zilla、または、ShipItを使ったディストリビューションがすでにありますか? 移行もまた些細なことです。詳細は、Minilla::Tutorialの"MIGRATING"を見てください。
なぜ MINILLA?¶
Minillaで作成され、管理されたリポジトリは git インストールできます。¶
The repository created and managed by Minilla is git install ready. You can install the library by cpanm git://...
.
Minillaで作成され、管理されたリポジトリは git インストールできます。 cpanm git://...
で、インストールできます。
Of course, you can install Minilla from cpanm git://github.com/tokuhirom/Minilla.git
.
もちろん、Minilla を、 cpanm git://github.com/tokuhirom/Minilla.git
からインストールできます。
Minilla は小さなライブラリでできています。¶
Minilla is built on only few small libraries. You can install Minilla without a huge list of dependencies to heavy modules.
Minilla は、ほんの少しの小さなライブラリで作られています。重たいモジュールに依存する巨大なリストなしに、インストールすることができます。
Minillaって何?¶
Minilla is a Kaiju (Japanese giant monster) from the Godzilla series of films and is the first of several young Godzillas.
http://en.wikipedia.org/wiki/Minilla
ミニラは怪獣(日本の巨大なモンスター)で、ゴジラの一連の映画から取られました。最初の若いゴジラです。
http://en.wikipedia.org/wiki/Minilla
設定¶
Minilla uses Convention over Configuration.
Minilla は 設定より規約を用いています。
But, you can write configurations to minil.toml file in TOML format. Minilla reads the minil.toml file in the root directory of your project.
ですが、設定をminil.tomlファイルに TOMLフォーマットで書くことができます。Minilla は、プロジェクトのルートディレクトリにあるminil.tomlファイルを読みます。
- name
-
You can write 'name' instead of automatically detecting project name out of the directory name.
ディレクトリ名から自動的に調べられるプロジェクト名の代わりに、'name'を書くことができます。
- readme_from
-
readme_from="lib/My/Foo.pod"
You can specify the file to generate the README.md. This is a main module path by default.
README.md を生成するファイルを指定することができます。デフォルトではメインのモジュールのパスです。
- tag_format
-
tag_format="perl/%v"
format of the tag to apply. Defaults to %v.
%v
will replace with the distribution version.適用するタグのフォーマットです。デフォルトは %v です。
%v
はディストリビューションのバージョンに置換されます。 - abstract_from
-
abstract_from="lib/My/Foo.pod"
Grab abstract information from the file contains pod.
アブストラクトの情報をpodが書かれているファイルから取り出します。
- authors_from
-
authors_from="lib/My/Foo.pod"
Grab authors information from the file contains pod.
著者の情報をpodが書かれているファイルから取り出します。
- authority
-
authority = "cpan:TOKUHIROM"
Set x_authority attribute to META. See http://jawnsy.wordpress.com/2011/02/20/what-is-x_authority/ for more details.
METAに x_authority 属性を設定します。 詳細は、http://jawnsy.wordpress.com/2011/02/20/what-is-x_authority/を見てください。
- allow_pureperl
-
allow_pureperl=1
A boolean indicating the module is still functional without its XS parts. When an XS module is build with
--pureperl_only
, it will otherwise fail.XSの部分がなくても、モジュールが機能的であることを示す真偽値です。XSモジュールが
--pureperl_only
でビルドされる時に、真でなければ失敗します。It affects to Module::Build 0.4005+ only.
Module::Build 0.4005以上のバージョンでのみ有効です。
- no_github_issues
-
no_github_issues=true
Minilla sets bugtracker as github issues by default. But if you want to use RT, you can set this variable.
Minilla はデフォルトで github の issues をバグトラッカーとして設定します。RTを使いたければ、この値を設定することができます。
- no_index
-
[no_index] directory=['t', 'xt', 'tools']
Minilla sets META.json's no_index as
directory => ['t', 'xt', 'inc', 'share', 'eg', 'examples', 'author', 'builder']
by default. But if you want to change them, you can set this section variable. If this section is set, specified variables are only used, in fact default settings are not merged.Minilla はデフォルトで META.jsonの no_index を
directory => ['t', 'xt', 'inc', 'share', 'eg', 'examples', 'author', 'builder']
として 設定します。ですが、これらを変更したければ、このセクションの値をセットできます。このセクションが設定された場合、 指定された値のみが使われます。実際に、デフォルトの設定はマージされません。 - c_source
-
c_source = ['src']
A directory which contains C source files that the rest of the build may depend on. Any ".c" files in the directory will be compiled to object files. The directory will be added to the search path during the compilation and linking phases of any C or XS files.
残りのビルドが依存している C のソースファイルのあるディレクトリ。 ディレクトリにある、すべての ".c" ファイルはオブジェクトファイルにコンパイルされます。 ディレクトリは C や XS ファイルのコンパイルとリンクの間、サーチパスに加えれられます。
- script_files
-
script_files = ['bin/foo', 'script/*']
Minilla sets install script files as
['script/*', 'bin/*']
by default.Minilla はデフォルトで、インストールスクリプトファイルを
['script/*', 'bin/*']
とします。 - tap_harness_args(EXPERIMENTAL)
-
[tap_harness_args] jobs=19
This parameters pass to TAP::Harness when running tests. See the TAP::Harness documentation for details.
このパラメータは、テスト時に TAP::Harness に渡されます。詳細は、TAP::Harness のドキュメントを見てください。
- license
-
license="artistic_2"
You can specify your favorite license on minil.toml. The license key is same as CPAN Meta spec 2.0. See CPAN::Meta::Spec.
自分の気に入ったライセンスを minil.toml に指定できます。ライセンスのキーは CPAN Meta spec 2.0 と同じです。
- badges
-
badges = ['travis', 'coveralls']
Embed badges image (e.g. Travis-CI) to README.md. It ought to be array and each elements must be service name. Now, supported services are only 'travis' and 'coveralls'.
バッジイメージ(例. Travis-CI)を README.md に埋め込みます。配列であるべきであり、それぞれの要素はサービス名でなければいけません。現在サポートされているサービスは、'travis' と 'coveralls' のみです。
- PL_files
-
Specify the PL files.
PL ファイルを指定します。
[PL_files] lib/Foo/Bar.pm.PL="lib/Foo/Bar.pm"
- build.build_class
-
Specify a custom Module::Build subclass.
カスタムの Module::Build サブクラスを指定します。
[build] build_class = "builder::MyBuilder"
- XSUtil.needs_compiler_c99
-
[XSUtil] needs_compiler_c99 = 1
You can specify
needs_compiler_c99
parameter of Module::Build::XSUtil.Module::Build::XSUtil の
needs_compiler_c99
> パラメータを指定できます。 - XSUtil.needs_compiler_cpp
-
[XSUtil] needs_compiler_cpp = 1
You can specify
needs_compiler_cpp
parameter of Module::Build::XSUtil.Module::Build::XSUtil の
needs_compiler_cpp
> パラメータを指定できます。 - XSUtil.generate_ppport_h
-
[XSUtil] generate_ppport_h = 1
You can specify
generate_ppport_h
parameter of Module::Build::XSUtil.Module::Build::XSUtil の
generate_ppport_h
パラメータを指定できます。 - XSUtil.generate_xshelper_h
-
[XSUtil] generate_xshelper_h = 1
You can specify
generate_xshelper_h
parameter of Module::Build::XSUtil.Module::Build::XSUtil の
generate_xshelper_h
パラメータを指定できます。 - XSUtil.cc_warnings
-
[XSUtil] cc_warnings = 1
You can specify
cc_warnings
parameter of Module::Build::XSUtil.Module::Build::XSUtil の
cc_warnings
パラメータを指定できます。 - FileGatherer.exclude_match
-
[FileGatherer] exclude_match = ['^author_tools/.*']
Nothing by default. To exclude certain files from being gathered into dist, use the
exclude_match
option. Files matching the patterns are not gathered.デフォルトにはありません。特定のファイルをディストリビューションから除外したければ、
exclude_match
オプションを使ってください。パターンにマッチしたファイルは除外されます。 - FileGatherer.include_dotfiles
-
[FileGatherer] include_dotfiles = false
By default, files will not be included in dist if they begin with a dot. This goes both for files and for directories.
デフォルトでは、ドットから始まるファイルは、ディストリビューションに含まれません。 この設定はファイルとディレクトリの両方に及びます。
In almost all cases, the default value (false) is correct.
ほとんどすべての場合、デフォルトの値(偽)が正しいです。
- release.pause_config
-
[release] pause_config = "/path/to/some/.pause"
By setting this value to another PAUSE configuration file (see "CONFIGURATION" in cpan_upload for the details), it is possible to use another PAUSE server (or anything good enough to mimick its upload process) for the release step.
この値を別のPAUSE設定ファイル(詳細は次を参照 "CONFIGURATION" in cpan_upload)に設定することで、 リリースステップで別のPAUSEサーバ(か、PAUSEのアップロードプロセスに十分に似せた何か)を使えます。
To do so, simply add a
upload_uri
entry in your file to the alternate PAUSE server, i.e :そうするためには、
upload_uri
エントリを加えて、代替のPAUSEサーバにしてください。 例:upload_uri http://127.0.0.1:5000/pause/authenquery
If you instantly launch your origin upload server as DarkPAN, See OrePAN2::Server.
DarkPan のような自分のオリジナルアップロードサーバをすぐに立ち上げたいのなら、OrePAN2::Server を見てください。
- release.do_not_upload_to_cpan
-
[release] do_not_upload_to_cpan=true
This variable disables CPAN upload feature.
この値はCPANへのアップロード機能を無効にします。
- release.hooks
-
[release] hooks = [ "COMMAND1", "COMMAND2" ]
Commands that are specified by this option will be executed when releasing. If result of commands is not successful, it will abort.
このオプションで指定されたコマンドはリリース時に実行されます。コマンドが成功しなければ、中止されます。
- ReleaseTest.MinimumVersion
-
[ReleaseTest] MinimumVersion = false
If you set this key false, Minilla will not generate 'xt/minilla/minimum_version.t'.
この値を偽にすると、Minilla は 'xt/minilla/minimum_version.t' を生成しません。
- requires_external_bin
-
requires_external_bin=['tar']
The
requires_external_bin
command takes the name of a system command or program. Build fail if the command does not exist.requires_external_bin
コマンドはシステムコマンドかプログラムの名前を 取ります。コマンドが存在しない場合ビルドは失敗します。
FAQ¶
- How can I manage contributors section?
-
(contributors> セクションをどのように管理できますか?)
Minilla aggregates contributors list from
git log --format="%aN <%aE>" | sort | uniq
.Minilla はコントリビュータのリストを
git log --format="%aN <%aE>" | sort | uniq
からアグリゲートします。You can merge accounts by .mailmap file. See https://www.kernel.org/pub/software/scm/git/docs/git-shortlog.html
.mailmap ファイルで、アカウントをマージできます。 https://www.kernel.org/pub/software/scm/git/docs/git-shortlog.html を見てください。
- Why don't you provide plug-in support?
-
(なぜ、plug-inをサポートしないのですか?)
If you want a pluggable tool, it already exists: It's called Dist::Zilla :P If you like Minilla's behavior but you really want something pluggable, you can use Dist::Milla, Minilla's sister project. Dist::Milla's behavior is almost identical to that of Minilla.
プラガブルなツールがほしければ、既にあります: それは、Dist::Zilla と呼ばれます :P Minillaのような振る舞いが好きで、ですが、本当にプラガブルなものが欲しいならば、Dist::Millaを使うことができます。Minillaの姉妹プロジェクトです。 Dist::Milla の振る舞いは Minilla と大部分一致します。
- Why does minil only support git?
-
(なぜ、minil は git しかサポートしないのですか?)
I think git is a best VC for CPAN modules, for now.
今のところ、CPANモジュールにとってgitがベストなVCだと思うからです。
If you want to use another version control system, you can probably use Dist::Milla.
他のバージョンコントロールシステムを使いたければ、Dist::Millaを使うことができるでしょう。
- And why...
-
(では、なぜ...)
Yes. You can use Dist::Milla.
はい。Dist::Millaを使えます。
- Should I add (META.json|Build.PL) to repository?
-
((META.json|Build.PL)をリポジトリに加えるべきですか?)
Yes. You need to add it to make your git repo installable via cpanm.
はい。cpanm で git リポジトリからのインストールを可能にするために必要です。
- How do I manage ppport.h?
-
(ppport.h をどのように管理しますか?)
Is there a reason to remove ppport.h from repo?
ppport.h をリポジトリから消す理由がありますか?
- How can I install script files?
-
(スクリプトファイルをどうやってインストールできますか?)
Your executables must be in script/. It's Module::Build::Tiny's rule.
実行可能なものは script/ に入れてください。これは、Module::Build::Tinyのルールです。
- How to switch from Module::Install/Module::Build/Dist::Zilla?
-
(Module::Install/Module::Build/Dist::Zillaからどのようにスイッチしますか?)
You can use experimental `minil migrate` sub-command. See Minilla::CLI::Migrate for more details.
実験的な `minil migrate` サブコマンドを使えます。 詳細は、Minilla::CLI::Migrateを見てください。
- How should I manage the files you do not want to upload to CPAN?
-
(CPANにアップロードしたくないファイルをどのように管理すべきですか?)
Please use FileGatherer.exclude_match for ignoring files to upload tar ball.
tarボールをアップロードするファイルを無視するために、FileGatherer.exclude_match を使ってください。
You can use MANIFEST.SKIP file for ignoring files. ref. ExtUtils::Manifest.
MANIFEST.SKIP ファイルをファイルを無視するのに使えます。ExtUtils::Manifest を参照。
- How do I use Module::Build::Tiny with Minilla?
-
(どうやって、Module::Build::Tiny を Minillaで使いますか?)
Minilla v0.15.0+ supports v0.15.0(EXPERIMENTAL).
Minilla v0.15.0+ は v0.15.0をサポートします(EXPERIMENTAL).
If you want to create new project with Module::Build::Tiny, run the command as following.
Module::Build::Tiny を 新しいプロジェクトで作りたければ、以下のコマンドを走らせてください。
% minil new -p ModuleBuildTiny My::Awesome::Module
If you want to migrate existing project, you need to rewrite minil.toml file. You need to add following line:
存在するプロジェクトをマイグレートしたければ、minil.toml ファイルを変更する必要があります。 以下の行を追加する必要があります。
module_maker="ModuleBuildTiny"
- How do I use ExtUtils::MakeMaker with Minilla?
-
(どうやって、ExtUtils::MakeMakerをMinillaで使いますか?)
Minilla v2.1.0+ supports EUMM(EXPERIMENTAL).
Minilla v2.1.0+ は EUMM をサポートします(EXPERIMENTAL).
You need to rewrite minil.toml file. You need to add following line:
minil.toml ファイルを変更する必要があります。 以下の行を追加する必要があります。
module_maker="ExtUtilsMakeMaker"
(There is no profile, yet. Patches welcome.)
(プロファイルが、まだありません。パッチ歓迎)
I don't suggest to use this module... But you can use this option for maintaining primitive modules like Test::TCP.
このモジュールを使うことをお薦めしません... ですが、Test::TCP のようなプリミティブなモジュールを メンテナンスするために、このオプションを使うことができます。
作者¶
Tokuhiro Matsuno < tokuhirom@gmail.com >
Tatsuhiko Miyagawa
THANKS TO¶
RJBS, the author of Dist::Zilla. Dist::Zilla points CPAN authorizing tool.
SEE ALSO¶
ライセンス¶
Copyright (C) Tokuhiro Matsuno
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.