[Bps-public-commit] Shipwright branch, master, updated. c9a8f58b1065c42980a0f8f9aa6206e983f2dc22

? sunnavy sunnavy at bestpractical.com
Thu Jun 17 03:36:55 EDT 2010


The branch, master has been updated
       via  c9a8f58b1065c42980a0f8f9aa6206e983f2dc22 (commit)
       via  abc2c09f0f090a7edc868d917cb3583a4cbcb8a5 (commit)
       via  ccbf8f6855178d75ab77e5f77237c06e0bb472cd (commit)
       via  10eec4006a0003cee07a2c3166cef642cf7b0764 (commit)
       via  ac3d93ef9058c93711fa121f72d3df2c844b4161 (commit)
      from  ad066dc7c5f0937d5f28ded3776ae8ecf59662b2 (commit)

Summary of changes:
 lib/Shipwright.pm                                  |  152 +++++++-------------
 lib/Shipwright/Backend.pm                          |    5 +-
 lib/Shipwright/Manual.pod                          |   24 ++--
 lib/Shipwright/Manual/BuildMultiArchVessel.pod     |    4 +-
 lib/Shipwright/Manual/CustomizeBuild.pod           |   18 ++--
 lib/Shipwright/Manual/ENV.pod                      |    9 +-
 lib/Shipwright/Manual/Glossary.pod                 |   24 ++--
 lib/Shipwright/Manual/Tutorial.pod                 |  104 +++++++-------
 lib/Shipwright/Manual/UsingBranches.pod            |   20 ++--
 lib/Shipwright/Manual/UsingFlags.pod               |    8 +-
 lib/Shipwright/Script.pm                           |    2 +
 lib/Shipwright/Script/Create.pm                    |   23 ++--
 lib/Shipwright/Script/Defaultbranch.pm             |   13 +--
 lib/Shipwright/Script/Delete.pm                    |   30 ++--
 lib/Shipwright/Script/Flags.pm                     |   19 +--
 lib/Shipwright/Script/Help.pm                      |    2 +-
 lib/Shipwright/Script/Import.pm                    |   36 ++---
 lib/Shipwright/Script/Ktf.pm                       |    8 +-
 lib/Shipwright/Script/List.pm                      |    4 -
 lib/Shipwright/Script/Maintain.pm                  |   11 +-
 lib/Shipwright/Script/Relocate.pm                  |   14 +--
 lib/Shipwright/Script/Rename.pm                    |   11 +--
 lib/Shipwright/Script/Requires.pm                  |    7 +-
 lib/Shipwright/Script/Update.pm                    |   24 +--
 lib/Shipwright/Source.pm                           |    7 +-
 lib/Shipwright/Source/Base.pm                      |    6 +-
 lib/Shipwright/Source/Compressed.pm                |   22 ---
 lib/Shipwright/Source/Directory.pm                 |   23 ---
 lib/Shipwright/Source/FTP.pm                       |   22 ---
 lib/Shipwright/Source/Git.pm                       |   22 ---
 lib/Shipwright/Source/HTTP.pm                      |   22 ---
 lib/Shipwright/Source/SVK.pm                       |   22 ---
 lib/Shipwright/Source/SVN.pm                       |   22 ---
 .../Source/{Shipwright.pm => Shipyard.pm}          |   32 +----
 lib/Shipwright/Util.pm                             |   11 --
 lib/Shipwright/Util/CleanINC.pm                    |    4 -
 lib/Shipwright/Util/PatchModuleBuild.pm            |    4 -
 37 files changed, 247 insertions(+), 544 deletions(-)
 rename lib/Shipwright/Source/{Shipwright.pm => Shipyard.pm} (85%)

- Log -----------------------------------------------------------------
commit ac3d93ef9058c93711fa121f72d3df2c844b4161
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Thu Jun 17 01:52:25 2010 +0800

    update compressed file extensions

diff --git a/lib/Shipwright/Source.pm b/lib/Shipwright/Source.pm
index f94ddc1..337b8df 100644
--- a/lib/Shipwright/Source.pm
+++ b/lib/Shipwright/Source.pm
@@ -89,9 +89,10 @@ sub type {
 
     if ( $$source =~ s/^cpan://i ) {
 
-        # if it's not a distribution name, like
+        # if it's not a distribution name like
         # 'S/SU/SUNNAVY/IP-QQWry-v0.0.15.tar.gz', convert '-' to '::'.
-        $$source =~ s/-/::/g unless $$source =~ /\.tar\.gz$/;
+        $$source =~ s/-/::/g
+          unless $$source =~ /\.(?:tar\.(?:gz|bz2)|tgz|tbz)$/;
         return 'CPAN';
     }
 
diff --git a/lib/Shipwright/Source/Base.pm b/lib/Shipwright/Source/Base.pm
index 52ce05b..b193e50 100644
--- a/lib/Shipwright/Source/Base.pm
+++ b/lib/Shipwright/Source/Base.pm
@@ -685,7 +685,7 @@ sub just_name {
     my $self = shift;
     my $name = shift;
 
-    $name =~ s/tar\.bz2$/tar.gz/;    # CPAN::DistnameInfo doesn't like bz2
+    $name =~ s/(?:tar\.bz2|zip)$/tar.gz/;    # CPAN::DistnameInfo likes .tar.gz
 
     $name .= '.tar.gz' unless $name =~ /(tar\.gz|tgz)$/;
 
@@ -704,7 +704,7 @@ return version
 sub just_version {
     my $self = shift;
     my $name = shift;
-    $name .= '.tar.gz' unless $name =~ /(tar\.gz|tgz|tar\.bz2)$/;
+    $name .= '.tar.gz' unless $name =~ /\.(tar\.gz|tgz|tar\.bz2|zip)$/;
 
     require CPAN::DistnameInfo;
     my $info    = CPAN::DistnameInfo->new($name);
@@ -721,7 +721,7 @@ return true if the source is compressed file, i.e. tar.gz(tgz) and tar.bz2
 
 sub is_compressed {
     my $self = shift;
-    return 1 if $self->source =~ m{\.(tar.(gz|bz2)|tgz)$};
+    return 1 if $self->source =~ m{\.(tar.(gz|bz2)|tgz|zip)$};
     return;
 }
 

commit 10eec4006a0003cee07a2c3166cef642cf7b0764
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Thu Jun 17 14:55:32 2010 +0800

    use shipyard term in source

diff --git a/lib/Shipwright/Source.pm b/lib/Shipwright/Source.pm
index 337b8df..4fe26ff 100644
--- a/lib/Shipwright/Source.pm
+++ b/lib/Shipwright/Source.pm
@@ -85,7 +85,7 @@ sub type {
     }
 
     return 'Directory'  if $$source =~ s/^dir(?:ectory)?://i;
-    return 'Shipwright' if $$source =~ s/^shipwright://i;
+    return 'Shipyard' if $$source =~ s/^(?:shipyard|shipwright)://i;
 
     if ( $$source =~ s/^cpan://i ) {
 
diff --git a/lib/Shipwright/Source/Shipwright.pm b/lib/Shipwright/Source/Shipyard.pm
similarity index 87%
rename from lib/Shipwright/Source/Shipwright.pm
rename to lib/Shipwright/Source/Shipyard.pm
index a909747..8bd8234 100644
--- a/lib/Shipwright/Source/Shipwright.pm
+++ b/lib/Shipwright/Source/Shipyard.pm
@@ -1,4 +1,4 @@
-package Shipwright::Source::Shipwright;
+package Shipwright::Source::Shipyard;
 use strict;
 use warnings;
 
@@ -37,7 +37,6 @@ sub run {
         target => catdir( $self->scripts_directory, $self->name ),
         path   => "/scripts/$dist",
     );
-
     my $source_version = $source_shipwright->backend->version->{$dist};
     my $branches       = $source_shipwright->backend->branches;
     $self->_update_version( $self->name || $dist, $source_version );
@@ -59,7 +58,7 @@ sub run {
                 unless ( -e catdir( $self->directory, $req ) ) {
                     my $s = Shipwright::Source->new(
                         %$self,
-                        source => "shipwright:$base/$req",
+                        source => "shipyard:$base/$req",
                         name   => $req
                     );
                     $s->run;
@@ -75,28 +74,6 @@ sub run {
 
 __END__
 
-=head1 NAME
-
-Shipwright::Source::Shipwright - Shipwright source
-
-
-=head1 DESCRIPTION
-
-
-=head1 DEPENDENCIES
-
-None.
-
-
-=head1 INCOMPATIBILITIES
-
-None reported.
-
-
-=head1 BUGS AND LIMITATIONS
-
-No bugs have been reported.
-
 =head1 AUTHOR
 
 sunnavy  C<< <sunnavy at bestpractical.com> >>

commit ccbf8f6855178d75ab77e5f77237c06e0bb472cd
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Thu Jun 17 15:27:46 2010 +0800

    add branch support

diff --git a/lib/Shipwright/Source/Shipyard.pm b/lib/Shipwright/Source/Shipyard.pm
index 8bd8234..9d94e04 100644
--- a/lib/Shipwright/Source/Shipyard.pm
+++ b/lib/Shipwright/Source/Shipyard.pm
@@ -15,7 +15,8 @@ sub run {
     my $self = shift;
 
     $self->log->info( "prepare to run source: " . $self->source );
-    my ( $base, $dist ) = $self->source =~ m{(.*)/(.+)};
+    my ( $base, $dist, $branch ) = $self->source =~ m{(.*)/([^/]+)(?:/(.+))?};
+    $branch ||= 'vendor';
 
     my $source_shipwright = Shipwright->new( repository => $base );
     $self->name($dist) unless $self->name;
@@ -39,7 +40,7 @@ sub run {
     );
     my $source_version = $source_shipwright->backend->version->{$dist};
     my $branches       = $source_shipwright->backend->branches;
-    $self->_update_version( $self->name || $dist, $source_version );
+    $self->_update_version( $self->name || $dist, $source_version->{$branch} );
     $self->_update_url( $self->name || $dist, 'shipwright:' . $self->source );
     $self->_update_branches( $self->name || $dist, $branches->{$dist} );
 

commit abc2c09f0f090a7edc868d917cb3583a4cbcb8a5
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Thu Jun 17 15:33:21 2010 +0800

    update documents

diff --git a/lib/Shipwright.pm b/lib/Shipwright.pm
index b4339da..8423de1 100644
--- a/lib/Shipwright.pm
+++ b/lib/Shipwright.pm
@@ -73,40 +73,29 @@ Shipwright - Best Practical Builder
 
 =head1 SYNOPSIS
 
-    use Shipwright;
+    $ export SHIPWRIGHT_SHIPYARD=fs:/tmp/fs
+    $ shipwright create 
+    # import will take a while, enjoy your coffee!
+    $ shipwright import cpan:Jifty
+    $ cd /tmp/fs
+    $ ./bin/shipwright-builder --install-base /tmp/jifty
+
+    one liner doing the same thing:
+    $ shipwright-generate cpan:Jifty | perl - --install-base /tmp/jifty
+
 
 =head1 DESCRIPTION
 
 =head2 Why use Shipwright?
 
-Shipwright is a tool to help you bundle your software.
-
 Most software packages depend on other bits of software in order to avoid code
-repetition and repeating work that's already been done. This can result in pain
-and suffering when attempting to install the software, due to having to
-untangle the maze of dependencies. First, non-CPAN dependencies must be found
-and installed. Then, CPAN:: or CPANPLUS:: can be used to install all
-dependencies available on CPAN with minimal pain.
-
-While this works, it has some drawbacks, especially for large projects which
-have many dependencies. Installation can take many iterations of trying to
-install from CPAN and then stopping to install other non-CPAN dependencies that
-the CPAN packages depend on. For example, SVK requires the non-CPAN packages
-subversion and swig. In the end, installing large projects with many
-dependencies is not very friendly for users, especially since dependencies may
-change their functionality and break builds with untested versions.
-
-Enter Shipwright, a tool to help you bundle your software with all of its
-dependencies, regardless of whether they are CPAN modules or non-Perl modules
-from elsewhere. Shipwright makes it easy to build and install a bundle of your
-software, usually with just a single command:
+repetition. This may result in pain when attempting to install the software,
+due to the maze of dependencies, especially for large projects with many
+dependencies.
 
-$ ./bin/shipwright-builder
-
-As a general note when reading this and other Shipwright documentation: we
-will often call a piece of software that your software depends on and is
-distributed elsewhere a I<dist>, short for distribution. This and other
-Shipwright terminology are defined in L<Shipwright::Manual::Glossary>.
+Shipwright is a tool to help you bundle your software with all its
+dependencies, regardless of whether they are CPAN modules or non-Perl modules
+from elsewhere. Shipwright makes the bundle work easy.
 
 =head2 Introduction
 
@@ -117,10 +106,10 @@ probably a better place to start.
 
 The idea of Shipwright is simple:
 
-   raw material                   shipwright factory
+    sources                        shipwright factory
 ---------------------           ------------------------
-|  all the separate |  import   |  internal shipwright |  build
-|  dist sources     |  =====>   |  repository          |  ====>
+|  all the separate |  import   |  shipyard             |  build
+|  sources          |  =====>   |                       |  ====>
 ---------------------           ------------------------
 
      vessel (final product)
@@ -128,58 +117,61 @@ The idea of Shipwright is simple:
 | all packages installed with smart wrappers |
 ----------------------------------------------
 
-There are two main commands in shipwright: import and build, which can be
-invoked like this:
-
-$ shipwright import ...
-
-$ check out your repository and cd there
-$ ./shipwright-builder ...
+=head2 What's in a shipyard
 
-=head2 What's in a Shipwright repository or vessel
+=head3 shipyard after initialization
 
-=head3 repository after initialization
-
-After initializing a project, the files in the repository are:
+After initializing a shipyard, the files in the repository are:
 
 bin/
-     # used for building, installing and testing
+    # used for building, installing and testing
      shipwright-builder
-
     # a utility for doing things such as updating the build order
      shipwright-utility
 
 etc/
     # wrapper for installed bin files, mainly for optimizing the environment
      shipwright-script-wrapper
-
     # wrapper for installed perl scripts
     shipwright-perl-wrapper
-
     # source files you can `source', for tcsh and bash, respectively.
     # both will be installed to tools/
     shipwright-source-tcsh, shipwright-source-bash
-
     # utility which will be installed to tools/
     shipwright-utility
+    # set env bat for windows
+    shipwright-windows-setenv.bat
+
+inc/ # modules for shipwright itself
 
-sources/      # all the sources of your dists live here
+sources/      # all the sources live here
 
 scripts/    # all the build scripts and dependency hints live here
 
 shipwright/
+
+    # branches note, see L<Shipwright::Manual::UsingBranches>
+    branches.yml
+    # flags note, see L<Shipwright::Manual::UsingFlags>
+    flags.yml		
+    # test failures note
+    known_test_failures.yml
+    # cpan dists' module => name map
+    map.yml
     # the actual build order
     order.yml
+    # reference count note
+    refs.yml
     # non-cpan dists' name => url map
     source.yml
-    # cpan dists' module => name map
-    map.yml
+    # sources' version
+    version.yml
 
 t/
     # will run this if with --only-test when build
     test
 
-=head3 repository after import
+=head3 shipyard after import
 
 After importing, say cpan:Acme::Hello, both the sources and scripts directories
 will have a `cpan-Acme-Hello' directory.
@@ -188,11 +180,11 @@ Under scripts/cpan-Acme-Hello there are two files: 'build' and 'require.yml'.
 
 =head4 build
 
-configure: %%PERL%% Build.PL --install_base=%%INSTALL_BASE%%
-make: %%PERL%% Build
-test: %%PERL%% Build test
-install: %%PERL%% Build install
-clean: %%PERL%% Build realclean
+configure: %%PERL%% %%MODULE_BUILD_BEFORE_BUILD_PL%% Build.PL --install_base=%%INSTALL_BASE%% --install_path lib=%%INSTALL_BASE%%/lib/perl5 --install_path arch=%%INSTALL_BASE%%/lib/perl5
+make: %%PERL%% %%MODULE_BUILD_BEFORE_BUILD%% Build
+test: %%PERL%% %%MODULE_BUILD_BEFORE_BUILD%% Build test
+install: %%PERL%% %%MODULE_BUILD_BEFORE_BUILD%% Build install
+clean: %%PERL%% %%MODULE_BUILD_BEFORE_BUILD%% Build realclean
 
 Each line is of `type: command' format, and the command is executed line by
 line (which is also true for t/test).
@@ -216,54 +208,8 @@ right build order.
 
 =head4 vessel
 
-After the source repository is built, we have a new directory structure
-which we call a I<vessel>.
-
-Normally, the vessel contains bin/, bin-wrapper/, etc/, tools/ and lib/
-directories. One thing to note is that files below bin/ are for you to run,
-while the files below bin-wrapper/ are not. The bin/ directory contains links
-to a wrapper around the files in bin-wrapped/, and these programs will only
-work correctly if run through the wrapper.
-
-=head2 METHODS
-
-=head3 new PARAMHASH
-
-This class method instantiates a new Shipwright object, which initializes
-all Shipwright components (if possible).
-
-=head4 Arguments
-
-general part:
-
-    repository: specify backend's path, e.g. svk:/t/test
-    log_level: specify log level, default is FATAL
-    log_file: specify log file, default is append to screen
-
-source part:
-
-    source: the source we need to import
-    name: source's name
-    follow: follow dependency chain or not, default is true
-    min_perl_version: minimal required perl version,
-             default is the same as the perl which is running shipwright
-    skip: hashref where the keys are the skipped modules when importing,
-          default is undefined
-    version: source's version, default is undefined
-
-build part:
-
-    perl: the path of the perl that runs the commands in scripts/foo/build(.pl),
-          default is $^X, the one that is running shipwright
-    skip: hashref where the keys are the skipped dists when install,
-          default is undefined
-    skip_test: skip test or not, default is false
-    install_base: install base path, default is a temp directory
-    force: force install even if tests fail, default is false
-    only_test: don't install, just test, (used for previously installed dists),
-                default is false
-    flags: flags for building, default is { default => 1 }
-    branches: branches build should use
+After the cmd `./bin/shipwright-builder --install-base /tmp/vessel`,
+we have a new directory structure which we call a I<vessel>(/tmp/vessel).
 
 =head1 SEE ALSO
 
diff --git a/lib/Shipwright/Backend.pm b/lib/Shipwright/Backend.pm
index 2cfb1cb..e69ab72 100644
--- a/lib/Shipwright/Backend.pm
+++ b/lib/Shipwright/Backend.pm
@@ -50,12 +50,9 @@ Shipwright::Backend - Backend
     # shipwright some_command -r backend_type:path
     shipwright create -r svn:file:///svnrepo/shipwright/my_proj
 
-    use Shipwright::Backend;
-    $backend = Shipwright::Backend->new(repository => $args{repository});
-
 =head1 DESCRIPTION
 
-See <Shipwright::Manual::Glossary/repository> to understand concept. Look
+See <Shipwright::Manual::Glossary/shipyard> to understand its concept. Look
 at list of </SUPPORTED BACKENDS> or L<IMPLEMENTING BACKENDS> if you want
 add a new one.
 
diff --git a/lib/Shipwright/Manual.pod b/lib/Shipwright/Manual.pod
index f2e8a6b..cea6baf 100644
--- a/lib/Shipwright/Manual.pod
+++ b/lib/Shipwright/Manual.pod
@@ -1,6 +1,6 @@
 =head1 NAME
 
-Shipwright::Manual - Shipwright documentation
+Shipwright::Manual - Shipwright Manual
 
 =head1 DESCRIPTION
 
@@ -10,25 +10,31 @@ This manual is divided into several parts, each covering a specific topic.
 
 =item L<Shipwright::Manual::Tutorial>
 
-A simple tutorial that leads through the creation of a simple Shipwright
-vessel.
+a simple tutorial that leads through the creation of a simple vessel.
+
+=item L<Shipwright::Manual::Glossary>
+
+a glossary of terms relevant.
+
+=item L<Shipwright::Manual::ENV>
+
+a summary of all the environment variables relevant.
 
 =item L<Shipwright::Manual::CustomizeBuild>
 
-A guide of customizing the build process of individual distributions in a
-Shipwright repository.
+a guide of customizing the build process of individual sources.
 
 =item L<Shipwright::Manual::UsingFlags>
 
-A guide of using Shipwright's flags feature.
+a guide of using flags feature.
 
 =item L<Shipwright::Manual::UsingBranches>
 
-A guide of using Shipwright's branches feature.
+a guide of using branches feature.
 
-=item L<Shipwright::Manual::Glossary>
+=item L<Shipwright::Manual::BuildMultiArchVessel>
 
-A Glossary of terms relevant to Shipwright and its documentation.
+a guide of building a vessel with multi-arch support.
 
 =back
 
diff --git a/lib/Shipwright/Manual/BuildMultiArchVessel.pod b/lib/Shipwright/Manual/BuildMultiArchVessel.pod
index bc9ddbf..9a925a3 100644
--- a/lib/Shipwright/Manual/BuildMultiArchVessel.pod
+++ b/lib/Shipwright/Manual/BuildMultiArchVessel.pod
@@ -25,8 +25,8 @@ Let's do this on Mac first:
 if we don't specify --as, the default name is the system's uname.
 e.g. the name is Darwin on Mac.
 
-after we built it on Mac, we need to transfer the source of vessel and
-vessel itself to ubuntu, then build it again, to let it build to the same vessel dir.
+after we built it on Mac, we need to transfer both shipyard and vessel to
+ubuntu, then build it again, to let it build to the same vessel dir.
 
     $ ./bin/shipwright-builder --install-base /tmp/foo --as Ubuntu
 
diff --git a/lib/Shipwright/Manual/CustomizeBuild.pod b/lib/Shipwright/Manual/CustomizeBuild.pod
index 6273cce..67ed571 100644
--- a/lib/Shipwright/Manual/CustomizeBuild.pod
+++ b/lib/Shipwright/Manual/CustomizeBuild.pod
@@ -1,21 +1,21 @@
 =head1 NAME
 
-Shipwright::Manual::CustomizeBuild - Customize the build method for a
-distribution
+Shipwright::Manual::CustomizeBuild - Customize the build method for a source
+
 
 =head1 DESCRIPTION
 
-There are currently two ways to build a dist: through a perl script
-(F<dists/foo/build.pl>) which allows for heavy customization, or using a list
-of tagged commands (F<dists/foo/build>), which is simpler but less
+There are currently two ways to build a source: through a perl script
+(F<scripts/foo/build.pl>) which allows for heavy customization, or using a list
+of tagged commands (F<scripts/foo/build>), which is simpler but less
 customizable.
 
-The script F<dists/foo/build.pl> has higher precedence, so if both
-F<dists/foo/build.pl> and F<dists/foo/build> exist, the former will be used.
+F<scripts/foo/build.pl> has higher precedence, so if both
+F<scripts/foo/build.pl> and F<scripts/foo/build> exist, the former will be used.
 
 =head2 build.pl
 
-When executing F<build.pl> for the dist I<foo>, the current working directory
+When executing F<build.pl> for the source I<foo>, the current working directory
 will be F<dists/foo>
 
 The script will be run with a list of arguments (the format is designed
@@ -55,7 +55,7 @@ the C<install> work.
 
 This is a text file; each line should be either blank or use the format
 C<type: command>. The command will be executed line by line, and the current
-working directory for building the dist I<foo> will be F<dists/foo>.
+working directory for building the source I<foo> will be F<dists/foo>.
 
 In a normal build script, the following types of commands are specified:
 configure, make, install, clean, and sometimes test. Their functions should be
diff --git a/lib/Shipwright/Manual/ENV.pod b/lib/Shipwright/Manual/ENV.pod
index 9313ae8..affb8d8 100644
--- a/lib/Shipwright/Manual/ENV.pod
+++ b/lib/Shipwright/Manual/ENV.pod
@@ -1,6 +1,6 @@
 =head1 NAME
 
-Shipwright::Manual::ENV - ENV vars Shipwright uses
+Shipwright::Manual::ENV - ENV variables Shipwright uses
 
 =head1 SYNOPSIS
 
@@ -18,11 +18,14 @@ user's home directory, e.g. /home/joe
 
 user's name, e.g. joe
 
-=item SHIPWRIGHT_REPOSITORY
+=item SHIPWRIGHT_SHIPYARD
+=item SHIPWRIGHT_REPOSITORY ( deprecated )
 
-    shipwright's repository, i.e. uri occurs in cmd option -r ...
+    shipwright's shipyard's uri, i.e. the uri occurs in cmd option -r ...
     if there's no -r arg in cmd, this env is used if any.
 
+    SHIPWRIGHT_SHIPYARD has higher priority.
+
     e.g. fs:/tmp/fs
 
 =item SHIPWRIGHT_MAKE
diff --git a/lib/Shipwright/Manual/Glossary.pod b/lib/Shipwright/Manual/Glossary.pod
index b3e863a..48be687 100644
--- a/lib/Shipwright/Manual/Glossary.pod
+++ b/lib/Shipwright/Manual/Glossary.pod
@@ -1,28 +1,28 @@
 =head1 NAME
 
-Shipwright::Manual::Glossary - Glossary for Shipwright
+Shipwright::Manual::Glossary - Glossary
 
 =head1 DESCRIPTION
 
-=head2 distribution
+=head2 source
+ 
+the distribution to be imported into a shipyard; e.g. a package from cpan.
+Normally, shipyard has more than one source.
 
-What is imported into a Shipwright repository; e.g. a package from cpan.
-Normally, A Shipwright repository generally has more than one distribution, or
-dist for short, in it.
+=head2 shipyard
 
-=head2 repository
-
-the backend, where all stuff lives, e.g. metadata, sources, etc..
-Currently, SVN, SVK and FS(file system) are supported.
+The place where all stuff lives, shipwright's own wrappers, all the dists, etc.
+Currently, FS(file system), SVN, SVK and Git are supported.
 
 =head2 vessel
 
-Shipwright's final product; i.e. what is produced after running C<shipwright
-build>.
+the final product.
+e.g. after running C<./bin/shipwright-builder --install-base /tmp/foo>
+all stuff below /tmp/foo is the vessel
 
 =head1 SEE ALSO
 
-L<Shipwright::Manual::Tutorial>, L<Shipwright::Manual::UsingFlags>, L<Shipwright::Manual::CustomizeBuild>,
+L<Shipwright::Manual::Tutorial>, L<Shipwright::Manual::UsingFlags>, L<Shipwright::Manual::CustomizeBuild>
 
 =head1 AUTHORS
 
diff --git a/lib/Shipwright/Manual/Tutorial.pod b/lib/Shipwright/Manual/Tutorial.pod
index 6456c5b..4840bc3 100644
--- a/lib/Shipwright/Manual/Tutorial.pod
+++ b/lib/Shipwright/Manual/Tutorial.pod
@@ -1,6 +1,6 @@
 =head1 NAME
 
-Shipwright::Manual::Tutorial - Tutorial to Shipwright
+Shipwright::Manual::Tutorial - Shipwright tutorial
 
 =head1 DESCRIPTION
 
@@ -10,47 +10,36 @@ In this tutorial, we'll create a vessel to represent basic stuff of Shipwright.
 
 =head1 Introduction
 
-Shipwright is shipped with command line tool F<shipwright> which allow you to manage
-shipwright repositories: L<create|/Create a new repository>,
-L<import dists|/Importing dists into the repository> and L</update>.
+Shipwright is shipped with command line tool F<shipwright> which allows you to
+manage shipyard: L<create|/Create a new shipyard>,
+L<import sources|/Import sources>, L</update>, and so on.
 
-Let's start from a new repository.
+Let's start from a new shipyard.
 
-=head2 Create a new repository
+=head2 Create a new shipyard
 
-Repository - the backend, where all stuff lives, e.g. metadata, sources, etc...
+shipyard - the place where all stuff lives.
 Shipwright supports several backends: L<SVK|Shipwright::Backend::SVK>,
 L<SVN|Shipwright::Backend::SVN>, L<Git|Shipwright::Backend::Git> and
-L<plain file system|Shipwright::Backend::FS>. We'll use SVN backend for
-our repository in this tutorial.
+L<plain file system|Shipwright::Backend::FS>.
+We'll use FS in this tutorial.
 
-We need to create the svn repo first:
+Let's create a new shipyard:
 
-    $ svnadmin create /tmp/svnrepo
+    $ shipwright create -r fs:/tmp/foo
 
-Then we can initialize the repository of our Shipwright project:
+To avoid typing I<-r fs:/tmp/foo> all the time you can use "SHIPWRIGHT_SHIPYARD"
+environment variable.
 
-    $ shipwright create -r svn:file:///tmp/svnrepo/foo
+    $ export SHIPWRIGHT_SHIPYARD="fs:/tmp/foo"
 
-If F<svn> executable is not under PATH then you can tell shipwright
-the location of it by setting environment variable "SHIPWRIGHT_SVN".
-F<svnadmin> is assumed in the same directory as F<svn>.
+from now on we don't need the "-r ..." for the session.
 
-=head2 Don't repeat -r argument
+=head2 Import sources
 
-To avoid typing I<-r svn:file:///tmp/svnrepo/foo> all the time you
-can use "SHIPWRIGHT_REPOSITORY" environment variable.
+Our shipyard is worthless if it doesn't contain any source, let's import some
 
-    export SHIPWRIGHT_REPOSITORY="svn:file:///tmp/svnrepo/foo"
-
-Done. No more -r ... for the session.
-
-=head2 Import dists into the repository
-
-Our repository is worthless if we don't import some dists. let's do
-it now.
-
-Shipwright supports different sources you can import things from.
+Shipwright supports various types of sources.
 Here're some examples:
 
 =over 4
@@ -60,20 +49,16 @@ Here're some examples:
     file:/tmp/foo.tar.gz
     file:/home/ross/dinosaur-0.01.tar.bz2
 
-B<Caveat>: for files, we only support I<.tar.gz>(I<.tgz>) and I<.tar.bz2> format currently.
-
 =item plain directory
 
     dir:/tmp/foo
     directory:/home/ross/dinosaur-0.01
 
-
 =item HTTP
     
     http://apache.mirror.phpchina.com/httpd/httpd-2.2.9.tar.gz
     http://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/authors/id/C/CL/CLKAO/SVK-v2.0.2.tar.gz
 
-
 =item FTP
 
     ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.9.tar.bz2
@@ -88,21 +73,22 @@ B<Caveat>: for files, we only support I<.tar.gz>(I<.tgz>) and I<.tar.bz2> format
     svn:file:///tmp/repo/foo
     svn:http://svn.example.com/foo
 
+=item Git
+
+    git:file:///tmp/foo.git
+
 =item CPAN
 
     cpan:Jifty
     cpan:Module::Install
 
-It's ok, Shipwright will find the download link automatically for us,
-with L<CPAN>'s help. thanks, L<CPAN>!
+=item shipyard
 
-=item Shipwright
+    shipyard:fs:/tmp/shipyard/foo
+    shipyard:fs:/tmp/shipyard/bar
 
-    shipwright:svk:/shipwright/repo/foo
-    shipwright:svk:/shipwright/repo/bar
-
-svk:/shipwright/repo is another shipwright repository, 'foo' or 'bar' is the
-dist name we want to import.
+fs:/tmp/shipyard is another shipyard, 'foo' or 'bar' is the
+source name we want to import.
 
 =back
 
@@ -122,7 +108,7 @@ Run I<shipwright help import> to see more options.
 As a side note, if we were importing from a source that doesn't use a build
 mechanism that Shipwright can automatically create a set of build instructions
 for (currently I<autoconf>, L<ExtUtils::MakeMaker>, L<Module::Install>, and 
-L<Module::Build>), we would now need to edit F<scripts/DISTNAME/build> to tell
+L<Module::Build>), we would now need to edit F<scripts/SOURCE_NAME/build> to tell
 Shipwright how to build that source.
 
 For our tutorial, e.g. perl 5.10, the build can't be created automatically,
@@ -136,7 +122,7 @@ For more information on build scripts, see L<Shipwright::Manual::CustomizeBuild>
 
 =head2 update
 
-For dists with I<CPAN>, I<SVK>, I<SVN>, I<Git> and I<Shipwright> types,
+For dists with I<CPAN>, I<SVK>, I<SVN>, I<Git> and I<shipyard> types,
 we can simply use the I<update> cmd to update:
 
     $ shipwright update cpan-XML-LibXML
@@ -161,27 +147,26 @@ set the source url first before update.
 You may find that I<cpan-XML-LibXML> needs I<libxml> as a dependence, but
 in F</scripts/cpan-XML-LibXML/require.yml> there's no such entry,
 because F<require.yml> is created automatically, filled with perl module dists,
-no extra dependence will be set.
+no extra dependences will be set.
 
-So we need to do it manually, e.g. use the following cmd to do so
+So we need to do it manually, e.g. use the following cmd to do so:
 
     $ shipwright update apache --add-deps libxml
 
 =head2 build
 
-We need to I<check out> the repository to some place first,
+We need to I<checkout> the repository to some place first,
 then I<chdir> there, and run:
+(for FS backend, no need to checkout, just chdir to /tmp/foo ),
 
-$ ./bin/shipwright-builder 
+$ ./bin/shipwright-builder --install-base /tmp/vessel
 
 Run I<./bin/shipwright-builder --help> to see more options and
 I<./bin/shipwright-builder --advanced-help> to see even more options.
 
-For the layout of shipwright's source, see L<Shipwright>.
-
 =head2 fiddle the vessel
 
-we can use bin/shipwright-filter to fiddle the vessel, e.g. removing pods.
+We can use bin/shipwright-filter to fiddle the vessel, e.g. removing pods.
 Run I<./bin/shipwright-filter --help> to see more options
 
 =head2 ship our vessel
@@ -189,8 +174,8 @@ Run I<./bin/shipwright-filter --help> to see more options
 We call the built stuff the I<vessel>.
 
 To ship our vessel, create an archive of the built files using an archive
-program such as I<tar>, e.g. by running I<tar czvf our-vessel.tar.gz
-/tmp/our-vessel>.
+program such as I<tar>, e.g. by running I<tar czvf vessel.tar.gz
+/tmp/vessel>.
 
 Users can use our vessel by extracting the archive to a directory and then
 adding the following command to their shell's startup script
@@ -208,6 +193,21 @@ After sourcing this script, users will be able to run binaries and load perl
 modules from our vessel as with normal installed programs, though they will 
 need to start a new shell or re-run their startup script.
 
+
+=head2 ship shipyard
+
+If you want to ship a shipyard instead of the vessel, you can just tar your
+shipyard( i.e. "/tmp/foo" ) and ship it, though Shipwright supplies a
+convinent way too:
+
+let's chdir to our shipyard first, then run:
+$ ./bin/shipwright-utility --generate-tar-file /tmp/shipyard.pl
+
+the shipyard.pl is an shipyard perl script working like "shipwright-builder"
+but it's self contained, so you can build vessel with shipyard.pl like this:
+
+$ perl /tmp/shipyard --install-base /tmp/vessel
+
 =head1 SEE ALSO
 
 L<Shipwright::Manual::UsingFlags>, L<Shipwright::Manual::CustomizeBuild>,
diff --git a/lib/Shipwright/Manual/UsingBranches.pod b/lib/Shipwright/Manual/UsingBranches.pod
index 72038aa..a6685c7 100644
--- a/lib/Shipwright/Manual/UsingBranches.pod
+++ b/lib/Shipwright/Manual/UsingBranches.pod
@@ -1,22 +1,22 @@
 =head1 NAME
 
-Shipwright::Manual::UsingBranches - Using Branches
+Shipwright::Manual::UsingBranches - Using branches
 
 =head1 DESCRIPTION
 
-Shipwright B<branches> is a method to keep multiple sources for one dist,
+Shipwright B<branches> is a method to keep multiple sources for one source,
 a bit like branches in vcs.
-technically, all the sources for I<foo> live below I<sources/foo/>.
+Technically, all the sources for I<foo> live below I<sources/foo/>.
 
-dists from CPAN can't be branched, or in the other way, can only have one branch.
-technically, only dists occurred in shipwright/source.yml can be branched.
+Sources from CPAN can't be branched, or in the other way, can only have one branch.
+Technically, only dists occurred in shipwright/source.yml can be branched.
 
 Imagine we have an app Foo, of which the layout in vcs is like:
 trunk/...
 branches/1.0/...
 branches/2.0/...
 
-with B<branches> support, we can add all the 3 versions in shipwright:
+With B<branches> support, we can add all the 3 versions in shipwright:
 
     $ shipwright import -r ... svn:.../trunk --name Foo --as trunk
     $ shipwright import -r ... svn:.../branches/1.0 --name Foo --as branches/1.0
@@ -30,20 +30,20 @@ now we have I<trunk>, I<1.0> and I<2.0> branches in shipwright:
 
 will show "branches: trunk, branches/1.0, branches/2.0"
 
-when build, the 1st one will be treated as the default branch.
+When build, the 1st one will be treated as the default branch.
 to change the default branch, e.g. we want to change 2.0 as the default:
 
     $ shipwright defaultbranch -r ... Foo branches/2.0
 
-if we don't want to change the default branch, we can also supply --branch arg 
+If we don't want to change the default branch, we can also supply --branch arg 
 when build:
 
     $ ./bin/shipwright-builder --branches Foo=branches/2.0
 
 Note:
 
-since all these branches share the same build script and the same dep dists,
-if branches are way too different, it's better to create another vessel source 
+Since all these branches share the same build script and the same dep sources,
+if branches are way too different, it's better to import it as another source
 instead of branching.
 
 =head1 AUTHORS
diff --git a/lib/Shipwright/Manual/UsingFlags.pod b/lib/Shipwright/Manual/UsingFlags.pod
index 7402376..780774d 100644
--- a/lib/Shipwright/Manual/UsingFlags.pod
+++ b/lib/Shipwright/Manual/UsingFlags.pod
@@ -1,13 +1,13 @@
 =head1 NAME
 
-Shipwright::Manual::UsingFlags - Using Flags
+Shipwright::Manual::UsingFlags - Using flags
 
 =head1 DESCRIPTION
 
-Shipwright B<flags> is a method to make a single repository to support multiple variants of vessels.
+Shipwright B<flags> is a method to make a single shipyard to support multiple variants of vessels.
 
 Imagine you want to create a project which requires a database. There are
-several database types you want to support in the same repository, while you'd
+several database types you want to support in the same shipyard, while you'd
 like each built vessel to only support one type. (Sometimes you have to choose
 one because some dists will be confused if provided with more than one type;
 e.g.  for RT, you have to supply the database type when running ./configure).
@@ -43,7 +43,7 @@ If necessary, you can also specify certain flags as being mandatory. For
 example, you can specify that a database flag is mandatory; if no flag labelled
 C<db> is specified when invoking the build script, the first one is used as a
 default (mysql in this case) rather than the repository being built with no
-flags. This allows repositories to support different variants or versions of a
+flags. This allows shipyards to support different variants or versions of a
 program.
 
 Note:
diff --git a/lib/Shipwright/Script.pm b/lib/Shipwright/Script.pm
index af3c0f7..72626dd 100644
--- a/lib/Shipwright/Script.pm
+++ b/lib/Shipwright/Script.pm
@@ -52,6 +52,8 @@ sub prepare {
     my $cmd = $self->SUPER::prepare(@_);
 
     unless ( ref $cmd eq 'Shipwright::Script::Help' ) {
+        $cmd->repository( $ENV{SHIPWRIGHT_SHIPYARD} )
+          if !$cmd->repository && $ENV{SHIPWRIGHT_SHIPYARD};
         $cmd->repository( $ENV{SHIPWRIGHT_REPOSITORY} )
           if !$cmd->repository && $ENV{SHIPWRIGHT_REPOSITORY};
         if ( $cmd->repository ) {
diff --git a/lib/Shipwright/Script/Create.pm b/lib/Shipwright/Script/Create.pm
index 9e8c580..3a2973a 100644
--- a/lib/Shipwright/Script/Create.pm
+++ b/lib/Shipwright/Script/Create.pm
@@ -28,26 +28,25 @@ __END__
 
 =head1 NAME
 
-Shipwright::Script::Create - Create a project
+Shipwright::Script::Create - Create a shipyard
 
 =head1 SYNOPSIS
 
- create -r [repository]
+ shipwright create -r fs:/tmp/foo
+ shipwright create -r svk://foo
+ shipwright create -r svn:file:///tmp/foo/bar
+ shipwright create -r git:file:///home/me/shipwright/my_proj.git
 
-=head1 EXAMPLES
+=head1 GLOBAL OPTIONS
 
- create -r fs:/tmp/foo
- create -r svk://foo
- create -r svn:file:///tmp/foo/bar
- create -r git:file:///home/me/shipwright/my_proj.git
-
-=head1 OPTIONS
-
- -r [--repository] REPOSITORY   : specify the repository of our project
+ -r [--repository] REPOSITORY   : specify the repository uri of our shipyard
  -l [--log-level] LOGLEVEL      : specify the log level
                                   (info, debug, warn, error, or fatal)
  --log-file FILENAME            : specify the log file
- -f [--force]                   : delete the old one if exists
+
+=head1 OPTIONS
+
+ -f [--force]                   : delete the old shipyard if exists
 
 =head1 AUTHORS
 
diff --git a/lib/Shipwright/Script/Defaultbranch.pm b/lib/Shipwright/Script/Defaultbranch.pm
index ce0986d..8e0c22f 100644
--- a/lib/Shipwright/Script/Defaultbranch.pm
+++ b/lib/Shipwright/Script/Defaultbranch.pm
@@ -40,21 +40,16 @@ __END__
 
 =head1 NAME
 
-Shipwright::Script::Defaultbranch - Set the default branch for a dist
+Shipwright::Script::Defaultbranch - Set the default branch for a source
 
 =head1 SYNOPSIS
 
- defaultbranch -r ... DIST BRANCH
-
-=head1 OPTIONS
-
- -r [--repository] REPOSITORY   : specify the repository of our project
- -l [--log-level] LOGLEVEL      : specify the log level
-                                  (info, debug, warn, error, or fatal)
- --log-file FILENAME            : specify the log file
+ shipwright defaultbranch cpan-Shipright 2.0
 
 =head1 DESCRIPTION
 
+See also L<Shipwright::Manual::UsingBranches>.
+
 =head1 AUTHORS
 
 sunnavy  C<< <sunnavy at bestpractical.com> >>
diff --git a/lib/Shipwright/Script/Delete.pm b/lib/Shipwright/Script/Delete.pm
index c81b3ed..7436539 100644
--- a/lib/Shipwright/Script/Delete.pm
+++ b/lib/Shipwright/Script/Delete.pm
@@ -71,18 +71,14 @@ __END__
 
 =head1 NAME
 
-Shipwright::Script::Delete - Delete a dist
+Shipwright::Script::Delete - Delete source(s)
 
 =head1 SYNOPSIS
 
- delete NAME
+ shipwright delete cpan-Jifty
 
 =head1 OPTIONS
 
- -r [--repository] REPOSITORY   : specify the repository of our project
- -l [--log-level] LOGLEVEL      : specify the log level
-                                  (info, debug, warn, error, or fatal)
- --log-file FILENAME            : specify the log file
  --unreferenced                 : to delete all unreferenced dists except the last one
  --check-only                   : show the lists, not really delete
 
diff --git a/lib/Shipwright/Script/Flags.pm b/lib/Shipwright/Script/Flags.pm
index ce7f5e8..4400f2a 100644
--- a/lib/Shipwright/Script/Flags.pm
+++ b/lib/Shipwright/Script/Flags.pm
@@ -113,30 +113,25 @@ __END__
 
 =head1 NAME
 
-Shipwright::Script::Flags - Maintain a dist's flags
+Shipwright::Script::Flags - Maintain flags
 
 =head1 SYNOPSIS
 
- flags -r ... DIST --add FLAG
- flags -r ... DIST --delete FLAG
- flags -r ... --mandatory --set FLAGS LABEL
+ shipwright flags mysql --add mysql
+ shipwright flags cpan-DBD-mysql --add mysql
 
 =head1 OPTIONS
 
- -r [--repository] REPOSITORY   : specify the repository of our project
- -l [--log-level] LOGLEVEL      : specify the log level
-                                  (info, debug, warn, error, or fatal)
- --log-file FILENAME            : specify the log file
  --add, --delete, --set FLAGS   : specify the flags, split by commas
  --mandatory                    : set these flags as being required
 
 =head1 DESCRIPTION
 
 The flags command is used for managing the flags feature of Shipwright. Flags
-can be used to group dists in ways which allow a single Shipwright repository
-to support multiple variants of binary vessels. For example, if you are
-shipping some software that requires a database, your repository can use flags
-to allow binary vessels to be built for both MySQL and PostgreSQL from it.
+can be used to group sources in ways which allow a single shipyard to support
+multiple variants of binary vessels. For example, if you are shipping some
+software that requires a database, your repository can use flags to allow
+binary vessels to be built for both MySQL and PostgreSQL from it.
 
 For more information on using flags, see L<Shipwright::Manual::UsingFlags>.
 
diff --git a/lib/Shipwright/Script/Help.pm b/lib/Shipwright/Script/Help.pm
index e5a41d5..dbd4b16 100644
--- a/lib/Shipwright/Script/Help.pm
+++ b/lib/Shipwright/Script/Help.pm
@@ -14,7 +14,7 @@ Shipwright::Script::Help - Show help
 
 =head1 SYNOPSIS
 
- help COMMAND
+ help create
 
 =head1 AUTHORS
 
diff --git a/lib/Shipwright/Script/Import.pm b/lib/Shipwright/Script/Import.pm
index 8b1b2b0..71ff593 100644
--- a/lib/Shipwright/Script/Import.pm
+++ b/lib/Shipwright/Script/Import.pm
@@ -416,13 +416,10 @@ Shipwright::Script::Import - Import sources and their dependencies
 
 =head1 SYNOPSIS
 
- import SOURCE [ SOURCE ] ...
+ shipwright import cpan:Jifty cpan:Catalyst
 
 =head1 OPTIONS
 
- -r [--repository] REPOSITORY   : specify the repository of our project
- -l [--log-level] LOGLEVEL      : specify the log level
- --log-file FILENAME            : specify the log file
  -m [--comment] COMMENT         : specify the comment
  --name NAME                    : specify the source name (only alphanumeric
                                   characters, . and -)
@@ -436,13 +433,12 @@ Shipwright::Script::Import - Import sources and their dependencies
                                   building)
  --min-perl-version             : minimal perl version (default is the same as
                                   the one which runs this command)
- --overwrite                    : import dependency dists anyway even if they
-                                  are already in the repository
+ --overwrite                    : import dependency sources anyway even if they
+                                  are already in the shipyard
  --version                      : specify the source's version
- --skip                         : specify a list of modules/dist names of
-                                  which we don't want to import
- --skip-recommends              : specify a list of modules/dist names of
-                                  which recommends we don't want to import
+ --skip                         : specify a list of sources not to import
+ --skip-recommends              : specify a list of sources of which recommends 
+                                  not to import
  --skip-all-recommends          : skip all the recommends to import
  --skip-installed               : skip all the installed modules to import
  --include-dual-lifed           : include modules which live both in the perl core 
@@ -450,13 +446,13 @@ Shipwright::Script::Import - Import sources and their dependencies
  
 =head1 DESCRIPTION
 
-The import command imports a new dist into a shipwright repository from any of
-a number of supported source types (enumerated below). If a dist of the name
-specified by C<--name> already exists in the repository, the old files for that
-dist in F</dists> and F</scripts> are deleted and new ones added. This is the
-recommended method for updating non-svn, svk, or CPAN dists to new versions
-(see L<Shipwright::Update> for more information on the C<update> command, which
-is used for updating svn, svk, and CPAN dists).
+The import command imports a new source into a shipyard from a number of
+supported source types (enumerated below). If a source of the name specified
+by C<--name> already exists in the shipyard, the old files for that source
+in F</sources> and F</scripts> are deleted and new ones are added. This is the
+recommended method for updating non-svn, svk, or CPAN sources to new versions.
+(see L<Shipwright::Script::Update> for more information on the C<update>
+command, which is used for updating svn, svk, and CPAN dists).
 
 =head1 SUPPORTED SOURCE TYPES
 
@@ -470,7 +466,7 @@ type and schema, just a colon.
 e.g. cpan:Jifty::DBI  cpan:File::Spec
 
 CAVEAT: we don't support renaming CPAN sources when importing, because it
-*really* is not a good idea and maybe hurt shipwright somewhere.
+*really* is not a good idea and may hurt shipwright somewhere.
 
 =item File
 
@@ -514,9 +510,9 @@ L<svn:http://svn.example.com/foo-1.23>
 e.g. L<git:file:///opt/foo.git>
 L<git://github.com/bestpractical/shipwright.git>
 
-=item Shipwright
+=item Shipyard
 
-e.g. L<shipwright:fs:/opt/fs/foo>
+e.g. L<shipyard:/tmp/fs/foo>
 
 =back
 
diff --git a/lib/Shipwright/Script/Ktf.pm b/lib/Shipwright/Script/Ktf.pm
index 6bf4d25..6c087f8 100644
--- a/lib/Shipwright/Script/Ktf.pm
+++ b/lib/Shipwright/Script/Ktf.pm
@@ -69,18 +69,14 @@ __END__
 
 =head1 NAME
 
-Shipwright::Script::Ktf - Maintain a dist's known test failure conditions
+Shipwright::Script::Ktf - Maintain known test failure conditions
 
 =head1 SYNOPSIS
 
- ktf NAME1 NAME2 ... --set '$^O eq "darwin"'
+ shipwright ktf cpan-DBD-mysql --set '$^O eq "darwin"'
 
 =head1 OPTIONS
 
- -r [--repository] REPOSITORY   : specify the repository of our project
- -l [--log-level]               : specify the log level
-                                  (info, debug, warn, error, or fatal)
- --log-file FILENAME            : specify the log file
  --delete conditions            : delete conditions
  --set conditions               : set conditions
 
diff --git a/lib/Shipwright/Script/List.pm b/lib/Shipwright/Script/List.pm
index 3227eb0..d685bb1 100644
--- a/lib/Shipwright/Script/List.pm
+++ b/lib/Shipwright/Script/List.pm
@@ -268,10 +268,6 @@ Shipwright::Script::List - List dists of a project
 
 =head1 OPTIONS
 
-   -r [--repository] REPOSITORY    : specify the repository of our project
-   -l [--log-level] LOGLEVEL       : specify the log level
-   --log-file FILENAME             : specify the log file
-                                     (info, debug, warn, error, or fatal)
    --with-latest-version           : show the latest version if possible
    --only-update                   : only show the dists that can be updated
 
diff --git a/lib/Shipwright/Script/Maintain.pm b/lib/Shipwright/Script/Maintain.pm
index 3bb5506..4090798 100644
--- a/lib/Shipwright/Script/Maintain.pm
+++ b/lib/Shipwright/Script/Maintain.pm
@@ -58,7 +58,7 @@ __END__
 
 =head1 NAME
 
-Shipwright::Script::Maintain - Maintain a project
+Shipwright::Script::Maintain - Maintain a shipyard
 
 =head1 SYNOPSIS
 
@@ -66,15 +66,12 @@ Shipwright::Script::Maintain - Maintain a project
 
 =head1 OPTIONS
 
- -r [--repository] REPOSITORY : specify the repository of our project
- -l [--log-level] LOGLEVEL    : specify the log level
-                                (info, debug, warn, error, or fatal)
- --log-file FILENAME          : specify the log file
  --update-order               : update the build order
- --update-refs                : update refs( times a dist shows in all the require.yml )
+ --update-refs                : update refs count
+                                times a source shows in all the require.yml
  --graph-deps                 : output a graph of all the dependencies in your vessel
                                 suitable for rendering by dot (http://graphviz.org) 
- --for-dists                  : limit the dists
+ --for-dists                  : limit the sources
  --skip-requires              : skip requires when finding deps
  --skip-recommends            : skip recommends when finding deps
  --skip-build-requires        : skip build requires when finding deps
diff --git a/lib/Shipwright/Script/Relocate.pm b/lib/Shipwright/Script/Relocate.pm
index 2c70e95..b9540c8 100644
--- a/lib/Shipwright/Script/Relocate.pm
+++ b/lib/Shipwright/Script/Relocate.pm
@@ -78,21 +78,11 @@ __END__
 
 =head1 NAME
 
-Shipwright::Script::Relocate - Relocate source of a dist(not cpan)
+Shipwright::Script::Relocate - Relocate uri of a source
 
 =head1 SYNOPSIS
 
- relocate NAME SOURCE
-
-=head1 OPTIONS
-
-   -r [--repository] REPOSITORY    : specify the repository of our project
-   -l [--log-level] LOGLEVEL       : specify the log level
-   --log-file FILENAME             : specify the log file
-                                     (info, debug, warn, error, or fatal)
-   NAME                            : sepecify the dist name
-   SOURCE                          : specify the new source
-
+ relocate mysql http://new_uri_of_mysql.tar.gz
 
 =head1 AUTHORS
 
diff --git a/lib/Shipwright/Script/Rename.pm b/lib/Shipwright/Script/Rename.pm
index 920ef4b..87fc7b7 100644
--- a/lib/Shipwright/Script/Rename.pm
+++ b/lib/Shipwright/Script/Rename.pm
@@ -76,18 +76,11 @@ __END__
 
 =head1 NAME
 
-Shipwright::Script::Rename - Rename a dist
+Shipwright::Script::Rename - Rename a source
 
 =head1 SYNOPSIS
 
-  shipwright rename NAME NEWNAME          rename a dist
-
-=head1 OPTIONS
-
- -r [--repository] REPOSITORY : specify the repository of our project
- -l [--log-level] LOGLEVEL    : specify the log level
-                                (info, debug, warn, error, or fatal)
- --log-file FILENAME          : specify the log file
+  shipwright rename gd libgd
 
 =head1 AUTHORS
 
diff --git a/lib/Shipwright/Script/Requires.pm b/lib/Shipwright/Script/Requires.pm
index c60b6e9..8fc86ba 100644
--- a/lib/Shipwright/Script/Requires.pm
+++ b/lib/Shipwright/Script/Requires.pm
@@ -138,12 +138,10 @@ Shipwright::Script::Requires - list CPAN modules the source depends on
 
 =head1 SYNOPSIS
 
- requires SOURCE
+ requires cpan:Jifty
 
 =head1 OPTIONS
 
- -l [--log-level] LOGLEVEL      : specify the log level
- --log-file FILENAME            : specify the log file
  --version                      : specify the source's version
  --skip                         : specify a list of modules/dist names of
                                   which we don't want to show
@@ -159,9 +157,8 @@ Shipwright::Script::Requires - list CPAN modules the source depends on
  
 =head1 DESCRIPTION
 
-The requires command only show the requirements of the source, it doesn't
+The requires command only show the requirements of a source, it doesn't
 create or import at all.
-SOURCE format is like in other cmds, e.g. cpan:Moose
 
 =head1 AUTHORS
 
diff --git a/lib/Shipwright/Script/Update.pm b/lib/Shipwright/Script/Update.pm
index 1404f35..8c543d9 100644
--- a/lib/Shipwright/Script/Update.pm
+++ b/lib/Shipwright/Script/Update.pm
@@ -271,7 +271,7 @@ __END__
 
 =head1 NAME
 
-Shipwright::Script::Update - Update dist(s) and scripts
+Shipwright::Script::Update - Update sources and shipyard itself
 
 =head1 SYNOPSIS
 
@@ -282,13 +282,9 @@ Shipwright::Script::Update - Update dist(s) and scripts
 
 =head1 OPTIONS
 
- -r [--repository] REPOSITORY : specify the repository of our project
- -l [--log-level] LOGLEVEL    : specify the log level
-                                (info, debug, warn, error, or fatal)
- --log-file FILENAME          : specify the log file
- --version                    : specify the version of the dist
- --all                        : update all dists
- --follow                     : update one dist with all its dependencies
+ --version                    : specify the version of the source
+ --all                        : update all sources
+ --follow                     : update one source with all its dependencies
  --builder                    : update bin/shipwright-builder
  --utility                    : update bin/shipwright-utility
  --inc                        : update inc/
@@ -298,16 +294,12 @@ Shipwright::Script::Update - Update dist(s) and scripts
 
 =head1 DESCRIPTION
 
-The update command updates one or multiple svk, svn, git or CPAN dists in a
-Shipwright repository to the latest version. 
-To update other types of sources, you must re-import the new version, using the same name in order to overwrite.
+The update command updates sources to the latest or the specified version. 
 
-with --only-sources, only sources will be updated, 
-while scripts( technically, the stuff below scripts/ ) won't.
+with --only-sources, only sources will be updated, scripts won't.
 
-The update command can also be used to update a repository's builder or utility
-script to the version shipped with the Shipwright dist on your system, by
-specifying the C<--builder> or C<--utility> options.
+The update command can also be used to update shipyard's own files like
+builder, utility and the inc directory.
 
 =head1 ALIASES
 
diff --git a/lib/Shipwright/Source/Compressed.pm b/lib/Shipwright/Source/Compressed.pm
index 949e18a..756ee08 100644
--- a/lib/Shipwright/Source/Compressed.pm
+++ b/lib/Shipwright/Source/Compressed.pm
@@ -100,28 +100,6 @@ sub _cmd {
 
 __END__
 
-=head1 NAME
-
-Shipwright::Source::Compressed - Compressed file source
-
-
-=head1 DESCRIPTION
-
-
-=head1 DEPENDENCIES
-
-None.
-
-
-=head1 INCOMPATIBILITIES
-
-None reported.
-
-
-=head1 BUGS AND LIMITATIONS
-
-No bugs have been reported.
-
 =head1 AUTHOR
 
 sunnavy  C<< <sunnavy at bestpractical.com> >>
diff --git a/lib/Shipwright/Source/Directory.pm b/lib/Shipwright/Source/Directory.pm
index 7f4cb62..3edeec0 100644
--- a/lib/Shipwright/Source/Directory.pm
+++ b/lib/Shipwright/Source/Directory.pm
@@ -78,29 +78,6 @@ sub _cmd {
 
 __END__
 
-=head1 NAME
-
-Shipwright::Source::Directory - Directory source
-
-
-=head1 DESCRIPTION
-
-
-=head1 DEPENDENCIES
-
-
-None.
-
-
-=head1 INCOMPATIBILITIES
-
-None reported.
-
-
-=head1 BUGS AND LIMITATIONS
-
-No bugs have been reported.
-
 =head1 AUTHOR
 
 sunnavy C<< <sunnavy at bestpractical.com> >>
diff --git a/lib/Shipwright/Source/FTP.pm b/lib/Shipwright/Source/FTP.pm
index 727e530..ee1f2af 100644
--- a/lib/Shipwright/Source/FTP.pm
+++ b/lib/Shipwright/Source/FTP.pm
@@ -48,28 +48,6 @@ sub _run {
 
 __END__
 
-=head1 NAME
-
-Shipwright::Source::FTP - FTP source
-
-
-=head1 DESCRIPTION
-
-
-=head1 DEPENDENCIES
-
-None.
-
-
-=head1 INCOMPATIBILITIES
-
-None reported.
-
-
-=head1 BUGS AND LIMITATIONS
-
-No bugs have been reported.
-
 =head1 AUTHOR
 
 sunnavy  C<< <sunnavy at bestpractical.com> >>
diff --git a/lib/Shipwright/Source/Git.pm b/lib/Shipwright/Source/Git.pm
index 815b1bb..1ef3f1a 100644
--- a/lib/Shipwright/Source/Git.pm
+++ b/lib/Shipwright/Source/Git.pm
@@ -103,28 +103,6 @@ sub _run {
 
 __END__
 
-=head1 NAME
-
-Shipwright::Source::Git - Git source
-
-
-=head1 DESCRIPTION
-
-
-=head1 DEPENDENCIES
-
-None.
-
-
-=head1 INCOMPATIBILITIES
-
-None reported.
-
-
-=head1 BUGS AND LIMITATIONS
-
-No bugs have been reported.
-
 =head1 AUTHOR
 
 sunnavy  C<< <sunnavy at bestpractical.com> >>
diff --git a/lib/Shipwright/Source/HTTP.pm b/lib/Shipwright/Source/HTTP.pm
index 45cbd42..217f754 100644
--- a/lib/Shipwright/Source/HTTP.pm
+++ b/lib/Shipwright/Source/HTTP.pm
@@ -51,28 +51,6 @@ sub _run {
 
 __END__
 
-=head1 NAME
-
-Shipwright::Source::HTTP - HTTP source
-
-
-=head1 DESCRIPTION
-
-
-=head1 DEPENDENCIES
-
-None.
-
-
-=head1 INCOMPATIBILITIES
-
-None reported.
-
-
-=head1 BUGS AND LIMITATIONS
-
-No bugs have been reported.
-
 =head1 AUTHOR
 
 sunnavy  C<< <sunnavy at bestpractical.com> >>
diff --git a/lib/Shipwright/Source/SVK.pm b/lib/Shipwright/Source/SVK.pm
index 96f0cbf..42eb0c6 100644
--- a/lib/Shipwright/Source/SVK.pm
+++ b/lib/Shipwright/Source/SVK.pm
@@ -80,28 +80,6 @@ sub _run {
 
 __END__
 
-=head1 NAME
-
-Shipwright::Source::SVK - SVK source
-
-
-=head1 DESCRIPTION
-
-
-=head1 DEPENDENCIES
-
-None.
-
-
-=head1 INCOMPATIBILITIES
-
-None reported.
-
-
-=head1 BUGS AND LIMITATIONS
-
-No bugs have been reported.
-
 =head1 AUTHOR
 
 sunnavy  C<< <sunnavy at bestpractical.com> >>
diff --git a/lib/Shipwright/Source/SVN.pm b/lib/Shipwright/Source/SVN.pm
index 4778644..a5f8047 100644
--- a/lib/Shipwright/Source/SVN.pm
+++ b/lib/Shipwright/Source/SVN.pm
@@ -75,28 +75,6 @@ sub _run {
 
 __END__
 
-=head1 NAME
-
-Shipwright::Source::SVN - SVN source
-
-
-=head1 DESCRIPTION
-
-
-=head1 DEPENDENCIES
-
-None.
-
-
-=head1 INCOMPATIBILITIES
-
-None reported.
-
-
-=head1 BUGS AND LIMITATIONS
-
-No bugs have been reported.
-
 =head1 AUTHOR
 
 sunnavy  C<< <sunnavy at bestpractical.com> >>
diff --git a/lib/Shipwright/Util.pm b/lib/Shipwright/Util.pm
index 99c8638..8460388 100644
--- a/lib/Shipwright/Util.pm
+++ b/lib/Shipwright/Util.pm
@@ -284,17 +284,6 @@ __END__
 
 Shipwright::Util - Util
 
-=head1 DESCRIPTION
-
-=head1 INCOMPATIBILITIES
-
-None reported.
-
-
-=head1 BUGS AND LIMITATIONS
-
-No bugs have been reported.
-
 =head1 AUTHOR
 
 sunnavy  C<< <sunnavy at bestpractical.com> >>
diff --git a/lib/Shipwright/Util/CleanINC.pm b/lib/Shipwright/Util/CleanINC.pm
index 37b6e8e..6ff34c8 100644
--- a/lib/Shipwright/Util/CleanINC.pm
+++ b/lib/Shipwright/Util/CleanINC.pm
@@ -54,10 +54,6 @@ __END__
 
 CleanINC - Use this to clean @INC
 
-=head1 SYNOPSIS
-
-    use CleanINC;
-
 =head1 DESCRIPTION
 
 this will limit the @INC to only contain "Core" ( technically, they are
diff --git a/lib/Shipwright/Util/PatchModuleBuild.pm b/lib/Shipwright/Util/PatchModuleBuild.pm
index d634b04..04bd5e6 100644
--- a/lib/Shipwright/Util/PatchModuleBuild.pm
+++ b/lib/Shipwright/Util/PatchModuleBuild.pm
@@ -20,10 +20,6 @@ __END__
 
 PatchModuleBuild - use this to ignore man pages generation
 
-=head1 SYNOPSIS
-
-    use PatchModuleBuild;
-
 =head1 DESCRIPTION
 
 This stops Module::Build from failing to (or succeeding at) generating man pages 

commit c9a8f58b1065c42980a0f8f9aa6206e983f2dc22
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Thu Jun 17 15:37:40 2010 +0800

    add the ability to delete multiple sources at the same time

diff --git a/lib/Shipwright/Script/Delete.pm b/lib/Shipwright/Script/Delete.pm
index 7436539..88e457d 100644
--- a/lib/Shipwright/Script/Delete.pm
+++ b/lib/Shipwright/Script/Delete.pm
@@ -18,27 +18,29 @@ sub options {
 
 sub run {
     my $self = shift;
-    my $name = shift;
+    my @sources = @_;
 
-    unless ( $name || $self->unreferenced ) {
+    unless ( @sources || $self->unreferenced ) {
         confess_or_die "need name arg or --unreferenced\n";
     }
 
-    if ( $name && $self->unreferenced ) {
+    if ( @sources && $self->unreferenced ) {
         confess_or_die "please choose only one thing: a dist name or --unreferenced";
     }
 
     my $shipwright = Shipwright->new( repository => $self->repository, );
     my @names;
 
-    if ($name) {
-        my $map = $shipwright->backend->map;
-        if ( $map && $map->{$name} ) {
+    if (@sources) {
+        for my $name (@sources) {
+            my $map = $shipwright->backend->map;
+            if ( $map && $map->{$name} ) {
 
-            # it's a cpan module
-            $name = $map->{$name};
+                # it's a cpan module
+                $name = $map->{$name};
+            }
+            push @names, $name;
         }
-        @names = $name;
     }
     else {
 
@@ -54,7 +56,7 @@ sub run {
     }
 
     if ( $self->check_only ) {
-        $self->log->info( "dists to be deleted are: @names" );
+        $self->log->fatal( "dists to be deleted are: @names" );
     }
     else {
         for my $name (@names) {
@@ -75,7 +77,7 @@ Shipwright::Script::Delete - Delete source(s)
 
 =head1 SYNOPSIS
 
- shipwright delete cpan-Jifty
+ shipwright delete cpan-Jifty cpan-Catalyst
 
 =head1 OPTIONS
 

-----------------------------------------------------------------------



More information about the Bps-public-commit mailing list