cpan Module-Build 0.26

latest releases: 2.232012, 0.1.11, 0.5...
20 years ago
  • 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.

Don't miss a new Module-Build release

NewReleases is sending notifications on new releases.