Module::Starter(3pm)

NAME
Module::Starter - a simple starter kit for any module

VERSION
version 1.80

SYNOPSIS
Nothing in here is meant for public consumption. Use module-starter from the command line.

    module-starter --module=Foo::Bar,Foo::Bat \
        --author="Andy Lester <andy@petdance.com>"

DESCRIPTION
This is the core module for Module::Starter. If you're not looking to extend or alter the behavior of this module, you probably want to look at module-starter instead.

Module::Starter is used to create a skeletal CPAN distribution, including basic builder scripts, tests, documentation, and module code. This is done through just one method, "create_distro".

METHODS

  Module::Starter->create_distro(%args)
"create_distro" is the only method you should need to use from outside this module; all the other methods are called internally by this one.

This method creates orchestrates all the work; it creates distribution and populates it with the all the requires files.

It takes a hash of params, as follows:

    distro       => $distroname,      # distribution name (defaults to first module)
    modules      => [ module names ], # modules to create in distro
    dir          => $dirname,         # directory in which to build distro
    builder      => 'Module::Build',  # defaults to ExtUtils::MakeMaker
                                      # or specify more than one builder in an
                                      # arrayref

    license      => $license,    # type of license; defaults to 'artistic2'
    author       => [ authors ], # author(s) name and email address
                                 # (if not provided, name and email are taken from getpwuid and
                                 # EMAIL respectively)
                                 # format: Author Name <author-email@domain.tld>
    github       => $username,   # author's GitHub user name (for creating links to issue tracker)
    ignores_type => $type,       # ignores file type ('generic', 'cvs', 'git', 'hg', 'manifest')
    fatalize     => $fatalize,   # generate code that makes warnings fatal

    verbose      => $verbose,    # bool: print progress messages; defaults to 0
    force        => $force       # bool: overwrite existing files; defaults to 0

The ignores_type is a new feature that allows one to create SCM-specific ignore files. These are the mappings:

    ignores_type => 'generic'  # default, creates 'ignore.txt'
    ignores_type => 'cvs'      # creates .cvsignore
    ignores_type => 'git'      # creates .gitignore
    ignores_type => 'hg'       # creates .hgignore
    ignores_type => 'manifest' # creates MANIFEST.SKIP

It is also possible to provide an array ref with multiple types wanted:

    ignores_type => [ 'git', 'manifest' ]

PLUGINS
Module::Starter itself doesn't actually do anything. It must load plugins that implement "create_distro" and other methods. This is done by the class's "import" routine, which accepts a list of plugins to be loaded, in order.

For more information, refer to Module::Starter::Plugin.

AUTHORS
Dan Book, "<dbook at cpan.org>"

Sawyer X, "<xsawyerx at cpan.org>"

Andy Lester, "<petdance at cpan.org>"

Ricardo Signes, "<rjbs at cpan.org>"

C.J. Adams-Collier, "<cjac at colliertech.org>"

SUPPORT
You can find documentation for this module with the perldoc command.

    perldoc Module::Starter

You can also look for information at:

•   Source code at GitHub

    <https://github.com/xsawyerx/module-starter>

•   GitHub issue tracker

    <https://github.com/xsawyerx/module-starter/issues>

•   Search CPAN

    <https://metacpan.org/release/Module-Starter>

BUGS
Please report any bugs or feature requests to the bugtracker for this project on GitHub at: <https://github.com/xsawyerx/module-starter/issues>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

COPYRIGHT
Copyright 2005-2009 Andy Lester, Ricardo Signes and C.J. Adams-Collier, All Rights Reserved.

Copyright 2010 Sawyer X, All Rights Reserved.

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

SEE ALSO

mbtiny
    Minimal authoring tool to create and manage distributions using Module::Build::Tiny as an installer.

Dist::Milla
    Easy to use and powerful authoring tool using Dist::Zilla to create and manage distributions.

Minilla
    Authoring tool similar to Dist::Milla but without using Dist::Zilla.

Dist::Zilla
    Very complex, fully pluggable and customizable distribution builder.