Revision history for Perl extension Module::Build.
+0.31012 - Wed Jan 14 01:36:19 PST 2009
+
+ Bug Fixes
+ - t/tilde.t maybe actually fixed on MSWin32 now.
+
+0.31011 - Mon Jan 12 21:57:04 PST 2009
+
+ Bug Fixes
+ - t/tilde.t had been failing on MSWin32 (RT#42349)
+
+0.3101 - Mon Jan 12 13:52:36 PST 2009
+
+ Other
+ - added 'mirbsd' as a Unix-type OS [BinGOs]
+ - added 'haiku' as a Unix-type OS (backported from bleadperl)
+ - skips certain tests on VMS (backported from bleadperl)
+ - sets $^X to absolute path in tests (backported from bleadperl)
+
+0.31 - Sat Dec 20 15:03:33 2008
+
+ Deprecations
+ - Use of attributes as class methods is deprecated (this was never a
+ documented feature and appears to only have worked accidentally.)
+
+0.30_02 - Mon Dec 15 12:23:55 PST 2008
+
+ Bug Fixes
+ - make Software::License dependency "softer".
+
+0.30_01 - Thu Dec 11 18:25:53 PST 2008
+
+ New Docs
+ - Added a recipe for writing a new action to the Cookbook
+ - Added a recipe for bundling Module::Build to the Cookbook.
+
+ Doc Fixes
+ - Clarified dist_abstract search procedure in API.pod (RT#41056) [Mario
+ Domgoergen]
+
+ Bug Fixes
+ - Workaround HARNESS_TIMER env issue in t/compat.t (RT#39635)
+ - Fix ~ expansion when $HOME is different from /etc/passwd as
+ when running sudo. [rt.cpan.org 39662]
+ - Fixed a small POD error in the Cookbook. [Damyan Ivanov]
+ - Unset group/other write permission bits when using Archive::Tar to
+ build the dist tarball. (RT#39804) [David Golden]
+
+ Enhancements
+ - We now support a 'create_license' parameter to new() that will
+ create a LICENSE file during the 'dist' phase with the full text of
+ the license. This requires Software::License on the author's
+ machine. THIS ALSO STILL NEEDS DOCS.
+ - Added lgpl2/lgpl3 entries to the supported licenses (RT#40532).
+ - Support for validating properties with a check subref. [David
+ Wheeler]
+
+ Test Fixes
+ - Defend against more stray environment variables interfering
+ with the tests.
+
+ Other
+ - Updated our embedded version.pm to 0.76, enhanced documentation on
+ dist_version_from. [John Peacock]
+
+0.30 - Thu Sep 25 20:57:36 2008
+
+ - First non-beta release since April 2007. In the meantime, Sarkozy
+ became president of France, the 35W bridge fell in Minneapolis,
+ Phelps won a lot of gold, a new tribe of indigenous people was
+ discovered in the Amazon, and Bob Barker stopped doing The Price Is
+ Right. As of this moment though, the U.S. economy still hasn't
+ collapsed completely.
+
+0.2808_05 - Thu Sep 18 23:30:39 PDT 2008
+
+ - Skip test in t/ext.t which tickles shellwords() in Text::ParseWords
+ below 3.23 [David Wheeler, Ken]
+
+ - Fixed some shell-quoting issues in do_system() on Windows [Ken,
+ Schwern, reported by Curtis Jewell]
+
+ - Fixed t/xs.t failure for missing 'const char *' typemap in 5.6
+ [Schwern]
+
+ - Added build_requires for Test::More 0.49 and Test::Harness 2.03.
+ Removed bundled Test::More (was not working for 5.005x anyway).
+ [Schwern]
+
+ - Minimum required perl version is now 5.6.1. [Schwern]
+
+0.2808_04 - Thu Sep 11 22:51:27 PDT 2008
+
+ - Backed-out incompatible Module::Build::ModuleInfo change (first in
+ 0.2808_02.)
+
+0.2808_03 - Mon Sep 1 14:43:27 PDT 2008
+
+ - Made adjustments for the format changes of recent Test::Harness
+ output. [Nicholas Clark]
+
+ - Fixed the documentation for script_files to indicate that we search
+ bin/ for scripts by default. It has been this way for several
+ years. [Spotted by Ron Savage]
+
+0.2808_02 - Wed Jul 9 16:45:08 PDT 2008
+
+ - Experimental support for TAP::Harness with --use-tap-harness option
+ and the tap_harness_args property. [David Wheeler & Eric Wilhelm]
+
+ - Added test_file_exts property for main-run tests other than '*.t'.
+ [David Wheeler]
+
+ - Fixed getcwd()/rmtree() failure case on 5.10+mac where something is
+ unhappy about all of the tests deleting their distgen directory
+ before leaving it. [Eric Wilhelm & David Wheeler]
+
+ - Improved support for parsing qv() in modules' $VERSION
+ declarations, and made $VERSION-parsing errors more verbose. [Jos
+ Boumans]
+
+ - Integrated an omnibus patch for various VMS fixes. [Craig Berry &
+ John E. Malmberg]
+
+ - Some versions of Test::Harness (or something) seem to not be
+ stripping the ".t" suffix when outputting test reports, which was
+ causing one of our tests in t/compat.t to fail. Fixed. [Spotted by
+ a smoke tester]
+
+ - Most Unix platforms seem to allow hyphens in usernames, so we honor
+ this in our de-tilde-fying methods now. [Spotted by s-murata]
+
+ - If there are multiple assignments to the $VERSION variable in
+ someone's module and this generates warnings, tell the user what
+ line number the problem is at.
+
+ - Added 'gnu' and 'gnukfreebsd' as Unix variants. [Niko Tyni]
+
+ - Fixed a couple bugs in how we quote arguments to external processes
+ when they have to pass through the shell. Also much more
+ thoroughly tested our quoting now.
+
+ - Edited the Module::Build::API docs prose about the 'license' field
+ in response to some comments on the module-authors mailing list.
+
+ - Fixed a typo in some example code in the Cookbook. [Jeremy Leader]
+
+ - Custom typemaps were being looked for in places that don't quite
+ exist; fixed. [Michael G Schwern]
+
+ - QNX/Neutrino is now considered to be Unix. [rt.cpan.org 32214]
+
+ - Added 'gpl2' and 'gpl3' to the list of valid licenses. [Allen
+ Engelhardt]
+
+ - Fixed our Data::Dumper wrapper's sensitivity to users who might set
+ $Data::Dumper::Terse. [Spotted by Dominique Dumont]
+
+ - Documented the fix_shebang_line() method. [Elliot Shank]
+
+ - Applied the 'const' modifier to version() and xs_version() XS
+ functions we use during testing. [Robin Barker]
+
+ - Fixed processing of INC=, POLLUTE=, INSTALLDIRS=, and LIB= for
+ passthrough/small Makefile.PLs.
+
+ - perl Build.PL --sign=1 now signs. [Michael G Schwern]
+
+ - Fixed processing of INSTALLDIRS=whatever for compatibility
+ Makefiles. [Spotted by John Peacock]
+
+ - Zillions of special-cases have been added in Compat.pm for dealing
+ with the special Makefile system on VMS. [John E. Malmberg]
+
+ - Fixed some stuff in how VMS command-args get quoted. [John E. Malmberg]
+
+ - VMS now overrides localize_file_path() and localize_dir_path() so
+ we don't need to do special stuff in the general case. [John
+ E. Malmberg]
+
+ - Added a few more VMS-specific entries to the default MANIFEST.SKIP
+ file that (sometimes) gets created during the 'manifest'
+ action. [John E. Malmberg]
+
+ - Fixed a catdir() that should have been a catfile() when creating a
+ ppmdist. [John E. Malmberg]
+
+ - Removed some assumptions about what makefiles are called (not
+ necessarily "Makefile") and how they take their arguments, to get
+ VMS tests working better. [John E. Malmberg]
+
+ - Fixed our check for Archive::Tar in the t/runthrough.t test, which
+ fixes a common failure on Win32. [Spotted by Chris Williams]
+
+ - Fixed a File::Spec mal-ism in t/destinations.t [Craig A. Berry]
+
+ - Exposed the internal ExtUtils::CBuilder object as part of our API,
+ via the cbuilder() method. [Zefram]
+
+ - Upgraded to version.pm 0.74 (fixes bug #30004.)
+
+ - Overwrite core (post-5.9.4) Module::Build installs (bug #20528.)
+
+ - Pass quiet() option to ExtUtils::CBuilder object.
+
+0.2808_01 - Wed Oct 24 11:51:25 2007
+
+ - All .pm files in the Module-Build distribution (except for
+ M::B::Version.pm, which is kind of tied to version.pm) now have the
+ same $VERSION number explicitly specified.
+
+ - When checking prerequisites, the required version of perl is now
+ checked before we start finding the $VERSION declaration of the
+ distribution, which results in much more intuitive error messages
+ e.g. if the author is using 5.6-isms in their declaration but the
+ user doesn't have 5.6. [Slaven Rezic]
+
+ - Added 'artistic_2' license, corrected 'lgpl' license url (bug #29783)
+ [David Thomas]
+
+ - VMS find_perl_interpreter() is just $^X (bug #29810) [Craig A. Berry]
+
+ - Some large VMS fixes, mostly having to do with the non-case-
+ preserving nature of most VMS filesystems, but also correcting for
+ illegal characters in VMS file specs. [John E. Malmberg and Craig
+ A. Berry]
+
+ - Fixed the _detildefy() method on VMS. [John E. Malmberg and Craig
+ A. Berry]
+
+ - We now use a much more reliable method when Data::Dumper-ing saved
+ state data. [Yves]
+
+ - When a module had 0.000 as its version, a few places in the code
+ thought the module had no version at all. This is now
+ fixed. [Andrew "Zefram" Main]
+
+ - When finding the default set of script_files, we now compute them
+ as relative paths, not absolute. [Spotted by Curtis "Ovid" Poe]
+
+ - Got rid of a call to eliminate_macros, which isn't needed in
+ Module::Build since there is no external make utility involved.
+ Override expand_test_dir to make up for the fact that the
+ home-grown glob() returns absolute, not relative, paths. [Craig
+ A. Berry]
+
+ - Fixed a catdir() that needed to be catfile() in the .packlist
+ creation code. [John E. Malmberg]
+
+ - If a *.PL file ended abnormally during the build, processing should
+ have stopped, but it didn't. Fixed. [Matthew Cast and David
+ Golden]
+
+ - Module::Build::Compat adds "require 5.XXXXX" to Makefile.PL when
+ 'perl' is specified as a 'requires' prerequisite [David Golden]
+
+ - Refactored t/compat.t for modularity and transparency; added
+ labels for all tests; supressed subprocess output to
+ STDOUT and STDERR [David Golden]
+
+ - Fixed bug in perl_version_to_float when version is already a float
+ [David Golden]
+
+ - Removed a mention of $build->{config} from the documentation, the
+ official interface to Config.pm settings is now via the
+ $build->config() and has been for some time. [Suggested by Michael
+ Schwern]
+
+ - Tweaked some text in the Cookbook to bring it into the modern age,
+ and added a recipe for accessing Config.pm settings. [Ibid]
+
+ - Lots of POD link/readability improvements to the Module::Build::API
+ documentation [Salve J. Nilsen]
+
+ - Added configure_requires as a new type of prereq. [Suggested by Adam
+ Kennedy]
+
+ - Patch 31156 from bleadperl: some filename dot and extension help
+ for Module::Build on VMS. [Craig Berry]
+
+ - Reworked the _detildefy() method so it doesn't depend on glob()
+ anymore. This gets rid of a problem with spaces or other special
+ shell characters in things like 'prefix' or 'install_path'
+ entries. [Prodding by Eric Wilhelm]
+
+ - Added midnightbsd to the list of Unix-like OSes we know about
+ [Rafael Garcia-Suarez]
+
+0.2808 - Sat Apr 28 12:59:43 2007
+
+ - Added is_vmsish(), is_windowsish(), and is_unixish() boolean
+ convenience functions. Fixes some test failures on platforms where
+ $^O is set to a value we don't know about (like 'gnu').
+
+ - Upgraded to version.pm 0.7203. [John Peacock]
+
+ - Support get_action_docs() =head2 style. [ewilhelm]
+
+ - Workaround Test::Pod::Coverage @INC bug. [Eric Wilhelm]
+
+ - Fixed the command-line args --extra_compiler_flags and
+ --extra_linker_flags so they properly shell-split their arguments.
+
+0.2807 - Sat Mar 24 22:19:02 2007
+
+ - Upgraded to version.pm 0.71. [John Peacock]
+
+ - Removed a couple small constructs in the tests ("use warnings;" and
+ "qw$foo bar$[1]") that caused test failures under perl 5.005.
+
+ - Added support for an explicit default value of undef in prompt().
+ [Eric Wilhelm]
+
+ - Improved our prompt() method, which could sometimes hang before the
+ user got a chance to see a prompt. [Andreas Koenig]
+
+ - Added a note about --allow_mb_mismatch to the error message that
+ happens right before someone might want to use that parameter.
+
+ - Added DragonflyBSD to the list of known Unix OSes.
+
+ - get_action_docs() dies on error rather than twiddling $@
+
+ - Made ModuleInfo's _evaluate_version_line() compatible with 'use
+ version ...$VERSION' lines. [Eric Wilhelm]
+
+ - Added some verbiage in Module::Build::API that officially blesses
+ the _build/prereqs file for external consumption. [Suggested by Andreas Koenig]
+
+ - Added test profiles support via the test_types property and "testall"
+ target. [Eric Wilhelm, Jeff Lavallee]
+
+ - Use syscopy() on OS/2 in copy_if_modified() so we make sure to
+ overwrite any existing target file. [Ilya Zakharevich]
+
+ - Removed seemingly silly '~~' test in t/tilde.t.
+
+ - In our test-time utility library t/lib/MBTest.pm, we need to know
+ about a few .exe-like extensions on OS/2. [Ilya Zakharevich]
+
+ - In t/ppm.t, use DynaLoader::mod2fname() (if available) to determine
+ the correct translation of our test module's name into a DLL
+ name. [Ilya Zakharevich]
+
+ - Avoid an unlink() error on OS/2 when fixing shebang lines. [Ilya
+ Zakharevich]
+
+ - When we're protecting the world from the evils of long RedHat
+ $ENV{PERL5LIB} variables, don't assume $ENV{PERL5LIB} is already
+ defined. This gets rid of a huge number of warnings for some
+ people. [Dave Rolsky]
+
+0.2806 - Fri Dec 15 22:20:14 2006
+
+ - On some systems (haven't identified the actual problem yet)
+ $ENV{PERL5LIB} can grow to enormous enough sizes that we can't
+ launch any more subprocesses because the environment table is full.
+ This is the now-infamous "Couldn't run Build.PL: Argument list too
+ long" error. Now we detect such situations and trim the directory
+ list to only include directories that actually exist, listed only
+ once each. Not the ideal solution, but it should work.
+
+ - Silence a warning in M::B::ModuleInfo that happens when the author
+ is using the "$VERSION = eval $VERSION" idiom.
+
+ - When running the 'testcover' action, do "cover --delete" if any of
+ the test files have changed (we already did so if any of the code
+ under test has changed). [Suggested by Chris Dolan, RT #23584]
+
+ - Fixed a broken link in the documentation about PREFIX. [Spotted by
+ David Steinbrunner]
+
+ - Changes to do_system() & friends on VMS to get system calls working
+ much better there. [Craig Berry]
+
+ - Added the "pardist" target which creates a PAR binary distribution
+ akin to a PPM distribution. [Steffen Mueller]
+
+ - Added the Interix platform as a Unix variant. [Stephen Hartland]
+
+ - Improved the error message we emit when a distribution contains XS
+ files but the user has no C compiler. [Suggested by Andreas Koenig]
+
+0.2805_01 Thu Sep 7 21:57:29 CDT 2006
+
+ - Because of a weird behavior of YAML::Node, any distribution that
+ used version.pm objects to define their versions was generating the
+ wrong syntax for the versions in their META.yml file. They will
+ now appear as strings like v3.42.1 or similar, including the
+ leading v.
+
+ - Upgraded to version 0.67 of version.pm. [John Peacock]
+
+ - Added a contrib/ directory with a bash completion function for M::B
+ actions and switches. [Julian Mehnle]
+
+ - When we eval() the embedded version.pm code we will now die() if
+ the eval() was unsuccessful, rather than continuing blindly on and
+ dying mysteriously later.
+
+ - Added a 'retest' action that lets users run the current regression
+ tests on a previously-installed version of a distribution.
+
+ * Instead of storing an entire dump of the Config.pm hash in the
+ _build/ directory upon startup, we now just store any overrides the
+ user or author has specified. Note that if you were doing anything
+ you weren't supposed to be doing, like poking around in the
+ internals of $buld->{config}, your code might break, so I've put
+ the asterisk of incompatibility on this one just to cover my
+ tuchus. [Idea originally by Randy Sims]
+
+ - Made copying files via copy_if_modified() a little less chatty.
+
+0.2805 Sat Jul 29 22:01:24 CDT 2006
+
+ - We now embed a copy of version.pm right in the
+ Module::Build::Version source code, with John Peacock's blessing,
+ in case the user has a rough time installing version.pm. This
+ helps alleviate troubles people were still having with working out
+ a seemingly circular dependency (even though version.pm now ships
+ with a standard Makefile.PL too). A version.pm >= 0.661 installed
+ on the system will take precedence over our bundled one. [John
+ Peacock]
+
+ - Fix some test warnings (or failures?) related to version.pm
+ numification. [John Peacock]
+
+ - The top-level 'version' entry in META.yml files we'd generated was
+ in the wrong format (it was being treated as a version.pm object
+ rather than a serialized copy) due to a weird YAML::Node issue.
+ Fixed.
+
+ - Don't 'use base qw(version)' anymore in our M::B::Version wrapper,
+ just set @ISA directly, because some people have reported that the
+ 'use base' line is croaking.
+
+ - Added an 'allow_mb_mismatch' parameter to suppress the startup
+ check that ensures the version of M::B currently running is the
+ same as the one initially used to run the Build.PL. Use with
+ caution.
+
+ - Module::Build::ModuleInfo will no longer detect things that look
+ like $VERSION assignments after an __END__ or __DATA__ token.
+
+ - Updated documentation to mention the new mailing list on perl.org
+ rather than the old one on sourceforge.
+
+0.2804 Sun Jul 16 16:41:25 CDT 2006
+
+ - Added 'use version;' in Module::Build::Version, because some
+ versions of base.pm won't automatically load version.pm when we do
+ 'use base qw/version/;'. [Spotted by Erik Tank]
+
+0.2803 Sat Jul 15 08:26:34 CDT 2006
+
+ - The META.yml file in the last release was all screwed up, so the
+ distribution wasn't indexed properly. Fixed in this release.
+
0.2802 Fri Jul 14 22:40:34 CDT 2006
- Added reliance on version.pm, which means we should deal much
- Added documentation for 'extra_linker_flags' parameter, and added a
corresponding 'extra_compiler_flags' parameter. [original patch by
Richard Clamp]
+
+ - The pass-through Makefile created by Module::Build::Compat now
+ supports MakeMaker options like POLLUTE=1 and INC. We also just
+ warn & skip when we see any unknown MM parameters, rather than
+ dying. [Dave Rolsky]
+
+ - Fixed an error about how @INC and $ENV{PERL5LIB} interact during
+ the testing of M::B itself. [jk <billy2000@fastmail.fm>]
+
+ - The pass-through Makefile doesn't include 'recommended' M::B
+ dependencies in the Makefile anymore, since they're not strictly
+ necessary. In particular, this makes installing M::B itself
+ easier.
+
+ - A new 'create_makefile_pl' parameter lets you use
+ Module::Build::Compat during the 'distdir' (or 'dist') action to
+ automatically create a Makefile.PL for compatibility with
+ ExtUtils::MakeMaker. The parameter's value should be one of the
+ styles named in the Module::Build::Compat documentation.
+
+ - When compiling C code, we now respect 'pollute' and 'inc'
+ parameters. (XXX - needs docs) [Dave Rolsky]
+
+ - Made the creation of the "install map" more generic. (XXX - needs
+ documentation)
+
+ - Fixed a problem in which add_to_cleanup() didn't note cleanup files
+ unless create_build_script() had been called already. [Dave Rolsky]
+
+ - During 'Build dist', we no longer have to load each .pm file (via
+ Module::Info) to determine the $VERSION numbers inside. Instead,
+ we call our internal version_from_file() method, which is the same
+ thing MakeMaker and PAUSE and search.cpan.org do. Also fixes a
+ failure when Module::Info is installed in a nonstandard directory.
+ [reported by Teun Burgers]
+
+ - Fixed some failing test code on Windows - open files can't be
+ deleted. [Andrew Savige]
+
+ - The Cygwin platform is now treated as a flavor of Unix rather than
+ a flavor of Windows. [chocolateboy]
+
+ - We're now more aggressive about adding temporary C compilation
+ files (*.c, *.bs) to the cleanup list. [Dave Rolsky]
+
+ - When constructing the list in META.yml of packages provided by this
+ distribution, we now use the same rules as the PAUSE scanner does
+ when a single .pm file contains multiple VERSIONs. [Andreas Koenig]
+
+ - check_installed_status() now works as both a class method and an
+ object method (and is documented so). [Spotted by Dave Rolsky]
+
+0.18 Tue Apr 8 13:24:23 CDT 2003
+
+ - We now rewrite the shebang lines of scripts ourselves, rather than
+ relying on MakeMaker routines to do it. MakeMaker changed the way
+ this happened (not the result, but where the code lived) a few
+ times. [Suggested by Richard Clamp]
+
+ - The scripts() method has changed to script_files(), and likewise
+ the 'scripts' parameter has changed to 'script_files'. The old
+ names can still be used for backward compatibility.
+
+ - Support for the 'scripts' parameter (which is now 'script_files')
+ was broken in 0.17, now it's fixed. [Richard Clamp]
+
+ - We now recommend ExtUtils::ParseXS 2.02, which will fail to load
+ with perl 5.005 or earlier (which is proper, because it doesn't
+ work with those versions). When it fails to load, we still fall
+ back to using the xsubpp script for XS parsing. [spotted by Dave
+ Rolsky, fix suggested by Richard Clamp]
+
+ - Now works on VMS - the Build script's shebang-line-equivalent
+ wasn't being formed correctly there - though just about everything
+ else worked fine. [Tested & patched by Michael Schwern]
+
+ - Eliminated a warning that occurred if 'perl Build.PL' or the
+ check_installed_status() method was run with -w. [Spotted by
+ Michael Schwern]
+
+0.17 Sat Mar 29 18:06:01 CST 2003
+
+ - Now works under perl 5.005_03. [Richard Clamp]
+
+ - When building blib/ , .PL files are now processed before doing
+ anything else. This means .PL files can be used in any of the
+ other contexts.
+
+ - The locating and processing of .pm, .pod, .xs, .PL files and script
+ files are now isolated into their own methods. This is aimed
+ toward providing a stable interface for this stuff, so they can be
+ overridden, parameterized, etc. They're not quite stable yet,
+ though.
+
+ - The internal lib_to_blib() method has gone away, because processing
+ is now done by smaller specialized methods. This method had some
+ duplicate assumptions about filenames that it's nice to get rid of.
+
+ - .PL files are no longer automatically processed in the c_source
+ directory, they must be specified manually in a 'PL_files'
+ parameter.
+
+ - Mention in the docs that it's useful to do "PL_FILES => {}" in a
+ Makefile.PL if you're using both a Makefile.PL and a
+ Build.PL. [Dom]
+
+ - Add several options to the 'license' field, so that we're in better
+ sync with PAUSE and CPAN options. [Andreas Koenig]
+
+ - Created a find_perl_interpreter() method that tries to locate the
+ currently executing perl interpreter. Following a suggestion from
+ Nicholas Clark <nick@ccl4.org> for Inline, we prefer an absolute
+ path in $^X, then an existent path in $Config{perlpath}, then
+ whatever's in $^X.
+
+ - Use the aforementioned perl to run scripts in run_perl_script().
+ This fixes the spurious warning "WARNING: Configuration was
+ initially created with 'foo', but we are now using 'bar'" that
+ appeared a lot in version 0.16.
+
+
+0.16 Mon Feb 24 13:06:47 CST 2003
+
+ - All three C compilers that perl supports on Windows environments
+ (MSVC, BCC, and GCC) are now supported by Module::Build. We now
+ reportedly pass all tests on Windows. [Randy W. Sims]
+
+ - The test t/xs.t, which tests building of XS modules, will be
+ skipped if no C compiler is found. [suggested by Randy W. Sims]
+
+ - The "install" action accepts new "destdir" [motivated by Michael
+ Schwern and Chip Salzenberg] and "uninst" parameters [by Dave
+ Rolsky]. The former prepends an arbitrary directory to all
+ installation paths (useful for package management), and the latter
+ will tell ExtUtils::Install to remove any differing files that are
+ "shadowing" the stuff you're installing from a different location,
+ just like MakeMaker's "make install UNINST=1" command will do.
+
+ - Made changes to the generated Makefile in Module::Build::Compat
+ that much better support Windows platforms [after suggestions by
+ James Freeman]
+
+ - Added experimental support for creating distribution SIGNATURE
+ files via Module::Signature. [Dave Rolsky]
+
+ - Added experimental support for installing via the "only.pm" module,
+ which allows loading specific versions of modules. Since this
+ module is so new, the interface may still be changing. [Brian
+ Ingerson]
+
+ - Added support for installing executable scripts, via the 'scripts'
+ parameter to new(), and the scripts() accessor method.
+
+ - Fix an infinite loop that occurred when doing 'perl Build.PL
+ config="foo=bar"'
+
+ - Fix up the formatting of the error message the user gets when
+ prereqs aren't satisfied.
+
+0.15 Fri Jan 17 15:00:24 CST 2003
+
+ - In link_c(), extra object files were mistakenly being treated as
+ output files, not input files, in the up-to-date check. Fixed.
+
+ - In up_to_date(), don't make an unnecessary copy of the file lists
+ when they're specified as array references.
+
+ - Split off the C compilation phase into its own method,
+ compile_support_files(), for easier subclassing.
+
+ - Start a stub of a 'manifypods' action.
+
+ - Compiler optimizations weren't being included in C compilation
+ statements. Fixed.
+
+ - The 'extra_linker_flags' parameter wasn't being honored. Fixed.
+
+ - The 'ccflags' Config.pm entry wasn't being properly split into
+ separate arguments. Fixed.
+
+
+0.14 Fri Dec 13 14:06:29 AEST 2002
+
+ - Added support for MacPerl (Mac OS version 9 and below), which (as
+ far as I know) was never natively supported by MakeMaker. Still
+ lacks support for the 'test' action (because Test::Harness
+ requires forking, which MacPerl won't do) and compiling XS/C files
+ (because I don't know how to invoke a compiler on MacOS, and one
+ may not even be available). This change is brought to you by
+ Michael Schwern and the letter '('.
+
+ - Improved processing of .xs files. Now we use the new
+ ExtUtils::ParseXS module if it's available, otherwise we use
+ backticks and write the result to a .c file ourselves. This
+ avoids the need to do cross-platform shell redirection.
+
+ - Make sure all parts of 'Build test' use the not-yet-installed
+ version of Module::Build. This only affects the tests for this
+ module, not any of the module code itself. [Spotted by Schwern]
+
+ - Oopsie - use $Config{ld} instead of $Config{cc} for linking.
+
+ - Added a 'diff' action, which is useful for comparing the details
+ of what you're about to install with what is already installed on
+ your system. This uses File::Compare, which is in the core.
+
+ - Fixed a problem on Windows in which the _build/ directory wasn't
+ getting deleted during the 'realclean' action, because we had a
+ file open in that directory. [Spotted by Michael Schwern]
+
+ - delete_filetree() now always uses File::Path::rmtree(), regardless
+ of whether the thing being deleted is a file or a directory. This
+ helps remove things on obscure platforms with strange locking
+ rules (or even not so obscure ones like MacOS). It also now
+ reports the number of files or directories deleted (without
+ recursing directory contents).
+
+ - rm_previous_build_script() is gone, replaced by calls to
+ delete_filetree().
+
+ - 'Build' now chdir()s in a BEGIN block, so the 'use Module::Build'
+ statement will work correctly. Solves a problem on MacOS, where
+ the 'Build' script may often be invoked from the wrong working
+ directory. [Fix by Michael Schwern]
+
+ - Internally we now use the multi-argument form of system() to run
+ external commands (such as 'diff' or 'cc') whenever possible (and
+ whenever we can't avoid system() altogether). Note that this
+ means we have to handle splitting some strings (such as
+ $Config{ccflags}) into argument lists like the shell would, which
+ is a drag. However, the alternative would be to handle shell
+ quoting of all arguments to commands ourselves, which is an even
+ bigger drag across platforms and involves arbitrary filenames and
+ so on.
+
+ - To handle the argument splitting mentioned above, a method
+ split_like_shell() has been created. So far it's just doing naive
+ processing. In practice, I've yet to actually see a %Config entry
+ that uses quotes & spaces, so the splitting task is usually not
+ very error-prone.
+
+ - The 'test' action now takes a 'test_files' parameter, similar to
+ the (undocumented) ExtUtils::MakeMaker TEST_FILES argument. Handy
+ during development when fixing bugs.
+
+ - Internally, the rscan_dir() method can now accept a predicate
+ function that decides whether a file/directory should be matched.
+
+ - We now issue a warning message when the author hasn't specified a
+ license type.
+
+0.13 Wed Nov 20 20:07:53 AEST 2002
+
+ - 'cleanup' file lists are now written immediately, rather than at
+ program termination. This helps avoid "phantom files" that don't
+ get handled by the 'realclean' action. The internal
+ write_cleanup() method (which was never documented) is now gone.
+
+ - The 'blib/' directory is now properly cleaned up in more (all?)
+ circumstances. Previously it could become a phantom if
+ create_build_script() was never called.
+
+ - Now scan the 'c_source' directory for .cpp (C++) files as well as
+ .c files, and compiles them.
+
+ - Use a 'phony' target for 'make manifest' in the pass-through
+ Makefile, for the same reason as 'make install' (see version 0.12
+ notes below).
+
+ - Module::Build::Compat now accepts any known Config.pm key and
+ passes it through to the Build.PL. Fixes a problem with CPANPLUS,
+ which was passing INSTALLMAN1DIR.
+
+ - The file 'META.yaml' has been re-named to 'META.yml' in order to
+ cooperate better with systems that can only handle 3 characters
+ after the dot.
+
+ - The t/xs.t test should give more informative error messages upon
+ failure.
+
+0.12 Thu Nov 14 18:31:47 AEST 2002
+
+ - The META.yaml file was erroneously looking for 'build_depends'
+ instead of 'build_requires'. [spotted by Iain Truskett]
+
+ - Add prompt() and y_n() methods for use in Build.PLs
+
+ - Do more to work with all versions of Test::Harness when setting
+ the TEST_VERBOSE flag and running under the debugger [patch by
+ Dave Rolsky]
+
+ - Include a test for verbosity handling
+
+ - Make sure the blib/ directory is always cleaned up with the
+ 'clean' or 'realclean' action.
+
+ - In a pass-through Makefile.PL, inform 'make' that 'install' is a
+ "fake target", so that it works properly on case-insensitive
+ filesystems like HFS+ with distributions that contain an INSTALL
+ file. [patch by Brian Ingerson]
+
+ - In Module::Build::Compat, show an example Makefile.PL that can
+ install Module::Build and re-invoke itself in one fell swoop [Dave
+ Rolsky and Autrijus Tang]
+
+ - Improve the formatting of the Module::Build and
+ Module::Build::Compat documentation.
+
+0.11 Fri Aug 23 18:50:46 AEST 2002
+
+ - 'module_version' and 'module_version_from' have been replaced by
+ 'dist_version' and 'dist_version_from', which is what they really
+ meant in the first place. 'dist_name' has been added.
+
+ - 'module_name' is now just a way to set 'dist_name' and
+ 'dist_version_from' in a convenient way.
+
+ - The 'name' in META.yaml is now the distribution name, not the
+ (incorrect) module name. [spotted by Graham Barr]
+
+ - Added the check_installed_status() and prereq_failures() methods
+ for checking prerequisite information with the programmatic
+ interface
+
+ - check_installed_version() now uses check_installed_status()
+ internally
+
+ - Documented the create_build_script() method, which had escaped
+ documentation.
+
+ - create_build_script() now writes prerequisite information to the
+ _build/ directory, for use by Module::Build::Compat.
+
+ - Module::Build::Compat has documentation for a safer way to write a
+ dummy Makefile.PL. [patch by Autrijus Tang]
+
+0.10 Wed Aug 7 19:36 2002
+ - Recommend YAML 0.35 instead of 0.30.
+
+ - Don't die during 'Build disttest' if YAML isn't installed. This
+ fixes tests 5-10 in runthrough.t if YAML isn't installed.
+
+ - Die if an unknown license type is used, but still default to
+ 'unknown' if no license is specified.
+
+ - Use YAML::DumpFile() if we're using a recent YAML,
+ YAML::StoreFile() otherwise.
+
+ - Show specific error messages in runthrough.t.
+
+ - Add a generated_by entry to the META.yaml file.
+
+ - Skip a few tests if YAML isn't installed.
+
+0.09 Fri Jun 28 11:07:08 EST 2002
+
+ - The 'distdir' action wasn't deleting the distribution directory
+ before building it again. This meant that, say, if you did 'Build
+ disttest' then 'Build dist', you'd end up with a blib/ directory
+ in your distribution. I actually had this happen for version
+ 0.08, and it's not nice to distribute a blib/ on CPAN.
+
+ - We now keep track of the 'base_dir', i.e. the top-level build
+ directory, so we can change back into it if we change out of it.
+ This necessitated a cwd() method, which uses the Cwd.pm module.
+ I'm aware of Cwd's limitations, particularly under taint-mode, but
+ I don't know a way around using it here.
+
+ - The 'dist_dir' action now changes back into 'base_dir' directory.
+
+ - We now do write_config() inside the create_build_script() method,
+ not inside the new() method.
+
+ - Simplified the find_version() method, and improved its error
+ messages.
+
+ - Renamed module_name_to_file() to find_module_by_name(), and added
+ a parameter specifying the directories to search in. Previously
+ we searched in 'lib' and @INC, which wasn't correct in all
+ situations.
+
+ - Patched the docs to change "Build test" to "./Build test"
+ [Elizabeth Mattijsen]
+
+0.08 Wed Jun 26 20:30:56 EST 2002
+
+ - Fixed the 'prereq' alias for the 'requires' parameter
+
+ - Added some tests in t/basic.t to test the dependency checking
+
+ - Added 'artistic' as a licensing option [Arthur Bergman]
+
+ - Fixed some bugs in requires/prereq/recommends/conflicts/build_depends
+
+ - Fixed a typo in the 'distclean' action that prevented its
+ execution [Arthur Bergman]
+
+ - Separated the linking phase of building XS items into its own
+ link_c() method. Its interface is still unstable, so it's not
+ documented yet. [suggested by Arthur Bergman]
+
+0.07 Jun 9 2002 15:46
+
+ - We now generate a 'META.yaml' metadata file during 'Build dist'.
+ This can be very useful for lots of things, none of which are
+ implemented yet.
+
+ - Added a 'dynamic_config' parameter, defaulting to false. This
+ lets distribution systems (CPAN.pm, etc.) build, test, and install
+ "easy" modules without having to execute the Build.PL at runtime.
+ It's also a guarantee that the list of dependencies is exactly
+ what is present in the metadata file, and won't be changed during
+ the build process.
+
+ - Added support for "recommended" and "build-time requirement"
+ modules, besides those that are absolutely required. Also added a
+ "conflicts" field.
+
+ - Changed the 'prereq' field to 'requires' (the old name will
+ continue to work).
+
+ - Added support for checking the installed version of perl as an
+ explicit dependency.
+
+ - Added a 'license' parameter to specify one of a fixed number of
+ licenses for the distribution.
+
+ - Fixed a bug in Module::Build::Compat that was preventing arguments
+ from being processed properly. [patch by Ilya Martynov]
+
+ - Make sure we're in the right directory when we write the cleanup
+ file, since various ExtUtils::Install errors might leave us in an
+ unknown directory. [patch by Ilya Martynov]
+
+ - Specified the 'license', 'recommends', and 'dynamic_config'
+ values in Build.PL, and changed 'prereq' to 'requires'.
+
+0.06 Apr 2 2002 17:44
+
+ - Added the Module::Build::Compat module for assisting and
+ explaining compatibility with ExtUtils::Makemaker and cohorts.
+
+ - State is now saved using Data::Dumper instead of my ad-hoc
+ mechanism, guaranteeing data integrity. Whitespace values broke
+ in the former scheme.
+
+ - Added the 'recommended' option, which works like 'prereq' but
+ isn't insistent.
+
+ - Separated the various parameters into three groups: parameters
+ that tell Module::Build what to do, Config.pm parameters, and
+ user-defined parameters for each build (the module author is the
+ 'user' here). This helps avoid conflicts between names, and it
+ was silly to have them all together. The three groups of
+ parameters are subject to the same rules for overriding: values
+ specified during a Build action take precedence over values
+ specified at 'perl Build.PL' time, which in turn take precedence
+ over values specified in the call to new().
+
+ - Improved support for .PL files. Any .PL file in the lib/
+ directory or the directory specified by 'c_source' will now get
+ properly executed. I also added a 'PL_files' parameter that you
+ can use in case the .PL doesn't create an obviously-named output
+ file.
+
+ - If a prerequisite condition is malformed, we now report a prereq
+ failure and say why. Previously we issued a warning and kept
+ going.
+
+
+0.05 10-Jan-2002 20:26
+ - Added the Module::Build->subclass() method, which makes it easier to
+ make quick-and-dirty subclasses of Module::Build.
+
+ - Reorganized the docs a bit.
+
+ - Added the 'testdb' action, and the 'debugger=1' argument to the
+ 'test' action, both of which run tests under the perl
+ debugger. (idea: Dave Rolsky)
+
+ - Added prerequisite checking (Dave Rolsky)
+
+ - Fixed an unlikely-to-occur bug with misquoted strings in the
+ 'Build' script (spot: Dave Rolsky)
+
+ - We're more careful about shush-ing warnings that
+ ExtUtils::Manifest might emit (Dave Rolsky)
+
+ - The 'help' action now auto-generates the list of actions (Dave Rolsky)
+
+ - Added the 'distcheck', 'skipcheck', 'distclean', 'distdir', and
+ 'disttest' actions (Dave Rolsky)
+
+ - We're a little more aggressive about cleaning up temporary files -
+ we'll try to clean them up even when we don't have write permission
+ on them. This isn't as dastardly as it sounds; if we /really/
+ don't have permission, we won't be able to remove them no matter
+ how hard we try.
+
+0.04 Fri Nov 16 16:55 2001
+ - Added a 'manifest' action. It's just like MakeMaker's 'make manifest', it
+ brings your MANIFEST file up to date with your distribution directory.
+
+ - Reorganized some of the responsibilities of various methods, which
+ allows modules to be built and tested programmatically.
+
+ - The 'clean' action will now clean up files that were created more
+ recently than the on-disk cleanup registry was written.
+
+ - Undefined values from Config.pm are handled correctly now.
+
+ - The dispatch() method will now accept explicit dispatch
+ parameters, for use in a programmatic setting.
+
+ - $ENV{TEST_VERBOSE} will be set in test scripts if the 'verbose=1'
+ parameter is set.
+
+ - Moved the test.pl script to t/basic.t
+
+ - Created the t/xs.t script, which tests building a module with a
+ .xs component.
+
+ - Fixed the loading of $^O-specific modules (there were no such
+ modules before).
+
+ - Added a 'darwin' platform module, which removes -flat_namespace
+ from $Config{ccflags} while building .xs modules (it's a linker
+ flag, not a compiler flag).
+
+ - Now uses $^W instead of the 'warnings' pragma, which apparently
+ provides compatibility with perl 5.005 (I've only tested it with
+ 5.6.x myself).
+
+ - If a file called C<visual.pl> exists in the top-level directory,
+ this file will be executed as a Perl script during 'Build test' and
+ its output will be shown to the user. This is a good place to put
+ speed tests or other tests that don't use the C<Test::Harness> format
+ for output.
+
+ - The 'Build install' step will now put .xs-related things in the
+ correct architecture-dependent libraries.
+
+ - Added the 'autosplit' option, even though I think autosplitting is
+ a load of hooie.
+
+0.03 Sun Nov 11 14:58 CDT 2001
+ - The 'perl Build.PL' step will now detect whether the current
+ environment is "unixish", "windowsish", etc., and load the correct
+ module (i.e. Module::Build::Platform::Unix). More specific
+ modules may also be written for particular values of $^O.
+
+ - Module::Build will now process any .xs files in the lib/
+ directory. Please let me know whether this works or not with your
+ distribution & platform. I'll be trying out various distributions
+ on my platform.
+
+ - Corrected some embarassing errors in the POD documentation. Also
+ added a long documentation section on the various build actions
+ (test, install, build, etc.) and added some neato ASCII art.
+
+ - Added a 'cleanup' mechanism - any method may call the
+ $self->add_to_cleanup(@files) method to register files which need
+ to be cleaned up during 'Build clean'.
+
+ - Added a 'Build help' action that gives a little syntax help, and
+ lists all the actions available.
+
+ - Fixed a bug in which 'blib/' wasn't properly being added to @INC
+ when running 'Build test'.
+
+ - For the 'Build dist' action, we'll use the 'tar' and 'gzip'
+ programs (as specified by Config.pm) on Unix platforms, otherwise
+ we'll use Archive::Tar and Compress::Zlib.
+
+0.02 Wed Sep 5 00:53:04 CDT 2001
+ - Added POD documentation.
+
+ - Added the 'install', 'fakeinstall', and 'dist' actions.
+
+ - new() will now determine version string based on 'module_version', or
+ 'module_version_from', or 'module_name', in that order.
+
+ - Module::Build::Base handles its file paths in a platform-independent
+ way, using the File:: modules
+
+
+0.01 Sun Aug 5 01:23:10 2001
+ - original version; created by h2xs 1.1.1.4 with options -XA -n Module::Build
+