=pod

=for comment
DO NOT EDIT. This Pod was generated by Swim v0.1.47.
See http://github.com/ingydotnet/swim-pm#readme

=encoding utf8

=head1 Zilla::Dist::Contributing

You probably linked to here from an C<About> or C<CONTRIBUTING> document, for
a Project that you are interested in contributing to. Welcome!

This is the generic documentation for how to contribute to that Project.
It is stored separately from the project, so that it can be easily be kept
up to date.

This Project is targeted to ship to CPAN and uses L<Zilla::Dist> to do that.
This means that things are laid out somewhat differently than a "normal" Perl
module repository. A project in this style looks like this at the top level:

=over

=item C<Changes>     

A YAML changelog history

=item C<Contributing>

Instructions for contributing to the project

=item C<Meta>        

A YAML file of all metadata needed

=item C<ReadMe.pod>  

Top level doc in a format for GitHub

=item C<.travis.yml> 

A generated Travis-CI instruction file

=item C<bin/>  

Installable bin scripts

=item C<doc/>  

All the Project documentation

=item C<eg/>   

A directory of Project examples

=item C<ext/>  

External repositories

=item C<lib/>  

Project library code

=item C<note/> 

Project note files

=item C<pkg/>  

Any extra files needed for packaging a release

=item C<share/>

Ancillary files that ship and install with the release

=item C<test/> 

Project test suite


=back

The documentation is written in L<Swim> instead of Pod. Swim can make docs
every bit as nice as Pod, but in a format nicer than even Markdown.

Everything else is pretty familiar. Even though this layout is quite a
departure from the CPAN style, the content that actually ships to CPAN is
completely in the traditional CPAN style. Swim becomes Pod and tests are in
the C<t/> directory.

This style is meant to be a modern combination of styles and ideas from Perl
and other programming languages. It allows the developer to use more modern
tools and ideas, while keeping the published result compatible with the most
stable and trusted CPAN standards.

When L<Zilla::Dist> generates a distribution for CPAN, it first creates a
C<cpan/> directory, with everything converted into a C<Dist::Zilla> style, and
then invokes C<dzil build> to create the CPAN ready tarball.

To see the C<cpan/> directory, run:

    zild cpan

To see the distribution directory, run:

    zild distdir

To see all the other Makefile targets, run:

    zild make help

=head2 Testing

The C<bin>, C<lib> and C<test> directories contain normal code. Make your
changes and test them with:

    zild test

which simply runs:

    prove -lv test/

If you don't have Zilla::Dist installed yet, you can still run the tests with
that C<prove> command.

=head2 Installing Dependencies

Even though this Project is managed by L<Zilla::Dist>, you probably don't need
to install it. Just use C<prove> to run tests. If you do need C<Zilla::Dist>
to be installed, this is the best command to use:

    cpanm --notest Zilla::Dist

This can take a long time, as it needs L<Dist::Zilla> and friends, but it
should only be slow once.

To install the other Project specific dependencies, just run this command:

    zild prereqs

=cut
