The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.35_12 - 2009-12-04

  • Bug fixes:
  • Protect inc/ bundling tests against broken ExtUtils::Installed

Changes for version 0.35_11 - 2009-12-03

  • API CHANGE ***
  • The old API for prepare_metadata() has been restored to avoid breaking distributions that were overriding it (e.g. BioPerl), but the method has been marked deprecated and may be made private or may disappear in some future version of Module::Build. [David Golden]
  • A new get_metadata() method has been added as a simpler wrapper around the old, kludgy prepare_metadata() API. [David Golden]

Changes for version 0.35_10 - 2009-11-24

  • Bug fixes:
  • bundle_inc.t is more careful about permissions and open filehandles to avoid failures/skips on Win32 [David Golden]
  • Fix compilation error in Module::Build::Platform::VMS (RT#51766)
    • David Golden
  • Don't generate a MANIFEST.SKIP during distclean and add any generated MANIFEST.SKIP to cleanup list [reported by Zefram, fixed by David Golden]
  • Module::Build::ModuleInfo version parsing would fail if a module sets its $VERSION from another module, but the other module is not installed. We now try to detect such failures, prepend 'lib' to @INC and try again.
    • David Golden
  • MYMETA.yml used to be generated from scratch, overriding any customizations used to create META.yml. Now, if META.yml exists, that will be used as the base for MYMETA and only prereq fields will be updated (to reflect any dynamic configuration); also, 'dynamic_config' will be set to false and 'generated_by' will be updated [David Golden]

Changes for version 0.35_09 - 2009-11-19

  • Bug fixes:
  • The DB package should not be included in 'provides' in META files
    • David Golden
  • Fixed t/xs.t build failures in bleadperl for noexec temp directories
    • Nicholas Clark
  • Adjusted order of @INC in resume() (fixes par.t, ppm.t, xs.t fails): @INC = @new_additions_to_inc, @saved_additions_to_inc, @default_inc
    • David Golden
  • Skip bundle_inc.t tests if bundled Module::Build for test can't be tweaked (Works around test crashes on Win2) [David Golden]
  • Other:
  • 'C_support' is no longer an optional feature. Modern ExtUtils::CBuilder and ExtUtils::ParseXS added to the 'requires' list. This ensures that upgrading Module::Build will upgrade this critical modules. ExtUtils::CBuilder no longer requires a compiler, so it is "safe" to require.

Changes for version 0.35_08 - 2009-11-16

  • Bug fixes:
  • Multiple tests were failing due to dependency problems. Author dependencies have been largely removed from core 'requires' into optional features. Feature prereq detection and messaging have been expanded and bugs on older Perls have been removed.

Changes for version 0.35_07 - 2009-11-14

  • Bug fixes:
  • Auto-detection of abstract and author fixed for mixed-case POD headers (RT#51117) [David Wheeler]
  • resume() was not restoring additions to @INC added in Build.PL (RT#50145) [David Golden]
  • When tarball paths are less than 100 characters, disables 'prefix' mode of Archive::Tar for maximum compatibility (RT#50571) [David Golden]

Changes for version 0.35_06 - 2009-11-13

  • Enhancements:
  • Added experimental inc/ bundling; see Module::Build::Bundling for details. [David Golden and Eric Wilhelm]
  • Clarified that 'apache' in the license attribute indicates the Apache License 2.0 and added 'apache_1_1' for the older version of the license (RT#50614) [David Golden]
  • Bug fixes:
  • Merging 'requires' and 'build_requires' in Module::Build::Compat could lead to duplicate PREREQ_PM entries; now the highest version is used for PREREQ_PM. (RT#50948) [David Golden]
  • Module::Build::Compat will now die with an error if advanced, non-numeric prerequisites are given, as these are not supported by ExtUtils::MakeMaker in PREREQ_PM [David Golden]
  • Made MYMETA generation non-fatal if fields required for META.yml are missing [David Golden]
  • Added Pod::Simple to requirements for manpage support; avoids problems if a user has a broken Pod::Man/Pod::Simple. (RT#50081)
    • David Golden
  • Won't die if installed Pod::Readme is broken [David Golden]
  • Other:
  • Fixed Module::Build::Notes POD [David Golden]
  • Some commands had become silent by default, so added a few short status messages so users know something actually happened [David Golden]
  • Cleaned up Changes file formatting [David Golden]
  • Removed most PERL_CORE customizations from test files due to reorganization of dual-life modules in core (RT#49522) [David Golden]

Changes for version 0.35_05 - 2009-10-28

  • Bug fixes:
  • Fix test failure in t/actions/installdeps.t when $^X is not the default perl [David Golden]
  • Work around $VERSION numbers in ActiveState with multiple underscores that prevent Module::Build from installing on Win32 [David Golden]
  • Fix bug cleaning compatibility Makefile when older ExtUtils::Manifest is installed [David Golden with help from David Cantrell]
  • Other:
  • Suppressed more warnings from tests [David Golden]
  • Add provisional support for 'package NAME VERSION' syntax added in Perl 5.11.1 [David Golden]

Changes for version 0.35_04 - 2009-10-23

  • Bug fixes:
  • Fix test failure if IPC::Cmd isn't installed [David Golden]
  • Other:
  • Suppressed warning messages from various tests [David Golden]

Changes for version 0.35_03 - 2009-10-21

  • API CHANGE ***
  • The prepare_metadata() method used to take a YAML::Node object as an argument for modification. The method now takes no arguments and just returns a hash reference of metadata. [David Golden]
  • Enhancements
  • Command line options may be set via the PERL_MB_OPT environment variable (similar to PERL_MM_OPT in ExtUtils::MakeMaker)
  • Bug fixes:
  • Updated PPM generation to PPM v4 (RT#49600) [Olivier Mengue]
  • When c_source is specified, the directory scan will include additional, less-common C++ extensions (RT49298) [David Golden]
  • When module_name is not supplied, no packlist was being written; fixed by guessing module_name from dist_version_from or the directory name (just like ExtUtils::Manifest does without NAME) [David Golden]
  • Bumped IO::File prereq to fix binmode failures in PPMMaker on Perl prior to 5.8.8 [David Golden]
  • Other:
  • Replaced use of YAML.pm with YAML::Tiny; Module::Build::YAML is now based on YAML::Tiny as well [David Golden]
  • Reduced amount of console output under normal operation (use --verbose to see all output) [David Golden]

Changes for version 0.35_02 - 2009-09-07

  • Enhancements:
  • Added 'needs_compiler' property. Defaults to true if XS or c_source exist. If true, ExtUtils::CBuilder is also added to build_requires.
    • David Golden
  • File::ShareDir automatically added to 'requires' if 'share_dir' is set
    • David Golden
  • Added 'Build installdeps' action to install needed dependencies via a user-configurable command line program. (Defaults to 'cpan'.)
    • Eric Wilhelm
  • Bug fixes:
  • Failure to detect a compiler will now warn during Build.PL and be a fatal error when trying to compile during Build. (RT#48918) [David Golden]
  • Fixed directory sorting failure in share_dir.t [David Golden]
  • Property defaults that are data structures were being assigned as references to new objects. Changed so that defaults are cloned instead. (This mostly affects testing, which often creates multiple objects in the same process) [David Golden]
  • Simplified error message on exit under use_tap_harness [suggested by David Wheeler]
  • Fixed typemap search to use a dist-level typemap if a typemap is not found in the directory with the *.xs file; (was manifesting as warnings in Perl 5.6 tests) [David Golden]
  • Other:
  • Replaced guts of new_from_context(). Build.PL is now executed in a separate process before resume() is called. (This is generally only of interest to Module::Build or toolchain developers) (RT#49350) [David Golden, Eric Wilhelm, Ken Williams]
  • Revised test helper classes to fix potential bugs and add new features to make writing tests simpler and easier. Changes incorporated into t/README.pod and t/sample.t as examples for new testing. [David Golden]

Changes for version 0.35_01 - 2009-08-31

  • Enhancements:
  • Generates MYMETA.yml during Build.PL (new standard protocol for communicating configuration results between toolchain components)
    • David Golden
  • Added 'share_dir' property to provide File::ShareDir support; set automatically if a directory called 'share' exists
    • David Golden
  • Bug fixes:
  • Fix the t/destinations.t fix. [David Golden, with thanks to Eric Wilhelm]
  • Fix recursive test files in generated Makefile.PL (RT#49254) [Sawyer X]
  • Guard against trying :utf8 when :utf8 isn't available
  • The "test" action now dies when using the 'use_tap_harness' option and tests fail, matching the behavior under Test::Harness. (RT#49080) [initial patch from David Wheeler; revised by David Golden]
  • Other:
  • Added t/README.pod and t/sample.t to guide developers writing new tests
    • David Golden, with some code from Eric Wilhelm
  • Module::Build::Compat 'passthrough' style has been deprecated. Using 'passthrough' will issue warnings on Makefile.PL generation. See Module::Build::Compat documentation for rationale.

Documentation

API Reference for Module Authors
Authoring Module::Build modules
How to bundle Module::Build with a distribution
Query or change configuration of Perl modules

Modules

Build and install Perl modules
Default methods for Module::Build
Compatibility with ExtUtils::MakeMaker
Examples of Module::Build Usage
Gather package and POD information from a perl module file
Create persistent distribution configuration modules
Perl Package Manager file creation
Builder class for Amiga platforms
Stub class for unknown platforms
Builder class for EBCDIC platforms
Builder class for MPEiX platforms
Builder class for MacOS platforms
Builder class for RiscOS platforms
Builder class for Unix platforms
Builder class for VMS platforms
Builder class for VOS platforms
Builder class for Windows platforms
Builder class for AIX platform
Builder class for Cygwin platform
Builder class for Mac OS X platform
Builder class for OS/2 platform
use modules bundled in inc/ if they are newer than installed ones

Provides

in lib/Module/Build/Config.pm
in lib/Module/Build/Dumper.pm
in lib/Module/Build/PodParser.pm
in lib/Module/Build/Version.pm
in lib/Module/Build/YAML.pm
in lib/inc/latest/private.pm