.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Minilla 3pm" .TH Minilla 3pm "2023-02-21" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Minilla \- CPAN module authoring tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 6 \& 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 .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Minilla is a \s-1CPAN\s0 module authoring tool. Minilla provides minil command for authorizing a \s-1CPAN\s0 distribution. .PP .Vb 1 \& (M::I \- inc) + shipit + (dzil \- plugins) .Ve .SH "CONVENTION" .IX Header "CONVENTION" 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. .IP "Your modules are written in Pure Perl and are located in \fIlib/\fR." 4 .IX Item "Your modules are written in Pure Perl and are located in lib/." .PD 0 .IP "Your executable files are in \fIscript/\fR directory, if any" 4 .IX Item "Your executable files are in script/ directory, if any" .ie n .IP "Your module is maintained with \fBGit\fR, ""git ls\-files"" matches with what you will release and your remote is named \fIorigin\fR" 4 .el .IP "Your module is maintained with \fBGit\fR, \f(CWgit ls\-files\fR matches with what you will release and your remote is named \fIorigin\fR" 4 .IX Item "Your module is maintained with Git, git ls-files matches with what you will release and your remote is named origin" .IP "Your module has a static list of prerequisites that can be described in cpanfile" 4 .IX Item "Your module has a static list of prerequisites that can be described in cpanfile" .IP "Your module has a Changes file" 4 .IX Item "Your module has a Changes file" .IP "Your module requires at least perl 5.6." 4 .IX Item "Your module requires at least perl 5.6." .PD .SH "GETTING STARTED" .IX Header "GETTING STARTED" .Vb 3 \& # First time only \& % cpanm \-\-with\-recommends 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 .Ve .PP It's that easy. .PP You already have distributions with Module::Install, Module::Build, Dist::Zilla or ShipIt? Migrating is also trivial. See \*(L"\s-1MIGRATING\*(R"\s0 in Minilla::Tutorial for more details. .SH "WHY MINILLA?" .IX Header "WHY MINILLA?" .SS "Repository managed by Minilla is git install ready." .IX Subsection "Repository managed by Minilla is git install ready." The repository created and managed by Minilla is git install ready. You can install the library by \f(CW\*(C`cpanm git://...\*(C'\fR. .PP Of course, you can install Minilla from \f(CW\*(C`cpanm git://github.com/tokuhirom/Minilla.git\*(C'\fR. .SS "Minilla is built on small libraries." .IX Subsection "Minilla is built on small libraries." Minilla is built on only few small libraries. You can install Minilla without a huge list of dependencies to heavy modules. .SS "And, what is Minilla?" .IX Subsection "And, what is Minilla?" .Vb 2 \& Minilla is a Kaiju (Japanese giant monster) from the Godzilla series of films and is the first of several young Godzillas. \& https://en.wikipedia.org/wiki/Minilla .Ve .SH "Minilla's release process" .IX Header "Minilla's release process" Minilla's release process is the following. .SS "CheckUntrackedFiles" .IX Subsection "CheckUntrackedFiles" Checking git's untracked files. If there's untracked files, minilla will abort. .SS "CheckOrigin" .IX Subsection "CheckOrigin" This step will run the `git remote`. If there's no remote, minilla will abort. .SS "CheckReleaseBranch" .IX Subsection "CheckReleaseBranch" Checking git's current branch is `release.branch` key in minil.toml. If no match, minilla will abort. .SS "BumpVersion" .IX Subsection "BumpVersion" Minilla will show 'Next Release?' prompt. You can input next version number. .PP After that, minilla rewrites version numbers in **/*.pm, **/*.pl, and a script file contains perl-ish shebang. .SS "CheckChanges" .IX Subsection "CheckChanges" You need to write Changes file. Your module's users need to know the difference between versions. .PP Minilla's Changes file includes `{{$NEXT}}` next version indicator. You should put update informations after that. .SS "RegenerateFiles" .IX Subsection "RegenerateFiles" In this step, minilla will regenerate \s-1META\s0.json, \s-1README\s0.md and (Makefile.PL|Build.PL). .SS "RunHooks" .IX Subsection "RunHooks" This step runs commands listed on `release.hooks` key in minil.toml. .SS "DistTest" .IX Subsection "DistTest" This script runs test cases in clean working directory with \f(CW\*(C`$ENV{RELEASE_TESTING} = 1\*(C'\fR. .SS "MakeDist" .IX Subsection "MakeDist" Make distribution tar ball. .SS "UploadToCPAN" .IX Subsection "UploadToCPAN" Upload your module to \s-1CPAN.\s0 .SS "RewriteChanges" .IX Subsection "RewriteChanges" Rewrite Changes file. Minilla replaces \f(CW\*(C`{{$NEXT}}\*(C'\fR with released version number and current date & time. And put \f(CW\*(C`{{$NEXT}}\*(C'\fR on the first line. .SS "Commit" .IX Subsection "Commit" Commit current directory with automatically generated commit message from Changes file. And push it to origin. .SS "Tag" .IX Subsection "Tag" Create new git tag and push it to origin. .SH "CONFIGURATION" .IX Header "CONFIGURATION" Minilla uses \fBConvention over Configuration\fR. .PP But, you can write configurations to \fIminil.toml\fR file in \s-1TOML\s0 format. Minilla reads the \fIminil.toml\fR file in the root directory of your project. .IP "name" 4 .IX Item "name" You can write 'name' instead of automatically detecting project name out of the directory name. .IP "readme_from" 4 .IX Item "readme_from" .Vb 1 \& readme_from="lib/My/Foo.pod" .Ve .Sp You can specify the file to generate the \s-1README\s0.md. This is a main module path by default. .IP "tag_format" 4 .IX Item "tag_format" .Vb 1 \& tag_format="perl/%v" .Ve .Sp format of the tag to apply. Defaults to \f(CW%v\fR. \f(CW%v\fR will replace with the distribution version. .IP "abstract_from" 4 .IX Item "abstract_from" .Vb 1 \& abstract_from="lib/My/Foo.pod" .Ve .Sp Grab abstract information from the file contains pod. .IP "authors_from" 4 .IX Item "authors_from" .Vb 1 \& authors_from="lib/My/Foo.pod" .Ve .Sp Grab authors information from the file contains pod. .IP "authority" 4 .IX Item "authority" .Vb 1 \& authority = "cpan:TOKUHIROM" .Ve .Sp Set x_authority attribute to \s-1META.\s0 See for more details. Note that now \s-1PAUSE\s0 itself copies the permissions from the \*(L"main module\*(R" to any new modules entering the index for the first time, so you don't need to set this attribute anymore. .IP "allow_pureperl" 4 .IX Item "allow_pureperl" .Vb 1 \& allow_pureperl=1 .Ve .Sp A boolean indicating the module is still functional without its \s-1XS\s0 parts. When an \s-1XS\s0 module is build with \f(CW\*(C`\-\-pureperl_only\*(C'\fR, it will otherwise fail. .Sp It affects to Module::Build 0.4005+ only. .IP "no_github_issues" 4 .IX Item "no_github_issues" .Vb 1 \& no_github_issues=true .Ve .Sp Minilla sets bugtracker to github/GitLab's issue tracker by default. But if you want to use \s-1RT,\s0 you can set this variable. .IP "no_index" 4 .IX Item "no_index" .Vb 2 \& [no_index] \& directory=[\*(Aqt\*(Aq, \*(Aqxt\*(Aq, \*(Aqtools\*(Aq] .Ve .Sp Minilla sets \s-1META\s0.json's no_index as \f(CW\*(C`directory => [\*(Aqt\*(Aq, \*(Aqxt\*(Aq, \*(Aqinc\*(Aq, \*(Aqshare\*(Aq, \*(Aqeg\*(Aq, \*(Aqexamples\*(Aq, \*(Aqauthor\*(Aq, \*(Aqbuilder\*(Aq]\*(C'\fR 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. .IP "c_source" 4 .IX Item "c_source" .Vb 1 \& c_source = [\*(Aqsrc\*(Aq] .Ve .Sp A directory which contains C source files that the rest of the build may depend on. Any \*(L".c\*(R" 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 \s-1XS\s0 files. .IP "script_files" 4 .IX Item "script_files" .Vb 1 \& script_files = [\*(Aqbin/foo\*(Aq, \*(Aqscript/*\*(Aq] .Ve .Sp Minilla sets install script files as \f(CW\*(C`[\*(Aqscript/*\*(Aq, \*(Aqbin/*\*(Aq]\*(C'\fR by default. .Sp (Note. This option doesn't affect anything if you are using ModuleBuildTiny or ExtUtilsMakeMaker, for now. If you are using ModuleBuildTiny, you \s-1MUST\s0 put scripts in script/ directory.) .IP "tap_harness_args(\s-1EXPERIMENTAL\s0)" 4 .IX Item "tap_harness_args(EXPERIMENTAL)" .Vb 2 \& [tap_harness_args] \& jobs=19 .Ve .Sp This parameters pass to TAP::Harness when running tests. See the TAP::Harness documentation for details. .IP "license" 4 .IX Item "license" .Vb 1 \& license="artistic_2" .Ve .Sp You can specify your favorite license on minil.toml. The license key is same as \s-1CPAN\s0 Meta spec 2.0. See CPAN::Meta::Spec. .IP "badges" 4 .IX Item "badges" .Vb 1 \& badges = [\*(Aqtravis\-ci.com\*(Aq, \*(Aqtravis\-ci.org\*(Aq, \*(Aqcircleci\*(Aq, \*(Aqappveyor\*(Aq, \*(Aqcoveralls\*(Aq, \*(Aqcodecov\*(Aq, \*(Aqgitter\*(Aq, \*(Aqmetacpan\*(Aq, \*(Aqkritika\*(Aq, \*(Aqgithub\-actions/$workflow_file\*(Aq, \*(Aqgitlab\-pipeline\*(Aq, \*(Aqgitlab\-coverage\*(Aq] .Ve .Sp Embed badges image (e.g. Travis-CI) to \s-1README\s0.md. It ought to be array and each elements must be service name. Now, supported services are 'travis\-ci.com', 'travis\-ci.org', 'circleci', 'appveyor', 'coveralls', 'codecov', 'gitter', 'metacpan', 'kritika' 'github\-actions', 'gitlab\-pipeline' and 'gitlab\-coverage'. .Sp You can send additional parameters as required by your \s-1CI\s0 provider by including a query string along with your service name: e.g. \f(CW\*(C`travis?token=[YOUR_TOKEN_GOES_HERE]&branch=dev\*(C'\fR .IP "PL_files" 4 .IX Item "PL_files" Specify the \s-1PL\s0 files. .Sp .Vb 2 \& [PL_files] \& lib/Foo/Bar.pm.PL="lib/Foo/Bar.pm" .Ve .Sp This option is not supported by Minilla::ModuleMaker::ModuleBuildTiny. .Sp Note. MBTiny executes *.PL files by default. .IP "build.build_class" 4 .IX Item "build.build_class" Specify a custom Module::Build subclass. .Sp .Vb 2 \& [build] \& build_class = "builder::MyBuilder" .Ve .IP "XSUtil.needs_compiler_c99" 4 .IX Item "XSUtil.needs_compiler_c99" .Vb 2 \& [XSUtil] \& needs_compiler_c99 = 1 .Ve .Sp You can specify \f(CW\*(C`needs_compiler_c99\*(C'\fR parameter of Module::Build::XSUtil. .IP "XSUtil.needs_compiler_cpp" 4 .IX Item "XSUtil.needs_compiler_cpp" .Vb 2 \& [XSUtil] \& needs_compiler_cpp = 1 .Ve .Sp You can specify \f(CW\*(C`needs_compiler_cpp\*(C'\fR parameter of Module::Build::XSUtil. .IP "XSUtil.generate_ppport_h" 4 .IX Item "XSUtil.generate_ppport_h" .Vb 2 \& [XSUtil] \& generate_ppport_h = 1 .Ve .Sp You can specify \f(CW\*(C`generate_ppport_h\*(C'\fR parameter of Module::Build::XSUtil. .IP "XSUtil.generate_xshelper_h" 4 .IX Item "XSUtil.generate_xshelper_h" .Vb 2 \& [XSUtil] \& generate_xshelper_h = 1 .Ve .Sp You can specify \f(CW\*(C`generate_xshelper_h\*(C'\fR parameter of Module::Build::XSUtil. .IP "XSUtil.cc_warnings" 4 .IX Item "XSUtil.cc_warnings" .Vb 2 \& [XSUtil] \& cc_warnings = 1 .Ve .Sp You can specify \f(CW\*(C`cc_warnings\*(C'\fR parameter of Module::Build::XSUtil. .IP "FileGatherer.exclude_match" 4 .IX Item "FileGatherer.exclude_match" .Vb 2 \& [FileGatherer] \& exclude_match = [\*(Aq^author_tools/.*\*(Aq] .Ve .Sp Nothing by default. To exclude certain files from being gathered into dist, use the \&\f(CW\*(C`exclude_match\*(C'\fR option. Files matching the patterns are not gathered. .IP "FileGatherer.include_dotfiles" 4 .IX Item "FileGatherer.include_dotfiles" .Vb 2 \& [FileGatherer] \& include_dotfiles = false .Ve .Sp By default, files will not be included in dist if they begin with a dot. This goes both for files and for directories. .Sp In almost all cases, the default value (false) is correct. .IP "release.pause_config" 4 .IX Item "release.pause_config" .Vb 2 \& [release] \& pause_config = "/path/to/some/.pause" .Ve .Sp By setting this value to another \s-1PAUSE\s0 configuration file (see \&\*(L"\s-1CONFIGURATION\*(R"\s0 in cpan-upload for the details), it is possible to use another \&\s-1PAUSE\s0 server (or anything good enough to mimick its upload process) for the release step. .Sp To do so, simply add a \f(CW\*(C`upload_uri\*(C'\fR entry in your file to the alternate \s-1PAUSE\s0 server, i.e : .Sp .Vb 1 \& upload_uri http://127.0.0.1:5000/pause/authenquery .Ve .Sp If you instantly launch your origin upload server as DarkPAN, See OrePAN2::Server. .IP "release.do_not_upload_to_cpan" 4 .IX Item "release.do_not_upload_to_cpan" .Vb 2 \& [release] \& do_not_upload_to_cpan=true .Ve .Sp This variable disables \s-1CPAN\s0 upload feature. .IP "release.hooks" 4 .IX Item "release.hooks" .Vb 5 \& [release] \& hooks = [ \& "COMMAND1", \& "COMMAND2" \& ] .Ve .Sp Commands that are specified by this option will be executed when releasing. If result of commands is not successful, it will abort. .IP "release.branch" 4 .IX Item "release.branch" .Vb 2 \& [release] \& branch = "main" .Ve .Sp If this value does not match the current branch, it will abort. .IP "unsupported.os" 4 .IX Item "unsupported.os" .Vb 5 \& [unsupported] \& os = [ \& "MSWin32", \& "darwin" \& ] .Ve .Sp By setting this value to add unsupported \s-1OS\s0 checks for (Build.PL|Makefile.PL). .IP "ReleaseTest.MinimumVersion" 4 .IX Item "ReleaseTest.MinimumVersion" .Vb 2 \& [ReleaseTest] \& MinimumVersion = false .Ve .Sp If you set this key false, Minilla will not generate 'xt/minilla/minimum_version.t'. .IP "requires_external_bin" 4 .IX Item "requires_external_bin" .Vb 1 \& requires_external_bin=[\*(Aqtar\*(Aq] .Ve .Sp The \f(CW\*(C`requires_external_bin\*(C'\fR command takes the name of a system command or program. Build fail if the command does not exist. .IP "markdown_maker" 4 .IX Item "markdown_maker" .Vb 1 \& markdown_maker = "Pod::Markdown::Github" .Ve .Sp Use a different module to generate \f(CW\*(C`README.md\*(C'\fR from your pod. This module must subclass Pod::Markdown. .IP "Metadata" 4 .IX Item "Metadata" .Vb 2 \& [Metadata] \& x_deprecated = 1 .Ve .Sp Add arbitrary keys to \f(CW\*(C`META.json\*(C'\fR/\f(CW\*(C`META.yml\*(C'\fR. .IP "static_install" 4 .IX Item "static_install" .Vb 1 \& static_install = "auto" .Ve .Sp If \f(CW\*(C`static_install = "auto"\*(C'\fR (or nothing is specified at all), then minil tries to detect whether distributions are ready for static install or not, and set \f(CW\*(C`x_static_install\*(C'\fR in \s-1META\s0 files accordingly. You can also set \f(CW\*(C`static_install = 0/1\*(C'\fR explicitly; then minil will respect it. .Sp For static install itself, please refer to . .SH "FAQ" .IX Header "FAQ" .IP "How can I manage \fBcontributors\fR section?" 4 .IX Item "How can I manage contributors section?" Minilla aggregates contributors list from \f(CW\*(C`git log \-\-format="%aN <%aE>" | sort | uniq\*(C'\fR. .Sp You can merge accounts by .mailmap file. See .IP "Why don't you provide plug-in support?" 4 .IX Item "Why don't you provide plug-in support?" 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. .IP "Why does minil only support git?" 4 .IX Item "Why does minil only support git?" I think git is a best \s-1VC\s0 for \s-1CPAN\s0 modules, for now. .Sp If you want to use another version control system, you can probably use Dist::Milla. .IP "And why..." 4 .IX Item "And why..." Yes. You can use Dist::Milla. .IP "Should I add (\s-1META\s0.json|Build.PL) to repository?" 4 .IX Item "Should I add (META.json|Build.PL) to repository?" Yes. You need to add it to make your git repo installable via cpanm. .IP "How do I manage ppport.h?" 4 .IX Item "How do I manage ppport.h?" Is there a reason to remove ppport.h from repo? .IP "How can I install script files?" 4 .IX Item "How can I install script files?" Your executables must be in \fIscript/\fR directory. .IP "How to switch from Module::Install/Module::Build/Dist::Zilla?" 4 .IX Item "How to switch from Module::Install/Module::Build/Dist::Zilla?" You can use experimental `minil migrate` sub-command. See Minilla::CLI::Migrate for more details. .IP "How should I manage the files you do not want to upload to \s-1CPAN\s0?" 4 .IX Item "How should I manage the files you do not want to upload to CPAN?" Please use FileGatherer.exclude_match for ignoring files to upload tar ball. .Sp You can use \s-1MANIFEST.SKIP\s0 file for ignoring files. ref. ExtUtils::Manifest. .IP "How do I use Module::Build::Tiny with Minilla?" 4 .IX Item "How do I use Module::Build::Tiny with Minilla?" Minilla supports Module::Build::Tiny and uses it as a default installer since v1.0.0. .Sp If you want to migrate an existing project created before Minilla v1.0, you need to rewrite \f(CW\*(C`minil.toml\*(C'\fR file. You need to add the following line: .Sp .Vb 1 \& module_maker="ModuleBuildTiny" .Ve .IP "How do I use Module::Build with Minilla?" 4 .IX Item "How do I use Module::Build with Minilla?" If you want to create new project with Module::Build, run the command as following. .Sp .Vb 1 \& % minil new \-p ModuleBuild My::Awesome::Module .Ve .IP "How do I use ExtUtils::MakeMaker with Minilla?" 4 .IX Item "How do I use ExtUtils::MakeMaker with Minilla?" Minilla v2.1.0+ supports \s-1EUMM\s0(\s-1EXPERIMENTAL\s0). .Sp You need to rewrite minil.toml file and add the following line: .Sp .Vb 1 \& module_maker="ExtUtilsMakeMaker" .Ve .Sp (There is no profile, yet. Patches welcome.) .Sp I don't suggest to use this module... But you can use this option for maintaining primitive modules like Test::TCP. .IP "Ho do I support Perl 5.6?" 4 .IX Item "Ho do I support Perl 5.6?" \&\s-1EUMM\s0 can run on Perl 5.6. Write following statement in your minil.toml file. .Sp .Vb 1 \& module_maker="ExtUtilsMakeMaker" .Ve .SH "bash/zsh completion" .IX Header "bash/zsh completion" Minilla provides bash and zsh completion files under \f(CW\*(C`contrib/\*(C'\fR directory. .SH "AUTHORS" .IX Header "AUTHORS" Tokuhiro Matsuno < tokuhirom@gmail.com > .PP Tatsuhiko Miyagawa .SH "THANKS TO" .IX Header "THANKS TO" \&\s-1RJBS,\s0 the author of Dist::Zilla. Dist::Zilla points \s-1CPAN\s0 authorizing tool. .SH "SEE ALSO" .IX Header "SEE ALSO" .SH "LICENSE" .IX Header "LICENSE" Copyright (C) Tokuhiro Matsuno .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.