view release on metacpan or search on metacpan
"requires" : {
"CPAN::Meta" : "2.120921",
"CPAN::Meta::Requirements" : "2.121",
"Class::Tiny" : "1.001",
"Getopt::Long" : "2.39",
"JSON::PP" : "2.27300",
"Menlo::CLI::Compat" : "1.9018",
"Module::CPANfile" : "0.9031",
"Module::CoreList" : "0",
"Path::Tiny" : "0.033",
"Try::Tiny" : "0.09",
"parent" : "0.223",
"perl" : "v5.8.5"
}
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
"web" : "https://github.com/perl-carton/carton/issues"
},
requires:
CPAN::Meta: '2.120921'
CPAN::Meta::Requirements: '2.121'
Class::Tiny: '1.001'
Getopt::Long: '2.39'
JSON::PP: '2.27300'
Menlo::CLI::Compat: '1.9018'
Module::CPANfile: '0.9031'
Module::CoreList: '0'
Path::Tiny: '0.033'
Try::Tiny: '0.09'
parent: '0.223'
perl: v5.8.5
resources:
bugtracker: https://github.com/perl-carton/carton/issues
homepage: https://github.com/perl-carton/carton
repository: https://github.com/perl-carton/carton.git
version: v1.0.35
x_contributors:
- 'Christian Walde <walde.christian@googlemail.com>'
- 'Dan Book <grinnz@gmail.com>'
Makefile.PL view on Meta::CPAN
"PREREQ_PM" => {
"CPAN::Meta" => "2.120921",
"CPAN::Meta::Requirements" => "2.121",
"Class::Tiny" => "1.001",
"Getopt::Long" => "2.39",
"JSON::PP" => "2.27300",
"Menlo::CLI::Compat" => "1.9018",
"Module::CPANfile" => "0.9031",
"Module::CoreList" => 0,
"Path::Tiny" => "0.033",
"Try::Tiny" => "0.09",
"parent" => "0.223"
},
"VERSION" => "v1.0.35",
"test" => {
"TESTS" => "t/*.t"
}
);
my %FallbackPrereqs = (
"CPAN::Meta" => "2.120921",
"CPAN::Meta::Requirements" => "2.121",
"Class::Tiny" => "1.001",
"Getopt::Long" => "2.39",
"JSON::PP" => "2.27300",
"Menlo::CLI::Compat" => "1.9018",
"Module::CPANfile" => "0.9031",
"Module::CoreList" => 0,
"Path::Tiny" => "0.033",
"Try::Tiny" => "0.09",
"parent" => "0.223"
);
unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
delete $WriteMakefileArgs{TEST_REQUIRES};
delete $WriteMakefileArgs{BUILD_REQUIRES};
$WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}
on configure => sub {
requires 'version', 0.77;
};
requires 'perl', '5.8.5';
requires 'JSON::PP', '2.27300';
requires 'Module::CPANfile', 0.9031;
requires 'Try::Tiny', 0.09;
requires 'parent', 0.223;
requires 'Getopt::Long', 2.39;
requires 'Class::Tiny', 1.001;
requires 'Path::Tiny', 0.033;
requires 'Menlo::CLI::Compat', '1.9018';
requires 'CPAN::Meta', 2.120921;
requires 'CPAN::Meta::Requirements', 2.121;
requires 'Module::CoreList';
lib/Carton/CLI.pm view on Meta::CPAN
package Carton::CLI;
use strict;
use warnings;
use Config;
use Getopt::Long;
use Path::Tiny;
use Try::Tiny;
use Module::CoreList;
use Scalar::Util qw(blessed);
use Carton;
use Carton::Builder;
use Carton::Mirror;
use Carton::Snapshot;
use Carton::Util;
use Carton::Environment;
use Carton::Error;
lib/Carton/Snapshot.pm view on Meta::CPAN
use Carton::Dist::Core;
use Carton::Error;
use Carton::Package;
use Carton::Index;
use Carton::Util;
use Carton::Snapshot::Emitter;
use Carton::Snapshot::Parser;
use CPAN::Meta;
use CPAN::Meta::Requirements;
use File::Find ();
use Try::Tiny;
use Path::Tiny ();
use Module::CoreList;
use constant CARTON_SNAPSHOT_VERSION => '1.0';
use subs 'path';
use Class::Tiny {
path => undef,
version => sub { CARTON_SNAPSHOT_VERSION },
loaded => undef,
xt/cli/bundle.t view on Meta::CPAN
use strict;
use Test::More;
use lib ".";
use xt::CLI;
{
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.12';
EOF
$app->run("install");
$app->run("bundle");
ok -f ($app->dir . "/vendor/cache/authors/id/D/DO/DOY/Try-Tiny-0.12.tar.gz");
}
done_testing;
xt/cli/check.t view on Meta::CPAN
use strict;
use Test::More;
use lib ".";
use xt::CLI;
subtest 'carton check fails when there is no lock' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.11';
EOF
$app->run("check");
like $app->stderr, qr/find cpanfile\.snapshot/;
};
subtest 'carton install and check' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.11';
EOF
$app->run("install");
$app->run("check");
like $app->stdout, qr/are satisfied/;
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.11/;
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '0.16';
EOF
$app->run("check");
like $app->stdout, qr/not satisfied/;
TODO: {
local $TODO = 'exec does not verify lock';
$app->run("exec", "perl", "use Try::Tiny");
like $app->stderr, qr/\.snapshot/;
}
$app->run("install");
$app->run("check");
like $app->stdout, qr/are satisfied/;
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.\d\d/;
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '10.00';
EOF
$app->run("check");
like $app->stdout, qr/not satisfied/;
$app->run("install");
like $app->stderr, qr/failed/;
$app->run("check");
like $app->stdout, qr/not satisfied/;
};
subtest 'detect unused modules' => sub {
my $app = cli;
$app->write_cpanfile("requires 'Try::Tiny';");
$app->run("install");
$app->write_cpanfile("");
TODO: {
local $TODO = "Can't detect superflous modules";
$app->run("install");
$app->run("list");
is $app->stdout, "";
xt/cli/cpanfile.t view on Meta::CPAN
use strict;
use Test::More;
use lib ".";
use xt::CLI;
subtest 'carton install --cpanfile' => sub {
my $app = cli();
$app->write_file('cpanfile.foo', <<EOF);
requires 'Try::Tiny', '== 0.11';
EOF
$app->run("install", "--cpanfile", "cpanfile.foo");
$app->run("check", "--cpanfile", "cpanfile.foo");
ok !$app->dir->child('cpanfile.snapshot')->exists;
ok $app->dir->child('cpanfile.foo.snapshot')->exists;
like $app->stdout, qr/are satisfied/;
local $ENV{PERL_CARTON_CPANFILE} = $app->dir->child('cpanfile.foo')->absolute;
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.11/;
$app->run("exec", "perl", "-e", "use Try::Tiny\ 1");
like $app->stderr, qr/Try::Tiny .* 0\.11/;
};
subtest 'PERL_CARTON_CPANFILE' => sub {
my $app = cli();
local $ENV{PERL_CARTON_CPANFILE} = $app->dir->child('cpanfile.foo')->absolute;
$app->write_file('cpanfile.foo', <<EOF);
requires 'Try::Tiny', '== 0.11';
EOF
$app->run("install");
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.11/;
ok $app->dir->child('cpanfile.foo.snapshot')->exists;
};
done_testing;
xt/cli/deployment.t view on Meta::CPAN
use strict;
use Test::More;
use lib ".";
use xt::CLI;
{
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.11';
EOF
$app->run("install", "--deployment");
like $app->stderr, qr/deployment requires cpanfile\.snapshot/;
$app->run("install");
$app->clean_local;
$app->run("install", "--deployment");
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.11/;
$app->run("exec", "perl", "-e", "use Try::Tiny 2;");
like $app->stderr, qr/Try::Tiny.* version 0\.11/;
}
done_testing;
xt/cli/dist.t view on Meta::CPAN
use strict;
use Test::More;
use lib ".";
use xt::CLI;
subtest 'with pinned dist' => sub {
my $app = cli();
$app->write_file('cpanfile', <<EOF);
requires 'Try::Tiny', '0.29',
dist => 'ETHER/Try-Tiny-0.29.tar.gz';
EOF
$app->run("install");
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.29/;
$app->run("exec", "perl", "-e", "use Try::Tiny\ 1");
like $app->stderr, qr/Try::Tiny .* 0\.29/;
my $content = $app->dir->child('cpanfile.snapshot')->slurp;
like $content, qr/ETHER\/Try-Tiny-0\.29/;
};
done_testing;
xt/cli/exec.t view on Meta::CPAN
is $app->exit_code, 255;
};
subtest 'carton exec', sub {
my $app = cli();
$app->write_cpanfile('');
$app->run("install");
TODO: {
local $TODO = "exec now does not strip site_perl";
$app->run("exec", "perl", "-e", "use Try::Tiny");
like $app->stderr, qr/Can't locate Try\/Tiny.pm/;
}
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.11';
EOF
$app->run("install");
$app->run("exec", "--", "perl", "-e", 'use Try::Tiny; print $Try::Tiny::VERSION, "\n"');
like $app->stdout, qr/0\.11/;
$app->run("exec", "perl", "-e", 'use Try::Tiny; print $Try::Tiny::VERSION, "\n"');
like $app->stdout, qr/0\.11/, "No need for -- as well";
$app->run("exec", "perl", "-MTry::Tiny", "-e", 'print $Try::Tiny::VERSION, "\n"');
like $app->stdout, qr/0\.11/;
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny';
requires 'App::Ack', '== 2.02';
EOF
$app->run("install");
$app->run("exec", "--", "ack", "--version");
like $app->stdout, qr/ack 2\.02/;
};
subtest 'carton exec perl -Ilib', sub {
xt/cli/freeze.t view on Meta::CPAN
use strict;
use Test::More;
use lib ".";
use xt::CLI;
{
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.11';
EOF
$app->run("install");
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.11/;
$app->clean_local;
$app->run("install");
$app->run("list");
xt/cli/install.t view on Meta::CPAN
use xt::CLI;
subtest 'carton install with version range' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'CPAN::Test::Dummy::Perl5::Deps::VersionRange';
EOF
$app->run("install");
$app->run("tree");
like $app->stdout, qr/Try::Tiny/;
unlike $app->stderr, qr/Could not parse snapshot file/;
};
subtest 'meta info for ancient modules' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Algorithm::Diff';
EOF
$app->run("install");
xt/cli/snapshot.t view on Meta::CPAN
use strict;
use Test::More;
use lib ".";
use xt::CLI;
subtest 'snapshot file has canonical representation' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.11';
requires 'Getopt::Long', '2.41';
EOF
$app->run("install");
my $content = $app->dir->child('cpanfile.snapshot')->slurp;
for (1..3) {
$app->dir->child('cpanfile.snapshot')->remove;
$app->run("install");
is $content, $app->dir->child('cpanfile.snapshot')->slurp;
xt/cli/snapshot.t view on Meta::CPAN
unknown: foo
EOF
$app->run("install");
like $app->stderr, qr/Could not parse/;
};
subtest 'snapshot file support separate CRLF' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.11';
requires 'Getopt::Long', '2.41';
EOF
$app->run("install");
my $content = $app->dir->child('cpanfile.snapshot')->slurp;
$content =~ s/\n/\r\n/g;
$app->write_file('cpanfile.snapshot', $content);
$app->run("install");
xt/cli/subdir.t view on Meta::CPAN
use strict;
use Test::More;
use lib ".";
use xt::CLI;
subtest 'carton exec in subdir', sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny';
EOF
$app->run('install');
$app->dir->child('x')->mkpath;
$app->run_in_dir('x' => 'list');
like $app->stdout, qr/Try-Tiny/;
$app->run_in_dir('x' => 'check');
like $app->stdout, qr/are satisfied/;
xt/cli/update.t view on Meta::CPAN
use strict;
use Test::More;
use lib ".";
use xt::CLI;
subtest 'carton update NonExistentModule' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.09';
EOF
$app->run("install");
$app->run("update", "XYZ");
like $app->stderr, qr/Could not find module XYZ/;
};
subtest 'carton update upgrades a dist' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.09';
EOF
$app->run("install");
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.09/;
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '>= 0.09, <= 0.12';
EOF
$app->run("install");
$app->run("check");
like $app->stdout, qr/are satisfied/;
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.09/;
$app->run("update", "Try::Tiny");
like $app->stdout, qr/installed Try-Tiny-0\.12.*upgraded from 0\.09/;
$app->run("check");
like $app->stdout, qr/are satisfied/;
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.12/;
};
subtest 'downgrade a distribution' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '0.16';
EOF
$app->run("install");
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.\d\d/;
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '== 0.09';
EOF
$app->run("update");
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.09/;
TODO: {
local $TODO = 'collecting wrong install info';
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny', '0.09';
EOF
$app->run("install");
$app->run("list");
like $app->stdout, qr/Try-Tiny-0\.09/;
}
};
done_testing;
xt/cli/without.t view on Meta::CPAN
use strict;
use Test::More;
use lib ".";
use xt::CLI;
subtest 'carton install --without develop' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny';
on 'develop' => sub {
requires 'Hash::MultiValue', '== 0.14';
};
EOF
$app->run("install");
$app->run("list");
like $app->stdout, qr/Try-Tiny-/;
like $app->stdout, qr/Hash-MultiValue-0\.14/;
xt/cli/without.t view on Meta::CPAN
unlike $app->stdout, qr/Hash-MultiValue-/;
}
$app->run("exec", "perl", "-e", "use Hash::MultiValue\ 1");
unlike $app->stderr, qr/Hash::MultiValue .* version 0.14/;
};
subtest 'without features' => sub {
my $app = cli();
$app->write_cpanfile(<<EOF);
requires 'Try::Tiny';
feature 'stream' => sub {
requires 'Stream::Buffered', '== 0.01';
};
EOF
$app->run("install");
$app->run("list");
like $app->stdout, qr/Stream-Buffered-0\.01/;
xt/mirror/modules/02packages.details.txt view on Meta::CPAN
CGI::Pretty 3.46 M/MA/MARKSTOS/CGI.pm-3.55.tar.gz
CGI::Push 1.05 M/MA/MARKSTOS/CGI.pm-3.55.tar.gz
CGI::Switch 1.01 M/MA/MARKSTOS/CGI.pm-3.55.tar.gz
CGI::Util 3.53 M/MA/MARKSTOS/CGI.pm-3.55.tar.gz
CGITempFile undef M/MA/MARKSTOS/CGI.pm-3.55.tar.gz
FCGI 0.73 F/FL/FLORA/FCGI-0.73.tar.gz
FCGI::Stream undef F/FL/FLORA/FCGI-0.73.tar.gz
Fh undef M/MA/MARKSTOS/CGI.pm-3.55.tar.gz
Hash::MultiValue 0.08 M/MI/MIYAGAWA/Hash-MultiValue-0.08.tar.gz
MultipartBuffer undef M/MA/MARKSTOS/CGI.pm-3.55.tar.gz
Try::Tiny 0.09 D/DO/DOY/Try-Tiny-0.09.tar.gz