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

Changes for version 0.20 - 2003-08-26

  • Separated the 'build' action into two separate actions, 'code' and 'docs'. This is similar to MakeMaker's separation of the 'all' target into 'pure_all' and 'manifypods'. This fixes a permissions hassle in which doing 'sudo Build install' would often create local doc files that needed superuser permissions to delete.
  • Enhanced the 'help' action - 'Build help foo' will now show the POD documentation for the 'foo' action.
  • Added a notes() feature, which helps share data transparently between the Build.PL and t/*.t scripts.
  • The installation process will now create man(1) and man(3) pages from POD in modules & scripts, and install them. We don't build man pages when there's nowhere to install them, such as on some Win32 or most Mac systems. [large patch by Steve Purkis, 5.005 fix by Mathieu Arnold]
  • The 'distdir' action now copies files to the distribution directory, rather than making them hard links to the original files. This allows authors to do last-minute alterations of the files without affecting the originals. [Dave Rolsky]
  • If the author uses XS files in nonstandard locations, the copied versions of those files will now be cleaned up properly.
  • In invoking the 'test' action or invoking 'xsubpp', we now use the same perl executable as we use everywhere else, rather than blindly using $^X or $Config{perlpath} (neither of which are very reliable).
  • Fixed a problem with the 'install_path' parameter given to 'Build.PL' being lost in subsequent actions. [Reported by Mathieu Arnold]
  • Fixed yet another bug with installation directories, in which the 'install_base' parameter wasn't being respected on the command line. [Spotted by Jonathan Swartz]
  • Changed the way the depends_on() method works inside action subroutines - now each action will only run once per dispatch() invocation (similar to how perl's require() function works). This helps avoid some difficult problems with dependency loops.
  • Changed the documentation for the 'autosplit' parameter to give reasons why it may not be a good idea to use, but no longer threaten to remove it. [Suggested by Martyn J. Pearce]
  • Improved the formatting of the 'traditional' Makefile.PL generated by Module::Build::Compat->create_makefile_pl. [Michael Schwern]
  • The 'traditional' Makefile.PL will now use the 'module_name' parameter (as NAME) if it's available, otherwise it will continue to use the 'dist_name' (as DISTNAME). [Michael Schwern]
  • Created read/write accessor methods for all our 'properties'.
    • Michael Schwern
  • The 'test_files' parameter can now be specified using glob() syntax (i.e. 't/*.t'), and the corresponding test_files() method is now a read/write accessor.
  • The location of the 'blib' directory is now a property of the Build object - nobody is likely to notice this change, with any luck, but it makes the design and code cleaner.
  • The 'disttest' and 'distsign' methods now chdir() back to the directory where they started, rather than to the base_dir of the build.
  • Improved comparisons of version strings containing underscore characters (indicating "beta" status). [Steve Purkis]
  • Added documentation for the 'dist_author', 'dist_abstract', and 'codebase' parameters to new(), and for the 'ppd' action. [Dave Rolsky]
  • Added documentation for the up_to_date() and contains_pod() methods. [Dave Rolsky]
  • 'traditional' pass-through Makefile.PLs will now contain an INSTALLDIRS parameter matching the Build.PL's 'installdirs' setting.
  • version_from_file() now ignores $VERSION variables that are defined in POD or comments. It can still be tricked by $VERSIONs in string literals, though. [Steve Purkis]
  • The code to find packages in module files now uses Steve's scanning method (above) to skip package-declaration-lookalikes in POD or comments.
  • The 'disttest' action will now propagate its @INC settings to its subprocesses.

Modules

Build and install Perl modules
Default methods for Module::Build
Compatibility with ExtUtils::MakeMaker
Examples of Module::Build Usage
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 Mac OS X platform

Provides

in lib/Module/Build/Platform/Windows.pm
in lib/Module/Build/Platform/Windows.pm
in lib/Module/Build/Platform/Windows.pm