Shipwright

 view release on metacpan or  search on metacpan

lib/Shipwright/Manual/Tutorial.pod  view on Meta::CPAN

we can simply use the I<update> command to update:

    $ shipwright update cpan-XML-LibXML
    (yeah, that's right, cpan:XML::LibXML will be named cpan-XML-LibXML)

We can also specify the version we want to update to with --version argument:

    $ shipwright update cpan-XML-LibXML --version 1.60

For other types, Shipwright can't guess the latest version, so we have to tell
Shipwright where it is using the I<relocate> command.

e.g. apache 2.2.10 is released one day, with download link
L<http://apache.mirror.phpchina.com/httpd/httpd-2.2.10.tar.gz>, we need to 
set the source URL first before updating.

    $ shipwright relocate apache http://www.apache.org/dist/httpd/httpd-2.2.10.tar.gz 
    $ shipwright update apache

=head3 tweak manually 

You may find that I<cpan-XML-LibXML> needs I<libxml> as a dependency, 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 dependences will be set.

So we need to do it manually, e.g. use the following command to do so:

lib/Shipwright/Script/Relocate.pm  view on Meta::CPAN

                $source->{$name} = {
                    %{ $source->{$name} },
                    $self->as || $branches->{$name}[0] => $new_source
                };
            }
            else {
                $source->{$name} = $new_source;
            }

            $shipwright->backend->source($source);
            $self->log->fatal( "successfully relocated $name to $new_source" );
        }
    }
    else {
        $self->log->fatal( "haven't found $name in source.yml, won't relocate" );
    }

}

1;

__END__

=head1 NAME

Shipwright::Script::Relocate - Relocate uri of a source

=head1 SYNOPSIS

 relocate mysql http://new_uri_of_mysql.tar.gz

=head1 GLOBAL OPTIONS

 -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


=head1 AUTHORS

lib/Shipwright/Script/Update.pm  view on Meta::CPAN

            if ( $branches && $self->as ) {
                confess_or_die "$name doesn't have branch "
                  . $self->as
                  . ". please use import cmd instead"
                  unless grep { $_ eq $self->as } @{ $branches->{$name} || [] };
            }

            my $new_source = shift;
            if ($new_source) {
                system(
                        "$0 relocate -r " 
                      . $self->repository
                      . (
                        $self->log_level
                        ? ( " --log-level " . $self->log_level )
                        : ''
                      )
                      . (
                        $self->log_file ? ( " --log-file " . $self->log_file )
                        : ''
                      )
                      . (
                        $self->as ? ( " --as " . $self->as )
                        : ''
                      )
                      . " $name $new_source"
                ) && die "relocate $name to $new_source failed: $!";
                # renew our $source
                $source = $shipwright->backend->source || {};
            }

            my @dists;
            if ( $self->follow ) {
                my (%checked);
                my $find_deps;
                $find_deps = sub {
                    my $name = shift;

share/bin/shipwright-builder  view on Meta::CPAN

    'no-install-base',
  );

my $USAGE = <<'END';
run: ./bin/shipwright-builder

Commonly used options: 
  
  --install-base            Where this vessel should be built.  Defaults to
                            a directory inside your system's default 'temp'
                            directory.  (Note that vessels are relocatable 
                            once built) 
                            Ex: --install-base /home/local/mydist
  --no-install-base         install to the default directory for each dist
  --skip-test               Don't run any tests at all
  --skip-test-except-final  Only run tests for the final package built
  --skip-man-pages          Don't install man pages for perl modules
  --force                   Install this vessel, even if some tests fail
  --advanced-help           Show additional command-line options you're
                            less likely to use.
  --verbose                 more output to stdout.



( run in 0.846 second using v1.01-cache-2.11-cpan-5511b514fd6 )