=head1 NAME Shipwright::Manual::Tutorial - introduction to Shipwright =head1 SYNOPSIS In this tutorial, we'll create a simple vessel: the L module from CPAN. We will use C as our repository. =head1 DESCRIPTION There are three main steps to creating a shipwright vessel. =head2 1. initialize $ shipwright create -r svk://__shipwright/hello =head2 2. import $ shipwright import -r svk://__shipwright/hello cpan:Acme::Hello Then shipwright will try to download and import L and all its dependencies from CPAN. (You can import from other types of sources as well; see C to find out about them.) In Shipwright terms, these imported sources are called I, and are stored under F in the repository. If you want to skip some dependencies, e.g. L and L, just say C<--skip Locale::Maketext,Locale::Maketext::Lexicon>. Run C to see more options. As a side note, if you were importing from a source that doesn't use a build mechanism that Shipwright can automatically create a set of build instructions for (currently autoconf, MakeMaker, Module::Install, and Module::Build), you would now need to edit F to tell Shipwright how to build that source. For more information on build scripts, see L. =head2 3. build $ shipwright build -r svk://__shipwright/hello If tests are time-consuming or for some reason unnecessary for your build, you can add C<--skip-test> to skip them. Run C to see more options. And that's it! Your build should end with a bunch of lines beginning with C. These specify where you can find your built vessel. This will generally be in a subdirectory of F, but you can specify a different location with C<--install-base>. To ship your vessel, create an archive of the built files using an archive program such as C, e.g. by running C. Users can use your vessel by extracting the archive to a directory and then adding the following command to their shell's startup script (e.g. for bash users, edit F on most systems): C (for bash users). A source script is also provided for the tcsh shell. After sourcing this script, users will be able to run binaries and load perl modules from your vessel as with normal installed programs, though they will need to start a new shell or re-run their startup script. A log of the above commands can be found in F. =head1 NOTES =head2 Updating distributions There are two commands you can use to update a distribution: C and C. If you would like to just update the distribution source (files in F), use C. It will delete the directory in F and add it again. The other way is to C the distribution again. This will delete the corresponding directories in F and F and then add new ones. If you want to update the dependency lists too, just add the C<--overwrite> option. =head1 SEE ALSO L, L, L =cut