Hi all,

I've just uploaded Module::Build 0.26 to CPAN and Sourceforge. This is a major new release, coming three betas and half a year after 0.25.

  file: $CPAN/authors/id/K/KW/KWILLIAMS/Module-Build-0.26.tar.gz
  size: 122353 bytes
   md5: bba1994a3db2a53401d45cf69c25347a

Now that 0.26 is out the door, development for the next release will focus on the following (as well as miscellaneous smaller features and fixes):

* META.yml specification updates, perhaps including a new META.rdf vocabulary

* Integrate the souped-up module-dependency spec & parser that Randy Sims
has been working on
(http://article.gmane.org/gmane.comp.lang.perl.qotw.quiz-of-the-week/ 118)


  * Recursive builds (this may lack a champion at the moment)

  * Get rid of all the C-compiling/linking code in M::B and rely
    on ExtUtils::ParseXS


The changes since 0.25 are as follows.

 - 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.25_03" 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.



 -Ken



Reply via email to