Dist-Zilla-PluginBundle-Author-ETHER
view release on metacpan or search on metacpan
lib/Dist/Zilla/PluginBundle/Author/ETHER.pm view on Meta::CPAN
is => 'ro', isa => 'Str',
init_arg => undef,
lazy => 1,
default => sub {
my $self = shift;
# we could warn about this, but then we'd have to change configs (and bump prereqs) for an awful lot of
# distributions.
return $self->payload->{'Authority.authority'}
if exists $self->payload->{'Authority.authority'};
$self->payload->{authority} // 'cpan:ETHER';
},
);
has fake_release => (
is => 'ro', isa => 'Bool',
init_arg => undef,
lazy => 1,
default => sub { $ENV{FAKE_RELEASE} || $_[0]->payload->{fake_release} // 0 },
);
has plugin_prereq_phase => (
is => 'ro',
isa => 'Str',
lazy => 1,
default => sub { $_[0]->payload->{plugin_prereq_phase} // 'x_Dist_Zilla' },
);
has plugin_prereq_relationship => (
is => 'ro',
isa => 'Str',
lazy => 1,
default => sub { $_[0]->payload->{plugin_prereq_relationship} // 'requires' },
);
has cpanfile => (
is => 'ro', isa => 'Bool',
init_arg => undef,
lazy => 1,
default => sub { $_[0]->payload->{cpanfile} // 0 },
);
sub pause_cfg_file () { '.pause' }
sub pause_cfg_dir () { $^O eq 'MSWin32' && "$]" < 5.016 ? $ENV{HOME} || $ENV{USERPROFILE} : (<~>)[0] }
my $_pause_config;
sub _pause_config {
return $_pause_config if $_pause_config;
# stolen shamelessly from Dist::Zilla::Plugin::UploadToCPAN
my $self = shift;
require CPAN::Uploader;
my $file = $self->pause_cfg_file;
$file = File::Spec->catfile($self->pause_cfg_dir, $file)
unless File::Spec->file_name_is_absolute($file);
return {} unless -e $file && -r _;
my $cfg = try {
CPAN::Uploader->read_config_file($file)
} catch {
warn "[\@Author::ETHER] Couldn't load credentials from '$file': $_";
{};
};
return $cfg;
}
sub _pause_download_url {
my $self = shift;
my ($username, $password) = @{$self->_pause_config}{qw(user password)};
return if not $username or not $password;
$password = uri_escape($password) =~ s/%/%%/gr;
'https://'.$username.':'.$password.'@pause.perl.org/pub/PAUSE/authors/id/'.substr($username, 0, 1).'/'.substr($username,0,2).'/'.$username.'/%a';
}
# configs are applied when plugins match ->isa($key) or ->does($key)
my %extra_args = (
'Dist::Zilla::Plugin::MakeMaker' => { 'eumm_version' => '0' },
'Dist::Zilla::Plugin::MakeMaker::Awesome' => { 'eumm_version' => '0' },
'Dist::Zilla::Plugin::ModuleBuildTiny' => { ':version' => '0.012', version_method => 'conservative', static => 'auto' },
'Dist::Zilla::Plugin::MakeMaker::Fallback' => { ':version' => '0.029' },
# default_jobs is no-op until Dist::Zilla 5.014
'Dist::Zilla::Role::TestRunner' => { default_jobs => 9 },
'Dist::Zilla::Plugin::ModuleBuild' => { mb_version => '0.28' },
'Dist::Zilla::Plugin::ModuleBuildTiny::Fallback' => { ':version' => '0.018', version_method => 'conservative', static => 'auto' },
);
# plugins that use the network when they run
sub _network_plugins {
qw(
PromptIfStale
Test::Pod::LinkCheck
Test::Pod::No404s
Git::Remote::Check
CheckPrereqsIndexed
CheckIssues
UploadToCPAN
Git::Push
);
}
has _has_bash => (
is => 'ro',
isa => 'Bool',
lazy => 1,
default => sub { !!can_run('bash') },
);
# note this is applied to the plugin list in Dist::Zilla::Role::PluginBundle::PluginRemover,
# but we also need to use it here to be sure we are not adding configs that are only needed
# by plugins that will be subsequently removed.
has _removed_plugins => (
isa => 'HashRef[Str]',
init_arg => undef,
lazy => 1,
default => sub {
my $self = shift;
my $remove = $self->payload->{ $self->plugin_remover_attribute } // [];
my %removed; @removed{@$remove} = (!!1) x @$remove;
\%removed;
},
traits => ['Hash'],
( run in 0.750 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )