Removed some language from the Module::Build::Compat documentation
that encouraged people to include a Build.PL without a Makefile.PL.
Also changed "a replacement for MakeMaker" to "an alternative to
MakeMaker" in the main documentation, which is basically what I
meant all along (i.e. a replacement for MakeMaker in your
particular build process - MakeMaker is never going to be fully
replaced in the perl world at large, of course), but some people
got the impression I was a little more truculent toward MakeMaker
than I really am.Added the formal concepts of "features" and "config data" for
distributions. This allows the module author to define a certain
set of features that the user can switch on and off (usually
according to whether they have the proper prerequisites for them),
and to save build-time configuration information in a standardized
format. See the main documentation of Module::Build for more
details. (Note that the name of this system was called
"BuildConfig" for a while in beta, but now it's called
"ConfigData".)Added an 'auto_features' capability, which simplifies the process
of defining features that depend on a set of prerequisites.Added the 'get_options' parameter, which lets module authors
declare certain command-line arguments their Build.PL can accept
[David Wheeler]Changed the split_like_shell() method to use the shellwords()
function from Text::ParseWords (a core module since 5.0), which
does a much better job than the split() we were using.Added a 'testpod' action, which checks the syntactic validity of
all POD files in the distribution using Test::Pod. This eliminates
the need for doing so in a regression test. [Initial patch by Mark
Stosberg]Added a process_files_by_extension() method, which generalizes the
kind of processing (essentially just copying) that happens for .pm
and .pod files, and makes it available to other user-defined types
of files. See the new cookbook entry.Improved compatibility with version.pm when authors are using
version objects as their $VERSION variables. Now
version_from_file() can deal with these objects. Currently we
stringify them right away, but perhaps in the future we will
preserve them as objects for a while.During 'distdir' and 'distmeta' actions, die a bit more gracefully
if there's no MANIFEST (i.e. explicitly say that a MANIFEST is
required). [Spotted by Adrian Howard]Eliminated a recursive dependency between creating the MANIFEST
file and creating the META.yml file. [Spotted by Dave Rolsky]On Win32, where a single directory might be known variously as
"Module-Build-0.2503" or "MODULE~1.25", we now use
Win32::GetShortPathName($cwd) to verify that the 'Build' script is
being run from the correct directory, rather than just a string
comparison.The add_to_cleanup() method will now accept glob()-style patterns
in addition to explicit filenames. Also documented the fact that
they can be specified in either Unix-style or native-style
notation.Passing a PREFIX value to a pass-through Makefile 'make install'
now has the same effect as passing it to 'perl Makefile.PL' (it
dies with a helpful message).Added the 'testcover' action, which runs a test suite using
Devel::Cover. [Dave Rolsky]Added the 'lib' and 'arch' installation directories to the search
path for the 'diff' action, since they won't necessarily (though
they usually will) be in @INC at installation time. [Suggested by
Kevin Baker]The "=head3" POD directive isn't supported in older podlators
(particularly Pod::Man), so we don't use it anymore.Fixed a typo & improved the docs in the SUBCLASSING section. [Ron
Savage]Added the '.tmp' suffix to the default MANIFEST.SKIP file, which
should avoid adding things like pod2htmi.tmp to the MANIFEST [Ron
Savage]Backup files from Emacs, containing the string '.#' in their names,
should no longer find their way into the blib/ directory (and from
there into installation directories).Worked around an unpleasant interaction between version.pm and the
version-checking code that makes sure Module::Build's version
hasn't changed during the lifetime of the 'Build' script. [Reported
by Trevor Schellhorn]Fixed a problem in htmlify_pods() that would produce test failures
on Cygwin (and probably elsewhere). [Yitzchak Scott-Thoennes]Fixed a test failure on Cygwin (and probably elsewhere) in
t/compat.t, resulting from empty environment variables being set to
the empty string (as opposed to simply being unset) by their mere
presence in the "EXPORT:" list.Fixed a fatal error that occurred when the author specified
'dist_author' manually in their Build.PL script. [Spotted by Ron
Savage]The 'provides' section of the META.yml file wasn't being built
properly on Win32, because of a mismatch between URL-format and
native-format pathnames. Fixed. [Reported by Robert Rothenberg]The progress message "lib/Foo.xs -> lib/Foo.c" was previously being
output even when the Foo.c file wasn't being rebuilt. It's now
fixed.Fixed a couple of places in Compat.pm where it could have forgotten
which perl interpreter it had been run with ($^X isn't very
trustworthy).On some systems, the way we updated the timestamp on the
"lib/Foo.bs" file (one of the output files for XS-based modules)
was failing. It's been replaced by a simple call to utime().Fixed a problem in t/compat.t that prevented it from being run
individually using 'make test TEST_FILES=t/compat.t'. The problem
was that a couple environment variables (TEST_FILES, MAKEFLAGS)
were being passed through to subprocesses, and confused them.Fixed an important typo in the documentation for the 'install_base'
parameter ('libdoc' and 'bindoc' were switched). [Ray Zimmerman]The pass-through Makefiles (type 'small' or 'passthrough') now
support the TEST_FILES parameter to 'make test'.Fixed a fatal error that would occur on perl 5.005 when building
HTML documentation, because its version of Pod::Html was old and
didn't like some of the parameters we fed it. [Spotted by Blair
Zajac]The final line of the generated pass-through Makefile was missing
its trailing newline, which is now fixed. [Chip Salzenberg]We now depend on YAML version at least 0.35 and at most version
0.49, so that we don't pick up a new (and backward-incompatible) beta
version from CPAN.Squashed a warning in t/basic.t about '"Foo::Module::VERSION" used
only once', and one in PPMMaker about $^V being undefined. [Blair
Zajac]Added a couple temporary output files from HTML documentation
generation to the cleanup list. [Toby Ovod-Everett]The PodParser module will now only extract paragraphs in the
'AUTHOR' section of the pod if they contain an '@' character. This
tends to do a better job, heuristically speaking, of returning
relevant stuff.Added regression tests and a helper method ( add_build_elements() )
for adding new elements to the build process. Also some
documentation.Wrote a recipe in the Cookbook for adding new elements to the build
process, and a recipe for changing the order in which the steps in
the build process will occur.