module-build-checkins Mailing List for Module::Build (Page 20)
Status: Beta
Brought to you by:
kwilliams
You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(82) |
Dec
(58) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(49) |
Feb
(57) |
Mar
(49) |
Apr
(49) |
May
(2) |
Jun
(147) |
Jul
(60) |
Aug
(55) |
Sep
(51) |
Oct
(68) |
Nov
(61) |
Dec
(44) |
| 2006 |
Jan
(27) |
Feb
(38) |
Mar
(89) |
Apr
(31) |
May
(17) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Ken W. <kwi...@us...> - 2005-08-04 01:33:21
|
Update of /cvsroot/module-build/CPANPLUS-Dist-Build/lib/CPANPLUS In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17585/lib/CPANPLUS Log Message: Directory /cvsroot/module-build/CPANPLUS-Dist-Build/lib/CPANPLUS added to the repository |
|
From: Ken W. <kwi...@us...> - 2005-08-04 01:33:21
|
Update of /cvsroot/module-build/CPANPLUS-Dist-Build/t/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17585/t/src Log Message: Directory /cvsroot/module-build/CPANPLUS-Dist-Build/t/src added to the repository |
|
From: Ken W. <kwi...@us...> - 2005-08-04 01:33:20
|
Update of /cvsroot/module-build/CPANPLUS-Dist-Build/t/dummy-perl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17585/t/dummy-perl Log Message: Directory /cvsroot/module-build/CPANPLUS-Dist-Build/t/dummy-perl added to the repository |
|
From: Ken W. <kwi...@us...> - 2005-08-04 01:32:39
|
Update of /cvsroot/module-build/CPANPLUS-Dist-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17476/t Log Message: Directory /cvsroot/module-build/CPANPLUS-Dist-Build/t added to the repository |
|
From: Ken W. <kwi...@us...> - 2005-08-04 01:32:39
|
Update of /cvsroot/module-build/CPANPLUS-Dist-Build/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17476/lib Log Message: Directory /cvsroot/module-build/CPANPLUS-Dist-Build/lib added to the repository |
|
From: Ken W. <kwi...@us...> - 2005-08-04 01:30:27
|
Update of /cvsroot/module-build/CPANPLUS-Dist-Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17006/CPANPLUS-Dist-Build Log Message: Directory /cvsroot/module-build/CPANPLUS-Dist-Build added to the repository |
|
From: Ken W. <kwi...@us...> - 2005-07-29 03:26:48
|
Update of /cvsroot/module-build/Module-Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4081 Modified Files: Changes Log Message: Index: Changes =================================================================== RCS file: /cvsroot/module-build/Module-Build/Changes,v retrieving revision 1.367 retrieving revision 1.368 diff -u -d -r1.367 -r1.368 --- Changes 29 Jul 2005 03:24:41 -0000 1.367 +++ Changes 29 Jul 2005 03:26:39 -0000 1.368 @@ -34,6 +34,10 @@ displayed command line for creating the .c file from the .xs file was missing its newline. Now it's got it. + - The extra_compiler_flags setting was not actually being passed + along to ExtUtils::CBuilder so it could pass it along to the + compiler. + 0.27_02 (Beta for 0.28) Fri Jul 15 07:34:58 CDT 2005 - Provided initial support for the --prefix installation parameter, |
|
From: Ken W. <kwi...@us...> - 2005-07-29 03:24:53
|
Update of /cvsroot/module-build/Module-Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3761 Modified Files: Changes Log Message: Fix a couple problems with extra_compiler_flags and extra_linker_flags Index: Changes =================================================================== RCS file: /cvsroot/module-build/Module-Build/Changes,v retrieving revision 1.366 retrieving revision 1.367 diff -u -d -r1.366 -r1.367 --- Changes 21 Jul 2005 00:52:45 -0000 1.366 +++ Changes 29 Jul 2005 03:24:41 -0000 1.367 @@ -26,6 +26,13 @@ generates the YAML into a new method, write_metafile(). [David Wheeler] + - Fixed a couple of non-helpful behaviors with extra_compiler_flags + and extra_linker_flags. These will automatically be run through + split_like_shell() when given to new() as strings. + + - When the user doesn't have ExtUtils::ParseXS installed, the + displayed command line for creating the .c file from the .xs file + was missing its newline. Now it's got it. 0.27_02 (Beta for 0.28) Fri Jul 15 07:34:58 CDT 2005 |
|
From: Ken W. <kwi...@us...> - 2005-07-29 03:24:53
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3761/t Modified Files: basic.t Log Message: Fix a couple problems with extra_compiler_flags and extra_linker_flags Index: basic.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/basic.t,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- basic.t 29 Jun 2005 08:27:06 -0000 1.43 +++ basic.t 29 Jul 2005 03:24:42 -0000 1.44 @@ -3,7 +3,7 @@ use lib 't/lib'; use strict; -use Test::More tests => 52; +use Test::More tests => 55; use File::Spec (); @@ -198,6 +198,19 @@ is $mb->build_class, 'My::Big::Fat::Builder'; } +# Test conversion of shell strings +{ + my $mb = Module::Build->new( + module_name => $dist->name, + dist_author => 'Foo Meister <fo...@ex...>', + extra_compiler_flags => '-I/foo -I/bar', + extra_linker_flags => '-L/foo -L/bar', + ); + ok $mb; + is_deeply $mb->extra_compiler_flags, ['-I/foo', '-I/bar'], "Should split shell string into list"; + is_deeply $mb->extra_linker_flags, ['-L/foo', '-L/bar'], "Should split shell string into list"; +} + # cleanup chdir( $cwd ) or die "Can''t chdir to '$cwd': $!"; |
|
From: Ken W. <kwi...@us...> - 2005-07-29 03:24:53
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3761/lib/Module/Build Modified Files: Base.pm Log Message: Fix a couple problems with extra_compiler_flags and extra_linker_flags Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.469 retrieving revision 1.470 diff -u -d -r1.469 -r1.470 --- Base.pm 28 Jul 2005 07:29:21 -0000 1.469 +++ Base.pm 29 Jul 2005 03:24:41 -0000 1.470 @@ -149,6 +149,11 @@ $p->{requires} = delete $p->{prereq} if exists $p->{prereq}; $p->{script_files} = delete $p->{scripts} if exists $p->{scripts}; + # Convert to arrays + for ('extra_compiler_flags', 'extra_linker_flags') { + $p->{$_} = [ $self->split_like_shell($p->{$_}) ] if exists $p->{$_}; + } + $self->add_to_cleanup( @{delete $p->{add_to_cleanup}} ) if $p->{add_to_cleanup}; @@ -597,6 +602,7 @@ create_readme pollute extra_compiler_flags + extra_linker_flags bindoc_dirs libdoc_dirs get_options @@ -654,11 +660,15 @@ return @out; } -sub extra_compiler_flags { - my $self = shift; +sub extra_linker_flags { shift->_list_accessor('extra_linker_flags', @_) } +sub extra_compiler_flags { shift->_list_accessor('extra_compiler_flags', @_) } + +sub _list_accessor { + (my $self, local $_) = (shift, shift); my $p = $self->{properties}; - $p->{extra_compiler_flags} = [@_] if @_; - return ref($p->{extra_compiler_flags}) ? $p->{extra_compiler_flags} : [$p->{extra_compiler_flags}]; + $p->{$_} = [@_] if @_; + $p->{$_} = [] unless exists $p->{$_}; + return ref($p->{$_}) ? $p->{$_} : [$p->{$_}]; } # XXX Problem - if Module::Build is loaded from a different directory, @@ -3071,7 +3081,9 @@ $b->compile(source => $file, object_file => $obj_file, - include_dirs => $self->include_dirs); + include_dirs => $self->include_dirs, + extra_compiler_flags => $self->extra_compiler_flags, + ); return $obj_file; } @@ -3131,7 +3143,7 @@ my $command = (qq{$perl "-I$cf->{installarchlib}" "-I$cf->{installprivlib}" "$xsubpp" -noprototypes } . qq{$typemaps "$file"}); - $self->log_info($command); + $self->log_info("$command\n"); my $fh = IO::File->new("> $args{outfile}") or die "Couldn't write $args{outfile}: $!"; print $fh `$command`; close $fh; |
|
From: Randy W. S. <si...@us...> - 2005-07-28 07:53:44
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18730/t Modified Files: metadata.t Log Message: Correct some tests (t/metadata.t) where specific attributes cannot be detected because it depends on the order in which files are examined, i.e. it is unpredictable. Index: metadata.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/metadata.t,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- metadata.t 16 Jul 2005 03:54:28 -0000 1.4 +++ metadata.t 28 Jul 2005 07:53:32 -0000 1.5 @@ -3,7 +3,7 @@ use lib 't/lib'; use strict; -use Test::More tests => 33; +use Test::More tests => 35; use File::Spec (); @@ -326,8 +326,8 @@ --- $dist->regen( clean => 1 ); $mb = Module::Build->new_from_context; -is_deeply($mb->find_dist_packages, - {'Foo' => { file => 'lib/Simple.pm' }}); +$provides = $mb->find_dist_packages; +ok( exists( $provides->{Foo} ) ); # it exist, can't predict which file $dist->remove_file( 'lib/Simple2.pm' ); @@ -384,9 +384,8 @@ $dist->regen( clean => 1 ); $mb = Module::Build->new_from_context; $err = stderr_of( sub { $provides = $mb->find_dist_packages } ); -is_deeply($provides, - {'Foo' => { file => 'lib/Simple.pm', - version => '1.23' }}); +# XXX Should 'Foo' exist ??? Can't predict values for file & version +ok( exists( $provides->{Foo} ) ); like( $err, qr/Found conflicting versions for package/, ' with conflicting versions reported' ); $dist->remove_file( 'lib/Simple2.pm' ); @@ -407,9 +406,9 @@ $dist->regen( clean => 1 ); $mb = Module::Build->new_from_context; $err = stderr_of( sub { $provides = $mb->find_dist_packages } ); -is_deeply($provides, - {'Foo' => { file => 'lib/Simple.pm', - version => '1.23' }}); +ok( exists( $provides->{Foo} ) ); +is( $provides->{Foo}{version}, '1.23' ); +ok( exists( $provides->{Foo}{file} ) ); # Can't predict which file is( $err, '', ' no conflicts reported' ); $dist->remove_file( 'lib/Simple2.pm' ); |
|
From: Randy W. S. <si...@us...> - 2005-07-28 07:29:32
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14534/lib/Module/Build Modified Files: Base.pm Log Message: Split "html" install path into "binhtml" and "libhtml" paths, using the recent (Perl 5.8.x) fields added to Config.pm. We still maintain support for the barely documented "html" install path. Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.468 retrieving revision 1.469 diff -u -d -r1.468 -r1.469 --- Base.pm 28 Jul 2005 06:19:43 -0000 1.468 +++ Base.pm 28 Jul 2005 07:29:21 -0000 1.469 @@ -175,10 +175,14 @@ my $c = $self->{config}; my $p = $self->{properties}; - my @libstyle = $c->{installstyle} ? File::Spec->splitdir($c->{installstyle}) : qw(lib perl5); + my @libstyle = $c->{installstyle} ? + File::Spec->splitdir($c->{installstyle}) : qw(lib perl5); my $arch = $c->{archname}; my $version = $c->{version}; + my $html1dir = $c->{installhtml1dir} || $c->{installhtmldir}; + my $html3dir = $c->{installhtml3dir} || $c->{installhtmldir}; + $p->{install_sets} = { core => { @@ -188,25 +192,30 @@ script => $c->{installscript}, bindoc => $c->{installman1dir}, libdoc => $c->{installman3dir}, - html => $c->{installhtmldir}, + binhtml => $html1dir, + libhtml => $html3dir, }, site => { lib => $c->{installsitelib}, arch => $c->{installsitearch}, bin => $c->{installsitebin} || $c->{installbin}, - script => $c->{installsitescript} || $c->{installsitebin} || $c->{installscript}, + script => $c->{installsitescript} || + $c->{installsitebin} || $c->{installscript}, bindoc => $c->{installsiteman1dir} || $c->{installman1dir}, libdoc => $c->{installsiteman3dir} || $c->{installman3dir}, - html => $c->{installsitehtmldir} || $c->{installhtmldir}, + binhtml => $c->{installsitehtml1dir} || $html1dir, + libhtml => $c->{installsitehtml3dir} || $html3dir, }, vendor => { lib => $c->{installvendorlib}, arch => $c->{installvendorarch}, bin => $c->{installvendorbin} || $c->{installbin}, - script => $c->{installvendorscript} || $c->{installvendorbin} || $c->{installscript}, + script => $c->{installvendorscript} || + $c->{installvendorbin} || $c->{installscript}, bindoc => $c->{installvendorman1dir} || $c->{installman1dir}, libdoc => $c->{installvendorman3dir} || $c->{installman3dir}, - html => $c->{installvendorhtmldir} || $c->{installhtmldir}, + binhtml => $c->{installvendorhtml1dir} || $html1dir, + libhtml => $c->{installvendorhtml3dir} || $html3dir, }, }; @@ -227,46 +236,51 @@ script => ['bin'], bindoc => ['man', 'man1'], libdoc => ['man', 'man3'], - html => ['html'], + binhtml => ['html', 'script'], + libhtml => ['html', 'lib'], }; - $p->{prefix_relpaths} = + $p->{prefix_relpaths} = { core => { lib => [@libstyle], arch => [@libstyle, $version, $arch], bin => ['bin'], script => ['bin'], - libdoc => ['man', 'man3'], bindoc => ['man', 'man1'], - html => ['html'], + libdoc => ['man', 'man3'], + binhtml => ['html', 'script'], + libhtml => ['html', 'lib'], }, vendor => { lib => [@libstyle], arch => [@libstyle, $version, $arch], bin => ['bin'], script => ['bin'], - libdoc => ['man', 'man3'], bindoc => ['man', 'man1'], - html => ['html'], + libdoc => ['man', 'man3'], + binhtml => ['html', 'script'], + libhtml => ['html', 'lib'], }, site => { lib => [@libstyle, 'site_perl'], arch => [@libstyle, 'site_perl', $version, $arch], bin => ['bin'], script => ['bin'], - libdoc => ['man', 'man3'], bindoc => ['man', 'man1'], - html => ['html'], + libdoc => ['man', 'man3'], + binhtml => ['html', 'script'], + libhtml => ['html', 'lib'], }, }; my $installdirs = $p->{installdirs}; - $p->{gen_manpages} ||= ( $p->{install_sets}{$installdirs}{libdoc} && - $p->{install_sets}{$installdirs}{bindoc} ) ? 1 : 0; - $p->{gen_html} ||= $p->{install_sets}{$installdirs}{html} ? 1 : 0; + $p->{gen_manpages} ||= ( $p->{install_sets}{$installdirs}{bindoc} && + $p->{install_sets}{$installdirs}{libdoc} ) ? 1 : 0; + $p->{gen_html} ||= ( $p->{install_sets}{$installdirs}{binhtml} && + $p->{install_sets}{$installdirs}{libhtml} ) ? 1 : 0; $p->{install_manpages} ||= $p->{gen_manpages} ? 1 : 0; $p->{install_html} ||= $p->{gen_html} ? 1 : 0; @@ -1305,7 +1319,13 @@ for my $subkey (keys %{$args{$key}}) { next if !defined $args{$key}{$subkey}; - $args{$key}{$subkey} = _detildefy($args{$key}{$subkey}); + my $subkey_ext = _detildefy($args{$key}{$subkey}); + if ( $subkey eq 'html' ) { # translate for compatability + $args{$key}{binhtml} = $subkey_ext; + $args{$key}{libhtml} = $subkey_ext; + } else { + $args{$key}{$subkey} = $subkey_ext; + } } } @@ -2918,7 +2938,10 @@ my $p = $self->{properties}; my %types = (%{$p->{install_path}}, %{ $p->{install_sets}{$p->{installdirs}} }); - delete( $types{html} ) unless $self->gen_html && $self->install_html; + unless ( $self->gen_html && $self->install_html ) { + delete( $types{binhtml} ); + delete( $types{libhtml} ); + } unless ( $self->gen_manpages && $self->install_manpages ) { delete( $types{bindoc} ); |
|
From: Randy W. S. <si...@us...> - 2005-07-28 07:29:32
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14534/t Modified Files: destinations.t tilde.t Log Message: Split "html" install path into "binhtml" and "libhtml" paths, using the recent (Perl 5.8.x) fields added to Config.pm. We still maintain support for the barely documented "html" install path. Index: tilde.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/tilde.t,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- tilde.t 29 Jun 2005 07:50:41 -0000 1.10 +++ tilde.t 28 Jul 2005 07:29:22 -0000 1.11 @@ -5,7 +5,7 @@ use lib 't/lib'; use strict; -use Test::More tests => 10; +use Test::More tests => 11; use File::Spec (); @@ -66,7 +66,9 @@ lib => '~/lib' } ); is( $mb->install_destination('lib'), "$ENV{HOME}/lib" ); - is( $mb->install_destination('html'), "$ENV{HOME}/html" ); + # 'html' is translated to 'binhtml' & 'libhtml' + is( $mb->install_destination('binhtml'), "$ENV{HOME}/html" ); + is( $mb->install_destination('libhtml'), "$ENV{HOME}/html" ); $mb = run_sample( install_path => { lib => '~/lib' } ); is( $mb->install_destination('lib'), "$ENV{HOME}/lib" ); Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- destinations.t 28 Jul 2005 03:07:01 -0000 1.23 +++ destinations.t 28 Jul 2005 07:29:22 -0000 1.24 @@ -59,7 +59,10 @@ $Config{installscript}, bindoc => $Config{installsiteman1dir} || $Config{installman1dir}, libdoc => $Config{installsiteman3dir} || $Config{installman3dir}, - html => $Config{installsitehtmldir} || $Config{installhtmldir} + binhtml => $Config{installsitehtml1dir} || + $Config{installhtml1dir} || $Config{installhtmldir}, + libhtml => $Config{installsitehtml3dir} || + $Config{installhtml3dir} || $Config{installhtmldir}, }); } @@ -76,7 +79,8 @@ script => $Config{installscript} || $Config{installbin}, bindoc => $Config{installman1dir}, libdoc => $Config{installman3dir}, - html => $Config{installhtmldir}, + binhtml => $Config{installhtml1dir} || $Config{installhtmldir}, + libhtml => $Config{installhtml3dir} || $Config{installhtmldir}, }); $mb->installdirs('site'); @@ -100,7 +104,8 @@ script => catdir( $install_base, 'bin' ), bindoc => catdir( $install_base, 'man', 'man1'), libdoc => catdir( $install_base, 'man', 'man3' ), - html => catdir( $install_base, 'html' ), + binhtml => catdir( $install_base, 'html', 'script'), + libhtml => catdir( $install_base, 'html', 'lib' ), }); } @@ -178,7 +183,8 @@ script => catdir( $install_base, 'bin' ), bindoc => catdir( $install_base, 'man', 'man1'), libdoc => catdir( $install_base, 'man', 'man3' ), - html => catdir( $install_base, 'html'), + binhtml => catdir( $install_base, 'html', 'script'), + libhtml => catdir( $install_base, 'html', 'lib' ), }); } @@ -188,7 +194,7 @@ local $Test::Builder::Level = $Test::Builder::Level + 1; - foreach my $type (qw(lib arch bin script bindoc libdoc html)) { + foreach my $type (qw(lib arch bin script bindoc libdoc binhtml libhtml)) { my $dest = $mb->install_destination( $type ); like( $dest, "/^\Q$prefix\E/", "$type prefixed"); |
|
From: Randy W. S. <si...@us...> - 2005-07-28 06:19:51
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3079/lib/Module/Build Modified Files: Base.pm Log Message: Silence warnings when the $path passed to _prefixify() is undefined or empty. Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.467 retrieving revision 1.468 diff -u -d -r1.467 -r1.468 --- Base.pm 28 Jul 2005 03:45:43 -0000 1.467 +++ Base.pm 28 Jul 2005 06:19:43 -0000 1.468 @@ -2865,13 +2865,14 @@ # Translated from ExtUtils::MM_Unix::prefixify() sub _prefixify { my($self, $path, $sprefix, $type) = @_; + my $rprefix = $self->prefix; - $rprefix .= '/' if $sprefix =~ m|/$|; - - $self->log_verbose(" prefixify $path from $sprefix to $rprefix\n"); - - if( length $path == 0 ) { + + $self->log_verbose(" prefixify $path from $sprefix to $rprefix\n") + if defined( $path ) && length( $path ); + + if( !defined( $path ) || ( length( $path ) == 0 ) ) { $self->log_verbose(" no path to prefixify, falling back to default.\n"); return $self->_prefixify_default( $type, $rprefix ); } elsif( !File::Spec->file_name_is_absolute($path) ) { @@ -2882,7 +2883,7 @@ $self->log_verbose(" cannot prefixify, falling back to default.\n"); return $self->_prefixify_default( $type, $rprefix ); } - + $self->log_verbose(" now $path in $rprefix\n"); return $path; |
|
From: Randy W. S. <si...@us...> - 2005-07-28 03:45:52
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8482/t Modified Files: extend.t Log Message: Silence warning in test (t/extend.t) when license is not defined, and make M::B::prepare_metadata() robust against undefined license. Index: extend.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/extend.t,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- extend.t 29 Jun 2005 08:27:06 -0000 1.18 +++ extend.t 28 Jul 2005 03:45:44 -0000 1.19 @@ -186,6 +186,7 @@ # Test the meta_add and meta_merge stuff ok my $mb = Module::Build->new( module_name => $dist->name, + license => 'perl', meta_add => {foo => 'bar'}, conflicts => {'Foo::Barxx' => 0}, ); |
|
From: Randy W. S. <si...@us...> - 2005-07-28 03:45:52
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8482/lib/Module/Build Modified Files: Base.pm Log Message: Silence warning in test (t/extend.t) when license is not defined, and make M::B::prepare_metadata() robust against undefined license. Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.466 retrieving revision 1.467 diff -u -d -r1.466 -r1.467 --- Base.pm 28 Jul 2005 03:07:01 -0000 1.466 +++ Base.pm 28 Jul 2005 03:45:43 -0000 1.467 @@ -2614,7 +2614,8 @@ (my $name = $_) =~ s/^dist_//; $node->{$name} = $self->$_(); } - if (defined( my $url = $self->valid_licenses->{ $self->license } )) { + if (defined( $self->license ) && + defined( my $url = $self->valid_licenses->{ $self->license } )) { $node->{resources}{license} = $url; } |
|
From: Randy W. S. <si...@us...> - 2005-07-28 03:07:17
|
Update of /cvsroot/module-build/Module-Build/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1076/t Modified Files: destinations.t manifypods.t Log Message: First shot at a fix for prefixification to allow for platforms that may not define libdoc, bindoc, & html directories. Also, add properties to turn on or off generation and installation of html and manpages. Note that tests are incomplete & htmldir should be split into html1dir & html3dir. Index: manifypods.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/manifypods.t,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- manifypods.t 29 Jun 2005 08:27:06 -0000 1.14 +++ manifypods.t 28 Jul 2005 03:07:01 -0000 1.15 @@ -69,8 +69,9 @@ my $mb = Module::Build->new( - install_base => $destdir, - module_name => $dist->name, + module_name => $dist->name, + install_base => $destdir, + gen_manpages => 1, # some platforms don't by default scripts => [ File::Spec->catfile( 'bin', 'nopod.pl' ), File::Spec->catfile( 'bin', 'haspod.pl' ) ], ); Index: destinations.t =================================================================== RCS file: /cvsroot/module-build/Module-Build/t/destinations.t,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- destinations.t 29 Jun 2005 08:27:06 -0000 1.22 +++ destinations.t 28 Jul 2005 03:07:01 -0000 1.23 @@ -3,7 +3,7 @@ use lib 't/lib'; use strict; -use Test::More tests => 68; +use Test::More 'no_plan'; # tests => 68; use File::Spec (); @@ -58,7 +58,8 @@ script => $Config{installsitescript} || $Config{installsitebin} || $Config{installscript}, bindoc => $Config{installsiteman1dir} || $Config{installman1dir}, - libdoc => $Config{installsiteman3dir} || $Config{installman3dir} + libdoc => $Config{installsiteman3dir} || $Config{installman3dir}, + html => $Config{installsitehtmldir} || $Config{installhtmldir} }); } @@ -75,6 +76,7 @@ script => $Config{installscript} || $Config{installbin}, bindoc => $Config{installman1dir}, libdoc => $Config{installman3dir}, + html => $Config{installhtmldir}, }); $mb->installdirs('site'); @@ -98,6 +100,7 @@ script => catdir( $install_base, 'bin' ), bindoc => catdir( $install_base, 'man', 'man1'), libdoc => catdir( $install_base, 'man', 'man3' ), + html => catdir( $install_base, 'html' ), }); } @@ -175,25 +178,21 @@ script => catdir( $install_base, 'bin' ), bindoc => catdir( $install_base, 'man', 'man1'), libdoc => catdir( $install_base, 'man', 'man3' ), + html => catdir( $install_base, 'html'), }); } -TODO: { - local $TODO = "install paths not defined."; - ok 0, '(bin|lib)doc install destination'; -} - sub test_prefix { my ($prefix, $test_config) = @_; - + local $Test::Builder::Level = $Test::Builder::Level + 1; - foreach my $type (qw(lib arch bin script bindoc libdoc)) { + foreach my $type (qw(lib arch bin script bindoc libdoc html)) { my $dest = $mb->install_destination( $type ); like( $dest, "/^\Q$prefix\E/", "$type prefixed"); - if( $test_config ) { + if( $test_config && $test_config->{$type} ) { my @test_dirs = splitdir( $test_config->{$type} ); my @dest_dirs = splitdir( $dest ); |
|
From: Randy W. S. <si...@us...> - 2005-07-28 03:07:17
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1076/lib/Module/Build Modified Files: Base.pm Log Message: First shot at a fix for prefixification to allow for platforms that may not define libdoc, bindoc, & html directories. Also, add properties to turn on or off generation and installation of html and manpages. Note that tests are incomplete & htmldir should be split into html1dir & html3dir. Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.465 retrieving revision 1.466 diff -u -d -r1.465 -r1.466 --- Base.pm 28 Jul 2005 02:56:42 -0000 1.465 +++ Base.pm 28 Jul 2005 03:07:01 -0000 1.466 @@ -178,7 +178,6 @@ my @libstyle = $c->{installstyle} ? File::Spec->splitdir($c->{installstyle}) : qw(lib perl5); my $arch = $c->{archname}; my $version = $c->{version}; - my @html = $c->{installhtmldir} ? (html => $c->{installhtmldir}) : (); $p->{install_sets} = { @@ -189,7 +188,7 @@ script => $c->{installscript}, bindoc => $c->{installman1dir}, libdoc => $c->{installman3dir}, - @html, + html => $c->{installhtmldir}, }, site => { lib => $c->{installsitelib}, @@ -198,7 +197,7 @@ script => $c->{installsitescript} || $c->{installsitebin} || $c->{installscript}, bindoc => $c->{installsiteman1dir} || $c->{installman1dir}, libdoc => $c->{installsiteman3dir} || $c->{installman3dir}, - @html, + html => $c->{installsitehtmldir} || $c->{installhtmldir}, }, vendor => { lib => $c->{installvendorlib}, @@ -207,7 +206,7 @@ script => $c->{installvendorscript} || $c->{installvendorbin} || $c->{installscript}, bindoc => $c->{installvendorman1dir} || $c->{installman1dir}, libdoc => $c->{installvendorman3dir} || $c->{installman3dir}, - @html, + html => $c->{installvendorhtmldir} || $c->{installhtmldir}, }, }; @@ -228,6 +227,7 @@ script => ['bin'], bindoc => ['man', 'man1'], libdoc => ['man', 'man3'], + html => ['html'], }; $p->{prefix_relpaths} = @@ -239,6 +239,7 @@ script => ['bin'], libdoc => ['man', 'man3'], bindoc => ['man', 'man1'], + html => ['html'], }, vendor => { lib => [@libstyle], @@ -247,6 +248,7 @@ script => ['bin'], libdoc => ['man', 'man3'], bindoc => ['man', 'man1'], + html => ['html'], }, site => { lib => [@libstyle, 'site_perl'], @@ -255,8 +257,20 @@ script => ['bin'], libdoc => ['man', 'man3'], bindoc => ['man', 'man1'], + html => ['html'], }, }; + + + my $installdirs = $p->{installdirs}; + + $p->{gen_manpages} ||= ( $p->{install_sets}{$installdirs}{libdoc} && + $p->{install_sets}{$installdirs}{bindoc} ) ? 1 : 0; + $p->{gen_html} ||= $p->{install_sets}{$installdirs}{html} ? 1 : 0; + + $p->{install_manpages} ||= $p->{gen_manpages} ? 1 : 0; + $p->{install_html} ||= $p->{gen_html} ? 1 : 0; + } sub _find_nested_builds { @@ -531,6 +545,12 @@ __PACKAGE__->add_property(meta_add => {}); __PACKAGE__->add_property(meta_merge => {}); __PACKAGE__->add_property(metafile => 'META.yml'); +__PACKAGE__->add_property($_ => 0) for qw( + gen_manpages + gen_html + install_manpages + install_html +); __PACKAGE__->add_property($_) for qw( base_dir dist_name @@ -1879,6 +1899,7 @@ sub ACTION_docs { my $self = shift; + $self->depends_on('code'); if (($self->module_name || '') eq 'Module::Build') { @@ -1888,12 +1909,15 @@ } else { require Module::Build::ConfigData; } - if (Module::Build::ConfigData->feature('manpage_support')) { - $self->manify_bin_pods() if $self->install_destination('bindoc'); - $self->manify_lib_pods() if $self->install_destination('libdoc'); + + if ( Module::Build::ConfigData->feature('manpage_support') && + $self->gen_manpages ) + { + $self->manify_bin_pods(); + $self->manify_lib_pods(); } - $self->htmlify_pods() if $self->install_destination('html'); + $self->htmlify_pods() if $self->gen_html; } sub manify_bin_pods { @@ -2847,22 +2871,15 @@ $self->log_verbose(" prefixify $path from $sprefix to $rprefix\n"); if( length $path == 0 ) { - $self->log_verbose(" no path to prefixify.\n"); - # XXX the 'return' here is not a very good failure mechanism - return; + $self->log_verbose(" no path to prefixify, falling back to default.\n"); + return $self->_prefixify_default( $type, $rprefix ); } elsif( !File::Spec->file_name_is_absolute($path) ) { $self->log_verbose(" path is relative, not prefixifying.\n"); } elsif( $sprefix eq $rprefix ) { $self->log_verbose(" no new prefix.\n"); } elsif( $path !~ s{^\Q$sprefix\E\b}{}s ) { $self->log_verbose(" cannot prefixify, falling back to default.\n"); - my $default = $self->prefix_relpaths($self->installdirs, $type); - if( !$default ) { - $self->log_verbose(" no default install location for type '$type', using prefix '$rprefix'.\n"); - return $rprefix; - } - - return $default; + return $self->_prefixify_default( $type, $rprefix ); } $self->log_verbose(" now $path in $rprefix\n"); @@ -2870,6 +2887,19 @@ return $path; } +sub _prefixify_default { + my $self = shift; + my $type = shift; + my $rprefix = shift; + + my $default = $self->prefix_relpaths($self->installdirs, $type); + if( !$default ) { + $self->log_verbose(" no default install location for type '$type', using prefix '$rprefix'.\n"); + return $rprefix; + } else { + return $default; + } +} sub install_destination { my ($self, $type) = @_; @@ -2885,6 +2915,14 @@ my $self = shift; my $p = $self->{properties}; my %types = (%{$p->{install_path}}, %{ $p->{install_sets}{$p->{installdirs}} }); + + delete( $types{html} ) unless $self->gen_html && $self->install_html; + + unless ( $self->gen_manpages && $self->install_manpages ) { + delete( $types{bindoc} ); + delete( $types{libdoc} ); + } + return sort keys %types; } |
|
From: Ken W. <kwi...@us...> - 2005-07-28 02:57:00
|
Update of /cvsroot/module-build/Module-Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30932 Modified Files: Build.PL Log Message: Add a few resources Index: Build.PL =================================================================== RCS file: /cvsroot/module-build/Module-Build/Build.PL,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- Build.PL 29 Jun 2005 07:01:34 -0000 1.57 +++ Build.PL 28 Jul 2005 02:56:51 -0000 1.58 @@ -75,6 +75,14 @@ add_to_cleanup => ['t/Sample/pod2htm*'], script_files => ['scripts/config_data'], + meta_merge => { + resources => + { + homepage => 'http://sourceforge.net/projects/module-build', + bugtracker => 'http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build', + MailingList => 'http://lists.sourceforge.net/lists/listinfo/module-build-general', + } + }, ); $build->create_build_script; |
|
From: Ken W. <kwi...@us...> - 2005-07-28 02:56:50
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30865/lib/Module/Build Modified Files: Base.pm Log Message: Change the official location of the perl license, and correct 'urls' to 'resources' Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.464 retrieving revision 1.465 diff -u -d -r1.464 -r1.465 --- Base.pm 27 Jul 2005 04:47:51 -0000 1.464 +++ Base.pm 28 Jul 2005 02:56:42 -0000 1.465 @@ -2447,7 +2447,7 @@ { my %licenses = ( - perl => 'http://search.cpan.org/src/NWCLARK/perl-5.8.7/README', + perl => 'http://dev.perl.org/licenses/', gpl => 'http://www.opensource.org/licenses/gpl-license.php', apache => 'http://apache.org/licenses/LICENSE-2.0', artistic => 'http://opensource.org/licenses/artistic-license.php', @@ -2591,7 +2591,7 @@ $node->{$name} = $self->$_(); } if (defined( my $url = $self->valid_licenses->{ $self->license } )) { - $node->{urls}{license} = $url; + $node->{resources}{license} = $url; } foreach ( @{$self->prereq_action_types} ) { |
|
From: Ken W. <kwi...@us...> - 2005-07-28 02:55:38
|
Update of /cvsroot/module-build/Module-Build/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30472 Modified Files: META-spec.html META-spec.pod Log Message: Add data type information for each field, and add an example for 'resources' Index: META-spec.html =================================================================== RCS file: /cvsroot/module-build/Module-Build/website/META-spec.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- META-spec.html 27 Jul 2005 04:47:53 -0000 1.7 +++ META-spec.html 28 Jul 2005 02:55:25 -0000 1.8 @@ -201,19 +201,17 @@ <h2><a name="metaspec">meta-spec</a></h2> <p>Example:</p> <pre> - meta-spec: - url: <<a href="http://search.cpan.org/dist/CPAN-META-Specification-1.1/>">http://search.cpan.org/dist/CPAN-META-Specification-1.1/></a>; - version: 1.1</pre> -<p>(Spec 1.1) [required] This mapping indicates the location of the -version of the META.yml specification used along with the version -number of that specification.</p> + meta-spec: |- + <a href="http://search.cpan.org/dist/CPAN-META-Specification-1.1/">http://search.cpan.org/dist/CPAN-META-Specification-1.1/</a></pre> +<p>(Spec 1.1) [required] {URL} This field indicates the location of the +version of the META.yml specification used.</p> <p> </p> <h2><a name="name">name</a></h2> <p>Example:</p> <pre> name: Module-Build</pre> -<p>(Spec 1.0) [required] The name of the distribution which is often +<p>(Spec 1.0) [required] {string} The name of the distribution which is often created by taking the ``main module'' in the distribution and changing ``::'' to ``-''. Sometimes it's completely different, however, as in the case of the libww-perl distribution (see @@ -224,7 +222,7 @@ <p>Example:</p> <pre> version: 0.20</pre> -<p>(Spec 1.0) [required] The version of the distribution to which the +<p>(Spec 1.0) [required] {version} The version of the distribution to which the <em>META.yml</em> file refers.</p> <p> </p> @@ -232,7 +230,7 @@ <p>Example:</p> <pre> abstract: Build and install Perl modules.</pre> -<p>(Spec 1.1) [required] A short description of the purpose of the +<p>(Spec 1.1) [required] {string} A short description of the purpose of the distribution.</p> <p> </p> @@ -241,7 +239,7 @@ <pre> author: - Ken Williams <kwi...@cp...></pre> -<p>(Spec 1.1) [required] A YAML sequence indicating the <code>author(s)</code> of the +<p>(Spec 1.1) [required] {list of strings} A YAML sequence indicating the <code>author(s)</code> of the distribution. The prefered form is author-name <email-address>.</p> <p> </p> @@ -249,7 +247,7 @@ <p>Example:</p> <pre> license: perl</pre> -<p>(Spec 1.0) [required] The license under which this distribution may be +<p>(Spec 1.0) [required] {string} The license under which this distribution may be used and redistributed. See <a href="/Module/Build.html">the Module::Build manpage</a> for the list of valid options.</p> <p> @@ -258,7 +256,7 @@ <p>Example:</p> <pre> distribution_type: module</pre> -<p>(Spec 1.0) [optional] What kind of stuff is contained in this +<p>(Spec 1.0) [optional] {string} What kind of stuff is contained in this distribution. Most things on CPAN are <a href="#item_module"><code>module</code></a>s (which can also mean a collection of modules), but some things are <code>script</code>s.</p> <p>Unfortunately this field is basically meaningless, since many @@ -274,7 +272,7 @@ requires: Data::Dumper: 0 File::Find: 1.03</pre> -<p>(Spec 1.0) [optional] A YAML mapping indicating the Perl modules this +<p>(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules this distribution requires for proper operation. The keys are the module names, and the values are version specifications as described in <a href="/Module/Build.html">the Module::Build manpage</a> for the ``requires'' parameter.</p> @@ -286,7 +284,7 @@ recommends: Data::Dumper: 0 File::Find: 1.03</pre> -<p>(Spec 1.0) [optional] A YAML mapping indicating the Perl modules this +<p>(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules this distribution recommends for enhanced operation.</p> <p><em>ALTERNATIVE: It may be desirable to present to the user which features depend on which modules so they can make an informed @@ -302,7 +300,7 @@ - bar: description: This feature is not available on this platform. excludes_os: MSWin32</pre> -<p><em>(Spec 1.1) [optional] A YAML sequence of names for optional features +<p><em>(Spec 1.1) [optional] {map} A YAML sequence of names for optional features which are made available when its requirements are met. For each feature a description is provided along with any of <a href="#requires">requires</a>, <a href="#build_requires">build_requires</a>, <a href="#conflicts">conflicts</a>, <a href="#requires_packages">requires_packages</a>, @@ -316,7 +314,7 @@ build_requires: Data::Dumper: 0 File::Find: 1.03</pre> -<p>(Spec 1.0) [optional] A YAML mapping indicating the Perl modules +<p>(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules required for building and/or testing of this distribution. These dependencies are not required after the module is installed.</p> <p> @@ -327,7 +325,7 @@ conflicts: Data::Dumper: 0 File::Find: 1.03</pre> -<p>(Spec 1.0) [optional] A YAML mapping indicating the Perl modules that +<p>(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules that cannot be installed while this distribution is installed. This is a pretty uncommon situation.</p> <p> @@ -336,7 +334,7 @@ <p>Example:</p> <pre> dynamic_config: 0</pre> -<p>(Spec 1.0) [optional] A boolean flag indicating whether a <em>Build.PL</em> +<p>(Spec 1.0) [optional] {boolean} A boolean flag indicating whether a <em>Build.PL</em> or <em>Makefile.PL</em> (or similar) must be executed when building this distribution, or whether it can be built, tested and installed solely from consulting its @@ -351,7 +349,7 @@ <p> </p> <h2><a name="private">private</a></h2> -<p><em>(Deprecated)</em> (Spec 1.0) [optional] This field has been renamed to +<p><em>(Deprecated)</em> (Spec 1.0) [optional] {map} This field has been renamed to <a href="#no_index">no_index</a>. See below.</p> <p> </p> @@ -367,7 +365,7 @@ Foo::Bar::Baz: file: lib/Foo/Bar/Baz.pm version: 0.3</pre> -<p>(Spec 1.1) [optional] A YAML mapping that describes all packages +<p>(Spec 1.1) [optional] {map} A YAML mapping that describes all packages provided by this distribution. This information can be (and, in some cases, is) used by distribution and automation mechanisms like PAUSE, CPAN, and search.cpan.org to build indexes saying in which @@ -395,7 +393,7 @@ - My::Module::Stuff namespace: - My::Module::Stuff</pre> -<p>(Spec 1.1) [optional] A YAML mapping that describes any files, +<p>(Spec 1.1) [optional] {map} A YAML mapping that describes any files, directories, packages, and namespaces that are private (i.e. implementation artifacts) that are not of interest to searching and indexing tools. This is useful when no <code>provides</code> field is @@ -427,19 +425,27 @@ <p>Example:</p> <pre> keywords: - - make - - build - - install</pre> -<p>(Spec 1.1) [optional] A sequence of keywords/phrases that describe + - make + - build + - install</pre> +<p>(Spec 1.1) [optional] {list} A sequence of keywords/phrases that describe this distribution.</p> <p> </p> <h2><a name="resources">resources</a></h2> -<p>(Spec 1.1) [optional] A mapping of any URL resources related to this -distribution. All-lower-case keys, such as <a href="#item_homepage"><code>homepage</code></a>, <a href="#item_license"><code>license</code></a>, -and <a href="#item_bugtracker"><code>bugtracker</code></a>, are reserved by this specification, as they have -``official'' uses. If you'd like to add your own ``special'' entries, use -at least one upper-case letter.</p> +<p>Example:</p> +<pre> + resources: + license: <a href="http://dev.perl.org/licenses/">http://dev.perl.org/licenses/</a> + homepage: <a href="http://sourceforge.net/projects/module-build">http://sourceforge.net/projects/module-build</a> + bugtracker: <a href="http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build">http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build</a> + MailingList: <a href="http://lists.sourceforge.net/lists/listinfo/module-build-general">http://lists.sourceforge.net/lists/listinfo/module-build-general</a></pre> +<p>(Spec 1.1) [optional] {map} A mapping of any URL resources related to +this distribution. All-lower-case keys, such as <a href="#item_homepage"><code>homepage</code></a>, +<a href="#item_license"><code>license</code></a>, and <a href="#item_bugtracker"><code>bugtracker</code></a>, are reserved by this specification, as +they have ``official'' meanings defined here in this specification. If +you'd like to add your own ``special'' entries (like the ``MailingList'' +entry above), use at least one upper-case letter.</p> <p>The current set of official keys is:</p> <dl> <dt><strong><a name="item_homepage">homepage</a></strong><br /> @@ -466,7 +472,7 @@ <p>Example:</p> <pre> generated_by: Module::Build version 0.20</pre> -<p>(Spec 1.0) [required] Indicates the tool that was used to create this +<p>(Spec 1.0) [required] {string} Indicates the tool that was used to create this <em>META.yml</em> file. It's good form to include both the name of the tool and its version, but this field is essentially opaque, at least for the moment. If <em>META.yml</em> was generated by hand, it is suggested that Index: META-spec.pod =================================================================== RCS file: /cvsroot/module-build/Module-Build/website/META-spec.pod,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- META-spec.pod 27 Jul 2005 04:47:53 -0000 1.4 +++ META-spec.pod 28 Jul 2005 02:55:25 -0000 1.5 @@ -152,13 +152,11 @@ Example: - meta-spec: - url: <http://search.cpan.org/dist/CPAN-META-Specification-1.1/> - version: 1.1 + meta-spec: |- + http://search.cpan.org/dist/CPAN-META-Specification-1.1/ -(Spec 1.1) [required] This mapping indicates the location of the -version of the META.yml specification used along with the version -number of that specification. +(Spec 1.1) [required] {URL} This field indicates the location of the +version of the META.yml specification used. =head2 name @@ -166,7 +164,7 @@ name: Module-Build -(Spec 1.0) [required] The name of the distribution which is often +(Spec 1.0) [required] {string} The name of the distribution which is often created by taking the "main module" in the distribution and changing "::" to "-". Sometimes it's completely different, however, as in the case of the libww-perl distribution (see @@ -178,7 +176,7 @@ version: 0.20 -(Spec 1.0) [required] The version of the distribution to which the +(Spec 1.0) [required] {version} The version of the distribution to which the F<META.yml> file refers. =head2 abstract @@ -187,7 +185,7 @@ abstract: Build and install Perl modules. -(Spec 1.1) [required] A short description of the purpose of the +(Spec 1.1) [required] {string} A short description of the purpose of the distribution. =head2 author @@ -197,7 +195,7 @@ author: - Ken Williams <kwi...@cp...> -(Spec 1.1) [required] A YAML sequence indicating the author(s) of the +(Spec 1.1) [required] {list of strings} A YAML sequence indicating the author(s) of the distribution. The prefered form is author-name <email-address>. =head2 license @@ -206,7 +204,7 @@ license: perl -(Spec 1.0) [required] The license under which this distribution may be +(Spec 1.0) [required] {string} The license under which this distribution may be used and redistributed. See L<Module::Build> for the list of valid options. @@ -216,7 +214,7 @@ distribution_type: module -(Spec 1.0) [optional] What kind of stuff is contained in this +(Spec 1.0) [optional] {string} What kind of stuff is contained in this distribution. Most things on CPAN are C<module>s (which can also mean a collection of modules), but some things are C<script>s. @@ -234,7 +232,7 @@ Data::Dumper: 0 File::Find: 1.03 -(Spec 1.0) [optional] A YAML mapping indicating the Perl modules this +(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules this distribution requires for proper operation. The keys are the module names, and the values are version specifications as described in L<Module::Build> for the "requires" parameter. @@ -247,7 +245,7 @@ Data::Dumper: 0 File::Find: 1.03 -(Spec 1.0) [optional] A YAML mapping indicating the Perl modules this +(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules this distribution recommends for enhanced operation. I<ALTERNATIVE: It may be desirable to present to the user which @@ -266,7 +264,7 @@ description: This feature is not available on this platform. excludes_os: MSWin32 -I<(Spec 1.1) [optional] A YAML sequence of names for optional features +I<(Spec 1.1) [optional] {map} A YAML sequence of names for optional features which are made available when its requirements are met. For each feature a description is provided along with any of L<"requires">, L<"build_requires">, L<"conflicts">, L<"requires_packages">, @@ -281,7 +279,7 @@ Data::Dumper: 0 File::Find: 1.03 -(Spec 1.0) [optional] A YAML mapping indicating the Perl modules +(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules required for building and/or testing of this distribution. These dependencies are not required after the module is installed. @@ -293,7 +291,7 @@ Data::Dumper: 0 File::Find: 1.03 -(Spec 1.0) [optional] A YAML mapping indicating the Perl modules that +(Spec 1.0) [optional] {map} A YAML mapping indicating the Perl modules that cannot be installed while this distribution is installed. This is a pretty uncommon situation. @@ -303,7 +301,7 @@ dynamic_config: 0 -(Spec 1.0) [optional] A boolean flag indicating whether a F<Build.PL> +(Spec 1.0) [optional] {boolean} A boolean flag indicating whether a F<Build.PL> or F<Makefile.PL> (or similar) must be executed when building this distribution, or whether it can be built, tested and installed solely from consulting its @@ -320,7 +318,7 @@ =head2 private -I<(Deprecated)> (Spec 1.0) [optional] This field has been renamed to +I<(Deprecated)> (Spec 1.0) [optional] {map} This field has been renamed to L</"no_index">. See below. =head2 provides @@ -337,7 +335,7 @@ file: lib/Foo/Bar/Baz.pm version: 0.3 -(Spec 1.1) [optional] A YAML mapping that describes all packages +(Spec 1.1) [optional] {map} A YAML mapping that describes all packages provided by this distribution. This information can be (and, in some cases, is) used by distribution and automation mechanisms like PAUSE, CPAN, and search.cpan.org to build indexes saying in which @@ -367,7 +365,7 @@ namespace: - My::Module::Stuff -(Spec 1.1) [optional] A YAML mapping that describes any files, +(Spec 1.1) [optional] {map} A YAML mapping that describes any files, directories, packages, and namespaces that are private (i.e. implementation artifacts) that are not of interest to searching and indexing tools. This is useful when no C<provides> field is @@ -400,20 +398,29 @@ Example: keywords: - - make - - build - - install + - make + - build + - install -(Spec 1.1) [optional] A sequence of keywords/phrases that describe +(Spec 1.1) [optional] {list} A sequence of keywords/phrases that describe this distribution. =head2 resources -(Spec 1.1) [optional] A mapping of any URL resources related to this -distribution. All-lower-case keys, such as C<homepage>, C<license>, -and C<bugtracker>, are reserved by this specification, as they have -"official" meanings defined here in this specification. If you'd like -to add your own "special" entries, use at least one upper-case letter. +Example: + + resources: + license: http://dev.perl.org/licenses/ + homepage: http://sourceforge.net/projects/module-build + bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build + MailingList: http://lists.sourceforge.net/lists/listinfo/module-build-general + +(Spec 1.1) [optional] {map} A mapping of any URL resources related to +this distribution. All-lower-case keys, such as C<homepage>, +C<license>, and C<bugtracker>, are reserved by this specification, as +they have "official" meanings defined here in this specification. If +you'd like to add your own "special" entries (like the "MailingList" +entry above), use at least one upper-case letter. The current set of official keys is: @@ -440,7 +447,7 @@ generated_by: Module::Build version 0.20 -(Spec 1.0) [required] Indicates the tool that was used to create this +(Spec 1.0) [required] {string} Indicates the tool that was used to create this F<META.yml> file. It's good form to include both the name of the tool and its version, but this field is essentially opaque, at least for the moment. If F<META.yml> was generated by hand, it is suggested that |
|
From: Ken W. <kwi...@us...> - 2005-07-27 04:48:05
|
Update of /cvsroot/module-build/Module-Build/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25097/website Modified Files: META-spec.html META-spec.pod Log Message: Change license_url to an entry in a new 'resources' entry Index: META-spec.html =================================================================== RCS file: /cvsroot/module-build/Module-Build/website/META-spec.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- META-spec.html 27 Jul 2005 04:07:55 -0000 1.6 +++ META-spec.html 27 Jul 2005 04:47:53 -0000 1.7 @@ -46,6 +46,7 @@ </ul> <li><a href="#keywords">keywords</a></li> + <li><a href="#resources">resources</a></li> <li><a href="#generated_by">generated_by</a></li> </ul> @@ -93,6 +94,8 @@ YAML: 0.35 build_requires: Test: 0 + urls: + license: <a href="http://dev.perl.org/licenses/">http://dev.perl.org/licenses/</a> meta-spec: version: 1.1 url: <<a href="http://search.cpan.org/dist/CPAN-META-Specification-1.1/>">http://search.cpan.org/dist/CPAN-META-Specification-1.1/></a>; @@ -431,6 +434,34 @@ this distribution.</p> <p> </p> +<h2><a name="resources">resources</a></h2> +<p>(Spec 1.1) [optional] A mapping of any URL resources related to this +distribution. All-lower-case keys, such as <a href="#item_homepage"><code>homepage</code></a>, <a href="#item_license"><code>license</code></a>, +and <a href="#item_bugtracker"><code>bugtracker</code></a>, are reserved by this specification, as they have +``official'' uses. If you'd like to add your own ``special'' entries, use +at least one upper-case letter.</p> +<p>The current set of official keys is:</p> +<dl> +<dt><strong><a name="item_homepage">homepage</a></strong><br /> +</dt> +<dd> +The official home of this project on the web. +</dd> +<p></p> +<dt><strong><a name="item_license">license</a></strong><br /> +</dt> +<dd> +An URL for an official statement of this distribution's license. +</dd> +<p></p> +<dt><strong><a name="item_bugtracker">bugtracker</a></strong><br /> +</dt> +<dd> +An URL for a bug tracker (e.g. Bugzilla or RT queue) for this project. +</dd> +<p></p></dl> +<p> +</p> <h2><a name="generated_by">generated_by</a></h2> <p>Example:</p> <pre> Index: META-spec.pod =================================================================== RCS file: /cvsroot/module-build/Module-Build/website/META-spec.pod,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- META-spec.pod 27 Jul 2005 04:07:55 -0000 1.3 +++ META-spec.pod 27 Jul 2005 04:47:53 -0000 1.4 @@ -33,6 +33,8 @@ YAML: 0.35 build_requires: Test: 0 + urls: + license: http://dev.perl.org/licenses/ meta-spec: version: 1.1 url: <http://search.cpan.org/dist/CPAN-META-Specification-1.1/> @@ -405,6 +407,33 @@ (Spec 1.1) [optional] A sequence of keywords/phrases that describe this distribution. +=head2 resources + +(Spec 1.1) [optional] A mapping of any URL resources related to this +distribution. All-lower-case keys, such as C<homepage>, C<license>, +and C<bugtracker>, are reserved by this specification, as they have +"official" meanings defined here in this specification. If you'd like +to add your own "special" entries, use at least one upper-case letter. + +The current set of official keys is: + +=over 2 + +=item homepage + +The official home of this project on the web. + +=item license + +An URL for an official statement of this distribution's license. + +=item bugtracker + +An URL for a bug tracker (e.g. Bugzilla or RT queue) for this project. + +=back + + =head2 generated_by Example: |
|
From: Ken W. <kwi...@us...> - 2005-07-27 04:48:05
|
Update of /cvsroot/module-build/Module-Build/lib/Module/Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25097/lib/Module/Build Modified Files: Base.pm Log Message: Change license_url to an entry in a new 'resources' entry Index: Base.pm =================================================================== RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v retrieving revision 1.463 retrieving revision 1.464 diff -u -d -r1.463 -r1.464 --- Base.pm 25 Jul 2005 03:52:10 -0000 1.463 +++ Base.pm 27 Jul 2005 04:47:51 -0000 1.464 @@ -2591,7 +2591,7 @@ $node->{$name} = $self->$_(); } if (defined( my $url = $self->valid_licenses->{ $self->license } )) { - $node->{license_url} = $url; + $node->{urls}{license} = $url; } foreach ( @{$self->prereq_action_types} ) { |
|
From: Ken W. <kwi...@us...> - 2005-07-27 04:08:20
|
Update of /cvsroot/module-build/Module-Build/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21842/website Modified Files: META-spec.html META-spec.pod Log Message: Transform 'index' into 'provides', and add a caveat about 'no_index' Index: META-spec.html =================================================================== RCS file: /cvsroot/module-build/Module-Build/website/META-spec.html,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- META-spec.html 26 Jul 2005 22:20:35 -0000 1.5 +++ META-spec.html 27 Jul 2005 04:07:55 -0000 1.6 @@ -35,15 +35,7 @@ <li><a href="#conflicts">conflicts</a></li> <li><a href="#dynamic_config">dynamic_config</a></li> <li><a href="#private">private</a></li> - <li><a href="#index">index</a></li> - <ul> - - <li><a href="#file">file</a></li> - <li><a href="#dir">dir</a></li> - <li><a href="#package">package</a></li> - <li><a href="#namespace">namespace</a></li> - </ul> - + <li><a href="#provides">provides</a></li> <li><a href="#no_index">no_index</a></li> <ul> @@ -360,40 +352,32 @@ <a href="#no_index">no_index</a>. See below.</p> <p> </p> -<h2><a name="index">index</a></h2> +<h2><a name="provides">provides</a></h2> <p>Example:</p> <pre> - index: - file: - - My/Module.pm - dir: - - My/Private - package: - - My::Module::Stuff - namespace: - - My::Module::Stuff</pre> -<p>(Spec 1.1) [optional] A YAML mapping that describes any files, -directories, packages, and namespaces that are to be indexed. Anything -that is not explicitly listed here will be ignored by most compliant -searches and indexers.</p> -<p> -</p> -<h3><a name="file">file</a></h3> -<p>(Spec 1.1) [optional] Include any listed file(s).</p> -<p> -</p> -<h3><a name="dir">dir</a></h3> -<p>(Spec 1.1) [optional] Include everything below the listed -directory(ies).</p> -<p> -</p> -<h3><a name="package">package</a></h3> -<p>(Spec 1.1) [optional] Include the listed package(s).</p> -<p> -</p> -<h3><a name="namespace">namespace</a></h3> -<p>(Spec 1.1) [optional] Includes everything below the listed namespace(s), -but <em>not</em> the listed <code>namespace(s)</code> its self.</p> + provides: + Foo::Bar: + file: lib/Foo/Bar.pm + version: 0.27_02 + Foo::Bar::Blah: + file: lib/Foo/Bar/Blah.pm + Foo::Bar::Baz: + file: lib/Foo/Bar/Baz.pm + version: 0.3</pre> +<p>(Spec 1.1) [optional] A YAML mapping that describes all packages +provided by this distribution. This information can be (and, in some +cases, is) used by distribution and automation mechanisms like PAUSE, +CPAN, and search.cpan.org to build indexes saying in which +distribution various packages can be found.</p> +<p>When using tools like <code>Module::Build</code> that can generate the +<code>provides</code> mapping for your distribution automatically, make sure you +examine what it generates to make sure it makes sense - indexers will +usually trust the <code>provides</code> field if it's present, rather than +scanning through the distribution files themselves to figure out +packages and versions. This is a good thing, because it means you can +use the <code>provides</code> field to tell the indexers precisely what you want +indexed about your distribution, rather than relying on them to +essentially guess what you want indexed.</p> <p> </p> <h2><a name="no_index">no_index</a></h2> @@ -411,7 +395,11 @@ <p>(Spec 1.1) [optional] A YAML mapping that describes any files, directories, packages, and namespaces that are private (i.e. implementation artifacts) that are not of interest to searching -and indexing tools.</p> +and indexing tools. This is useful when no <code>provides</code> field is +present.</p> +<p><em>(Note: I'm not actually sure who looks at this field, or exactly +what they do with it. This spec could be off in some way from actual +usage.)</em></p> <p> </p> <h3><a name="file">file</a></h3> Index: META-spec.pod =================================================================== RCS file: /cvsroot/module-build/Module-Build/website/META-spec.pod,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- META-spec.pod 26 Jul 2005 22:20:36 -0000 1.2 +++ META-spec.pod 27 Jul 2005 04:07:55 -0000 1.3 @@ -321,42 +321,35 @@ I<(Deprecated)> (Spec 1.0) [optional] This field has been renamed to L</"no_index">. See below. -=head2 index +=head2 provides Example: - index: - file: - - My/Module.pm - dir: - - My/Private - package: - - My::Module::Stuff - namespace: - - My::Module::Stuff - -(Spec 1.1) [optional] A YAML mapping that describes any files, -directories, packages, and namespaces that are to be indexed. Anything -that is not explicitly listed here will be ignored by most compliant -searches and indexers. - -=head3 file - -(Spec 1.1) [optional] Include any listed file(s). - -=head3 dir - -(Spec 1.1) [optional] Include everything below the listed -directory(ies). - -=head3 package - -(Spec 1.1) [optional] Include the listed package(s). + provides: + Foo::Bar: + file: lib/Foo/Bar.pm + version: 0.27_02 + Foo::Bar::Blah: + file: lib/Foo/Bar/Blah.pm + Foo::Bar::Baz: + file: lib/Foo/Bar/Baz.pm + version: 0.3 -=head3 namespace +(Spec 1.1) [optional] A YAML mapping that describes all packages +provided by this distribution. This information can be (and, in some +cases, is) used by distribution and automation mechanisms like PAUSE, +CPAN, and search.cpan.org to build indexes saying in which +distribution various packages can be found. -(Spec 1.1) [optional] Includes everything below the listed namespace(s), -but I<not> the listed namespace(s) its self. +When using tools like C<Module::Build> that can generate the +C<provides> mapping for your distribution automatically, make sure you +examine what it generates to make sure it makes sense - indexers will +usually trust the C<provides> field if it's present, rather than +scanning through the distribution files themselves to figure out +packages and versions. This is a good thing, because it means you can +use the C<provides> field to tell the indexers precisely what you want +indexed about your distribution, rather than relying on them to +essentially guess what you want indexed. =head2 no_index @@ -375,7 +368,12 @@ (Spec 1.1) [optional] A YAML mapping that describes any files, directories, packages, and namespaces that are private (i.e. implementation artifacts) that are not of interest to searching -and indexing tools. +and indexing tools. This is useful when no C<provides> field is +present. + +I<(Note: I'm not actually sure who looks at this field, or exactly +what they do with it. This spec could be off in some way from actual +usage.)> =head3 file |
|
From: Ken W. <kwi...@us...> - 2005-07-26 22:20:45
|
Update of /cvsroot/module-build/Module-Build/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30032 Modified Files: META-spec.html META-spec.pod Log Message: Bring into accordance with currently supported metainformation Index: META-spec.html =================================================================== RCS file: /cvsroot/module-build/Module-Build/website/META-spec.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- META-spec.html 26 Jul 2005 03:19:46 -0000 1.4 +++ META-spec.html 26 Jul 2005 22:20:35 -0000 1.5 @@ -2,7 +2,7 @@ <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>CPAN::META::Specification - Specification for F<META.yml></title> -<link rev="made" href="mailto:" /> +<link rev="made" href="mailto:ro...@ha..." /> </head> <body style="background-color: white"> @@ -25,28 +25,15 @@ <li><a href="#metaspec">meta-spec</a></li> <li><a href="#name">name</a></li> <li><a href="#version">version</a></li> - <li><a href="#generation">generation</a></li> <li><a href="#abstract">abstract</a></li> - <li><a href="#authored_by">authored_by</a></li> + <li><a href="#author">author</a></li> <li><a href="#license">license</a></li> <li><a href="#distribution_type">distribution_type</a></li> <li><a href="#requires">requires</a></li> <li><a href="#recommends">recommends</a></li> <li><a href="#build_requires">build_requires</a></li> <li><a href="#conflicts">conflicts</a></li> - <li><a href="#requires_build_tools">requires_build_tools</a></li> - <li><a href="#requires_packages">requires_packages</a></li> - <ul> - - <li><a href="#version">version</a></li> - <li><a href="#has_library">has_library</a></li> - <li><a href="#has_program">has_program</a></li> - </ul> - <li><a href="#dynamic_config">dynamic_config</a></li> - <li><a href="#configure">configure</a></li> - <li><a href="#requires_os">requires_os</a></li> - <li><a href="#excludes_os">excludes_os</a></li> <li><a href="#private">private</a></li> <li><a href="#index">index</a></li> <ul> @@ -68,7 +55,6 @@ <li><a href="#keywords">keywords</a></li> <li><a href="#generated_by">generated_by</a></li> - <li><a href="#auto_regenerate">auto_regenerate</a></li> </ul> <li><a href="#see_also">SEE ALSO</a></li> @@ -90,8 +76,8 @@ name: Module-Build abstract: Build and install Perl modules version: 0.20 - authored_by: - - Ken Williams <ke...@ma...> + author: + - Ken Williams <kwi...@cp...> license: perl distribution_type: module requires: @@ -193,7 +179,7 @@ supports a list of versions, each of which may be optionally preceeded by a relational operator.</p> <p>Supported operators include < (less than), <= (less than or -equal), > (greater than), >= (greater than or equal), and != +equal), > (greater than), >= (greater than or equal), == (equal), and != (not equal).</p> <p>If a list is given then it is evaluated from left to right so that any specifications in the list that conflict with a previous specification @@ -247,20 +233,6 @@ <em>META.yml</em> file refers.</p> <p> </p> -<h2><a name="generation">generation</a></h2> -<p>Example:</p> -<pre> - generation: 2</pre> -<p>(Spec 1.1) [optional] Indicates which generation this version belongs -to. A generation is a way of indicating that a collection of versions -are all compatible with each other, whereas a version from a different -generation may include incompatibilities or other major -differences. This allows tools like CPAN and CPANPLUS to present to -its users the greatest version in each generation to choose from when -the user queries a package instead of only presenting a single highest -version.</p> -<p> -</p> <h2><a name="abstract">abstract</a></h2> <p>Example:</p> <pre> @@ -269,11 +241,11 @@ distribution.</p> <p> </p> -<h2><a name="authored_by">authored_by</a></h2> +<h2><a name="author">author</a></h2> <p>Example:</p> <pre> - authored_by: - - Ken Williams <ke...@ma...></pre> + author: + - Ken Williams <kwi...@cp...></pre> <p>(Spec 1.1) [required] A YAML sequence indicating the <code>author(s)</code> of the distribution. The prefered form is author-name <email-address>.</p> <p> @@ -294,6 +266,11 @@ <p>(Spec 1.0) [optional] What kind of stuff is contained in this distribution. Most things on CPAN are <a href="#item_module"><code>module</code></a>s (which can also mean a collection of modules), but some things are <code>script</code>s.</p> +<p>Unfortunately this field is basically meaningless, since many +distributions are hybrids of several kinds of things, or some new +thing, or subjectively different in focus depending on who's using +them. Tools like Module::Build and MakeMaker will likely stop +generating this field.</p> <p> </p> <h2><a name="requires">requires</a></h2> @@ -317,7 +294,7 @@ <p>(Spec 1.0) [optional] A YAML mapping indicating the Perl modules this distribution recommends for enhanced operation.</p> <p><em>ALTERNATIVE: It may be desirable to present to the user which -features are dependant on which modules so they can make an informed +features depend on which modules so they can make an informed decision about which recommended modules to install.</em></p> <p>Example:</p> <pre> @@ -360,59 +337,14 @@ pretty uncommon situation.</p> <p> </p> -<h2><a name="requires_build_tools">requires_build_tools</a></h2> -<p>Example:</p> -<pre> - requires_build_tools: 1</pre> -<p>(Spec 1.1) [optional] A boolean that indicates external build tools -(i.e. compiler, linker, etc.) are required to build this package. If -not present it is assumed to be false.</p> -<p> -</p> -<h2><a name="requires_packages">requires_packages</a></h2> -<p>Example:</p> -<pre> - requires_packages: - - libiconv: - version: 1.9 - has_library: - - iconv - - charset - has_program: - - iconv - - zlib - has_library: - - z</pre> -<p>(Spec 1.1) [optional] A YAML sequence of fields whose names are the -names of non-perl distributions which are required by this -distribution. Each field is a YAML mapping that more specifically -describes the requirement.</p> -<p> -</p> -<h3><a name="version">version</a></h3> -<p>(Spec 1.1) [optional] A version specification indicating the required -<code>version(s)</code> of the required distribution.</p> -<p> -</p> -<h3><a name="has_library">has_library</a></h3> -<p>(Spec 1.1) [optional] A sequence of names of loadable or linkable -libraries provided by this distribution which must be present for the -distribution to be considered present.</p> -<p> -</p> -<h3><a name="has_program">has_program</a></h3> -<p>(Spec 1.1) [optional] A sequence of names of executable programs -provided by this distribution which must be present for the -distribution to be considered present.</p> -<p> -</p> <h2><a name="dynamic_config">dynamic_config</a></h2> <p>Example:</p> <pre> dynamic_config: 0</pre> <p>(Spec 1.0) [optional] A boolean flag indicating whether a <em>Build.PL</em> -or <em>Makefile.PL</em> (or similar) must be executed, or whether this -module can be built, tested and installed solely from consulting its +or <em>Makefile.PL</em> (or similar) must be executed when building this +distribution, or whether it can be built, tested and installed solely +from consulting its metadata file. The main reason to set this to a true value if that your module performs some dynamic configuration (asking questions, sensing the environment, etc.) as part of its build/install process.</p> @@ -420,45 +352,7 @@ - it's probably going to be up to higher-level tools like CPAN to do something useful with it. It can potentially bring lots of security, packaging, and convenience improvements.</p> -<p> -</p> -<h2><a name="configure">configure</a></h2> -<p>Example:</p> -<pre> - configure: auto</pre> -<p>(Spec 1.1) [optional] If the distribution requires configuration, this -field indicates whether the configuration process is <code>interactive</code> -and requires user intervention, <code>scriptable</code> and requires -intervention or an answer script, or <code>auto</code> and can configure its -self automatically.</p> -<p> -</p> -<h2><a name="requires_os">requires_os</a></h2> -<p>Example:</p> -<pre> - requires_os: darwin</pre> -<p>(Spec 1.1) [optional] This field contains a sequence of operating -system names (ex. <code>$^O</code> in perl) that are required for this -distribution. This is an implied white list such that this -distribution will not run on any operating system unless it is listed -in this field. For an alternative way to manage operating system -dependencies see <a href="#excludes_os">excludes_os</a> below.</p> -<p><em>Note: If this field is specified, then <a href="#excludes_os">excludes_os</a> must not -be specified.</em></p> -<p> -</p> -<h2><a name="excludes_os">excludes_os</a></h2> -<p>Example:</p> -<pre> - excludes_os: MSWin32</pre> -<p>(Spec 1.1) [optional] This field contains a sequence of operating -system names (ex. <code>$^O</code> in perl) that are incompatible with this -distribution. This is an implied black list such that this -distribution will run on any operating system except those listed in -this field. For an alternative way to manage operating system -dependencies see <a href="#requires_os">requires_os</a> above.</p> -<p><em>Note: If this field is specified, then <a href="#requires_os">requires_os</a> must not -be specified.</em></p> +<p>If this field is omitted, it defaults to 1 (true).</p> <p> </p> <h2><a name="private">private</a></h2> @@ -565,17 +459,6 @@ tool. RWS]</p> <p> </p> -<h2><a name="auto_regenerate">auto_regenerate</a></h2> -<p>Example:</p> -<pre> - auto_regenerate: false</pre> -<p>(Spec 1.1) [optional] Some tools (Module::Build, ExtUtils::MakeMaker) -automaticaly generate a <em>META.yml</em> file. If you customize this file, -you should use this field to indicate to tools that follow the -specification that they should not overwrite your customizations. The -value of this field is assumed to be 'true' if not present.</p> -<p> -</p> <hr /> <h1><a name="see_also">SEE ALSO</a></h1> <p>CPAN, <a href="http://www.cpan.org/">http://www.cpan.org/</a></p> @@ -665,6 +548,30 @@ Add <a href="#terminology">TERMINOLOGY</a> section to explain certain terms that may be ambiguous. <p></p></ul> +<dt><strong><a name="item_july_26_2c_2005">July 26, 2005</a></strong><br /> +</dt> +<ul> +<li></li> +Removed a bunch of items (generation, requires_build_tools, +requires_packages, configure, requires_os, excludes_os, +auto_regenerate) that have never actually been supported, but were +more like records of brainstorming. +<p></p> +<li></li> +Changed <code>authored_by</code> to <code>author</code>, since that's always been what +it's actually called in actual <em>META.yml</em> files. +<p></p> +<li></li> +Added the ``=='' operator to the list of supported version-checking +operators. +<p></p> +<li></li> +Noted that the <code>distribution_type</code> field is basically meaningless, +and shouldn't really be used. +<p></p> +<li></li> +Clarified <code>dynamic_config</code> a bit. +<p></p></ul> </dl> </body> Index: META-spec.pod =================================================================== RCS file: /cvsroot/module-build/Module-Build/website/META-spec.pod,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- META-spec.pod 26 Jul 2005 03:18:58 -0000 1.1 +++ META-spec.pod 26 Jul 2005 22:20:36 -0000 1.2 @@ -8,8 +8,8 @@ name: Module-Build abstract: Build and install Perl modules version: 0.20 - authored_by: - - Ken Williams <ke...@ma...> + author: + - Ken Williams <kwi...@cp...> license: perl distribution_type: module requires: @@ -122,7 +122,7 @@ by a relational operator. Supported operators include E<lt> (less than), E<lt>= (less than or -equal), E<gt> (greater than), E<gt>= (greater than or equal), and != +equal), E<gt> (greater than), E<gt>= (greater than or equal), == (equal), and != (not equal). If a list is given then it is evaluated from left to right so that any @@ -179,21 +179,6 @@ (Spec 1.0) [required] The version of the distribution to which the F<META.yml> file refers. -=head2 generation - -Example: - - generation: 2 - -(Spec 1.1) [optional] Indicates which generation this version belongs -to. A generation is a way of indicating that a collection of versions -are all compatible with each other, whereas a version from a different -generation may include incompatibilities or other major -differences. This allows tools like CPAN and CPANPLUS to present to -its users the greatest version in each generation to choose from when -the user queries a package instead of only presenting a single highest -version. - =head2 abstract Example: @@ -203,12 +188,12 @@ (Spec 1.1) [required] A short description of the purpose of the distribution. -=head2 authored_by +=head2 author Example: - authored_by: - - Ken Williams <ke...@ma...> + author: + - Ken Williams <kwi...@cp...> (Spec 1.1) [required] A YAML sequence indicating the author(s) of the distribution. The prefered form is author-name <email-address>. @@ -233,6 +218,12 @@ distribution. Most things on CPAN are C<module>s (which can also mean a collection of modules), but some things are C<script>s. +Unfortunately this field is basically meaningless, since many +distributions are hybrids of several kinds of things, or some new +thing, or subjectively different in focus depending on who's using +them. Tools like Module::Build and MakeMaker will likely stop +generating this field. + =head2 requires Example: @@ -258,7 +249,7 @@ distribution recommends for enhanced operation. I<ALTERNATIVE: It may be desirable to present to the user which -features are dependant on which modules so they can make an informed +features depend on which modules so they can make an informed decision about which recommended modules to install.> Example: @@ -304,54 +295,6 @@ cannot be installed while this distribution is installed. This is a pretty uncommon situation. -=head2 requires_build_tools - -Example: - - requires_build_tools: 1 - -(Spec 1.1) [optional] A boolean that indicates external build tools -(i.e. compiler, linker, etc.) are required to build this package. If -not present it is assumed to be false. - -=head2 requires_packages - -Example: - - requires_packages: - - libiconv: - version: 1.9 - has_library: - - iconv - - charset - has_program: - - iconv - - zlib - has_library: - - z - -(Spec 1.1) [optional] A YAML sequence of fields whose names are the -names of non-perl distributions which are required by this -distribution. Each field is a YAML mapping that more specifically -describes the requirement. - -=head3 version - -(Spec 1.1) [optional] A version specification indicating the required -version(s) of the required distribution. - -=head3 has_library - -(Spec 1.1) [optional] A sequence of names of loadable or linkable -libraries provided by this distribution which must be present for the -distribution to be considered present. - -=head3 has_program - -(Spec 1.1) [optional] A sequence of names of executable programs -provided by this distribution which must be present for the -distribution to be considered present. - =head2 dynamic_config Example: @@ -359,8 +302,9 @@ dynamic_config: 0 (Spec 1.0) [optional] A boolean flag indicating whether a F<Build.PL> -or F<Makefile.PL> (or similar) must be executed, or whether this -module can be built, tested and installed solely from consulting its +or F<Makefile.PL> (or similar) must be executed when building this +distribution, or whether it can be built, tested and installed solely +from consulting its metadata file. The main reason to set this to a true value if that your module performs some dynamic configuration (asking questions, sensing the environment, etc.) as part of its build/install process. @@ -370,49 +314,7 @@ to do something useful with it. It can potentially bring lots of security, packaging, and convenience improvements. -=head2 configure - -Example: - - configure: auto - -(Spec 1.1) [optional] If the distribution requires configuration, this -field indicates whether the configuration process is C<interactive> -and requires user intervention, C<scriptable> and requires -intervention or an answer script, or C<auto> and can configure its -self automatically. - -=head2 requires_os - -Example: - - requires_os: darwin - -(Spec 1.1) [optional] This field contains a sequence of operating -system names (ex. C<$^O> in perl) that are required for this -distribution. This is an implied white list such that this -distribution will not run on any operating system unless it is listed -in this field. For an alternative way to manage operating system -dependencies see L</"excludes_os"> below. - -I<Note: If this field is specified, then L</"excludes_os"> must not -be specified.> - -=head2 excludes_os - -Example: - - excludes_os: MSWin32 - -(Spec 1.1) [optional] This field contains a sequence of operating -system names (ex. C<$^O> in perl) that are incompatible with this -distribution. This is an implied black list such that this -distribution will run on any operating system except those listed in -this field. For an alternative way to manage operating system -dependencies see L</"requires_os"> above. - -I<Note: If this field is specified, then L</"requires_os"> must not -be specified.> +If this field is omitted, it defaults to 1 (true). =head2 private @@ -523,18 +425,6 @@ tool that generated the file and the second field as version of that tool. RWS] -=head2 auto_regenerate - -Example: - - auto_regenerate: false - -(Spec 1.1) [optional] Some tools (Module::Build, ExtUtils::MakeMaker) -automaticaly generate a F<META.yml> file. If you customize this file, -you should use this field to indicate to tools that follow the -specification that they should not overwrite your customizations. The -value of this field is assumed to be 'true' if not present. - =head1 SEE ALSO CPAN, L<http://www.cpan.org/> @@ -667,4 +557,36 @@ =back +=item July 26, 2005 + +=over 2 + +=item * + +Removed a bunch of items (generation, requires_build_tools, +requires_packages, configure, requires_os, excludes_os, +auto_regenerate) that have never actually been supported, but were +more like records of brainstorming. + +=item * + +Changed C<authored_by> to C<author>, since that's always been what +it's actually called in actual F<META.yml> files. + +=item * + +Added the "==" operator to the list of supported version-checking +operators. + +=item * + +Noted that the C<distribution_type> field is basically meaningless, +and shouldn't really be used. + +=item * + +Clarified C<dynamic_config> a bit. + +=back + =back |