YAPC::NA 2011 • Asheville, NC

Shipwright: Application Distribution Simplified
By Kevin Falcone (‎jibsheet‎) from Philadelphia.pm, bicycle.pm
Date: Wednesday, 29 June 2011 10:00
Duration: 50 minutes
Target audience: Intermediate
Language:
Tags: packaging

You can find more information on the speaker's site:


As any open source project that leverages the power of the CPAN or other
dependency rich sources knows, streamlining installation for your users
is critical. Many of our projects can requires 100+ dependencies from
CPAN plus the C libraries that they depend on. Shipwright lets you pick
specific versions of CPAN modules to include, avoiding interesting bugs
that occur when new versions of a module remove or subtly break a
feature you were relying on. You can ship relocatable binary
distributions for particular platforms or ship a vessel that includes
everything (including a known-good version of the perl interpreter) to
be built by the end user on their particular platform of choice.

Shipwright vessels are tracked in a version control system such as
subversion or git and allow you to record local tweaks to modules
required to work around an upstream bug or a required local modification
(such as a patch submitted upstream but not yet applied).
You can import your local modules on top of their requirements from
CPAN. If you need tweaks to configure or build lines in order to
accommodate your local environment, you can easily add them to a
per-dependency build script. Once you're done building your vessel, you
can ship it around as a distribution package or puppet it out to your
servers.

When you're ready to release your next version, take the existing source
repository and begin importing updated versions of your modules and new
dependencies. Test your app against new versions of libraries before
adding them to your blessed vessel for deployment. When managing a farm
of servers, be confident that every machine is using the same version of
your application and its dependencies.

More than anything else, Shipwright allows modern perl applications to
avoid the "installing half of CPAN" stigma that can frustrate and drive
away users and make sysadmins pull our their hair debugging weird
integration issues.

Attended by: