[Jifty-commit] jifty branch, master, updated. 1.10518-87-g5bb7543

Jifty commits jifty-commit at lists.jifty.org
Thu May 10 02:13:00 EDT 2012


The branch, master has been updated
       via  5bb754373621c2021ce1440ec28b9dd2150e7baa (commit)
       via  1a9786a5a0ebcaaf64c8297dca8af852d2917b03 (commit)
       via  b1b5dec26f55b5e10f54ac69cbf7d604f2c89899 (commit)
       via  fbcb35cb24b0a41c30251ddc35b0eee913105780 (commit)
       via  b27eb73732fae64148f70e385eed6a1d4f8624ba (commit)
       via  c0abab00df05b1bfa2ef13ae566e13dceeb7f77d (commit)
      from  36e13529af99385995b051b02f48161ab310b3e6 (commit)

Summary of changes:
 MANIFEST                                           |   16 +++-
 inc/Module/AutoInstall.pm                          |   37 ++++++---
 inc/Module/Install.pm                              |    6 +-
 inc/Module/Install/AutoInstall.pm                  |    2 +-
 inc/Module/Install/Base.pm                         |    2 +-
 inc/Module/Install/Can.pm                          |   85 ++++++++++++++++++--
 inc/Module/Install/Fetch.pm                        |    2 +-
 inc/Module/Install/Include.pm                      |    2 +-
 inc/Module/Install/Makefile.pm                     |   27 ++++---
 inc/Module/Install/Metadata.pm                     |   18 +++--
 inc/Module/Install/Scripts.pm                      |    2 +-
 inc/Module/Install/Share.pm                        |    2 +-
 inc/Module/Install/Win32.pm                        |    2 +-
 inc/Module/Install/WriteAll.pm                     |    2 +-
 lib/Jifty/Plugin.pm                                |   12 +--
 .../Password/Action/GeneratePasswordToken.pm       |   10 +++
 lib/Jifty/Plugin/Halo.pm                           |   14 ++++
 t/99-pod-spelling.t                                |    2 +
 t/99-tabs.t                                        |    2 +-
 19 files changed, 186 insertions(+), 59 deletions(-)

- Log -----------------------------------------------------------------
commit c0abab00df05b1bfa2ef13ae566e13dceeb7f77d
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu May 10 01:35:31 2012 -0400

    Update MANIFEST; this fixes test failures caused by missing blib/ files
    
    t/08-client.t, for instance, hung because the sharedir in blib/ did not
    contain Jifty::Plugin::Halo's web/templates/__jifty/halo, causing an
    infinite loop in halo rendering.  While blib/ contained all of the
    _directories_ found in share/, it only contained _files_ which also
    appeared in MANIFEST.  Update the MANIFEST to resolve this issue.
    
    This causes additional new test failures in t/99-pod-coverage.t and
    t/99-pod-spelling.t as they pick up the new .pm files to examine.

diff --git a/MANIFEST b/MANIFEST
index 13dfa90..dd49cc7 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -170,7 +170,10 @@ lib/Jifty/Bootstrap.pm
 lib/Jifty/CAS.pm
 lib/Jifty/CAS/Blob.pm
 lib/Jifty/CAS/Store.pm
+lib/Jifty/CAS/Store/LocalFile.pm
 lib/Jifty/CAS/Store/Memcached.pm
+lib/Jifty/CAS/Store/Memory.pm
+lib/Jifty/CAS/Store/Nested.pm
 lib/Jifty/ClassLoader.pm
 lib/Jifty/Client.pm
 lib/Jifty/Collection.pm
@@ -184,6 +187,7 @@ lib/Jifty/Event/Log.pm
 lib/Jifty/Event/Model.pm
 lib/Jifty/Everything.pm
 lib/Jifty/Filter/DateTime.pm
+lib/Jifty/Filter/JSON.pm
 lib/Jifty/Handle.pm
 lib/Jifty/Handler.pm
 lib/Jifty/I18N.pm
@@ -262,6 +266,7 @@ lib/Jifty/Plugin/Deflater.pm
 lib/Jifty/Plugin/ErrorTemplates.pm
 lib/Jifty/Plugin/ErrorTemplates/View.pm
 lib/Jifty/Plugin/Halo.pm
+lib/Jifty/Plugin/Halo/Mason.pm
 lib/Jifty/Plugin/I18N.pm
 lib/Jifty/Plugin/I18N/Action/SetLang.pm
 lib/Jifty/Plugin/IEFixes.pm
@@ -312,6 +317,7 @@ lib/Jifty/Script/Po.pm
 lib/Jifty/Script/Schema.pm
 lib/Jifty/Script/Script.pm
 lib/Jifty/Script/Server.pm
+lib/Jifty/Script/WriteCCJS.pm
 lib/Jifty/Subs.pm
 lib/Jifty/Subs/Render.pm
 lib/Jifty/Test.pm
@@ -319,6 +325,7 @@ lib/Jifty/Test/Dist.pm
 lib/Jifty/Test/Email.pm
 lib/Jifty/Test/WWW/Mechanize.pm
 lib/Jifty/Test/WWW/Selenium.pm
+lib/Jifty/Test/WWW/WebDriver.pm
 lib/Jifty/TestServer.pm
 lib/Jifty/TestServer/Inline.pm
 lib/Jifty/Upgrade.pm
@@ -332,7 +339,6 @@ lib/Jifty/View/Declare/CRUD.pm
 lib/Jifty/View/Declare/Handler.pm
 lib/Jifty/View/Declare/Helpers.pm
 lib/Jifty/View/Declare/Page.pm
-lib/Jifty/View/Mason/Halo.pm
 lib/Jifty/View/Mason/Handler.pm
 lib/Jifty/View/Mason/Request.pm
 lib/Jifty/View/Static/Handler.pm
@@ -384,10 +390,15 @@ share/plugins/Jifty/Plugin/AdminUI/web/templates/__jifty/admin/_elements/nav
 share/plugins/Jifty/Plugin/AdminUI/web/templates/__jifty/admin/action/dhandler
 share/plugins/Jifty/Plugin/AdminUI/web/templates/__jifty/admin/autohandler
 share/plugins/Jifty/Plugin/AdminUI/web/templates/__jifty/admin/index.html
+share/plugins/Jifty/Plugin/Authentication/Password/web/static/js/login_hashing.js
+share/plugins/Jifty/Plugin/Authentication/Password/web/static/js/MD5.js
 share/plugins/Jifty/Plugin/CSSQuery/web/static/js/cssquery/cssQuery-level2.js
 share/plugins/Jifty/Plugin/CSSQuery/web/static/js/cssquery/cssQuery-level3.js
 share/plugins/Jifty/Plugin/CSSQuery/web/static/js/cssquery/cssQuery-standard.js
 share/plugins/Jifty/Plugin/CSSQuery/web/static/js/cssquery/cssQuery.js
+share/plugins/Jifty/Plugin/Halo/web/static/css/halo.css
+share/plugins/Jifty/Plugin/Halo/web/static/js/halo.js
+share/plugins/Jifty/Plugin/Halo/web/templates/__jifty/halo
 share/plugins/Jifty/Plugin/I18N/web/static/js/loc.js
 share/plugins/Jifty/Plugin/IEFixes/web/static/js/iefixes/blank.gif
 share/plugins/Jifty/Plugin/IEFixes/web/static/js/iefixes/ie7-recalc.js
@@ -432,7 +443,6 @@ share/web/static/css/crud.css
 share/web/static/css/datetime.css
 share/web/static/css/facebox.css
 share/web/static/css/forms.css
-share/web/static/css/halos.css
 share/web/static/css/jquery.autocomplete.css
 share/web/static/css/jquery.jgrowl.css
 share/web/static/css/jquery.timepickr.css
@@ -506,7 +516,6 @@ share/web/static/js/cssQuery-jquery.js
 share/web/static/js/datetime.js
 share/web/static/js/dom-drag.js
 share/web/static/js/facebox.js
-share/web/static/js/halo.js
 share/web/static/js/iepngfix.htc
 share/web/static/js/iutil.js
 share/web/static/js/jifty.js
@@ -547,7 +556,6 @@ share/web/templates/__jifty/error/autohandler
 share/web/templates/__jifty/error/dhandler
 share/web/templates/__jifty/error/error.css
 share/web/templates/__jifty/error/mason_internal_error
-share/web/templates/__jifty/halo
 share/web/templates/__jifty/validator.xml
 share/web/templates/__jifty/webservices/json
 share/web/templates/__jifty/webservices/xml

commit b27eb73732fae64148f70e385eed6a1d4f8624ba
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu May 10 02:06:05 2012 -0400

    POD updates for t/99-pod-coverage.t and t/99-pod-spelling.t

diff --git a/lib/Jifty/Plugin/Authentication/Password/Action/GeneratePasswordToken.pm b/lib/Jifty/Plugin/Authentication/Password/Action/GeneratePasswordToken.pm
index d00026c..5b65ba5 100755
--- a/lib/Jifty/Plugin/Authentication/Password/Action/GeneratePasswordToken.pm
+++ b/lib/Jifty/Plugin/Authentication/Password/Action/GeneratePasswordToken.pm
@@ -12,6 +12,16 @@ use base qw/Jifty::Action/;
 
 __PACKAGE__->mk_accessors( 'login_by' );
 
+=head1 METHODS
+
+=head2 new
+
+Looks up what L<Jifty::Plugin::Authentication::Password> is configured
+to login via, username or email address, to know what form element to
+expect.
+
+=cut
+
 sub new {
     my $class = shift;
     my $self = $class->SUPER::new(@_);
diff --git a/lib/Jifty/Plugin/Halo.pm b/lib/Jifty/Plugin/Halo.pm
index 84b91bb..685ba11 100644
--- a/lib/Jifty/Plugin/Halo.pm
+++ b/lib/Jifty/Plugin/Halo.pm
@@ -316,11 +316,25 @@ sub pop_frame {
     return $frame;
 }
 
+=head2 body_start
+
+Called once the C<< <body> >> element has been opened; enables halos on
+templates.
+
+=cut
+
 sub body_start {
     my $self = shift;
     Jifty->handler->stash->{'in_body'} = 1;
 }
 
+=head2 body_end
+
+Called just before the C<< <body> >> element is closed; renders the halo
+component tree using L</render_component_tree>.
+
+=cut
+
 sub body_end {
     my $self = shift;
     Jifty->handler->stash->{'in_body'} = 0;
diff --git a/t/99-pod-spelling.t b/t/99-pod-spelling.t
index ed58cbb..2b439ed 100644
--- a/t/99-pod-spelling.t
+++ b/t/99-pod-spelling.t
@@ -377,4 +377,6 @@ sigready
 ok
 validationaction
 pushfrag
+Closs
+mis
 

commit fbcb35cb24b0a41c30251ddc35b0eee913105780
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu May 10 02:07:40 2012 -0400

    Correct skip_all message for tabs author test

diff --git a/t/99-tabs.t b/t/99-tabs.t
index 7502e34..385ca74 100644
--- a/t/99-tabs.t
+++ b/t/99-tabs.t
@@ -2,6 +2,6 @@ use Test::More;
 plan skip_all => "Tab tests only run for authors" unless (-d 'inc/.author');
 
 eval "use Test::NoTabs 1.00";
-plan skip_all => "Test::NoTabs 1.00 required for testing POD coverage" if $@;
+plan skip_all => "Test::NoTabs 1.00 required for testing absence of tabs" if $@;
 
 all_perl_files_ok('lib', 't', 'share');

commit b1b5dec26f55b5e10f54ac69cbf7d604f2c89899
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu May 10 01:39:17 2012 -0400

    Return cached failed sharedir early, rather than failing again

diff --git a/lib/Jifty/Plugin.pm b/lib/Jifty/Plugin.pm
index 9063665..356c189 100644
--- a/lib/Jifty/Plugin.pm
+++ b/lib/Jifty/Plugin.pm
@@ -88,6 +88,8 @@ sub _calculate_share {
     my $self  = shift;
     my $class = ref($self);
 
+    return $self->{share} if exists $self->{share};
+
     unless ( $self->{share} and -d $self->{share} ) {
         # If we've got a Jifty in @INC, and the plugin is core, the
         # right thing to do is to strip off lib/ and replace it with

commit 1a9786a5a0ebcaaf64c8297dca8af852d2917b03
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu May 10 01:40:12 2012 -0400

    Factor out shared code between _calculate_share codepaths

diff --git a/lib/Jifty/Plugin.pm b/lib/Jifty/Plugin.pm
index 356c189..f999ff0 100644
--- a/lib/Jifty/Plugin.pm
+++ b/lib/Jifty/Plugin.pm
@@ -90,13 +90,12 @@ sub _calculate_share {
 
     return $self->{share} if exists $self->{share};
 
+    my $class_to_path = $class;
+    $class_to_path =~ s|::|/|g;
     unless ( $self->{share} and -d $self->{share} ) {
         # If we've got a Jifty in @INC, and the plugin is core, the
         # right thing to do is to strip off lib/ and replace it with
         # share/plugins/Jifty/Plugin/Whatever/
-        my $class_to_path = $class;
-        $class_to_path =~ s|::|/|g;
-
         $self->{share} = $INC{ $class_to_path . '.pm' };
         $self->{share} =~ s{lib/+\Q$class_to_path.pm}{share/plugins/$class_to_path};
         $self->{share} = File::Spec->rel2abs( $self->{share} );
@@ -106,9 +105,6 @@ sub _calculate_share {
         # non-core plugin in @INC.  We do this before the
         # File::ShareDir, because File::ShareDir only looks at install
         # locations, and the plugin could be hand-set in @INC.
-        my $class_to_path = $class;
-        $class_to_path =~ s|::|/|g;
-
         $self->{share} = $INC{ $class_to_path . '.pm' };
         $self->{share} =~ s{lib/+\Q$class_to_path.pm}{share};
         $self->{share} = File::Spec->rel2abs( $self->{share} );
@@ -127,8 +123,6 @@ sub _calculate_share {
         # updated plugin
 
         # Core plugins live in jifty's share/plugins/Jifty/Plugin/Whatever/
-        my $class_to_path = $class;
-        $class_to_path =~ s|::|/|g;
         $self->{share} = Jifty::Util->share_root;
         $self->{share} .= "/plugins/" . $class_to_path;
     }

commit 5bb754373621c2021ce1440ec28b9dd2150e7baa
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Thu May 10 01:48:32 2012 -0400

    Update Module::Install

diff --git a/inc/Module/AutoInstall.pm b/inc/Module/AutoInstall.pm
index ce9ec61..aa7aa92 100644
--- a/inc/Module/AutoInstall.pm
+++ b/inc/Module/AutoInstall.pm
@@ -3,11 +3,12 @@ package Module::AutoInstall;
 
 use strict;
 use Cwd                 ();
+use File::Spec          ();
 use ExtUtils::MakeMaker ();
 
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '1.03';
+	$VERSION = '1.06';
 }
 
 # special map on pre-defined feature sets
@@ -187,7 +188,7 @@ sub import {
             }
 
             # XXX: check for conflicts and uninstalls(!) them.
-            my $cur = _load($mod);
+            my $cur = _version_of($mod);
             if (_version_cmp ($cur, $arg) >= 0)
             {
                 print "loaded. ($cur" . ( $arg ? " >= $arg" : '' ) . ")\n";
@@ -348,7 +349,7 @@ sub install {
     while ( my ( $pkg, $ver ) = splice( @_, 0, 2 ) ) {
 
         # grep out those already installed
-        if ( _version_cmp( _load($pkg), $ver ) >= 0 ) {
+        if ( _version_cmp( _version_of($pkg), $ver ) >= 0 ) {
             push @installed, $pkg;
         }
         else {
@@ -357,8 +358,8 @@ sub install {
     }
 
     if ($UpgradeDeps) {
-	push @modules, @installed;
-	@installed = ();
+        push @modules, @installed;
+        @installed = ();
     }
 
     return @installed unless @modules;  # nothing to do
@@ -392,7 +393,7 @@ sub install {
 
     # see if we have successfully installed them
     while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) {
-        if ( _version_cmp( _load($pkg), $ver ) >= 0 ) {
+        if ( _version_cmp( _version_of($pkg), $ver ) >= 0 ) {
             push @installed, $pkg;
         }
         elsif ( $args{do_once} and open( FAILED, '>> .#autoinstall.failed' ) ) {
@@ -621,7 +622,7 @@ sub _update_to {
     my $ver   = shift;
 
     return
-      if _version_cmp( _load($class), $ver ) >= 0;  # no need to upgrade
+      if _version_cmp( _version_of($class), $ver ) >= 0;  # no need to upgrade
 
     if (
         _prompt( "==> A newer version of $class ($ver) is required. Install?",
@@ -706,16 +707,30 @@ sub _can_write {
 
 # load a module and return the version it reports
 sub _load {
-    my $mod  = pop;    # class/instance doesn't matter
+    my $mod  = pop; # method/function doesn't matter
     my $file = $mod;
-
     $file =~ s|::|/|g;
     $file .= '.pm';
-
     local $@;
     return eval { require $file; $mod->VERSION } || ( $@ ? undef: 0 );
 }
 
+# report version without loading a module
+sub _version_of {
+    my $mod = pop; # method/function doesn't matter
+    my $file = $mod;
+    $file =~ s|::|/|g;
+    $file .= '.pm';
+    foreach my $dir ( @INC ) {
+        next if ref $dir;
+        my $path = File::Spec->catfile($dir, $file);
+        next unless -e $path;
+        require ExtUtils::MM_Unix;
+        return ExtUtils::MM_Unix->parse_version($path);
+    }
+    return undef;
+}
+
 # Load CPAN.pm and it's configuration
 sub _load_cpan {
     return if $CPAN::VERSION and $CPAN::Config and not @_;
@@ -912,4 +927,4 @@ END_MAKE
 
 __END__
 
-#line 1178
+#line 1193
diff --git a/inc/Module/Install.pm b/inc/Module/Install.pm
index c6af74c..4ecf46b 100644
--- a/inc/Module/Install.pm
+++ b/inc/Module/Install.pm
@@ -31,7 +31,7 @@ BEGIN {
 	# This is not enforced yet, but will be some time in the next few
 	# releases once we can make sure it won't clash with custom
 	# Module::Install extensions.
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 
 	# Storage for the pseudo-singleton
 	$MAIN    = undef;
@@ -451,7 +451,7 @@ sub _version ($) {
 }
 
 sub _cmp ($$) {
-	_version($_[0]) <=> _version($_[1]);
+	_version($_[1]) <=> _version($_[2]);
 }
 
 # Cloned from Params::Util::_CLASS
@@ -467,4 +467,4 @@ sub _CLASS ($) {
 
 1;
 
-# Copyright 2008 - 2011 Adam Kennedy.
+# Copyright 2008 - 2012 Adam Kennedy.
diff --git a/inc/Module/Install/AutoInstall.pm b/inc/Module/Install/AutoInstall.pm
index a081ef9..6efe4fe 100644
--- a/inc/Module/Install/AutoInstall.pm
+++ b/inc/Module/Install/AutoInstall.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Base.pm b/inc/Module/Install/Base.pm
index b401932..802844a 100644
--- a/inc/Module/Install/Base.pm
+++ b/inc/Module/Install/Base.pm
@@ -4,7 +4,7 @@ package Module::Install::Base;
 use strict 'vars';
 use vars qw{$VERSION};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 }
 
 # Suspend handler for "redefined" warnings
diff --git a/inc/Module/Install/Can.pm b/inc/Module/Install/Can.pm
index 3380ac7..22167b8 100644
--- a/inc/Module/Install/Can.pm
+++ b/inc/Module/Install/Can.pm
@@ -3,13 +3,12 @@ package Module::Install::Can;
 
 use strict;
 use Config                ();
-use File::Spec            ();
 use ExtUtils::MakeMaker   ();
 use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -29,7 +28,7 @@ sub can_use {
 	eval { require $mod; $pkg->VERSION($ver || 0); 1 };
 }
 
-# check if we can run some command
+# Check if we can run some command
 sub can_run {
 	my ($self, $cmd) = @_;
 
@@ -38,14 +37,88 @@ sub can_run {
 
 	for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
 		next if $dir eq '';
-		my $abs = File::Spec->catfile($dir, $_[1]);
+		require File::Spec;
+		my $abs = File::Spec->catfile($dir, $cmd);
 		return $abs if (-x $abs or $abs = MM->maybe_command($abs));
 	}
 
 	return;
 }
 
-# can we locate a (the) C compiler
+# Can our C compiler environment build XS files
+sub can_xs {
+	my $self = shift;
+
+	# Ensure we have the CBuilder module
+	$self->configure_requires( 'ExtUtils::CBuilder' => 0.27 );
+
+	# Do we have the configure_requires checker?
+	local $@;
+	eval "require ExtUtils::CBuilder;";
+	if ( $@ ) {
+		# They don't obey configure_requires, so it is
+		# someone old and delicate. Try to avoid hurting
+		# them by falling back to an older simpler test.
+		return $self->can_cc();
+	}
+
+	# Do we have a working C compiler
+	my $builder = ExtUtils::CBuilder->new(
+		quiet => 1,
+	);
+	unless ( $builder->have_compiler ) {
+		# No working C compiler
+		return 0;
+	}
+
+	# Write a C file representative of what XS becomes
+	require File::Temp;
+	my ( $FH, $tmpfile ) = File::Temp::tempfile(
+		"compilexs-XXXXX",
+		SUFFIX => '.c',
+	);
+	binmode $FH;
+	print $FH <<'END_C';
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+
+int main(int argc, char **argv) {
+    return 0;
+}
+
+int boot_sanexs() {
+    return 1;
+}
+
+END_C
+	close $FH;
+
+	# Can the C compiler access the same headers XS does
+	my @libs   = ();
+	my $object = undef;
+	eval {
+		local $^W = 0;
+		$object = $builder->compile(
+			source => $tmpfile,
+		);
+		@libs = $builder->link(
+			objects     => $object,
+			module_name => 'sanexs',
+		);
+	};
+	my $result = $@ ? 0 : 1;
+
+	# Clean up all the build files
+	foreach ( $tmpfile, $object, @libs ) {
+		next unless defined $_;
+		1 while unlink;
+	}
+
+	return $result;
+}
+
+# Can we locate a (the) C compiler
 sub can_cc {
 	my $self   = shift;
 	my @chunks = split(/ /, $Config::Config{cc}) or return;
@@ -78,4 +151,4 @@ if ( $^O eq 'cygwin' ) {
 
 __END__
 
-#line 156
+#line 236
diff --git a/inc/Module/Install/Fetch.pm b/inc/Module/Install/Fetch.pm
index cf431aa..bee0c4f 100644
--- a/inc/Module/Install/Fetch.pm
+++ b/inc/Module/Install/Fetch.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Include.pm b/inc/Module/Install/Include.pm
index b3cfc41..8310e4c 100644
--- a/inc/Module/Install/Include.pm
+++ b/inc/Module/Install/Include.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Makefile.pm b/inc/Module/Install/Makefile.pm
index 24d941e..7052f36 100644
--- a/inc/Module/Install/Makefile.pm
+++ b/inc/Module/Install/Makefile.pm
@@ -8,7 +8,7 @@ use Fcntl qw/:flock :seek/;
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -215,18 +215,22 @@ sub write {
 	require ExtUtils::MakeMaker;
 
 	if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) {
-		# MakeMaker can complain about module versions that include
-		# an underscore, even though its own version may contain one!
-		# Hence the funny regexp to get rid of it.  See RT #35800
-		# for details.
-		my $v = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/;
-		$self->build_requires(     'ExtUtils::MakeMaker' => $v );
-		$self->configure_requires( 'ExtUtils::MakeMaker' => $v );
+		# This previous attempted to inherit the version of
+		# ExtUtils::MakeMaker in use by the module author, but this
+		# was found to be untenable as some authors build releases
+		# using future dev versions of EU:MM that nobody else has.
+		# Instead, #toolchain suggests we use 6.59 which is the most
+		# stable version on CPAN at time of writing and is, to quote
+		# ribasushi, "not terminally fucked, > and tested enough".
+		# TODO: We will now need to maintain this over time to push
+		# the version up as new versions are released.
+		$self->build_requires(     'ExtUtils::MakeMaker' => 6.59 );
+		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 );
 	} else {
 		# Allow legacy-compatibility with 5.005 by depending on the
 		# most recent EU:MM that supported 5.005.
-		$self->build_requires(     'ExtUtils::MakeMaker' => 6.42 );
-		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 );
+		$self->build_requires(     'ExtUtils::MakeMaker' => 6.36 );
+		$self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 );
 	}
 
 	# Generate the MakeMaker params
@@ -241,7 +245,6 @@ in a module, and provide its file path via 'version_from' (or
 'all_from' if you prefer) in Makefile.PL.
 EOT
 
-	$DB::single = 1;
 	if ( $self->tests ) {
 		my @tests = split ' ', $self->tests;
 		my %seen;
@@ -412,4 +415,4 @@ sub postamble {
 
 __END__
 
-#line 541
+#line 544
diff --git a/inc/Module/Install/Metadata.pm b/inc/Module/Install/Metadata.pm
index 5fc5b35..58430f3 100644
--- a/inc/Module/Install/Metadata.pm
+++ b/inc/Module/Install/Metadata.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
@@ -151,15 +151,21 @@ sub install_as_site   { $_[0]->installdirs('site')   }
 sub install_as_vendor { $_[0]->installdirs('vendor') }
 
 sub dynamic_config {
-	my $self = shift;
-	unless ( @_ ) {
-		warn "You MUST provide an explicit true/false value to dynamic_config\n";
-		return $self;
+	my $self  = shift;
+	my $value = @_ ? shift : 1;
+	if ( $self->{values}->{dynamic_config} ) {
+		# Once dynamic we never change to static, for safety
+		return 0;
 	}
-	$self->{values}->{dynamic_config} = $_[0] ? 1 : 0;
+	$self->{values}->{dynamic_config} = $value ? 1 : 0;
 	return 1;
 }
 
+# Convenience command
+sub static_config {
+	shift->dynamic_config(0);
+}
+
 sub perl_version {
 	my $self = shift;
 	return $self->{values}->{perl_version} unless @_;
diff --git a/inc/Module/Install/Scripts.pm b/inc/Module/Install/Scripts.pm
index e26b5d4..419286f 100644
--- a/inc/Module/Install/Scripts.pm
+++ b/inc/Module/Install/Scripts.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Share.pm b/inc/Module/Install/Share.pm
index 9712174..4e2b602 100644
--- a/inc/Module/Install/Share.pm
+++ b/inc/Module/Install/Share.pm
@@ -8,7 +8,7 @@ use ExtUtils::Manifest ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/Win32.pm b/inc/Module/Install/Win32.pm
index 2c84409..eeaa3fe 100644
--- a/inc/Module/Install/Win32.pm
+++ b/inc/Module/Install/Win32.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 	@ISA     = 'Module::Install::Base';
 	$ISCORE  = 1;
 }
diff --git a/inc/Module/Install/WriteAll.pm b/inc/Module/Install/WriteAll.pm
index 4aec16c..85d8018 100644
--- a/inc/Module/Install/WriteAll.pm
+++ b/inc/Module/Install/WriteAll.pm
@@ -6,7 +6,7 @@ use Module::Install::Base ();
 
 use vars qw{$VERSION @ISA $ISCORE};
 BEGIN {
-	$VERSION = '1.02';
+	$VERSION = '1.06';
 	@ISA     = qw{Module::Install::Base};
 	$ISCORE  = 1;
 }

-----------------------------------------------------------------------


More information about the Jifty-commit mailing list