add Module::Build 0.27_08
[p5sagit/p5-mst-13.2.git] / lib / Module / Build / Changes
1 Revision history for Perl extension Module::Build.
2
3 0.27_08  Fri Mar  3 21:22:41 CST 2006
4
5  - Due to shell quoting issues and differences in syntax between
6    various flavors of Windows, the code for the 'pl2bat' utility
7    distributed with Perl has been incorporated into M::B::P::Windows.
8    [Thanks to Dr Bean and Ron Savage for help testing and isolating
9    the problem.]
10
11  - Modify add_build_element() so that it only adds elements if they
12    don't already exist. [David Wheeler]
13
14  - Fixed a bug in the 'pass-through' Makefile.PL in which we would die
15    if CPAN::Shell->install returned false, but apparently this return
16    value is unreliable.  Now we only die if the module is actually
17    unavailable after installation.
18
19  - Fixed testing problems on VMS related to non-case-preserving
20    filesystems.  We now bundle Tie::CPHash in the distribution (just
21    for testing purposes, it doesn't get installed) to help with
22    this. [Craig Berry and Yitzchak Scott-Thoennes]
23
24  - We incorrectly documented the 'dynamic_config' flag in the META.yml
25    file as having a default value of false, but according to the
26    META.yml spec (which, for heaven's sake, we wrote) its default
27    value is true.  Fixed. [Spotted by Adam Kennedy]
28
29  - The have_c_compiler() method was dying if the ExtUtils::CBuilder
30    module wasn't around, which is obviously an unhelpful thing to do.
31    Now it just returns false. [Spotted by John Peacock]
32
33  - Fix detection of $VERSION expressions that are not
34    assignments. [Spotted by Chris Dolan]
35
36  - Obfuscate one of our constructs that uses a $VERSION variable,
37    because it was getting picked up by ExtUtils::MakeMaker's
38    version-finder. [Spotted by Randal Schwartz]
39
40  - The config_data script for querying and/or setting a module's
41    config data was forgetting to call write() after setting config
42    values (though setting feature values was working fine).
43    Fixed. [Brian Duggan]
44
45  - On Windows, remove the pl2bat generated 'Build.bat' script without
46    the annoying "The batch file cannot be found." error.  [Solution
47    provided by RazTK and foxidrive on newsgroup alt.msdos.batch]
48
49  - Our version comparisons should now work correctly with modules that
50    use version.pm to delcare their versions (e.g. "our $VERSION =
51    version->new('1.0.0')"). [John Peacock and Ron Savage]
52
53  - We now create a Build.bat script on versions of Windows where it
54    makes sense. [Yves]
55
56  - Fixed the verbiage around choosing the correct make-alike on
57    different platforms to suggest using 'perl -V:make'. [Suggested by
58    anonymous user]
59
60 0.27_07  Wed Feb  1 20:07:45 CST 2006
61
62  - The notes() method now returns the new value when called with two
63    arguments, just like when it's called with one argument. [Tyler
64    MacDonald]
65
66  - The notes() method now distinguishes among the values undef, 0, and
67    the empty string, where previously it didn't. [Tyler MacDonald]
68
69  - We now unshift(@INC) rather than push(@INC) for the directory where
70    a build subclass lives, so that we're sure to pick up the right
71    version and not some already-installed version. [perlmonkey]
72
73  - The SIGNATURE file for version 0.27_06 (and I'm sure for lots of
74    versions before that too!) was messed up, since we were modifying
75    some files after signing.  This has been band-aided for the time
76    being by signing twice. [Reported by Chris Dolan]
77
78 0.27_06  Mon Jan 23 21:44:54 CST 2006
79
80  - Fixed an undefined-variable warning when building the META.yml file
81    and the author hasn't used the 'module_name' mechanism. [Chris Dolan]
82
83  - We should now work with recent (> 0.49) versions of YAML.pm when
84    creating the META.yml file. [Yitzchak Scott-Thoennes]
85
86  - The y_n() method now requires the default parameter, and the
87    prompt() and y_n() methods have been improved with respect to
88    how they behave/detect when there is no user to ask.  We're now
89    more consistent with MakeMaker, including respecting the
90    PERL_MM_USE_DEFAULT environment variable. [Tyler MacDonald and
91    Yitzchak Scott-Thoennes]
92
93  - When building a README file using Pod::Text, work around a bug in
94    Pod::Text 3.01, which expects Pod::Simple::parse_file to take input
95    and output filehandles when it actually only takes an input
96    filehandle. [Yitzchak Scott-Thoennes]
97
98 0.27_05  Thu Jan 12 17:39:21 CST 2006
99
100  - In t/common.pl, we were attempting to let the user's installed
101    Test::More take precedence over ours, but getting thwarted by all
102    the test scripts' loading Test::More beforehand.  Fixed. [Spotted
103    by Yitzchak Scott-Thoennes]
104
105  - In various test scripts, we were outputting some strings that
106    weren't strictly conformant with Test::Harness's expected input,
107    though it didn't actually cause problems.  Now we're more
108    conformant, though not yet strict. [Spotted by Yitzchak
109    Scott-Thoennes]
110
111 0.27_04  Fri Dec 23 10:43:34 CST 2005
112
113  - Removed experimental feature that extended the prerequisite system
114    to apply ('requires', 'recommends', and 'conflicts') prereqs to all
115    actions. Most of the internal extensiblity has been retained so
116    that prereq types can easily be added, more selectively.
117
118  - Added a 'prereq_report' action that shows the user a well-formatted
119    list of all prerequisites, the versions required, and the versions
120    actually installed. [David Wheeler]
121
122  - Clarified the directory name that's created during the 'distdir'
123    action. [Suggested by Tyler MacDonald]
124
125  - Fixed a bug when creating the META.yml file without the help of
126    YAML.pm - some common strings weren't quoted & escaped properly.
127    Now only some uncommon ones are. [Spotted by Joshua ben Jore]
128
129  - Fixed a bug in which an "UNINST=1" argument specified to a
130    passthrough Makefile's "make install" wasn't actually seen by
131    Module::Build.
132
133  - Rather than dying when the Build script is run from the wrong
134    directory, it now simply chdir()s into the right directory and
135    keeps going. [Suggested by Dominique Quatravaux]
136
137  - Added an "Examples on CPAN" section to the cookbook, with an
138    initial entry pointing to John Peacock's SVN-Notify-Mirror
139    distribution.
140
141  - Add an invoked_action() method to return the name of the original
142    action invoked by the user.
143
144  - Add 'meta-spec' field to the generated META.yml file, including the
145    version of the specification followed by the current Module::Build
146    and the url where the specification can be found.
147
148  - Introduced two actions, 'html' & 'manpages', that generate
149    documentation for POD when the respective feature is enabled.  The
150    actions will generate the documents even if there is no set place
151    to install to.  However, if the actions are invoked as a dependency
152    of another action (e.g. build), the documentation will only be
153    built when there is a default or user-specified place to install to.
154
155  - Added support for environment variable, 'MODULEBUILDRC', which can
156    be used to specify the full path to an option file to use instead
157    of the default location of ~/.modulebuildrc. A special undocumented
158    setting of 'NONE' tells Module::Build not to load any user settings,
159    so tests can be run without tainting from user options.
160
161  - Documented and improved preliminary support for more Getopt::Long
162    style options are supported, including boolean options (--verbose,
163    --no-verbose), and use of hyphens in option names in addition to
164    underscores.
165
166  - The option to disable/enable reading of the ~/.modulebuildrc file
167    is changed from 'skip_rcfile' to 'use_rcfile'
168
169  - Allow the 'distmeta' action to continue when 'MANIFEST' is missing,
170    omitting the generation of the 'provieds' field. [Steven Schubiger]
171
172  - Fixed some failing regex from generated MANIFEST.SKIP file.
173
174  - Fixed an edge case in $VERSION parsing where we thought a package()
175    declaration was happening but it wasn't. [David Golden]
176
177  - Added docs for the install_destination() and install_types() methods.
178
179 0.27_03 (Beta for 0.28)  Mon Oct 10 11:19:23 EDT 2005
180
181  - We now use ExtUtils::CBuilder to do all compiling of C code (for
182    example, when compiling XS modules).  (This change actually
183    occurred in 0.27_01, but it was mistakenly omitted from the Changes
184    file.)
185
186  - Fixed an issue on Win32 (and other case-tolerant
187    non-case-preserving systems, possibly like VMS?) in which the
188    current working directory would sometimes be reported with
189    different case, fooling us into thinking that we were in the wrong
190    directory. [David Golden]
191
192  - The extra_compiler_flags setting was not actually being passed
193    along to ExtUtils::CBuilder so it could pass it along to the
194    compiler.  Now it is.
195
196  - The synonyms 'scripts' and 'prereq' for 'script_files' and
197    'requires' were broken in a previous version (0.27_01, probably),
198    but now they're fixed. [David Golden]
199  
200  - Previously, we assumed that any custom subclass of Module::Build
201    was located in _build/lib/.  This is only true if the author used
202    the subclass() method, though.  We now use %INC to find where the
203    custom subclass really is, so that we can "use lib" it.  We also
204    issue a warning if it seems to be outside the build directory.
205    [Spotted by Peter Tandler]
206
207  - Added a URL for each license type that we know about, which will
208    appear as resources=>license: in the generated META.yml file.
209
210  - If the user passes a no_index parameter to our constructor, we now
211    pass that through when building the META.yml file. [Richard
212    Soderberg, RT #9603]
213
214  - A few more status messages can now be suppressed by using 'quiet'
215    mode.  [Dave Rolsky]
216
217  - Added some more entries to the default MANIFEST.SKIP file. [Chris
218    Dolan]
219
220  - Our POD parser will now accept "AUTHORS" as well as "AUTHOR" when
221    looking for the author list in a module. [David Wheeler]
222
223  - When looking for the POD to auto-generate a README file, or for the
224    AUTHOR or ABSTRACT for the distribution, we now also look for a
225    *.pod with the same name as the *.pm file specified by
226    'version_from'. [David Golden]
227
228  - The recommended dependency on ExtUtils::ParseXS has been moved into
229    the "C_support" auto_feature.
230
231  - When building XS files, we now pass the -DVERSION and -DXS_VERSION
232    flags to the compiler. [Spotted by Jerry Hedden]
233
234  - If a distribution has XS files and Module::Build has not been
235    configured with the "C_support" feature, we now issue a
236    warning. [Suggested by Jerry Hedden]
237
238  - Added a dir_contains() method.
239
240  - Some versions of MakeMaker, CPANPLUS, and/or PAUSE thought that a
241    certain line of our code was declaring a $VERSION when we didn't
242    intend to.  The line has been obscurified so they won't think that
243    anymore. [Jos Boumans, RT #14226]
244
245  - Added the Apache, MIT, and Mozilla licenses to the list of licenses
246    that this module knows about. [Bob Ippolito]
247
248  - Fixed a pretty significant typo in the documentation for
249    auto_features. [Spotted by Jonas B. Nielsen]
250
251  - In order to aid people who want to do customization of the META.yml
252    file, we've added a "metafile" property that can then be easily
253    overridden in subclasses, changed do_create_meta_yml() to
254    do_create_metafile(), and split out the code that actually
255    generates the YAML into a new method, write_metafile(). [David
256    Wheeler]
257
258  - Fixed a couple of non-helpful behaviors with extra_compiler_flags
259    and extra_linker_flags.  These will automatically be run through
260    split_like_shell() when given to new() as strings.
261
262  - When the user doesn't have ExtUtils::ParseXS installed and we use
263    the old 'xsubpp', the displayed command line for creating the .c
264    file from the .xs file was missing its newline.  Now it's got it.
265
266 0.27_02 (Beta for 0.28)  Fri Jul 15 07:34:58 CDT 2005
267
268  - Provided initial support for the --prefix installation parameter,
269    which acts like MakeMaker's PREFIX.  It is still highly recommended
270    NOT to use it when you could reasonably use --install_base or
271    --install_path or --install_dest, but that's just because the way
272    --prefix is designed is weird and unpredictable.  Ultimately the
273    choice rests with the installing user. [Patches by Michael Schwern
274    and Rob Kinyon]
275
276  - Fixed a bug in subclass() which prevented people from using it to
277    subclass subclasses of Module::Build. [Chris Dolan]
278
279  - Added a 'pure_install' action, which for the time being is
280    identical to the 'install' action. [Jos Boumans]
281
282  - Fixed a POD error in an L<http://...> tag. [Offer Kaye]
283
284  - Note several options for automatically creating a new module dev
285    tree. [Suggested by Eric Wilhelm]
286
287  - Removed some hard-coded references to File::Spec::Unix in the
288    creation of HTML docs, which should help that code work in more
289    places, and help people not to panic when they look at it. [Spotted
290    by Yves]
291
292  - We now use Pod::Readme by default (instead of Pod::Text) to
293    generate the README file when the 'create_readme' option is used.
294    If Pod::Readme is not installed, we will still fall back to using
295    Pod::Text.  [Robert Rothenberg]
296
297  - The values of the "prefix", "install_base", "install_path", and
298    "install_dest" parameters can now begin with "~" or "~user", and
299    we'll de-tilde-ify them by using glob().
300
301  - The (optional) auto-creation of the README and Makefile.PL files
302    have been moved from the 'distdir' action to the 'distmeta'
303    action. [David Golden]
304
305  - When looking for a .modulebuildrc file, we now use a fancier method
306    of trying to find the home directory, because $ENV{HOME} isn't a
307    very cross-platform variable. [Robert Rothenberg]
308
309  - We now memoize the output of the internal _default_INC() method,
310    since it uses backticks and might be kind of slow.
311
312  - When processing XS files, we now look for a typemap in lib/ as well
313    as using the system's default typemap. [John Peacock]
314
315  - The DESTDIR, PREFIX, and INSTALL_BASE arguments to "make install"
316    are now supported for pass-through Makefiles (they've been
317    supported for quite a while as arguments to "perl
318    Makefile.PL"). [Requested by Guillaume Rousse]
319
320  - Test::Harness has changed its output format in recent versions,
321    which threw off one of our tests.  We now allow for this different
322    format. [Reported by Scott Godin]
323
324  - Fixed an issue that prevented Module::Build from upgrading itself
325    using its own API (which is how CPANPLUS uses it).  There are still
326    some issues with this solution, however.  See ticket #13169 in
327    rt.cpan.org. [Reported by Jos Boumans]
328
329  - Fixed a fatal error that occurred when a distribution's author
330    could not be determined from its POD nor from the call to
331    Module::Build->new() in its Build.PL.  See ticket #12318 in
332    rt.cpan.org. [Reported by Jos Boumans]
333
334  - Apparently on Windows and cygwin it's not possible to use the "-pi"
335    switch to perl without a backup extension, so now we use ".bak" and
336    remove the backup file when we're done.  Thus the "dist" action for
337    Module::Build itself can now be run on those platforms. [Yitzchak
338    Scott-Thoennes]
339
340  - Improved the handling of auto_features in the config_data access
341    script. [Yitzchak Scott-Thoennes]
342
343 0.27_01 (Beta for 0.28)  Fri Apr 15 21:12:57 CDT 2005
344
345  Backward-incompatible (but better) changes:
346
347  * When using the 'install_base' option to choose a directory for
348    installing everything, perl modules now go into lib/perl5/ instead
349    of just lib/.  It seems this is more consistent with people's
350    expectations, and the way I had it before was a bit peculiar to the
351    way I like things in my own home directory. [Michael Schwern]
352
353  * When the user is using the 'install_base' option, scripts will now
354    be installed by default in $install_base/bin/ rather than
355    $install_base/script/ . [Jan Hudec and Michael Schwern]
356
357  Major changes:
358
359  - The auto_features mechanism will now re-evaluate dependencies every
360    time feature() is called for an auto-feature, rather than freezing
361    the success/failure value during 'perl Build.PL' and using that
362    value for all eternity (or module update, whichever comes first).
363    This applies to both $build->feature() and
364    FooModule::ConfigData->feature() calls. [Requested by many]
365
366  - Added the meta_add and meta_merge mechanisms, which let the module
367    author add/merge arbitrary entries into the META.yml file.
368
369  - Now reads per-action default options from '$ENV{HOME}/.modulebuildrc'
370    if it exists. Command line options override anything set in the rc file.
371
372  - We now use ExtUtils::CBuilder to do all compiling of C code (for
373    example, when compiling XS modules).
374
375  - The creation of Unix man pages is no longer a strict necessity - it
376    has now been turned into an 'auto-feature' contingent on the
377    presence of Pod::Man and a location specified for man pages to go.
378
379  - A user-specified 'install_path' setting will now take precedence
380    over an 'install_base' setting.  This allows the user to use
381    'install_base' to set the base for all elements in one go, and then
382    use 'install_path' to override specific paths or add paths for
383    additional kinds of targets.
384
385  - Split the main documentation from 'Module/Build.pm' into two
386    sections. The user level documentation and overview remains in
387    'Module/Build.pm', while a new document,
388    'Module/Build/Authoring.pod', has been created for module authors.
389
390  Minor changes:
391
392  - new_from_context() was losing its arguments in some cases (and not
393    because of inadequate training in forensic debate) - we now pass its
394    arguments directly to the Build.PL script rather than merging them
395    in afterwards.
396
397  - Let resume() return an object blessed into the appropriate class
398    if the user has provided a subclass, as specified by the
399    'build_class' property. This allows current() and new_from_context()
400    to behave more like factory methods returning objects of the correct
401    class based on context. [Ray Zimmerman]
402
403  - Refactored methods relating to parsing perl module files for
404    package, version, and pod data into a new class:
405    Module::Build::ModuleInfo.  It should not be considered part of
406    Module::Build's API, because we may split it out entirely as a
407    separate CPAN module that we depend on.
408
409  - Added new method Module::Build::prepare_metadata() for authors to
410    override in order to add custom fields to META.yml.
411
412  - We now use Test::More for our regression tests.  If the user
413    doesn't have it installed, we include a copy in t/lib/ that we can
414    use during testing.
415
416  - When copying files in the 'distdir' action, set permissions to match
417    the original files. [Julian Mehnle]
418
419  - When adding files like META.yml to the MANIFEST, we now tell the
420    user we're doing so by printing one of the "Added to MANIFEST: ..."
421    lines.  [Ron Savage]
422
423  - Added a runtime_params() method, which lets a module author see
424    which parameters were overridden by the user on the command line
425    (or in whatever paradigm the user originally invoked Module::Build
426    from). [David Wheeler]
427
428  - Added the current_action() method, which, surprisingly, returns the
429    name of the currently running action. [David Wheeler]
430
431  - Added docs for run_perl_script().
432
433  - Added some stuff to the docs about why PREFIX is unsupported, and
434    what to use instead. [Steve Purkis]
435
436  - The simple get/set accessor methods for all the 'parameters' like
437    verbose(), license(), etc. now have auto-generated documentation in
438    Module/Build.pm.
439
440  - Created a Cookbook entry for 'Adding new elements to the install
441    process'
442
443  - We now add META.yml to the MANIFEST when META.yml is created, not
444    when MANIFEST is created. [Spotted by Ron Savage]
445
446  - Added some additional patterns to the suggested MANIFEST.SKIP
447    contents, and changed the docs so that we encourage the user to use
448    the MANIFEST.SKIP.  [Ron Savage]
449
450  - Eliminated a redundant recipe from the Cookbook, now that there are
451    some more extensive recipes on how to add stuff to the
452    build/install sequences.
453
454  - Eliminated an undefined-variable warning when testing under perl 5.005
455
456  - When building HTML documentation, 'html_backlink' and 'html_css'
457    properties are now first-class properties, so they can be set from
458    the command line. [Suggested by Sagar R. Shah]
459
460  - Have script_files default to everything in bin.  I believe this is
461    the least surprising behavior. [Suggested by Michael Schwern]
462
463  - If script_files is given a directory, consider each file in that
464    directory tree as a script to be installed.  This avoids having to
465    remember to add to the script_files list every time you add a
466    program. [Suggested by Michael Schwern]
467
468  - We now only load Pod::Man when we actually need to build man pages.
469
470  - We now make Test::Harness use our carefully-selected path to a perl
471    executable regardless of Test::Harness's version.  Previously we
472    let it figure stuff out for itself if it was a reasonably modern
473    version, but it's safer to make sure we're using the same perl
474    everywhere.
475
476 0.2610  Fri Apr 15 08:25:01 CDT 2005
477
478  - new_from_context() was losing its arguments in some cases (and not
479    because of inadequate training in debate) - we now pass its
480    arguments directly to the Build.PL script rather than merging them
481    in afterwards. [Ray Zimmerman]
482
483  - Fixed a bug in which config_data and feature data were being
484    forgotten and no ConfigData.pm module would get written. [Ray
485    Zimmerman]
486
487  - Added a recipe to the cookbook showing how to run a single test
488    file from the command line. [William McKee]
489
490  - For command-line arguments, we now accept the syntax "--foo=bar" in
491    addition to "--foo bar" and "foo=bar".  This seems to fit well with
492    what GNU getopt and Getopt::Long do, and with people's
493    expectations. [Adam Spiers]
494
495 0.2609  Wed Mar 16 22:18:35 CST 2005
496
497  - The html docs that were created during the first invokation of
498    './Build' were being found and treated as pod that needed to be
499    converted to html during subsequent invokations. We now are more
500    specific about the directories we scan for pod that needs to be
501    converted, effectively avoiding blib/html. [Ray Zimmerman]
502
503  - If Pod::Man is not available, we now skip building man pages
504    (rather than dying) and tell the user why.
505
506  - We now write a .packlist file upon installation, in the same place
507    that ExtUtils::MakeMaker does. [Johnny Lam]
508
509  - On some Unix platforms (BSD derivatives, mostly) perl's $^X
510    variable isn't set to the full path of the perl executable, just
511    'perl', when the 'Build' script is run as './Build' and not 'perl
512    ./Build'.  This can lead to some other modules (maybe
513    Test::Harness, maybe IO::File, I dunno...) getting very confused
514    about where they are, and they try to load stuff from the wrong
515    perl lib, and big trouble ensues.  To fix this, we now set $^X to
516    the value of Module::Build->find_perl_interpreter().
517
518  - The 'distcheck' action will now die() if it finds an error in the
519    MANIFEST, rather than just printing on STDOUT. [David Golden]
520
521  - When the README and/or Makefile.PL are autogenerated using
522    create_readme or create_makefile_pl, we now automatically make sure
523    they're also listed in the MANIFEST file. [Suggested by Michael
524    Schwern]
525
526  - Got rid of the t/MANIFEST file - it's superfluous, and it had
527    zero-length, which some versions of Tar don't like. [William
528    Underwood]
529
530  - Added a mention in the documentation that each property that new()
531    accepts also has a corresponding get/set accessor.  (In the version
532    0.27_0x series each accessor method is mentioned explicitly in the
533    docs.) [Omission spotted by Ian Langworth]
534
535 0.2608  Wed Jan 26 19:46:09 CST 2005
536
537  - Add workaround for test files because Devel::Cover causes
538    require to fail when the argument to require is an expression
539    involving File::Spec. We now assign the result of the File::Spec
540    call to a variable and then call require with that variable.
541
542  - Tilde-expansion is now performed on arguments passed to a
543    compatibility-Makefile.PL [Spotted by Sam Vilain]
544
545  - We now run the 'gzip' and 'tar' values through split_like_shell()
546    when running the 'dist' action, so that e.g. the 'gzip' value can
547    be set to something like "gzip -f --best" and it'll work
548    correctly. [Spotted by Chris Dolan]
549
550  - Work around some bad mojo between Fedora Core [with its very long
551    @INC] and old versions of Test::Harness [with its propensity to
552    compound the number of @INC entries] that produced an "argument
553    list too long" error during testing.  [assisted by Ville Skytta,
554    David Golden, & Randy Sims]
555
556  - Killed an infinite loop that would happen in y_n() in interactive
557    mode if the author provided no default value. [Max Maischein]
558
559 0.2607 (Bug fix release in 0.26 series)  Sat Dec 18 14:14:09 CST 2004
560
561  - Instead of freezing @INC in the 'Build' script to the value it had
562    when Build.PL was run, we now just add those additional values that
563    aren't part of the default compiled-in @INC. [Michael Schwern]
564
565  - The run_perl_script() method will now propagate any extra entries
566    in @INC (such as those added by "use lib" or the -I command-line
567    switch) to the subprocess.  This helps situations in which you want
568    to tell the subprocess where to find a certain module, for
569    instance.  [Michael Schwern]
570
571 0.2606 (Bug fix release in 0.26 series)   Tue Dec  7 22:33:11 CST 2004
572
573  - Fixed a linking bug on Win32, in which compiled C code object files
574    never got linked in with the modules being built. [Dominic
575    Mitchell]
576
577  - Fixed a bug in the new_from_context() method in which any arguments
578    passed made us die. [Spotted by Jos Boumans]
579
580 0.2605 (Bug fix release in 0.26 series)   Tue Nov 30 07:16:13 CST 2004
581
582  - Fixed a bug in which zero-length arguments for hash-valued
583    parameters (e.g. " --config foo= ") weren't being allowed.
584
585  - The tests now play better with environments in which version.pm is
586    pre-loaded, like in bleadperl. [John Peacock & Michael Schwern]
587
588  - Fixed a syntax error in one of the tests under perl 5.005.
589
590 0.2604 (Bug fix release in 0.26 series)   Wed Nov 17 14:32:42 CST 2004
591
592  - Fixed a split_like_shell() bug introduced in 0.2603 for Windows, in
593    which an array reference passed as an argument was returned as an
594    array reference, rather than as a list. [Spotted by Steve Hay]
595
596  - module_name() will now return '' instead of undef when module_name
597    is not set.  This eliminates a couple uninitialized-value
598    warnings. [Suggested by Michael Schwern]
599
600  - The expand_test_dir() method will now skip dotfiles (like ._foo.t,
601    which sometimes gets automatically created on Mac systems) when
602    'recursive_test_files' is in effect. [Tom Insam]
603
604 0.2603 (Bug fix release in 0.26 series)   Mon Nov 15 10:28:00 CST 2004
605
606  - Added documentation for the new_from_context() method.
607
608  - Completely rewrote the split_like_shell() method for the Windows
609    platform so it works like the command.com shell. [Randy Sims]
610
611 0.2602 (Bug fix release in 0.26 series)   Thu Nov  4 11:19:29 CST 2004
612
613  - The two bug fixes in 0.2601 gnashed against each other incorrectly,
614    resulting in a Win32 bug in split_like_shell().  Fixed.  [Spotted
615    by Steve Hay & Randy Sims]
616
617  - Removed a couple of 'use warnings' statements from the code - they
618    were causing compile failures on 5.005_04, where warnings.pm isn't
619    available. [Blair Zajac]
620
621 0.2601 (Bug fix release in 0.26 series)   Wed Nov  3 20:09:27 CST 2004
622
623  - Fixed some backslash problems with split_like_shell() on
624    Win32. [Steve Hay]
625
626  - Fixed a bug in split_like_shell() in which leading whitespace was
627    creating an empty word, manifesting as something like "gcc - no
628    such file or directory" during tests. [Spotted by Warren L. Dodge]
629
630 0.26  Sat Oct  9 17:51:01 CDT 2004
631
632  - Removed some language from the Module::Build::Compat documentation
633    that encouraged people to include a Build.PL without a Makefile.PL.
634    Also changed "a replacement for MakeMaker" to "an alternative to
635    MakeMaker" in the main documentation, which is basically what I
636    meant all along (i.e. a replacement for MakeMaker in your
637    particular build process - MakeMaker is never going to be fully
638    replaced in the perl world at large, of course), but some people
639    got the impression I was a little more truculent toward MakeMaker
640    than I really am.
641
642  - Added the formal concepts of "features" and "config data" for
643    distributions.  This allows the module author to define a certain
644    set of features that the user can switch on and off (usually
645    according to whether they have the proper prerequisites for them),
646    and to save build-time configuration information in a standardized
647    format.  See the main documentation of Module::Build for more
648    details.  (Note that the name of this system was called
649    "BuildConfig" for a while in beta, but now it's called
650    "ConfigData".)
651
652  - Added an 'auto_features' capability, which simplifies the process
653    of defining features that depend on a set of prerequisites.
654
655  - Added the 'get_options' parameter, which lets module authors
656    declare certain command-line arguments their Build.PL can accept
657    [David Wheeler]
658
659  - Changed the split_like_shell() method to use the shellwords()
660    function from Text::ParseWords (a core module since 5.0), which
661    does a much better job than the split() we were using.
662
663  - Added a 'testpod' action, which checks the syntactic validity of
664    all POD files in the distribution using Test::Pod.  This eliminates
665    the need for doing so in a regression test. [Initial patch by Mark
666    Stosberg]
667
668  - Added a process_files_by_extension() method, which generalizes the
669    kind of processing (essentially just copying) that happens for .pm
670    and .pod files, and makes it available to other user-defined types
671    of files.  See the new cookbook entry.
672
673  - Improved compatibility with version.pm when authors are using
674    version objects as their $VERSION variables.  Now
675    version_from_file() can deal with these objects.  Currently we
676    stringify them right away, but perhaps in the future we will
677    preserve them as objects for a while.
678
679  - During 'distdir' and 'distmeta' actions, die a bit more gracefully
680    if there's no MANIFEST (i.e. explicitly say that a MANIFEST is
681    required). [Spotted by Adrian Howard]
682
683  - Eliminated a recursive dependency between creating the MANIFEST
684    file and creating the META.yml file.  [Spotted by Dave Rolsky]
685
686  - On Win32, where a single directory might be known variously as
687    "Module-Build-0.25_03" or "MODULE~1.25_", we now use
688    Win32::GetShortPathName($cwd) to verify that the 'Build' script is
689    being run from the correct directory, rather than just a string
690    comparison.
691
692  - The add_to_cleanup() method will now accept glob()-style patterns
693    in addition to explicit filenames.  Also documented the fact that
694    they can be specified in either Unix-style or native-style
695    notation.
696
697  - Passing a PREFIX value to a pass-through Makefile 'make install'
698    now has the same effect as passing it to 'perl Makefile.PL' (it
699    dies with a helpful message).
700
701  - Added the 'testcover' action, which runs a test suite using
702    Devel::Cover.  [Dave Rolsky]
703
704  - Added the 'lib' and 'arch' installation directories to the search
705    path for the 'diff' action, since they won't necessarily (though
706    they usually will) be in @INC at installation time. [Suggested by
707    Kevin Baker]
708
709  - The "=head3" POD directive isn't supported in older podlators
710    (particularly Pod::Man), so we don't use it anymore.
711
712  - Fixed a typo & improved the docs in the SUBCLASSING section. [Ron
713    Savage]
714
715  - Added the '.tmp' suffix to the default MANIFEST.SKIP file, which
716    should avoid adding things like pod2htmi.tmp to the MANIFEST [Ron
717    Savage]
718
719  - Backup files from Emacs, containing the string '.#' in their names,
720    should no longer find their way into the blib/ directory (and from
721    there into installation directories).
722
723  - Worked around an unpleasant interaction between version.pm and the
724    version-checking code that makes sure Module::Build's version
725    hasn't changed during the lifetime of the 'Build' script. [Reported
726    by Trevor Schellhorn]
727
728  - Fixed a problem in htmlify_pods() that would produce test failures
729    on Cygwin (and probably elsewhere).  [Yitzchak Scott-Thoennes]
730
731  - Fixed a test failure on Cygwin (and probably elsewhere) in
732    t/compat.t, resulting from empty environment variables being set to
733    the empty string (as opposed to simply being unset) by their mere
734    presence in the "EXPORT:" list.
735
736  - Fixed a fatal error that occurred when the author specified
737    'dist_author' manually in their Build.PL script. [Spotted by Ron
738    Savage]
739
740  - The 'provides' section of the META.yml file wasn't being built
741    properly on Win32, because of a mismatch between URL-format and
742    native-format pathnames.  Fixed.  [Reported by Robert Rothenberg]
743
744  - The progress message "lib/Foo.xs -> lib/Foo.c" was previously being
745    output even when the Foo.c file wasn't being rebuilt.  It's now
746    fixed.
747
748  - Fixed a couple of places in Compat.pm where it could have forgotten
749    which perl interpreter it had been run with ($^X isn't very
750    trustworthy).
751
752  - On some systems, the way we updated the timestamp on the
753    "lib/Foo.bs" file (one of the output files for XS-based modules)
754    was failing.  It's been replaced by a simple call to utime().
755
756  - Fixed a problem in t/compat.t that prevented it from being run
757    individually using 'make test TEST_FILES=t/compat.t'.  The problem
758    was that a couple environment variables (TEST_FILES, MAKEFLAGS)
759    were being passed through to subprocesses, and confused them.
760
761  - Fixed an important typo in the documentation for the 'install_base'
762    parameter ('libdoc' and 'bindoc' were switched). [Ray Zimmerman]
763
764  - The pass-through Makefiles (type 'small' or 'passthrough') now
765    support the TEST_FILES parameter to 'make test'.
766
767  - Fixed a fatal error that would occur on perl 5.005 when building
768    HTML documentation, because its version of Pod::Html was old and
769    didn't like some of the parameters we fed it. [Spotted by Blair
770    Zajac]
771
772  - The final line of the generated pass-through Makefile was missing
773    its trailing newline, which is now fixed. [Chip Salzenberg]
774
775  - We now depend on YAML version at least 0.35 and at most version
776    0.49, so that we don't pick up a new (and backward-incompatible) beta
777    version from CPAN.
778
779  - Squashed a warning in t/basic.t about '"Foo::Module::VERSION" used
780    only once', and one in PPMMaker about $^V being undefined. [Blair
781    Zajac]
782
783  - Added a couple temporary output files from HTML documentation
784    generation to the cleanup list.  [Toby Ovod-Everett]
785
786  - The PodParser module will now only extract paragraphs in the
787    'AUTHOR' section of the pod if they contain an '@' character.  This
788    tends to do a better job, heuristically speaking, of returning
789    relevant stuff.
790
791  - Added regression tests and a helper method ( add_build_elements() )
792    for adding new elements to the build process.  Also some
793    documentation.
794
795  - Wrote a recipe in the Cookbook for adding new elements to the build
796    process, and a recipe for changing the order in which the steps in
797    the build process will occur.
798
799 0.25  Sun Apr 25 11:12:36 CDT 2004
800
801  - During the 'distdir' action, if no MANIFEST.SKIP file exists, we
802    will now create a reasonable default one. [Randy Sims]
803
804  - In Makefile compatibility mode, some arguments (like UNINST,
805    TEST_VERBOSE, etc.) given to 'make' are now recognized and passed
806    through to Module::Build. [Randy Sims]
807
808  - The regression tests now make sure that several pass-through
809    Makefile.PL parameters are dealt with correctly.
810
811  - Added support for the 'LIB' parameter to passthrough
812    Makefile.PLs. [Spotted by Jesse Erlbaum]
813
814  - Passing a 'PREFIX' parameter to a passthrough Makefile.PL was
815    supposed to make it die with a helpful error message, but instead
816    it just ignored it and blindly tried to install to the wrong place.
817    This is now fixed.  [Spotted by Jesse Erlbaum]
818
819  - Added an extra_compiler_flags() accessor method.
820
821  - If the 'recursive_test_files' option was turned on, the test files
822    weren't sorted, but returned in an apparently random order.  Now
823    they're sorted.  [Martyn Peck]
824
825  - Documented the 'tar' and 'gzip' parameters to the 'dist' and
826    'ppmdist' actions.
827
828  - The generation of HTML documentation now works (it was accidentally
829    partially implemented with an itchy patch-application finger in
830    0.24).  [Randy Kobes]
831
832  - Fixed a fatal bug when building META.yml with YAML.pm and
833    'dynamic_config' is set. [Reported by Jaap Karssenberg]
834
835  - Fixed some incorrect error messages that occurred when
836    compiling/linking C sources went awry.
837
838  - If the author uses a custom builder subclass, that subclass will
839    now be loaded correctly in the passthrough Makefile.PL if the
840    author uses the 'small' or 'passthrough' Makefile.PL options in
841    Module::Build::Compat. [Martyn Peck and Jaap Karssenberg]
842
843  - If the author uses a custom builder subclass created dynamically
844    through the subclass() method, passthrough Makefile.PLs (of type
845    'passthrough' or 'small') didn't work properly, because the custom
846    builder module wouldn't be loaded at the right time.  This has been
847    fixed.  [Reported by Toby Ovod-Everett]
848
849  - In M::B-generated 'traditional' Makefile.PLs, the entries in
850    'PREREQ_PM' are now sorted ASCIIbetically rather than randomly.
851
852  - The install_types() method will now return any additional types
853    given as 'install_path' arguments, as well as all elements of the
854    current 'install_sets' entry.  This makes it easier to add new
855    types of installable objects to the mix.
856
857  - As a consequence of the previous change, there is no longer any
858    need to have an explicit 'install_types' data member, so it has
859    been removed.
860
861  - In the second example code for the Module::Build->subclass()
862    method, the Module::Build module needed to be loaded before calling
863    its methods. [John Peacock]
864
865  - Fixed minor error in the POD structure of Module::Build and
866    Module::Build::Platform::VMS docs.
867
868
869 0.24  Wed Feb 25 15:57:00 CST 2004
870
871  - Fixed a problem with incude_dirs not being propagated to the 'ccs'
872    file when compiling XS files on Win32. [Randy Sims and Steve Hay]
873
874  - In 0.23, Module::Build::Compat->fake_makefile() started choking
875    when no 'build_class' parameter was supplied in the Makefile.PL.
876    Since these Makefile.PLs still exist on CPAN, we now default
877    'build_class' to 'Module::Build', which was the old 0.22 behavior
878    anyway.  [Reported by Martin Titz and Jeremy Seitz]
879
880  - Added documentation for the 'include_dirs' parameter to
881    new(). [Steve Hay]
882
883  - Changed the no-op command on Win32 from 'rem' to 'rem>nul' inside
884    pass-through Makefiles. [Randy Sims]
885
886  - The 'autosplit' parameter now accepts an array reference if
887    multiple files should be split. [Jaap Karssenberg]
888
889  - find_perl_interpreter() will now use $^X (if absolute), $ENV{PATH}
890    (if $^X isn't absolute), and $Config{perlpath}, in that order.
891    Also, we now make darn sure the result is the same version of perl,
892    by checking Config::myconfig() for a match against the current
893    perl.  [Reported by Edward Sabol]
894
895  - Fixed a fatal error on Win32 (and any other platform that doesn't
896    define an installation location for Unix-style man pages) during
897    installation.
898
899 0.23  Sun Feb  8 22:01:18 CST 2004
900
901  - Fixed a compatibility problem in pass-through Makefiles (created by
902    Module::Build::Compat).  Some 'make' utilities (for example, BSD
903    make) didn't like a '@' by itself on a line, so we stole some
904    'NOOP' code from MakeMaker to fix it. [Reported by Mathieu Arnold]
905
906  - Added a 'ppm_dist' action, which just makes the PPD file and then
907    makes a tarball out of the blib/ directory. [Randy Sims]
908
909  - The @INC of the parent process is now propagated to child processes
910    when processing *.PL files. [Reported by Jaap Karssenberg]
911
912  - We now only attempt to fix the shebang line on a script if the
913    shebang line matches the regex /perl/i .  This fixes some instances
914    where people put shell scripts in their distributions. [Jaap
915    Karssenberg]
916
917  - We no longer generate a 'requires', 'recommends', 'conflicts',
918    etc. entry in the META.yml file if there's no data to go in it.
919
920  - Added a documentation reference to Michael Schwern's wiki for tips
921    on conversion from MakeMaker to M::B. [Randy Sims]
922
923  - If there are script_files, we now add EXE_FILES to the
924    'traditional' Makefile.PL generated by M::B::Compat. [Suggested by
925    Yuval Kogman]
926
927  - Documented the 'test_files' parameter to new(). [Reported by Tony
928    Bowden]
929
930  - Fixed a problem in "Build help <action>", which didn't find the
931    correct help chunk if <action> was the final element in a POD
932    list. [Jaap Karssenberg]
933
934  - Fixed a problem in the get_action_docs() method which gave
935    incorrect results if the method was called more than once in the
936    same program.
937
938  - Fixed a problem in which actions defined by user subclasses
939    wouldn't be available via the pass-through Makefiles created by
940    Module::Build::Compat. [Reported by Jaap Karssenberg]
941
942  - We now use Data::Dumper instead of our own ad-hoc serialization
943    routines to create the 'traditional' Makefile.PL
944    arguments. [Suggested by Yuval Kojman]
945
946 0.22  Sat Jan 10 22:05:39 CST 2004
947
948  - On Unixish platforms, the syntax "FOO=BAR /bin/baz arg arg" now
949    works when present in $Config{ld}.  This solves a problem on Mac OS
950    X 10.3. [Reported by Adam Foxson]
951
952  - The have_c_compiler() now also tests whether the linker seems to
953    work too.
954
955  - Fixed a problem with creating the distribution tarball in which
956    permissions would usually be all read-only.  We now use our own
957    file-copying routines rather than those in ExtUtils::Manifest,
958    because those do some annoying extra permissions-setting stuff for
959    no apparent reason.  It makes me happy that this was a very very
960    easy patch to make.  [Reported by Thomas Klausner]
961
962  - The compile_c() method now includes $Config{cccdlflags} in its
963    command invocation.  It's usually empty, but not always, so we
964    didn't notice for a while. [Richard Clamp]
965
966  - On some platforms it's common to have a $Config{make} defined, but
967    no 'make' utility actually available.  We now detect this and skip
968    some 'make' compatibility tests. [Randy Sims]
969
970  - Fixed a spurious testing failure on non-Unix platforms that
971    happened because we accidentally call localize_file_path() on empty
972    strings in the test suite. [Spotted by Randy Sims on Windows]
973
974  - Made the 'name', 'abstract', 'author', and 'version' properties
975    required when building a PPD file. [Spotted by Randy Sims, Dave
976    Rolsky, & Glenn Linderman]
977
978  - When building a 'traditional' Makefile.PL with
979    Module::Build::Compat, we now use 'VERSION_FROM' when possible,
980    rather than always using 'VERSION'.  This way the Makefile.PL
981    doesn't have to get modified every release.
982
983  - Made some fixups to the 'PPM' info-file, improving compatibility
984    with ActiveState's PPM tools. [Randy Sims, Glenn Linderman]
985
986  - The 'dist_author' property can now accept multiple authors, see the
987    docs for more info. [Randy Sims]
988
989  - If the user doesn't have YAML.pm installed during ACTION_dist, we
990    now create a minimal YAML.pm anyway, without any dependency
991    information.
992
993  - The 'distribution_type' field is no longer created in META.yml
994    files, in accordance with the finding made at the London CLPAN
995    meeting that it's essentially meaningless and ill-defined.
996
997  - The 'dist' action now accepts an optional 'tar' parameter to use a
998    system utility for building the tarball, and a 'gzip' parameter for
999    compressing it.  If these are used, Archive::Tar won't be invoked.
1000    This was added because Archive::Tar is producing some very
1001    non-cross-platform tarballs that many tar utilities can't handle.
1002
1003  - During testing, if YAML.pm isn't installed, then we won't try
1004    making a tarball either, since this would invoke YAML to create the
1005    META.yml file.
1006
1007  - Fixed a problem with chmod() being called incorrectly on MacOS
1008    (i.e. MacPerl, not Mac OS X).  [Spotted by Paul Sanford Toney]
1009
1010  - Fixed a problem with the --config flag not being treated properly
1011    (essentially ignored) on the command line for 'perl Build.PL' or
1012    'Build <action>'. [Spotted by Jakub Bogusz]
1013
1014  - Added a new config() method to get at the Build object's notion of
1015    the %Config hash.
1016
1017  - Test::Harness is starting to contend for the Most Crotchety Module
1018    Award.  Work around a few of its nits when setting harness
1019    switches. [Spotted by Diab Jerius]
1020
1021  - Now the Build script will die() if we're run from the wrong
1022    directory, rather than trying to chdir() to what it thinks is the
1023    right directory and do its work there.  See
1024    https://rt.cpan.org/Ticket/Display.html?id=4039 . [Chris Dolan]
1025
1026  - Changed the manpage separator on OS/2 to '.'. [Ilya Zakharevich]
1027
1028  - On OS/2, disable C compilation, since apparently it isn't working
1029    there. [Reported by Ilya Zakharevich]
1030
1031  - Inserted a comment into auto-generated Makefile.PLs saying it was
1032    auto-generated. [Randy Sims]
1033
1034  - Fixed some annoying behavior in generated passthrough Makefile.PLs
1035    when the user chose not to install Module::Build, or if
1036    installation failed. [Reported by Ilya Zakharevich and Richard
1037    Clamp]
1038
1039  - Moved the documentation for 'codebase' to the section where it's
1040    relevant. [Randy Sims, Glenn Linderman]
1041
1042  - Fixed a have_c_compiler() failure on some platforms, we now define
1043    a boot_compilet() function (since we're compiling a library, not an
1044    executable). [Randy Sims]
1045
1046  - Added a recipe to the Module::Build::Cookbook describing how to
1047    maintain compatibility with older versions of CPAN.pm [Jim Cromie]
1048
1049  - Removed caveat about "looking for alternatives" in how hashes are
1050    specified on the command line, since an alternative has been found.
1051
1052  - Previously most warnings about optional prerequisites looked like
1053    they were actually error messages about required prerequisites.
1054    This has been corrected. [Reported again by Sagar Shah]
1055
1056  - Added support for building XS (and C in general) stuff on AIX.
1057    This was done by a small reorganization of prelink_c() method from
1058    Windows.pm to Build.pm, and it is only invoked for the platforms
1059    that need it invoked.  AIX also massages some very naughty bits
1060    (MakeMaker macro variables) in $Config{lddlflags} that should never
1061    have been put there, but alas, they're there, so we find & resolve
1062    them.
1063
1064  - Added OS/2 ($^O = 'os2') to the list of Unix-like platforms.  This
1065    basically means that most platform-specific operations will be done
1066    in a Unix-like manner.
1067
1068  - Pass-through Makefiles will now die() when they're given a PREFIX
1069    parameter, and suggest using 'destdir' or 'install_base' instead.
1070    Previously they just ignored the parameter and tried to install to
1071    the default location, which is clearly not what the user wanted.
1072
1073  - Updated my email address in the documentation to a more recent
1074    variant.
1075
1076  - Add NetBSD to the list of Unix-like systems. [Adrian Bunk]
1077
1078  - Add SVR5 to the list of Unix-like systems. [Rafael Garcia-Suarez]
1079
1080  - We now use Pod::Parser to find the ABSTRACT and AUTHOR when it's
1081    available on the system. [initial patch by Randy Sims]
1082
1083  - Fixed a little scalar/list buglet in a documentation example.
1084
1085 0.21  Wed Oct 15 20:47:05 CDT 2003
1086
1087  - Added a have_c_compiler() method.
1088
1089  - Added documentation for the requires(), recommends(),
1090    build_requires(), and conflicts() methods.
1091
1092  - On Unix platforms, we now create the "Build" script with a #! line
1093    matching the perl interpreter that was used to invoke the Build.PL
1094    script, rather than whatever is in $Config{startperl}.  This avoids
1095    a potential warning about the interpreters not matching. [Spotted
1096    by Ken Y. Clark]
1097
1098  - The Unix version now uses the safer multi-argument form of system()
1099    when building distribution tarballs.
1100
1101  - Added a regression test for the 'dist' action to the t/runthrough.t
1102    test.
1103
1104  - Fixed a problem with File::Spec usage when creating the names of
1105    'libdoc' manual pages - the code wasn't dealing with the volume or
1106    file portions correctly on certain platforms.
1107
1108  - When creating the names of the 'libdoc' manual pages, we no longer
1109    assume that pods are under the hard-coded paths 'blib/lib' or
1110    'blib/arch'.
1111
1112  - Fixed a crashing bug that could sometimes occur when the
1113    distribution contained no 'lib' directory. [Chris Dolan]
1114
1115  - Fixed a crashing bug that happened when the user had .PL files in
1116    the lib/ directory and didn't explicitly name them in a hash
1117    reference to the new() constructor. [Chris Reinhardt, bug #4036]
1118
1119  - .PL files are now passed the names of their target file(s) on the
1120    command line when they run.
1121
1122  - When YAML.pm wasn't installed, t/runthrough.t wasn't properly
1123    skipping some tests that required YAML.  This is now fixed.
1124    [Stephen J. Smith]
1125
1126  - Added documentation for the dist_version() and dist_name()
1127    methods. [Spotted by Johan Vromans]
1128
1129  - Existing values in $ENV{HARNESS_PERL_SWITCHES} are now respected
1130    and not squashed when we run the 'test' action. [Paul Johnson]
1131
1132  - On cygwin, the separator string for manual page names has been set
1133    to '.'.  Previously it was '::', inherited from Unix. [Yitzchak
1134    Scott-Thoennes]
1135
1136  - Avoid a warning when Build.PL is run (i.e. when the new() method is
1137    called) and no MANIFEST file exists. [Michael Schwern and Kevin
1138    Ruscoe]
1139
1140  - Added documentation for the 'code' and 'docs' actions. [Steve
1141    Purkis and Mark Stosberg]
1142
1143  - The internal method compile_support_files() has been renamed to
1144    process_support_files() in order to make it consistent with other
1145    processing methods.  Note that it was never documented using the
1146    old name.  It's still not documented, actually.  Maybe later.
1147
1148  - Skip the 'write' pseudo-entry in the 'diff' action's installation
1149    map. [Chris Dolan]
1150
1151  - Fixed a bug in which notes() set in the Build.PL before
1152    create_build_script() was called would get lost unless more notes()
1153    were also set afterwards. [Spotted by Dave Rolsky]
1154
1155  - The process of building elements of the distribution is now driven
1156    by a list of build elements, paving the way for letting people add
1157    their own types of build elements in future versions of
1158    Module::Build (or in the current version with some difficulty).
1159
1160  - Fixed some linking errors on Cygwin. [Randy Sims, Terrence Brannon]
1161
1162  - Fixed a line-ending problem with detecting the dist_abstract
1163    properly on Cygwin. [Randy Sims]
1164
1165  - Fixed a problem with signatures that occurred if 'distsign' was
1166    called before 'distdir' - the signature would be generated twice.
1167
1168  - Added a 'create_readme' parameter to new(), which will use
1169    Pod::Text to generate a README from the main (dist_version_from)
1170    module file during the 'distdir' action.
1171
1172  - We now refuse to run the 'Build' script if it was created using a
1173    different version of Module::Build.  This has caused a couple of
1174    nasty bugs in the past, I don't want to know what it would cause in
1175    the future.
1176
1177  - Documentation for do_system() has been added. [Dave Rolsky]
1178
1179  - run_perl_script() is now available as a class method, though it
1180    will need to (re-)find the perl interpreter in this case.
1181
1182  - Added a new_from_context() method that authors of automated tools
1183    like CPANPLUS and CPAN can use instead of running all tasks as
1184    sub-processes.  We also use it in the regression tests for
1185    Module::Build itself.  ** Note that this method is currently
1186    undocumented because its name may change in the future. **
1187
1188  - When signing distributions with Module::Signature, we now
1189    automatically add the SIGNATURE file to the MANIFEST, avoiding an
1190    unpleasant chicken/egg problem for the module author.
1191    [unpleasantness spotted by sungo]
1192
1193  - In Module::Build::Compat, added support for the 'verbose' parameter
1194    to Makefile.PL [spotted by Soren Andersen, fixed by Michael
1195    Schwern]
1196
1197  - The Module::Build distribution now has a cryptographic 'SIGNATURE'
1198    file created by Module::Signature.
1199
1200  - Added proper documentation for the subclass() method. [spotted by
1201    Jonathan Steinert]
1202
1203  - Worked around a Config.pm bug in Red Hat 9 which prevented man
1204    pages from being installed in the correct places. [spotted by Ville
1205    Skytta]
1206
1207  - Fixed a Module::Build::Compat bug in which setting INSTALLDIRS
1208    caused a crash. [spotted by Ilya Martynov]
1209
1210 0.20  Tue Aug 26 14:34:07 CDT 2003
1211
1212  - Separated the 'build' action into two separate actions, 'code' and
1213    'docs'.  This is similar to MakeMaker's separation of the 'all'
1214    target into 'pure_all' and 'manifypods'.  This fixes a permissions
1215    hassle in which doing 'sudo Build install' would often create local
1216    doc files that needed superuser permissions to delete.
1217
1218  - Enhanced the 'help' action - 'Build help foo' will now show the POD
1219    documentation for the 'foo' action.
1220
1221  - Added a notes() feature, which helps share data transparently
1222    between the Build.PL and t/*.t scripts.
1223
1224  - The installation process will now create man(1) and man(3) pages
1225    from POD in modules & scripts, and install them.  We don't build
1226    man pages when there's nowhere to install them, such as on some
1227    Win32 or most Mac systems.  [large patch by Steve Purkis, 5.005 fix
1228    by Mathieu Arnold]
1229
1230  - The 'distdir' action now copies files to the distribution
1231    directory, rather than making them hard links to the original
1232    files.  This allows authors to do last-minute alterations of the
1233    files without affecting the originals. [Dave Rolsky]
1234
1235  - If the author uses XS files in nonstandard locations, the copied
1236    versions of those files will now be cleaned up properly.
1237
1238  - In invoking the 'test' action or invoking 'xsubpp', we now use the
1239    same perl executable as we use everywhere else, rather than blindly
1240    using $^X or $Config{perlpath} (neither of which are very
1241    reliable).
1242
1243  - Fixed a problem with the 'install_path' parameter given to
1244    'Build.PL' being lost in subsequent actions. [Reported by Mathieu
1245    Arnold]
1246
1247  - Fixed yet another bug with installation directories, in which the
1248    'install_base' parameter wasn't being respected on the command
1249    line.  [Spotted by Jonathan Swartz]
1250
1251  - Changed the way the depends_on() method works inside action
1252    subroutines - now each action will only run once per dispatch()
1253    invocation (similar to how perl's require() function works).  This
1254    helps avoid some difficult problems with dependency loops.
1255
1256  - Changed the documentation for the 'autosplit' parameter to give
1257    reasons why it may not be a good idea to use, but no longer
1258    threaten to remove it.  [Suggested by Martyn J. Pearce]
1259
1260  - Improved the formatting of the 'traditional' Makefile.PL generated
1261    by Module::Build::Compat->create_makefile_pl. [Michael Schwern]
1262
1263  - The 'traditional' Makefile.PL will now use the 'module_name'
1264    parameter (as NAME) if it's available, otherwise it will continue
1265    to use the 'dist_name' (as DISTNAME). [Michael Schwern]
1266
1267  - Created read/write accessor methods for all our 'properties'.
1268    [Michael Schwern]
1269
1270  - The 'test_files' parameter can now be specified using glob() syntax
1271    (i.e. 't/*.t'), and the corresponding test_files() method is now a
1272    read/write accessor.
1273
1274  - The location of the 'blib' directory is now a property of the Build
1275    object - nobody is likely to notice this change, with any luck, but
1276    it makes the design and code cleaner.
1277
1278  - The 'disttest' and 'distsign' methods now chdir() back to the
1279    directory where they started, rather than to the base_dir of the
1280    build.
1281
1282  - Improved comparisons of version strings containing underscore
1283    characters (indicating "beta" status). [Steve Purkis]
1284
1285  - Added documentation for the 'dist_author', 'dist_abstract', and
1286    'codebase' parameters to new(), and for the 'ppd' action. [Dave
1287    Rolsky]
1288
1289  - Added documentation for the up_to_date() and contains_pod()
1290    methods. [Dave Rolsky]
1291
1292  - 'traditional' pass-through Makefile.PLs will now contain an
1293    INSTALLDIRS parameter matching the Build.PL's 'installdirs'
1294    setting.
1295
1296  - version_from_file() now ignores $VERSION variables that are defined
1297    in POD or comments.  It can still be tricked by $VERSIONs in string
1298    literals, though.  [Steve Purkis]
1299
1300  - The code to find packages in module files now uses Steve's scanning
1301    method (above) to skip package-declaration-lookalikes in POD or
1302    comments.
1303
1304  - The 'disttest' action will now propagate its @INC settings to its
1305    subprocesses.
1306
1307 0.19  Wed Jul  9 22:34:02 CDT 2003
1308
1309  - Added support for the 'install_path' parameter, which allows custom
1310    specification of where things should be installed.  This is a major
1311    improvement to Module::Build's functionality.
1312
1313  - Added the 'install_base' parameter.  Provides an easy way to
1314    install to local or alternative directory trees.
1315
1316  - We now install scripts by default to $Config{installsitebin}
1317    instead of $Config{installscript}.  Neither is a great choice, but
1318    the former is likely to be [analogous to] /usr/local/bin, and the
1319    latter is likely to be [something like] /usr/bin .  If/when there's
1320    a $Config{installsitescript}, we'll start using that automatically.
1321
1322  - Fixed a problem on Win32 in which C and XS files wouldn't be
1323    compiled properly, and the user would see an error about 'Can't
1324    locate object method "format_compiler_cmd"'.
1325    (http://rt.cpan.org/Ticket/Display.html?id=2391)
1326
1327  - We now use the correct perl interpreter (via
1328    Module::Build->find_perl_interpreter) in pass-through makefiles.
1329
1330  - The t/compat.t test now uses $Config{make} instead of just 'make'
1331    to test makefile compatibility.  This fixes some failures on Win32.
1332    We also skip this test entirely if no make utility is available.
1333
1334  - Alternative distribution layouts are now supported via the
1335    'pm_files', 'pod_files', 'xs_files', 'PL_files', and 'script_files'
1336    parameters to new().  This should help people transition from
1337    MakeMaker, and might even help us write an automatic transition
1338    tool.
1339
1340  - Added tests to t/runthrough.t that check to see installation is
1341    happening correctly.
1342
1343  - Added experimental code to build a .ppd file, in support of
1344    ActiveState's "Perl Package Manager". [original patch by Dave
1345    Rolsky]
1346  
1347  - For authors who use Module::Signature to sign their distributions,
1348    we now create the SIGNATURE file right in the distribution
1349    directory, rather than creating it in the top-level directory and
1350    copying it into place.  This solves problems related to having
1351    files get out of date with respect to their signatures.
1352  
1353  - We now don't depend on Module::Info to scan for packages during the
1354    'dist' action anymore, because it's way too aggressive about
1355    loading other modules that you may not want loaded.  We now just
1356    (ick, yuck) scan the .pm files with a regular expression to find
1357    "package Foo::Bar;" statements.
1358
1359  - Silenced some annoying copyright/logo output from Microsoft 'nmake'
1360    during Makefile compatibility testing. [Randy W. Sims]
1361
1362  - Command-line arguments may now either be specified using the syntax
1363    '--foo foovalue' as well as the traditional syntax 'foo=foovalue'.
1364    The former is often more convenient for shell tab-completion when
1365    the value is a filename (as in 'Build test --test_files t/basic.t').
1366
1367  - Command-line arguments may now include non-named parameters, which
1368    make some actions more natural.  For instance, the 'diff' action
1369    may now be invoked as 'Build diff -u' rather than as
1370    'Build diff flags=-u'.
1371
1372  - Pass-through Makefile.PLs now convert unknown Makefile.PL
1373    parameters to lower-case and hand them to Build.PL, rather than
1374    ignoring them.  This means we only have to account for the
1375    differences in the interface, not the entire interface, in
1376    translating parameters.
1377
1378  - We now issue a warning & don't proceed if asked to make a distdir
1379    and there's no MANIFEST or it's empty.
1380
1381  - Moved INSTALL to INSTALL.txt to increase compatibility with various
1382    odd versions of 'make' during 'make install' on case-insensitive
1383    filesystems (like nmake on Win32, often).  Only affects the
1384    Makefile compatibility layer.  [reported by Andrew Savige]
1385
1386  - Module::Build->known_actions() now works as a class method.
1387
1388  - Pass-through makefiles now list each action individually rather
1389    than using a ".DEFAULT" catch-all.  This improves compatibility
1390    with 'nmake' on Win32, and probably some other less common 'make'
1391    dialects.  [Andrew Savige]
1392
1393  - We're now more aggressive about testing the pass-through makefiles,
1394    e.g. making sure they can run 'all' and 'test' targets, and making
1395    sure the Makefile itself actually exists.
1396
1397  - Fixed a problem with check_installed_status() when installed
1398    version contains non-numeric characters like underscores.
1399
1400  - Fixed a problem with a bareword 'File::Spec' in one of the test
1401    scripts that caused it not to compile under 5.8.0 (but is fine
1402    under 5.6).
1403
1404  - Fixed a problem with the 'destdir' installation parameter on
1405    platforms that have volume identifiers in path names (like "C:" on
1406    Win32).  The identifier is now stripped from installation
1407    directories before prepending the destdir path.  The destdir path
1408    may still have a volume identifier on it.
1409
1410  - Added an 'add_to_cleanup' parameter to new() that calls
1411    add_to_cleanup() immediately for the given files.
1412
1413  - The distribution directory (e.g. Sample-Module-0.13/ ) will now be
1414    deleted during the 'clean' or 'realclean' actions.
1415  
1416  - During testing of modules, blib/lib and blib/arch are now added as
1417    absolute paths, not relative.  This helps tests that load the
1418    modules at runtime and may change the current working directory
1419    (like Module::Build itself does during testing).
1420  
1421  - The $Config{cc} entry on some people's systems is something like
1422    'ccache gcc', so we now split that string using split_like_shell().
1423    [Richard Clamp]
1424
1425  - Added documentation for 'extra_linker_flags' parameter, and added a
1426    corresponding 'extra_compiler_flags' parameter. [original patch by
1427    Richard Clamp]