[Bioperl-guts-l] [14997] bioperl-live/trunk: resolve long-standing issue with auto-install of circular dependency: no more! Now you must choose to install circular deps in interactive mode; they do not get installed when installing "all" modules
Senduran Balasubramaniam
sendu at dev.open-bio.org
Mon Nov 17 11:20:40 EST 2008
Revision: 14997
Author: sendu
Date: 2008-11-17 11:20:40 -0500 (Mon, 17 Nov 2008)
Log Message:
-----------
resolve long-standing issue with auto-install of circular dependency: no more! Now you must choose to install circular deps in interactive mode; they do not get installed when installing "all" modules
Modified Paths:
--------------
bioperl-live/trunk/Build.PL
bioperl-live/trunk/ModuleBuildBioperl.pm
Modified: bioperl-live/trunk/Build.PL
===================================================================
--- bioperl-live/trunk/Build.PL 2008-11-17 15:34:10 UTC (rev 14996)
+++ bioperl-live/trunk/Build.PL 2008-11-17 16:20:40 UTC (rev 14997)
@@ -41,7 +41,9 @@
recommends => { # does what you would expect of recommends, except more informative output and generates optional_features in META.yml
'Ace' => '0/access of ACeDB database/Bio::DB::Ace,Bio::DB::GFF::Adaptor::ace',
# this won't actually install due to circular dep, but we have no way of doing a post-install
- 'Bio::ASN1::EntrezGene' => '0/parsing entrezgene/Bio::SeqIO::entrezgene',
+ # the [circular dependency!] specifies it is only installed on explicit request for this specific module,
+ # not when simply choosing to install 'all' modules
+ 'Bio::ASN1::EntrezGene' => '0/parsing entrezgene/Bio::SeqIO::entrezgene [circular dependency!]',
# we actually need 1.01 of Class::AutoClass, but unfortunately it is versioned as 1.0
'Class::AutoClass' => '1/creating objects/Bio::Graph::SimpleGraph,Bio::Graph::SimpleGraph::Traversal,Bio::Graph::ProteinGraph',
'Clone' => '0/cloning objects/Bio::Graph::ProteinGraph,Bio::Tools::Primer3',
@@ -72,10 +74,10 @@
'XML::SAX::Writer' => '0/writing xml/Bio::SeqIO::tigrxml',
'XML::Twig' => '0/parsing xml/Bio::Variation::IO::xml,Bio::DB::Taxonomy::entrez,Bio::DB::Biblio::eutils,Bio::Graph::IO::psi_xml',
'XML::Writer' => '0.4/parsing and writing xml/Bio::SeqIO::agave,Bio::SeqIO::game::gameWriter,Bio::SeqIO::chadoxml,Bio::SeqIO::tinyseq,Bio::Variation::IO::xml,Bio::SearchIO::Writer::BSMLResultWriter',
- 'Math::Random' => '0/Random Phylogenetic Networks/Bio::PhyloNetwork::RandomFactory',
- 'Algorithm::Munkres' => '0/Phylogenetic Networks/Bio::PhyloNetwork',
- 'Array::Compare' => '0/Phylogenetic Networks/Bio::PhyloNetwork',
- 'GraphViz' => '0/Phylogenetic Network Visulization/Bio::PhyloNetwork::GraphViz',
+ 'Math::Random' => '0/Random Phylogenetic Networks/Bio::PhyloNetwork::RandomFactory',
+ 'Algorithm::Munkres' => '0/Phylogenetic Networks/Bio::PhyloNetwork',
+ 'Array::Compare' => '0/Phylogenetic Networks/Bio::PhyloNetwork',
+ 'GraphViz' => '0/Phylogenetic Network Visulization/Bio::PhyloNetwork::GraphViz',
},
get_options => {
network => { } # say 'perl Build.PL --network' to manually request network tests
Modified: bioperl-live/trunk/ModuleBuildBioperl.pm
===================================================================
--- bioperl-live/trunk/ModuleBuildBioperl.pm 2008-11-17 15:34:10 UTC (rev 14996)
+++ bioperl-live/trunk/ModuleBuildBioperl.pm 2008-11-17 16:20:40 UTC (rev 14997)
@@ -343,6 +343,10 @@
$status->{message} .= "\n (wanted for $why, used by $by_what)";
+ if ($by_what =~ /\[circular dependency!\]/) {
+ $preferred_version = -1;
+ }
+
my $installed = $self->install_optional($modname, $preferred_version, $status->{message});
next if $installed eq 'ok';
$status->{message} = $installed unless $installed eq 'skip';
@@ -440,11 +444,14 @@
$install = $self->y_n(" * $msg\n Do you want to install it? y/n", 'n');
}
- if ($install) {
+ my $orig_version = $version;
+ $version = 0 if $version == -1;
+ if ($install && ! ($self->{ask_optional} =~ /^a/i && $orig_version == -1)) {
return $self->install_prereq($desired, $version);
}
else {
- $self->log_info(" * You chose not to install $desired\n");
+ my $circular = ($self->{ask_optional} =~ /^a/i && $orig_version == -1) ? " - this is a circular dependency so doesn't get installed when installing 'all' modules. If you really want it, choose modules interactively." : '';
+ $self->log_info(" * You chose not to install $desired$circular\n");
return 'ok';
}
}
More information about the Bioperl-guts-l
mailing list