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 )