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:
- Talk: http://goo.gl/vAg6w
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.
- chromatic
- Dave Rolsky (autarch)
- Christopher Bottoms
- Jesse Vincent
- Brad Lhotsky
- Todd Olson
- Joe Kline (gizmo)
- gordon gvanamburg
- Yanick Champoux (Yanick)
- Olaf Alders (oalders)
- Rick Bolen
- Andy Gorman (agorman)
- Michael Edmonds
- Dave Doyle (meraxes)
- Thomas Stanton (tstanton)
- Jonathan Swartz
- jerry gay (particle)
- Devin Austin (dhoss)
- Andrew Grangaard (spazm)
- Todd Rinaldo (toddr)
- Adam Prime (jsut)
- John Ellyson
- William Fishburne (Brett)
- Tommy Petty
- Mark A. Stratman (mstratman)
- David Neimeyer
- David Storrs (dstorrs)
- Kevin Falcone (jibsheet)
- Jess Robinson (castaway)
- Karsten Dahms
- Chas. Owens (cowens)
- Nick Melnick (oZ)
- Kevin Zembower
- Sterling Hanenkamp (zostay)
- Kartik Thakore (kthakore)