Minilla-v2.1.1 > Minilla
Minilla-v2.1.1

名前

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::InstallModule::BuildDist::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::XSUtilneeds_compiler_c99> パラメータを指定できます。

XSUtil.needs_compiler_cpp
    [XSUtil]
    needs_compiler_cpp = 1

You can specify needs_compiler_cpp parameter of Module::Build::XSUtil.

Module::Build::XSUtilneeds_compiler_cpp> パラメータを指定できます。

XSUtil.generate_ppport_h
    [XSUtil]
    generate_ppport_h = 1

You can specify generate_ppport_h parameter of Module::Build::XSUtil.

Module::Build::XSUtilgenerate_ppport_h パラメータを指定できます。

XSUtil.generate_xshelper_h
    [XSUtil]
    generate_xshelper_h = 1
    

You can specify generate_xshelper_h parameter of Module::Build::XSUtil.

Module::Build::XSUtilgenerate_xshelper_h パラメータを指定できます。

XSUtil.cc_warnings
    [XSUtil]
    cc_warnings = 1

You can specify cc_warnings parameter of Module::Build::XSUtil.

Module::Build::XSUtilcc_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.