Minilla - CPAN module authoring tool
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
Minilla is a CPAN module authoring tool. Minilla provides minil command for authorizing a CPAN distribution.
(M::I - inc) + shipit + (dzil - plugins)
THIS IS A DEVELOPMENT RELEASE. API MAY CHANGE WITHOUT NOTICE.
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.
git ls-files
# 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.
The repository created and managed by Minilla is git install ready. You can install the library by cpanm git://....
cpanm git://...
Of course, you can install Minilla from cpanm git://github.com/tokuhirom/Minilla.git.
cpanm git://github.com/tokuhirom/Minilla.git
Minilla is built on only few small libraries. You can install Minilla without a huge list of dependencies to heavy modules.
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
Minilla uses Convention over Configuration.
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.
You can write 'name' instead of automatically detecting project name out of the directory name.
readme_from="lib/My/Foo.pod"
You can specify the file to generate the README.md. This is a main module path by default.
abstract_from="lib/My/Foo.pod"
Grab abstract information from the file contains pod.
authors_from="lib/My/Foo.pod"
Grab authors information from the file contains pod.
allow_pureperl=1
A bool indicating the module is still functional without its XS parts. When an XS module is build with --pureperl_only, it will otherwise fail.
--pureperl_only
It affects to Module::Build 0.4005+ only.
no_github_issues=true
Minilla sets bugtracker as github issues by default. But if you want to use RT, you can set this variable.
[no_index] directory=['t', 'xt', 'tools']
Minilla sets META.json's no_index as directory => ['t', 'xt', 'inc', 'share', 'eg', 'examples', 'author'] 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.
directory => ['t', 'xt', 'inc', 'share', 'eg', 'examples', 'author']
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.
script_files = ['bin/foo', 'script/*']
Minilla sets install script files as ['script/*', 'bin/*'] by default.
['script/*', 'bin/*']
Specify a custom Module::Build subclass.
[build] build_class = builder::MyBuilder
[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=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="/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.
To do so, simply add a upload_uri entry in your file to the alternate PAUSE server, i.e :
upload_uri
upload_uri http://127.0.0.1:5000/pause/authenquery
Note that this feature is not officially documented in CPAN::Uploader.
If you want to pluggable thing, it's already exist dzil :P And if you like a behavior like Minilla, you can use Dist::Milla, the sister project of Minilla. Dist::Milla's behavior is mostly like Minilla.
I think git is a best VC for CPAN modules, for now.
If you want to use another version control system, you can probably use Dist::Milla.
Yes. You can use Dist::Milla.
Yes. You need to add it to make your git repo installable via cpanm.
Is there a reason to remove ppport.h from repo?
Your executables must be in script/. It's Module::Build::Tiny's rule.
You can use experimental `minil migrate` sub-command. See Minilla::CLI::Migrate for more details.
Tokuhiro Matsuno < tokuhirom@gmail.com >
Tatsuhiko Miyagawa
RJBS, the author of Dist::Zilla. Dist::Zilla points CPAN authorizing tool.
Copyright (C) Tokuhiro Matsuno
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Minilla, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Minilla
CPAN shell
perl -MCPAN -e shell install Minilla
For more information on module installation, please visit the detailed CPAN module installation guide.