Awesome.<br><br>Cheers,<br>Andrew<br><br><div><span class="gmail_quote">On 2/14/08, <b class="gmail_sendername">Jesse Vincent</b> &lt;<a href="mailto:jesse@bestpractical.com">jesse@bestpractical.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Five lines to go from zero to a running Jifty:<br> <br> <br> svn co <a href="http://code.bestpractical.com/shipwright/jifty/">http://code.bestpractical.com/shipwright/jifty/</a> jifty-builder<br> cd jifty-builder<br> ./bin/shipwright-builder&nbsp;&nbsp;# optionally --skip-perl --skip test<br>
 cp -rvp /tmp/jifty-$random/jifty /usr/local/jifty<br> ln -s /usr/local/jifty/bin/jifty /usr/local/bin/jifty<br> <br> <br> A little bit about Shipwright, our new code packaging tool<br> <br> Like any opensource software shop, we distribute the source code<br>
 for our software. How&#39;s that for the obvious statement of the decade?<br> <br> Actually, I can beat it. It&#39;s a pain in the neck for end users to<br> collect and install all of the dependencies for our software.<br>
 <br> And now I&#39;m going to one-up myself again.&nbsp;&nbsp;Customers often build<br> our software against untested versions of libraries, making debugging<br> &#39;frustrating.&#39;<br> <br> RT, our flagship product, depends on 124 separate packages, 114 of<br>
 them CPAN libraries. While CPAN has pretty good support for recursively<br> installing dependencies, it&#39;s not perfect and can be time consuming<br> and confusing for end users. And when it doesn&#39;t work right, as can<br>
 happen when a module author makes an incompatible change, debugging<br> requires a wizard.<br> <br> We&#39;ve built a new source (and binary) packaging system called<br> Shipwright.&nbsp;&nbsp;Shipwright allows you to track all of your package&#39;s<br>
 dependencies in a version control repository like SVN or SVK as<br> well as build order and build instructions.<br> <br> It comes with tools for importing Perl modules, C libraries and<br> other dependencies from CPAN, upstream version control repositories<br>
 and tarballs. When it can discover dependency information (as it<br> can for Perl modules), Shipwright will automatically import the<br> current versions of all listed dependencies if the repository doesn&#39;t<br> already contain sufficient versions.<br>
 <br> Shipwright can automatically set up build instructions for projects<br> using autoconf as well as projects using Perl&#39;s MakeMaker,<br> Module::Install and&nbsp;&nbsp;Module::Build mechanisms. If necessary, you<br> can customize the build instructions and dependency ordering after<br>
 you import a package.<br> <br> When it&#39;s time to ship your project to your end users, all you need<br> to do is take a snapshot of your Shipwright repository and send it<br> out. To build your project, an end user just needs to run<br>
 &quot;./bin/shipwright-build&quot;. If they want to, your users can choose<br> to skip certain dependencies (if they want to use system versions)<br> or specify an installation path.&nbsp;&nbsp;By default, Shipwright builds<br> fully relocatable binary distributions into a temporary directory<br>
 and users can move them into place or copy them to any number of<br> hosts with the same base system libraries -- Shipwright automatically<br> wraps all your binaries and scripts so that they can find the<br> Shipwright versions of their dependencies, no matter where you move<br>
 the installed distribution.&nbsp;&nbsp;Shipwright also comes with sh and tcsh<br> scripts you can &#39;source&#39; to add an installed distribution&#39;s libraries<br> to your current environment.<br> <br> At Best Practical, we&#39;ve configured most of our Shipwright distributions<br>
 to bundle everything above libc. Perl, Subversion and GD are just<br> some of the packages we distribute as part of these relocatable<br> builds.&nbsp;&nbsp;We now have a single-command tool to build, link and install<br> Subversion, SVK and all their dependencies (including APR, Neon,<br>
 Perl and a bunch of others).&nbsp;&nbsp;With a single command, we downloaded,<br> extracted, checked in and tested Tatsuhiko Miyagawa&#39;s Plagger Feed<br> Aggregator and all 134 perl modules it depends on. After that, a<br> single command built a full binary distribution of Plagger, ready<br>
 for deployment on any Mac OS X system.<br> <br> I&#39;m quite proud to release Shipwright 1.0 today. I designed Shipwright<br> with sunnavy, one of the hackers here at Best Practical.&nbsp;&nbsp;He&#39;s<br> responsible for almost all of the project&#39;s implementation to date,<br>
 though we&#39;re eager to have additional developers join us going forward.<br> <br> If you&#39;re interested in Shipwright, download 1.0 from<br> <a href="http://search.cpan.org/dist/Shipwright">http://search.cpan.org/dist/Shipwright</a> and subscribe to the Shipwright<br>
 mailing list by emailing <a href="mailto:shipwright-subscribe@lists.bestpractical.com">shipwright-subscribe@lists.bestpractical.com</a><br> <br> You can always get the latest version of the Shipwright source code<br> with this command:<br>
 <br> svn co svn://svn.bestpractical.com/Shipwright/trunk<br> _______________________________________________<br> jifty-devel mailing list<br> <a href="mailto:jifty-devel@lists.jifty.org">jifty-devel@lists.jifty.org</a><br>
 <a href="http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel">http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel</a><br> </blockquote></div><br>