This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Refactor die_exit.t to loop over a list, rather than iterate on an hash.
[perl5.git] / cpan / Module-Build / Changes
1 Revision history for Perl extension Module::Build.
2
3 0.3800 - Sat Mar  5 15:11:41 EST 2011
4
5   Summary of major changes since 0.3624:
6
7     [ENHANCEMENTS]
8
9     - Generates META.json and MYMETA.json consistent with version 2 of the
10       CPAN Meta Spec. [David Golden]
11
12   Also in this release:
13
14   [BUG FIXES]
15
16   - Autogenerated documentation no longer includes private actions from
17     Module::Build's own release subclass. [Report by Timothy Appnel,
18     fix by David Golden]
19
20 0.37_06 - Mon Feb 28 21:43:31 EST 2011
21
22   [BUG FIXES]
23
24   - prerequisites with the empty string instead of a version are
25     normalized to "0".  (RT#65909)
26
27   [OTHER]
28
29   - More Pod typo/link fixes [Hongwen Qiu]
30
31 0.37_05 - Sat Feb 19 20:43:23 EST 2011
32
33   [BUG FIXES]
34
35   - fixes failing ppm.t in perl core
36
37   [OTHER]
38
39   - Pod typo fixes [Hongwen Qiu]
40
41 0.37_04 - Wed Feb 16 15:27:21 EST 2011
42
43   [OTHER]
44
45   - moved scripts/ to bin/ for less confusing porting to bleadperl
46
47 0.37_03 - Wed Feb 16 09:54:05 EST 2011
48
49   [BUG FIXES]
50
51   - removed an irrelevant test in t/actions/installdeps.t that was causing
52     failures on some Cygwin platforms
53
54   [OTHER]
55
56   - dropped configure_requires as some CPAN clients apparently get
57     confused by having things in both configure_requires and requires
58
59   - bumped Parse::CPAN::Meta build prereq to 1.4401
60
61   - bumped CPAN::Meta prereq to 2.110420
62
63   - Pod typo fixes [Hongwen Qiu]
64
65 0.37_02 - Mon Feb  7 21:05:30 EST 2011
66
67   [BUG FIXES]
68
69   - bumped CPAN::Meta prereq to 2.110390 to avoid a regression in 2.110360
70
71 0.37_01 - Thu Feb  3 03:44:38 EST 2011
72
73   [ENHANCEMENTS]
74
75   - Generates META.json and MYMETA.json consistent with version 2 of the
76     CPAN Meta Spec. [David Golden]
77
78   [BUG FIXES]
79
80   - t/signature.t now uses a mocked Module::Signature; this should be
81     more robust across platforms as it only needs to confirm that
82     Module::Build is calling Module::Signature when expected
83
84   [OTHER]
85
86   - Added CPAN::Meta and Parse::CPAN::Meta to prerequisites and dropped
87     CPAN::Meta::YAML
88
89 0.3624 - Thu Jan 27 11:38:39 EST 2011
90
91   - Fixed pod2html directory bugs and fixed creation of spurious blib
92     directory in core perl directory when running install.t (RT#63003)
93     [Chris Williams]
94
95 0.3623 - Wed Jan 26 17:45:30 EST 2011
96
97   - Fixed bugs involving bootstrapping configure_requires prerequisites
98     on older CPANPLUS clients or for either CPAN/CPANPLUS when using
99     the compatibility Makefile.PL
100
101   - Added diagnostic output when configure_requires are missing for
102     the benefit of users doing manual installation
103
104 0.3622 - Mon Jan 24 21:06:50 EST 2011
105
106   - No changes from 0.36_21
107
108 0.36_21 - Fri Jan 21 11:01:28 EST 2011
109
110   - Changed YAML::Tiny references to the new CPAN::Meta::YAML module
111     instead, which is the YAML-variant that is going into the Perl core
112
113 0.36_20 - Fri Dec 10 15:36:03 EST 2010
114
115   *** DEPRECATIONS ***
116
117   - Module::Build::Version has been deprecated.  Module::Build now depends
118     directly upon version.pm.  A pure-perl version has been bundled in inc/
119     solely for bootstrapping in case configure_requires is not supported.
120     M::B::Version remains as a wrapper around version.pm.
121
122   - Module::Build::ModuleInfo has been deprecated.  Module::Build now
123     depends directly upon Module::Metadata (which is an extraction of
124     M::B::ModuleInfo intended for general reuse).  A pure-perl version has
125     been bundled in inc/ solely for bootstrapping in case
126     configure_requires is not supported. M::B::ModuleInfo remains as a
127     wrapper around Module::Metadata.
128
129   - Module::Build::YAML has been deprecated.  Module::Build now depends
130     directly upon YAML::Tiny.  M::B::YAML remains as a subclass wrapper.
131     The YAML_support feature has been removed, as YAML is now an ordinary
132     dependency.
133
134 0.36_19 - Tue Dec  7 13:43:42 EST 2010
135
136   Bug fixes:
137
138   - Perl::OSType is declared as a 'configure_requires' dependency, but is
139     also bundled in inc (and loaded if needed) [David Golden]
140
141 0.36_18 - Mon Dec  6 16:46:49 EST 2010
142
143   Changes:
144
145   - Added dependency on Perl::OSType to refactor and centralize
146     management of OS type mapping [David Golden]
147
148   - When parsing a version number out of a file, any trailing alphabetical
149     characters will be dropped to avoid fatal errors when comparing version
150     numbers.  These would have been dropped (with a warning) anyway during
151     an ordinary numeric comparison. (RT#56071) [David Golden]
152
153   Bug fixes:
154
155   - A Perl interpreter mismatch between running Build.PL and running Build
156     is now a fatal error, not a warning (RT#55183) [David Golden]
157
158   - Bundled Module::Build::Version updated to bring into sync with CPAN
159     version.pm 0.86 [David Golden]
160
161   - No longer uses fake user 'foo' in t/tilde (RT#61793) [David Golden]
162
163   - Won't fail tests if an ancient Tie::IxHash is installed
164     [Christopher J. Madsen]
165
166   - Correctly report missing metafile field names [David Golden]
167
168   - Suppress uninitialized value errors during Pod creation
169     on ActiveState Perl [David Golden]
170
171   - Return to starting directory after install action; this is
172     an attempt to fix an install.t heisenbug (RT#63003) [David Golden]
173
174   - A broken version.pm load won't cause Module::Build::Version to
175     die trying to install itself as a mock version (RT#59499)
176     [Eric Wilhelm and David Golden]
177
178   - PERL_DL_NONLAZY is now always set when tests are run
179     (RT#56055) [Dmitry Karasik]
180
181   - 'fakeinstall' will use .modulebuildrc actions for 'install' if
182     no specific 'fakeinstall' options are provided (RT#57279)
183     [David Golden]
184
185   - Add install*script to search path for installdeps client
186     and search site, then vendor, then core paths
187
188   - Skip noexec tmpdir check on Windows (RT#55667) [Jan Dubois]
189
190   - Arguments with key value pairs may now have keys with "-" in them
191     (RT#53050) [David Golden]
192
193   - Add quotemeta to t/tilde.t test to fix Cygwin fails
194     [Chris Williams and David Golden]
195
196   - Build script now checks that M::B is at least the same version
197     of M::B as provided in 'configure_requires' in META
198     (RT#54954) [David Golden]
199
200 0.36_17 - Wed Oct 27 18:08:36 EDT 2010
201
202   Enhancements:
203
204   - Added 'distinstall' action to run 'Build install' inside the
205     generated distribution directory [Jeff Thalhammer]
206
207 0.36_16 - Thu Aug 26 12:44:07 EDT 2010
208
209   Bug fixes:
210
211   - Better error message in case package declaration is not found
212     when searching for version. [Alexandr Ciornii]
213
214   - Skips 'release_status' tests on perl < 5.8.1 due to buggy
215     treatment of dotted-decimal version numbers [David Golden]
216
217 0.36_15 - Wed Aug 25 10:41:28 EDT 2010
218
219   Bug fixes:
220
221   - Added a mock Software::License to prevent t/properties/license.t
222     from failing.
223
224 0.36_14 - Sun Aug 22 22:56:50 EDT 2010
225
226   Enhancements:
227
228   - Adds 'release_status' and 'dist_suffix' properties in preparation
229     for adding CPAN Meta Spec 2 support.  'dist_suffix' will be set
230     to 'TRIAL' automatically when necessary. [David Golden]
231
232   - Makes 'license' more liberal.  You can now specify either a license
233     key from the approved list (c.f. Module::Build::API) or just a
234     Software::License subclass name (e.g. 'Perl_5').  This should
235     provide better support for custom or proprietary licenses.
236     [David Golden]
237
238 0.36_13 - Wed Jul 28 22:40:25 EDT 2010
239
240  Bug-fixes:
241
242  - Bundled Module::Build::Version updated to bring into sync with CPAN
243    version.pm 0.82 [David Golden]
244
245 0.36_12 - Tue Jul 27 00:08:51 EDT 2010
246
247   Enhancements:
248
249   - Module::Build::Compat will now convert dotted-decimal prereqs into
250     decimal rather than dying (and will warn about this). [Apocalypse]
251
252   Bug fixes:
253
254   - Caches case-sensitivity checks to boost performance, fixes 
255     RT#55162 and RT#56513 [Reini Urban]
256
257   - Won't try to use ActivePerl doc generation tools without confirming
258     that they are indeed installed. [David Golden]
259
260   - Sets temporary $ENV{HOME} in testing to an absolute path, which fixes
261     some issues when tested as part of the Perl core [Nicholas Clark]
262
263   - Module::Build::ModuleInfo now warns instead of dying when a module
264     has an invalid version.  ->version now just returns undef
265     (RT#59593) [David Golden]
266
267   Changes:
268
269   - When authors do not specify Module::Build in configure_requires and
270     Module::Build is automatically added, a warning will be issued
271     showing the added prerequisite [David Golden]
272
273   - Moved automatic configure_requires generation into get_metadata()
274     and added an 'auto' argument to toggle it (on for META and off
275     for MYMETA) [David Golden]
276
277 0.36_11 - Thu May 27 09:41:23 EDT 2010
278
279   Bug fixes:
280
281   - Handle META/MYMETA reading and writing within Module::Build to ensure
282     utf8 mode on filehandles.  Now passes/gets only strings to YAML::Tiny
283     or Module::Build::YAML
284
285 0.36_10 - Wed May 19 18:36:06 EDT 2010
286
287   Bug fixes:
288
289   - Fix failing t/manifypods.t on Windows from 0.36_09 changes [Klaus
290     Eichner]
291
292 0.36_09 - Tue May 11 09:19:12 EDT 2010
293
294   Bug fixes:
295
296   - Improve HTML documentation generation on ActivePerl (RT#53478)
297     [Scott Renner and Klaus Eichner]
298
299 0.36_08 - Mon Apr 26 08:00:15 EDT 2010
300
301  Enhancements:
302
303  - Give a list of valid licenses when given one we don't recognize
304    (RT#55951) [Yanick Champoux]
305
306  - Added 'Build manifest_skip' action to generate a default MANIFEST.SKIP
307    [David Golden]
308
309  Changes:
310
311  - When temporarily generating a MANIFEST.SKIP when none exists, it will
312    be removed on exit instead of hanging around until 'Build clean'.  This
313    is less surprising/confusing and the 'Build manifest_skip' action
314    is now available instead to bootstrap the file [David Golden]
315
316  Bug fixes:
317
318  - Fixed runtime error on cygwin when searching for an executable command
319    during installdeps testing [David Golden]
320
321 0.3607 - Thu Apr  1 11:27:16 EDT 2010
322
323  Bug fixes:
324
325  - The 'dist' action now always ensures a clean dist directory before
326    creating the tarball [David Golden]
327
328 0.36_06 - Thu Apr  1 01:23:58 EDT 2010
329
330  Other:
331
332  - Migrated repository to git and updated META.yml to match
333
334  - Removed bugtracker URL (let search.cpan.org use default)
335
336  - Disabled SIGNATURE generation
337
338 0.3605 - Wed Mar 31 12:05:11 EDT 2010
339
340  - No changes from 0.36_04
341
342 0.36_04 - Tue Mar 16 21:41:41 EDT 2010
343
344  Bug fixes:
345
346  - Added missing newline to "Changing sharpbang" messages under verbose
347    output (RT#54474) [David Golden]
348
349  - Added 'beos' to list of Unix-like os types (RT#53876) [Nigel Horne]
350
351  - Sets $ENV{HOME} to a temporary directory during testing [David Golden]
352
353  - For VMS: fixed prefix handling plus other test fixes [Craig Berry]
354
355  - Support anonymous array of directories for c_source [Alberto Simões]
356
357  - Small POD formatting fix [James Keenan]
358
359 0.3603 - Mon Jan 18 22:28:59 EST 2010
360
361 (Oops, I released the last one before I realized this should have been
362 fixed along with it.)
363
364  Bug fixes:
365
366  - Module::Build::Compat would croak on distibutions that set requires
367    'perl' to a dotted decimal like '5.6.2'.  We now skip that key
368    since it doesn't go into PREREQ_PM and we numify it properly for
369    'use 5.006002' in the generated Makefile.PL (RT#53409)
370    [David Golden, adapted from patch by G. Allen Morris III]
371
372 0.3602 - Mon Jan 18 22:09:54 EST 2010
373
374  Bug fixes:
375
376  - Fix failures in t/properties/needs_compiler.t when $ENV{CC} is set
377    (RT#53296) [David Golden, adapted from patch by Jens Rehsack]
378
379 0.3601 - Mon Dec 21 14:39:33 EST 2009
380
381  Bug fixes:
382
383  - When the currently running Module::Build is not the same as the one
384    that created the Build file, there is now a warning rather than a fatal
385    error.  This helps installation of dependency chains where a dependency
386    might configure_requires a new Module::Build after Build.PL was already
387    run for an earlier distribution. [David Golden, on advice of Matt Trout]
388
389  Other:
390
391  - t/bundle_inc.t fails in odd ways.  This test of an experimental feature
392    should not prevent users from installing Module::Build, so this test
393    now skips unless $ENV{MB_TEST_EXPERIMENTAL} is true
394
395 0.36 - Sun Dec 20 15:02:38 EST 2009
396
397 No changes from 0.35_15 other than the version number.
398
399 Summary of major changes since 0.35:
400
401  Enhancements:
402
403  - Added 'Build installdeps' action to install needed dependencies via
404    a user-configurable command line program.  (Defaults to 'cpan'.)
405
406  - Command line options may be set via the PERL_MB_OPT environment
407    variable (similar to PERL_MM_OPT in ExtUtils::MakeMaker)
408
409  - Generates MYMETA.yml during Build.PL (new standard protocol for
410    communicating configuration results between toolchain components)
411
412  - Reduced amount of console output under normal operation (use --verbose
413    to see all output)
414
415  - Added experimental inc/ bundling; see Module::Build::Bundling for
416    details.
417
418  New or changed properties:
419
420  - Added 'share_dir' property to provide File::ShareDir support;
421    File::ShareDir automatically added to 'requires' if 'share_dir' is set
422
423  - Added 'needs_compiler' property.  Defaults to true if XS or c_source
424    exist.  If true, ExtUtils::CBuilder is also added to build_requires.
425
426  - 'C_support' is no longer an optional feature.  Modern ExtUtils::CBuilder
427    and ExtUtils::ParseXS added to the 'requires' list.  This ensures that
428    upgrading Module::Build will upgrade these critical modules.
429
430  - Clarified that 'apache' in the license attribute indicates the Apache
431    License 2.0 and added 'apache_1_1' for the older version of the license
432    (RT#50614)
433
434  Deprecations:
435
436  - Module::Build::Compat 'passthrough' style has been deprecated.  Using
437    'passthrough' will issue warnings on Makefile.PL generation.  See
438    Module::Build::Compat documentation for rationale.
439
440  Internals:
441
442  - Replaced use of YAML.pm with YAML::Tiny; Module::Build::YAML is now
443    based on YAML::Tiny as well
444
445  - A new get_metadata() method has been added as a simpler wrapper around
446    the old, kludgy prepare_metadata() API.
447
448  - Replaced guts of new_from_context().  Build.PL is now executed in a
449    separate process before resume() is called.  (This is generally only of
450    interest to Module::Build or toolchain developers) (RT#49350)
451
452  - Add support for 'package NAME VERSION' syntax added in Perl 5.11.1
453
454  Notable bug fixes:
455
456  - The "test" action now dies when using the 'use_tap_harness'
457    option and tests fail, matching the behavior under Test::Harness.
458    (RT#49080) [initial patch from David Wheeler; revised by David Golden]
459
460  - Updated PPM generation to PPM v4 (RT#49600) [Olivier Mengue]
461
462  - When module_name is not supplied, no packlist was being written; fixed
463    by guessing module_name from dist_version_from or the directory name
464    (just like ExtUtils::Manifest does without NAME) [David Golden]
465
466  - Failure to detect a compiler will now warn during Build.PL and be a
467    fatal error when trying to compile during Build. (RT#48918) [David
468    Golden]
469
470  - Auto-detection of abstract and author fixed for mixed-case POD headers
471    (RT#51117) [David Wheeler]
472
473  - resume() was not restoring additions to @INC added in Build.PL
474    (RT#50145) [David Golden]
475
476  - When tarball paths are less than 100 characters, disables 'prefix'
477    mode of Archive::Tar for maximum compatibility (RT#50571) [David Golden]
478
479  - Merging 'requires' and 'build_requires' in Module::Build::Compat could
480    lead to duplicate PREREQ_PM entries; now the highest version is used
481    for PREREQ_PM. (RT#50948) [David Golden]
482
483  - Module::Build::Compat will now die with an error if advanced,
484    non-numeric prerequisites are given, as these are not supported by
485    ExtUtils::MakeMaker in PREREQ_PM [David Golden]
486
487
488 0.35_15 - Thu Dec 17 17:51:22 EST 2009
489
490  Bug fixes:
491
492  - Make sure PPM tests are skipped if IO::File is too old [David Golden]
493
494 0.35_14 - Thu Dec 17 16:02:14 EST 2009
495
496  Bug fixes:
497
498  - If not set, the 'module_name' is detected from 'dist_version_from'
499    or from 'dist_name'.  The directory is no longer used. [David Golden]
500
501  - The 'share_dir' property no longer defaults to 'share' and must be
502    explicitly set instead; this fixes problems for CPAN distributions that
503    already have a 'share' directory for whatever reason [David Golden]
504
505  - Change t/00-compile.t test for more portability [David Golden]
506
507  - Skip ppm.t if Pod::Html is not available [David Goldenj]
508
509  - Changed guts of inc::latest to work properly on older versions of Perl
510    [David Golden]
511
512  - Ensure bundle_inc.t doesn't accidentally uninstall the installed M::B
513    during testing if the user had 'uninst=1' set during Build.PL
514    [David Golden]
515
516 0.35_13 - Sat Dec  5 11:26:36 EST 2009
517
518  Bug fixes:
519
520  - Protect against tempfile errors when checking ExtUtils::Installed
521    [David Golden]
522
523 0.35_12 - Fri Dec  4 23:06:49 EST 2009
524
525  Bug fixes:
526
527  - Protect inc/ bundling tests against broken ExtUtils::Installed
528    [David Golden]
529
530 0.35_11 - Thu Dec  3 11:07:44 EST 2009
531
532  *** API CHANGE ***
533
534  - The old API for prepare_metadata() has been restored to avoid breaking
535    distributions that were overriding it (e.g. BioPerl), but the method
536    has been marked deprecated and may be made private or may disappear in
537    some future version of Module::Build. [David Golden]
538
539  - A new get_metadata() method has been added as a simpler wrapper around
540    the old, kludgy prepare_metadata() API. [David Golden]
541
542 0.35_10 - Tue Nov 24 22:49:19 EST 2009
543
544  Bug fixes:
545
546  - bundle_inc.t is more careful about permissions and open filehandles
547    to avoid failures/skips on Win32 [David Golden]
548
549  - Fix compilation error in Module::Build::Platform::VMS (RT#51766)
550    [David Golden]
551
552  - Don't generate a MANIFEST.SKIP during distclean and add any generated
553    MANIFEST.SKIP to cleanup list [reported by Zefram, fixed by David Golden]
554
555  - Module::Build::ModuleInfo version parsing would fail if a module sets
556    its $VERSION from another module, but the other module is not installed.
557    We now try to detect such failures, prepend 'lib' to @INC and try again.
558    [David Golden]
559
560  - MYMETA.yml used to be generated from scratch, overriding any
561    customizations used to create META.yml.  Now, if META.yml exists, that
562    will be used as the base for MYMETA and only prereq fields will be
563    updated (to reflect any dynamic configuration); also, 'dynamic_config'
564    will be set to false and 'generated_by' will be updated [David Golden]
565
566 0.35_09 - Thu Nov 19 01:30:42 EST 2009
567
568  Bug fixes:
569
570  - The DB package should not be included in 'provides' in META files
571    [David Golden]
572
573  - Fixed t/xs.t build failures in bleadperl for noexec temp directories
574    [Nicholas Clark]
575
576  - Adjusted order of @INC in resume() (fixes par.t, ppm.t, xs.t fails):
577    @INC = @new_additions_to_inc, @saved_additions_to_inc, @default_inc
578    [David Golden]
579
580  - Skip bundle_inc.t tests if bundled Module::Build for test can't be
581    tweaked (Works around test crashes on Win2) [David Golden]
582
583  Other:
584
585  - 'C_support' is no longer an optional feature.  Modern ExtUtils::CBuilder
586    and ExtUtils::ParseXS added to the 'requires' list.  This ensures that
587    upgrading Module::Build will upgrade this critical modules.
588    ExtUtils::CBuilder no longer requires a compiler, so it is "safe" to
589    require.
590
591 0.35_08 - Mon Nov 16 22:38:28 EST 2009
592
593  Bug fixes:
594
595  - Multiple tests were failing due to dependency problems.  Author
596    dependencies have been largely removed from core 'requires' into
597    optional features.  Feature prereq detection and messaging have been
598    expanded and bugs on older Perls have been removed.
599
600 0.35_07 - Sat Nov 14 17:14:39 EST 2009
601
602  Bug fixes:
603
604  - Auto-detection of abstract and author fixed for mixed-case POD headers
605    (RT#51117) [David Wheeler]
606
607  - resume() was not restoring additions to @INC added in Build.PL
608    (RT#50145) [David Golden]
609
610  - When tarball paths are less than 100 characters, disables 'prefix'
611    mode of Archive::Tar for maximum compatibility (RT#50571) [David Golden]
612
613 0.35_06 - Fri Nov 13 14:51:28 EST 2009
614
615  Enhancements:
616
617  - Added experimental inc/ bundling; see Module::Build::Bundling for
618    details.  [David Golden and Eric Wilhelm]
619
620  - Clarified that 'apache' in the license attribute indicates the Apache
621    License 2.0 and added 'apache_1_1' for the older version of the license
622    (RT#50614) [David Golden]
623
624  Bug fixes:
625
626  - Merging 'requires' and 'build_requires' in Module::Build::Compat could
627    lead to duplicate PREREQ_PM entries; now the highest version is used
628    for PREREQ_PM. (RT#50948) [David Golden]
629
630  - Module::Build::Compat will now die with an error if advanced,
631    non-numeric prerequisites are given, as these are not supported by
632    ExtUtils::MakeMaker in PREREQ_PM [David Golden]
633
634  - Made MYMETA generation non-fatal if fields required for META.yml
635    are missing [David Golden]
636
637  - Added Pod::Simple to requirements for manpage support; avoids
638    problems if a user has a broken Pod::Man/Pod::Simple.  (RT#50081)
639    [David Golden]
640
641  - Won't die if installed Pod::Readme is broken [David Golden]
642
643  Other:
644
645  - Fixed Module::Build::Notes POD [David Golden]
646
647  - Some commands had become silent by default, so added a few short status
648    messages so users know something actually happened [David Golden]
649
650  - Cleaned up Changes file formatting [David Golden]
651
652  - Removed most PERL_CORE customizations from test files due to
653    reorganization of dual-life modules in core (RT#49522) [David Golden]
654
655 0.35_05 - Wed Oct 28 17:20:59 EDT 2009
656
657  Bug fixes:
658
659  - Fix test failure in t/actions/installdeps.t when $^X is not the default
660    perl [David Golden]
661
662  - Work around $VERSION numbers in ActiveState with multiple underscores
663    that prevent Module::Build from installing on Win32 [David Golden]
664
665  - Fix bug cleaning compatibility Makefile when older ExtUtils::Manifest is
666    installed [David Golden with help from David Cantrell]
667
668  Other:
669
670  - Suppressed more warnings from tests [David Golden]
671
672  - Add provisional support for 'package NAME VERSION' syntax added in
673    Perl 5.11.1 [David Golden]
674
675 0.35_04 - Fri Oct 23 11:20:41 EDT 2009
676
677  Bug fixes:
678
679  - Fix test failure if IPC::Cmd isn't installed [David Golden]
680
681  Other:
682
683  - Suppressed warning messages from various tests [David Golden]
684
685 0.35_03 - Wed Oct 21 21:20:59 EDT 2009
686
687  *** API CHANGE ***
688
689  - The prepare_metadata() method used to take a YAML::Node object as an
690    argument for modification.  The method now takes no arguments and just
691    returns a hash reference of metadata. [David Golden]
692
693  Enhancements
694
695  - Command line options may be set via the PERL_MB_OPT environment
696    variable (similar to PERL_MM_OPT in ExtUtils::MakeMaker)
697
698  Bug fixes:
699
700  - Updated PPM generation to PPM v4 (RT#49600) [Olivier Mengue]
701
702  - When c_source is specified, the directory scan will include additional,
703    less-common C++ extensions (RT49298) [David Golden]
704
705  - When module_name is not supplied, no packlist was being written; fixed
706    by guessing module_name from dist_version_from or the directory name
707    (just like ExtUtils::Manifest does without NAME) [David Golden]
708
709  - Bumped IO::File prereq to fix binmode failures in PPMMaker on Perl
710    prior to 5.8.8 [David Golden]
711
712  Other:
713
714  - Replaced use of YAML.pm with YAML::Tiny; Module::Build::YAML is now
715    based on YAML::Tiny as well [David Golden]
716
717  - Reduced amount of console output under normal operation (use --verbose
718    to see all output) [David Golden]
719
720 0.35_02 - Mon Sep  7 22:37:42 EDT 2009
721
722  Enhancements:
723
724  - Added 'needs_compiler' property.  Defaults to true if XS or c_source
725    exist.  If true, ExtUtils::CBuilder is also added to build_requires.
726    [David Golden]
727
728  - File::ShareDir automatically added to 'requires' if 'share_dir' is set
729    [David Golden]
730
731  - Added 'Build installdeps' action to install needed dependencies via
732    a user-configurable command line program.  (Defaults to 'cpan'.)
733    [Eric Wilhelm]
734
735  Bug fixes:
736
737  - Failure to detect a compiler will now warn during Build.PL and be a
738    fatal error when trying to compile during Build. (RT#48918) [David
739    Golden]
740
741  - Fixed directory sorting failure in share_dir.t [David Golden]
742
743  - Property defaults that are data structures were being assigned as
744    references to new objects. Changed so that defaults are cloned instead.
745    (This mostly affects testing, which often creates multiple objects in the
746    same process) [David Golden]
747
748  - Simplified error message on exit under use_tap_harness [suggested by
749    David Wheeler]
750
751  - Fixed typemap search to use a dist-level typemap if a typemap is not
752    found in the directory with the *.xs file; (was manifesting as warnings
753    in Perl 5.6 tests) [David Golden]
754
755  Other:
756
757  - Replaced guts of new_from_context().  Build.PL is now executed in a
758    separate process before resume() is called.  (This is generally only of
759    interest to Module::Build or toolchain developers) (RT#49350) [David
760    Golden, Eric Wilhelm, Ken Williams]
761
762  - Revised test helper classes to fix potential bugs and add new features
763    to make writing tests simpler and easier.  Changes incorporated into
764    t/README.pod and t/sample.t as examples for new testing. [David Golden]
765
766 0.35_01 - Mon Aug 31 12:11:10 EDT 2009
767
768  Enhancements:
769
770  - Generates MYMETA.yml during Build.PL (new standard protocol for
771    communicating configuration results between toolchain components)
772    [David Golden]
773
774  - Added 'share_dir' property to provide File::ShareDir support;
775    set automatically if a directory called 'share' exists
776    [David Golden]
777
778  Bug fixes:
779
780  - Fix the t/destinations.t fix. [David Golden, with thanks to Eric Wilhelm]
781
782  - Fix recursive test files in generated Makefile.PL (RT#49254) [Sawyer X]
783
784  - Guard against trying :utf8 when :utf8 isn't available
785
786  - The "test" action now dies when using the 'use_tap_harness'
787    option and tests fail, matching the behavior under Test::Harness.
788    (RT#49080) [initial patch from David Wheeler; revised by David Golden]
789
790  Other:
791
792  - Added t/README.pod and t/sample.t to guide developers writing new tests
793    [David Golden, with some code from Eric Wilhelm]
794
795  - Module::Build::Compat 'passthrough' style has been deprecated.  Using
796    'passthrough' will issue warnings on Makefile.PL generation.  See
797    Module::Build::Compat documentation for rationale.
798
799 0.35 - Thu Aug 27 09:12:02 EDT 2009
800
801  Bug fixes:
802
803   - Fix t/destinations.t segfault on 5.6.2 [David Golden]
804
805 0.34_06 - Sat Aug 22 21:58:26 EDT 2009
806
807  Bug fixes:
808
809  - Multiple test fixes for OS2 [Ilya Zakharevich]
810
811  - Generated.ppd files use :utf8 if possible (RT#48827) [Olivier Mengue]
812
813  - Fixed preservation of custom install_paths on resume (RT#41166)
814    [David Golden]
815
816  - Warn instead of crashing when Pod::Man tries to create files with
817    colons on vfat partitions on unix (RT#45544) [David Golden]
818
819 0.34_05 - Sun Aug  9 22:31:37 EDT 2009
820
821  Bug fixes:
822
823  - When auto_configure_requires is true (the default), Module::Build will
824    only add last 'major' version of Module:Build (e.g. 0.XX) to
825    configure_requires to avoid specifying a minor development release not
826    available on CPAN [David Golden]
827
828 0.34_04 - Sat Aug  8 11:02:24 EDT 2009
829
830  Other:
831
832  - Added documentation warning that 'get_options' should be capitalized
833    to avoid conflicting with future Module::Build options and changed
834    the examples accordingly.
835
836 0.34_03 - Sat Aug  8 07:39:16 EDT 2009
837
838  Bug fixes:
839
840  - Fixed failing xs.t if /tmp is mounted noexec (RT#47331) [David Golden]
841
842  - Fixed failing debug.t on VMS (RT#48362) [Craig Berry]
843
844  - Prevent par.t from dying on error in .zip extraction [David Golden]
845
846  - Fixed potential runthrough.t failure on 5.6.2 [David Golden]
847
848  Other:
849
850  - Archive::Tar changed from 'requires' to 'recommends' so non-authors
851    without IO::Zlib can still use Module::Build to install modules
852    [reported by Matt Trout, fix by David Golden]
853
854 0.340201 - Sun Aug  9 22:11:04 EDT 2009
855
856  Other:
857
858  - Version bump for Perl core for 5.10.1 release; no other changes
859
860 0.34_02 - Sun Jul 26 22:50:40 EDT 2009
861
862  Bug-fixes:
863
864  - Bundled Module::Build::Version updated to bring into sync with CPAN
865    version.pm 0.77 [John Peacock]
866
867 0.34_01 - Sat Jul 18 16:32:09 EDT 2009
868
869  Enhancements:
870
871  - Added --debug flag to trace Build action execution (RT#47933)
872    [David Golden]
873
874  Bug-fixes:
875
876  - Bundled Module::Build::Version version code updated to fix unsafe use
877    of $@ (RT#47980) [John Peacock]
878
879 0.34 - Tue Jul  7 16:56:47 EDT 2009
880
881  No changes from 0.33_06
882
883 0.33_06 - Sun Jul  5 10:11:40 EDT 2009
884
885  Bug-fixes:
886
887  - Bundled version code will use pure Perl on 5.10.0 to work around
888    a corner case involving eval and locale [John Peacock]
889
890  - Reversed VMS patch from 0.33_03 [Craig Berry]
891
892  - PL_files in Build.PL that are in the bin/scripts directory should not be
893    installed as if they are scripts (fixed for case-tolerant systems).
894    [David Golden, reported by Craig Berry]
895
896 0.33_05 - Sun Jun 28 22:06:49 EDT 2009
897
898  Enhancements:
899
900  - New 'auto_configure_requires' parameter (default 1) controls
901    whether Module::Build should add itself to configure_requires
902    in META.yml if not specified in Build.PL [David Golden]
903
904  Bug-fixes:
905
906  - The default MANIFEST.SKIP created by the "manifest" action
907    was out of date.  It will now use the installed MANIFEST.SKIP
908    and add some Module::Build and distribution specific items
909    to it. [Michael Schwern]
910
911  Other:
912
913  - configure_requires do not necessarily need to be in requires
914    or build_requires; warning to that effect has been removed
915    [David Golden]
916
917 0.33_04 - Fri Jun 26 07:09:06 EDT 2009
918
919  Bug-fixes:
920
921  - Don't try utf8 YAML I/O on Perl 5.6 [David Golden]
922
923  Other:
924
925  - configure_requires added to prereq report (RT#47254) [Curtis Jewell]
926
927  - updated Module::Build::Version to match forthcoming version.pm 0.77
928    (RT#47256) [John Peacock]
929
930  - skips xs.t and ppm.t when perl was not compiled with dynamic loading
931    since Module::Buld does not support static linking (RT#46178)
932    [David Golden]
933
934  - skip failing test in par.t if Archive::Zip is broken [David Golden]
935
936  - Added YAML utf8 patch in 0.33_03 changes list
937
938  - Added attribution for patches in 0.33_03 changes list
939
940 0.33_03 - Mon Jun 22 17:22:56 EDT 2009
941
942  Bug-fixes:
943
944  - Removes Module::Build from its own configure/build_requires
945    [David Golden]
946
947  - ConfigData->feature() confirms that modules actually load successfully,
948    not just that they are present. (RT#43557) [David Golden]
949
950  - Module::Build::Compat handling of INSTALL*LIB (RT#43827)
951    [Tony Payne, David Golden]
952
953  - Module::Build::Compat and recursive test files (RT#39171) [Dave Rolsky]
954
955  - Fixed bug linking non-standard XS names on Windows (RT#38065) ["snaury"]
956
957  - Run PL files that don't generate any file (RT#39365)
958    [Matisse Enzer, David Golden]
959
960  - HTML generation failure no longer fatal (RT#36660) [David Golden]
961
962  - realclean might not delete Build.bat on Windows (RT#43863)
963    [Roy Ivy, David Golden]
964
965  - include_dirs parameter now works correctly when given a single
966    string argument (RT#40177) [David Wheeler]
967
968  - Lots of spelling fixes in the POD (RT#45528r) [Lars Dieckow]
969
970  - On Unix-like systems, tilde expansion is more liberal in username
971    characters accepted (RT#33492) [Jon Jensen]
972
973  Other
974
975  - On MSWin32, bumped File::Spec prereq to 3.30 for a variety of fixes
976
977  - Add support for VMS in Unix compatibility mode (RT#42157)
978    [John E. Malmberg
979
980  - Added a can_action($name) method (RT#45172) [brian d foy]
981
982  - Documented that subclass methods should not permanently change
983    current directory (RT#46919) [David Wheeler]
984
985  - META.yml encoded in UTF-8 (RT#43765) [Olivier Mengue]
986
987 0.33_02 - Mon Jun 15 12:23:55 EDT 2009
988
989  Bug-fixes:
990
991  - Fixed tests for bleadperl
992
993 0.33_01 - Sat Jun 13 20:24:42 EDT 2009
994
995  Bug-fixes:
996
997  - Fixed RT#42724: consolidated VMS fixes [patch by Craig Berry]
998
999  - Fixed RT#46338: passthrough Makefile.PL cleans Makefile during distclean
1000
1001  - Fixed RT#45700: t/compat.t for HP/UX make
1002
1003  Other:
1004
1005  - Adds current Module::Build to configure_requires (and build_requires)
1006    if no configure_requires is specified
1007
1008  - Always normalizes version number tuples in META.yml (e.g. 'v1.2.0')
1009    (Partially addresses RT#46150)
1010
1011  - Normalizes a generated dist_version (e.g. from a .pm file) --
1012    dist_version set manually in Build.PL is not normalized
1013
1014  - Documentation update for create_license
1015
1016  - Minor POD cleanup
1017
1018 0.33 - Sun May  3 20:16:34 PDT 2009
1019
1020  Bug-fixes:
1021
1022  - Fixed RT#45462: Compat.pm needs to reference 'Build.com' on VMS
1023    [patch from John Malmberg]
1024
1025  - Fixed RT#45461: ext.t on VMS [patch from John Malmberg]
1026
1027  - Fixed RT#43861: Module::Build::PPMMaker has broken PPD name
1028    versioning for v5.10+
1029
1030 0.32_01 - Tue Apr 14 17:14:22 PDT 2009
1031
1032  Bug-fixes:
1033
1034  - Module::Build::Compat had stopped adding "PL_FILES => {}" when no
1035    PL_files property was set in Build.PL; restored old behavior and fixed
1036    tests and documentation related to this issue [David Golden]
1037
1038  - Caches ExtUtils::CBuilder object in a temporary stash instead of properties
1039
1040  - Fixed undef resources->license in META.yml (RT #44453).
1041
1042  - Use $^X instead of 'perl' in t/ext.t [David Golden] (RT #43485)
1043
1044  Other:
1045
1046  - Generated META.yml will indicate version 1.4 of the specification
1047    (RT #37478) [patch from Alexandr Ciornii]
1048
1049  - Archive::Tar now the default for generating tarballs on all platforms
1050    (avoids problems with incompatible tar binaries)
1051
1052  - dist_dir() now uses dist_name() and dist_version() accessors rather
1053    than using its properties directly. [brian d foy] (RT #45038)
1054
1055 0.32 - Wed Feb 25 17:40:02 PST 2009
1056
1057  No changes since 0.31_04.
1058
1059 0.31_04 - Fri Feb 20 11:04:59 PST 2009
1060
1061  Other
1062
1063 - Bumped Test::Harness prereq to 3.16 for latest PERL5LIB fixes (solves
1064    test failures when installing Module::Build using CPANPLUS::Dist::Build)
1065    [David Golden]
1066
1067 0.31_03 - Sun Feb  8 14:54:01 PST 2009
1068
1069  Enhancements
1070
1071  - added a "prereq_data" action that prints a Perl data structure of
1072    all prerequisites; can be loaded by external tools using eval()
1073    [David Golden]
1074
1075  Bug-fixes
1076
1077  - 'fakeinstall' action warns and skips without ExtUtils::Install 1.32+
1078    [David Golden, reported by Zefram]
1079
1080  - allows Module::Build version mismatch when installing self; works around
1081    limitations in CPANPLUS::Dist::Build [David Golden]
1082
1083 0.31_02 - Tue Jan 27 09:16:43 PST 2009
1084
1085  Other
1086
1087  - tests now use File::Temp (added to build_requires); appears to fix
1088    Win32 testing heisenbug on directory removal during high system loads
1089
1090  - use_tap_harness.t will skip unless a release version of TAP::Harness
1091    is installed
1092
1093  - improved diagnostics to ensure_blib() tests in t/lib/MBTest.pm
1094
1095  Compat
1096
1097  - passthrough Makefile.PL will now play nice with cpantesters' on
1098    exit(0) (RT#32018) [Eric Wilhelm]
1099
1100  Bug Fixes
1101
1102  - fix for doubling-up of --prefix (RT#19951)
1103
1104 0.31012 - Wed Jan 14 01:36:19 PST 2009
1105
1106  Bug Fixes
1107
1108  - t/tilde.t maybe actually fixed on MSWin32 now.
1109
1110 0.31011 - Mon Jan 12 21:57:04 PST 2009
1111
1112  Bug Fixes
1113
1114  - t/tilde.t had been failing on MSWin32 (RT#42349)
1115
1116 0.3101 - Mon Jan 12 13:52:36 PST 2009
1117
1118  Other
1119
1120  - added 'mirbsd' as a Unix-type OS [BinGOs]
1121
1122  - added 'haiku' as a Unix-type OS (backported from bleadperl)
1123
1124  - skips certain tests on VMS (backported from bleadperl)
1125
1126  - sets $^X to absolute path in tests (backported from bleadperl)
1127
1128 0.31 - Sat Dec 20 15:03:33 2008
1129
1130  Deprecations
1131
1132  - Use of attributes as class methods is deprecated (this was never a
1133    documented feature and appears to only have worked accidentally.)
1134
1135 0.30_02 - Mon Dec 15 12:23:55 PST 2008
1136
1137  Bug Fixes
1138
1139  - make Software::License dependency "softer".
1140
1141 0.30_01 - Thu Dec 11 18:25:53 PST 2008
1142
1143  New Docs
1144
1145  - Added a recipe for writing a new action to the Cookbook
1146
1147  - Added a recipe for bundling Module::Build to the Cookbook.
1148
1149  Doc Fixes
1150
1151  - Clarified dist_abstract search procedure in API.pod (RT#41056) [Mario
1152    Domgoergen]
1153
1154  Bug Fixes
1155
1156  - Workaround HARNESS_TIMER env issue in t/compat.t (RT#39635)
1157
1158  - Fix ~ expansion when $HOME is different from /etc/passwd as
1159    when running sudo.  [rt.cpan.org 39662]
1160
1161  - Fixed a small POD error in the Cookbook. [Damyan Ivanov]
1162
1163  - Unset group/other write permission bits when using Archive::Tar to
1164    build the dist tarball. (RT#39804) [David Golden]
1165
1166  Enhancements
1167
1168  - We now support a 'create_license' parameter to new() that will
1169    create a LICENSE file during the 'dist' phase with the full text of
1170    the license.  This requires Software::License on the author's
1171    machine.
1172
1173  - Added lgpl2/lgpl3 entries to the supported licenses (RT#40532).
1174
1175  - Support for validating properties with a check subref. [David
1176    Wheeler]
1177
1178  Test Fixes
1179
1180  - Defend against more stray environment variables interfering
1181    with the tests.
1182
1183  Other
1184
1185  - Updated our embedded version.pm to 0.76, enhanced documentation on
1186    dist_version_from.  [John Peacock]
1187
1188 0.30 - Thu Sep 25 20:57:36 2008
1189
1190  - First non-beta release since April 2007.  In the meantime, Sarkozy
1191    became president of France, the 35W bridge fell in Minneapolis,
1192    Phelps won a lot of gold, a new tribe of indigenous people was
1193    discovered in the Amazon, and Bob Barker stopped doing The Price Is
1194    Right.  As of this moment though, the U.S. economy still hasn't
1195    collapsed completely.
1196
1197 0.2808_05 - Thu Sep 18 23:30:39 PDT 2008
1198
1199  - Skip test in t/ext.t which tickles shellwords() in Text::ParseWords
1200    below 3.23 [David Wheeler, Ken]
1201
1202  - Fixed some shell-quoting issues in do_system() on Windows [Ken,
1203    Schwern, reported by Curtis Jewell]
1204
1205  - Fixed t/xs.t failure for missing 'const char *' typemap in 5.6
1206    [Schwern]
1207
1208  - Added build_requires for Test::More 0.49 and Test::Harness 2.03.
1209    Removed bundled Test::More (was not working for 5.005x anyway).
1210    [Schwern]
1211
1212  - Minimum required perl version is now 5.6.1. [Schwern]
1213
1214 0.2808_04 - Thu Sep 11 22:51:27 PDT 2008
1215
1216  - Backed-out incompatible Module::Build::ModuleInfo change (first in
1217    0.2808_02.)
1218
1219 0.2808_03 - Mon Sep  1 14:43:27 PDT 2008
1220
1221  - Made adjustments for the format changes of recent Test::Harness
1222    output. [Nicholas Clark]
1223
1224  - Fixed the documentation for script_files to indicate that we search
1225    bin/ for scripts by default.  It has been this way for several
1226    years. [Spotted by Ron Savage]
1227
1228 0.2808_02 - Wed Jul  9 16:45:08 PDT 2008
1229
1230  - Experimental support for TAP::Harness with --use-tap-harness option
1231    and the tap_harness_args property. [David Wheeler & Eric Wilhelm]
1232
1233  - Added test_file_exts property for main-run tests other than '*.t'.
1234    [David Wheeler]
1235
1236  - Fixed getcwd()/rmtree() failure case on 5.10+mac where something is
1237    unhappy about all of the tests deleting their distgen directory
1238    before leaving it. [Eric Wilhelm & David Wheeler]
1239
1240  - Improved support for parsing qv() in modules' $VERSION
1241    declarations, and made $VERSION-parsing errors more verbose. [Jos
1242    Boumans]
1243
1244  - Integrated an omnibus patch for various VMS fixes. [Craig Berry &
1245    John E. Malmberg]
1246
1247  - Some versions of Test::Harness (or something) seem to not be
1248    stripping the ".t" suffix when outputting test reports, which was
1249    causing one of our tests in t/compat.t to fail.  Fixed. [Spotted by
1250    a smoke tester]
1251
1252  - Most Unix platforms seem to allow hyphens in usernames, so we honor
1253    this in our de-tilde-fying methods now. [Spotted by s-murata]
1254
1255  - If there are multiple assignments to the $VERSION variable in
1256    someone's module and this generates warnings, tell the user what
1257    line number the problem is at.
1258
1259  - Added 'gnu' and 'gnukfreebsd' as Unix variants. [Niko Tyni]
1260
1261  - Fixed a couple bugs in how we quote arguments to external processes
1262    when they have to pass through the shell.  Also much more
1263    thoroughly tested our quoting now.
1264
1265  - Edited the Module::Build::API docs prose about the 'license' field
1266    in response to some comments on the module-authors mailing list.
1267
1268  - Fixed a typo in some example code in the Cookbook. [Jeremy Leader]
1269
1270  - Custom typemaps were being looked for in places that don't quite
1271    exist; fixed. [Michael G Schwern]
1272
1273  - QNX/Neutrino is now considered to be Unix. [rt.cpan.org 32214]
1274
1275  - Added 'gpl2' and 'gpl3' to the list of valid licenses. [Allen
1276    Engelhardt]
1277
1278  - Fixed our Data::Dumper wrapper's sensitivity to users who might set
1279    $Data::Dumper::Terse. [Spotted by Dominique Dumont]
1280
1281  - Documented the fix_shebang_line() method. [Elliot Shank]
1282
1283  - Applied the 'const' modifier to version() and xs_version() XS
1284    functions we use during testing. [Robin Barker]
1285
1286  - Fixed processing of INC=, POLLUTE=, INSTALLDIRS=, and LIB= for
1287    passthrough/small Makefile.PLs.
1288
1289  - perl Build.PL --sign=1 now signs. [Michael G Schwern]
1290
1291  - Fixed processing of INSTALLDIRS=whatever for compatibility
1292    Makefiles. [Spotted by John Peacock]
1293
1294  - Zillions of special-cases have been added in Compat.pm for dealing
1295    with the special Makefile system on VMS. [John E. Malmberg]
1296
1297  - Fixed some stuff in how VMS command-args get quoted. [John E. Malmberg]
1298
1299  - VMS now overrides localize_file_path() and localize_dir_path() so
1300    we don't need to do special stuff in the general case. [John
1301    E. Malmberg]
1302
1303  - Added a few more VMS-specific entries to the default MANIFEST.SKIP
1304    file that (sometimes) gets created during the 'manifest'
1305    action. [John E. Malmberg]
1306
1307  - Fixed a catdir() that should have been a catfile() when creating a
1308    ppmdist. [John E. Malmberg]
1309
1310  - Removed some assumptions about what makefiles are called (not
1311    necessarily "Makefile") and how they take their arguments, to get
1312    VMS tests working better. [John E. Malmberg]
1313
1314  - Fixed our check for Archive::Tar in the t/runthrough.t test, which
1315    fixes a common failure on Win32. [Spotted by Chris Williams]
1316
1317  - Fixed a File::Spec mal-ism in t/destinations.t [Craig A. Berry]
1318
1319  - Exposed the internal ExtUtils::CBuilder object as part of our API,
1320    via the cbuilder() method. [Zefram]
1321
1322  - Upgraded to version.pm 0.74 (fixes bug #30004.)
1323
1324  - Overwrite core (post-5.9.4) Module::Build installs (bug #20528.)
1325
1326  - Pass quiet() option to ExtUtils::CBuilder object.
1327
1328 0.2808_01 - Wed Oct 24 11:51:25 2007
1329
1330  - All .pm files in the Module-Build distribution (except for
1331    M::B::Version.pm, which is kind of tied to version.pm) now have the
1332    same $VERSION number explicitly specified.
1333
1334  - When checking prerequisites, the required version of perl is now
1335    checked before we start finding the $VERSION declaration of the
1336    distribution, which results in much more intuitive error messages
1337    e.g. if the author is using 5.6-isms in their declaration but the
1338    user doesn't have 5.6. [Slaven Rezic]
1339
1340  - Added 'artistic_2' license, corrected 'lgpl' license url (bug #29783)
1341    [David Thomas]
1342
1343  - VMS find_perl_interpreter() is just $^X (bug #29810) [Craig A. Berry]
1344
1345  - Some large VMS fixes, mostly having to do with the non-case-
1346    preserving nature of most VMS filesystems, but also correcting for
1347    illegal characters in VMS file specs. [John E. Malmberg and Craig
1348    A. Berry]
1349
1350  - Fixed the _detildefy() method on VMS. [John E. Malmberg and Craig
1351    A. Berry]
1352
1353  - We now use a much more reliable method when Data::Dumper-ing saved
1354    state data. [Yves]
1355
1356  - When a module had 0.000 as its version, a few places in the code
1357    thought the module had no version at all.  This is now
1358    fixed. [Andrew "Zefram" Main]
1359
1360  - When finding the default set of script_files, we now compute them
1361    as relative paths, not absolute. [Spotted by Curtis "Ovid" Poe]
1362
1363  - Got rid of a call to eliminate_macros, which isn't needed in
1364    Module::Build since there is no external make utility involved.
1365    Override expand_test_dir to make up for the fact that the
1366    home-grown glob() returns absolute, not relative, paths. [Craig
1367    A. Berry]
1368
1369  - Fixed a catdir() that needed to be catfile() in the .packlist
1370    creation code. [John E. Malmberg]
1371
1372  - If a *.PL file ended abnormally during the build, processing should
1373    have stopped, but it didn't.  Fixed. [Matthew Cast and David
1374    Golden]
1375
1376  - Module::Build::Compat adds "require 5.XXXXX" to Makefile.PL when
1377    'perl' is specified as a 'requires' prerequisite [David Golden]
1378
1379  - Refactored t/compat.t for modularity and transparency; added
1380    labels for all tests; supressed subprocess output to
1381    STDOUT and STDERR [David Golden]
1382
1383  - Fixed bug in perl_version_to_float when version is already a float
1384    [David Golden]
1385
1386  - Removed a mention of $build->{config} from the documentation, the
1387    official interface to Config.pm settings is now via the
1388    $build->config() and has been for some time. [Suggested by Michael
1389    Schwern]
1390
1391  - Tweaked some text in the Cookbook to bring it into the modern age,
1392    and added a recipe for accessing Config.pm settings. [Ibid]
1393
1394  - Lots of POD link/readability improvements to the Module::Build::API
1395    documentation [Salve J. Nilsen]
1396
1397  - Added configure_requires as a new type of prereq.  [Suggested by Adam
1398    Kennedy]
1399
1400  - Patch 31156 from bleadperl: some filename dot and extension help
1401    for Module::Build on VMS. [Craig Berry]
1402
1403  - Reworked the _detildefy() method so it doesn't depend on glob()
1404    anymore.  This gets rid of a problem with spaces or other special
1405    shell characters in things like 'prefix' or 'install_path'
1406    entries. [Prodding by Eric Wilhelm]
1407
1408  - Added midnightbsd to the list of Unix-like OSes we know about
1409    [Rafael Garcia-Suarez]
1410
1411 0.2808 - Sat Apr 28 12:59:43 2007
1412
1413  - Added is_vmsish(), is_windowsish(), and is_unixish() boolean
1414    convenience functions.  Fixes some test failures on platforms where
1415    $^O is set to a value we don't know about (like 'gnu').
1416
1417  - Upgraded to version.pm 0.7203. [John Peacock]
1418
1419  - Support get_action_docs() =head2 style. [ewilhelm]
1420
1421  - Workaround Test::Pod::Coverage @INC bug. [Eric Wilhelm]
1422
1423  - Fixed the command-line args --extra_compiler_flags and
1424    --extra_linker_flags so they properly shell-split their arguments.
1425
1426 0.2807 - Sat Mar 24 22:19:02 2007
1427
1428  - Upgraded to version.pm 0.71. [John Peacock]
1429
1430  - Removed a couple small constructs in the tests ("use warnings;" and
1431    "qw$foo bar$[1]") that caused test failures under perl 5.005.
1432
1433  - Added support for an explicit default value of undef in prompt().
1434    [Eric Wilhelm]
1435
1436  - Improved our prompt() method, which could sometimes hang before the
1437    user got a chance to see a prompt. [Andreas Koenig]
1438
1439  - Added a note about --allow_mb_mismatch to the error message that
1440    happens right before someone might want to use that parameter.
1441
1442  - Added DragonflyBSD to the list of known Unix OSes.
1443
1444  - get_action_docs() dies on error rather than twiddling $@
1445
1446  - Made ModuleInfo's _evaluate_version_line() compatible with 'use
1447    version ...$VERSION' lines.  [Eric Wilhelm]
1448
1449  - Added some verbiage in Module::Build::API that officially blesses
1450    the _build/prereqs file for external consumption. [Suggested by Andreas Koenig]
1451
1452  - Added test profiles support via the test_types property and "testall"
1453    target. [Eric Wilhelm, Jeff Lavallee]
1454
1455  - Use syscopy() on OS/2 in copy_if_modified() so we make sure to
1456    overwrite any existing target file. [Ilya Zakharevich]
1457
1458  - Removed seemingly silly '~~' test in t/tilde.t.
1459
1460  - In our test-time utility library t/lib/MBTest.pm, we need to know
1461    about a few .exe-like extensions on OS/2. [Ilya Zakharevich]
1462
1463  - In t/ppm.t, use DynaLoader::mod2fname() (if available) to determine
1464    the correct translation of our test module's name into a DLL
1465    name. [Ilya Zakharevich]
1466
1467  - Avoid an unlink() error on OS/2 when fixing shebang lines. [Ilya
1468    Zakharevich]
1469
1470  - When we're protecting the world from the evils of long RedHat
1471    $ENV{PERL5LIB} variables, don't assume $ENV{PERL5LIB} is already
1472    defined.  This gets rid of a huge number of warnings for some
1473    people. [Dave Rolsky]
1474
1475 0.2806 - Fri Dec 15 22:20:14 2006
1476
1477  - On some systems (haven't identified the actual problem yet)
1478    $ENV{PERL5LIB} can grow to enormous enough sizes that we can't
1479    launch any more subprocesses because the environment table is full.
1480    This is the now-infamous "Couldn't run Build.PL: Argument list too
1481    long" error.  Now we detect such situations and trim the directory
1482    list to only include directories that actually exist, listed only
1483    once each.  Not the ideal solution, but it should work.
1484
1485  - Silence a warning in M::B::ModuleInfo that happens when the author
1486    is using the "$VERSION = eval $VERSION" idiom.
1487
1488  - When running the 'testcover' action, do "cover --delete" if any of
1489    the test files have changed (we already did so if any of the code
1490    under test has changed). [Suggested by Chris Dolan, RT #23584]
1491
1492  - Fixed a broken link in the documentation about PREFIX. [Spotted by
1493    David Steinbrunner]
1494
1495  - Changes to do_system() & friends on VMS to get system calls working
1496    much better there. [Craig Berry]
1497
1498  - Added the "pardist" target which creates a PAR binary distribution
1499    akin to a PPM distribution. [Steffen Mueller]
1500
1501  - Added the Interix platform as a Unix variant. [Stephen Hartland]
1502
1503  - Improved the error message we emit when a distribution contains XS
1504    files but the user has no C compiler. [Suggested by Andreas Koenig]
1505
1506 0.2805_01  Thu Sep  7 21:57:29 CDT 2006
1507
1508  - Because of a weird behavior of YAML::Node, any distribution that
1509    used version.pm objects to define their versions was generating the
1510    wrong syntax for the versions in their META.yml file.  They will
1511    now appear as strings like v3.42.1 or similar, including the
1512    leading v.
1513
1514  - Upgraded to version 0.67 of version.pm. [John Peacock]
1515
1516  - Added a contrib/ directory with a bash completion function for M::B
1517    actions and switches. [Julian Mehnle]
1518
1519  - When we eval() the embedded version.pm code we will now die() if
1520    the eval() was unsuccessful, rather than continuing blindly on and
1521    dying mysteriously later.
1522
1523  - Added a 'retest' action that lets users run the current regression
1524    tests on a previously-installed version of a distribution.
1525
1526  * Instead of storing an entire dump of the Config.pm hash in the
1527    _build/ directory upon startup, we now just store any overrides the
1528    user or author has specified.  Note that if you were doing anything
1529    you weren't supposed to be doing, like poking around in the
1530    internals of $buld->{config}, your code might break, so I've put
1531    the asterisk of incompatibility on this one just to cover my
1532    tuchus.  [Idea originally by Randy Sims]
1533
1534  - Made copying files via copy_if_modified() a little less chatty.
1535
1536 0.2805  Sat Jul 29 22:01:24 CDT 2006
1537
1538  - We now embed a copy of version.pm right in the
1539    Module::Build::Version source code, with John Peacock's blessing,
1540    in case the user has a rough time installing version.pm.  This
1541    helps alleviate troubles people were still having with working out
1542    a seemingly circular dependency (even though version.pm now ships
1543    with a standard Makefile.PL too).  A version.pm >= 0.661 installed
1544    on the system will take precedence over our bundled one. [John
1545    Peacock]
1546
1547  - Fix some test warnings (or failures?) related to version.pm
1548    numification. [John Peacock]
1549
1550  - The top-level 'version' entry in META.yml files we'd generated was
1551    in the wrong format (it was being treated as a version.pm object
1552    rather than a serialized copy) due to a weird YAML::Node issue.
1553    Fixed.
1554
1555  - Don't 'use base qw(version)' anymore in our M::B::Version wrapper,
1556    just set @ISA directly, because some people have reported that the
1557    'use base' line is croaking.
1558
1559  - Added an 'allow_mb_mismatch' parameter to suppress the startup
1560    check that ensures the version of M::B currently running is the
1561    same as the one initially used to run the Build.PL.  Use with
1562    caution.
1563
1564  - Module::Build::ModuleInfo will no longer detect things that look
1565    like $VERSION assignments after an __END__ or __DATA__ token.
1566
1567  - Updated documentation to mention the new mailing list on perl.org
1568    rather than the old one on sourceforge.
1569
1570 0.2804  Sun Jul 16 16:41:25 CDT 2006
1571
1572  - Added 'use version;' in Module::Build::Version, because some
1573    versions of base.pm won't automatically load version.pm when we do
1574    'use base qw/version/;'. [Spotted by Erik Tank]
1575
1576 0.2803  Sat Jul 15 08:26:34 CDT 2006
1577
1578  - The META.yml file in the last release was all screwed up, so the
1579    distribution wasn't indexed properly.  Fixed in this release.
1580
1581 0.2802  Fri Jul 14 22:40:34 CDT 2006
1582
1583  - Added reliance on version.pm, which means we should deal much
1584    better with the wide range of version specifications one finds on
1585    CPAN.  This is made possible by recent releases of version.pm that
1586    give the user a pure-perl option, so installing version.pm
1587    shouldn't be too onerous for most users.  [John Peacock]
1588
1589  - We should be accepting the default when we're in unattended mode,
1590    not acting dumb and ignoring both the default and the [empty]
1591    answer from the user.  Fixed.  [Spotted by Nik Clayton]
1592
1593 0.2801  Sun May 21 00:07:40 CDT 2006
1594
1595  - Module::Build::Compat's emulation of INC is incorrectly prepending
1596    a -I to the value of INC. This is incorrect because there should
1597    already be a -I on the value. I.E. it's "perl Makefile.PL INC=-Ifoo"
1598    not "perl Makefile.PL INC=foo" so Compat should not prefix a -I.
1599    [Michael Schwern]
1600
1601  - Native batch scripts under Windows should not be converted by
1602    pl2bat. [Spotted by Ron Savage]
1603
1604  - Tweaked the way we determine whether a file is executable on Unix.
1605    We use this determination to decide whether to make it executable
1606    during installation. [Julian Mehnle]
1607
1608  - Replaced a vestigial 'next' with 'return' now that the code is in a
1609    subroutine (htmlify_pods()), not a loop. [Ron Savage]
1610
1611  - Fixed a guaranteed failure in t/signature.t when TEST_SIGNATURE was
1612    set. [Eric R. Meyers]
1613
1614  - Fixed a test failure that occurred when testing or installing in
1615    unattended mode - the code to test whether unattended mode and
1616    attended mode are working properly was assuming that we started out
1617    in attended mode. [Steve Peters]
1618
1619  - Improved our stand-in YAML generator that we use to generate
1620    META.yaml when authors don't have a copy of YAML.pm installed on
1621    their machine.  It was unable to handle things like embedded
1622    newlines in the data, now it has a much more extensive escaping
1623    mechanism. [Stephen Adkins]
1624
1625  - Revised the docs for --prefix and PREFIX. [Michael Schwern]
1626
1627 0.28  Thu Apr 27 22:25:00 CDT 2006
1628
1629  - When y_n() or prompt() are called without a default value and the
1630    build seems to be unattended (e.g. in automatic CPAN testing), we
1631    now die() with an error message rather than silently returning
1632    undef for prompt(), or looping indefinitely for y_n().
1633
1634  - When searching for '.modulebuildrc', return the first HOME-like
1635    directory that actually contains the file instead of the first
1636    existing directory. Document the search locations and the order
1637    searched. [Spotted by David Golden]
1638
1639  - Split the API documentation out of Module::Build::Authoring into
1640    its own document: Module::Build::API.
1641
1642  - We should not emit a warning if a Module::Build subclass is
1643    required in a Makefile.PL that is not bundled in the current
1644    distribution; it may be installed on the user's system. [Spotted by
1645    Tyler MacDonald]
1646
1647  - copy_if_modified() now preserves the executable bit of the source
1648    file. [Spotted by Julian Mehnle]
1649
1650  - Fixed compatibility of our screen-scraping the Test::Harness output
1651    so we can recognize the most recent Test::Harness version. [Steve
1652    Hay]
1653
1654  - Backing out a requirement added in 0.27_06 on the method y_n()
1655    to always include a default. This behavior would cause existing
1656    build scripts to start failing. We now fail with a missing default
1657    only when $ENV{PERL_MM_USE_DEFAULT} is set because there is no
1658    reasonable default.
1659
1660  - Make install_types() method smarter with respect to custom install
1661    types.
1662
1663  - Add documentation for the install_base_relpaths() and
1664    prefix_relpaths() methods. Improved their usage for a public API,
1665    and added tests.
1666
1667 0.27_10  Tue Mar 28 22:50:50 CST 2006
1668
1669  - Added the create_packlist property, default true, which controls
1670    whether packlist files will be written during installation.  This
1671    was already part of Module::Build 0.2609, but for some reason we've
1672    forgotten it in the 0.27_xx series.  [Spotted by Steve Kirkup]
1673
1674  - Document the versions of Module::Build where each feature, action,
1675    constructor argument, and method was first publicly documented.
1676
1677  - More fixes for find_perl_interpreter() to work with BSD flavored
1678    UNIX: Ensure we always return absolute paths; throw an exception
1679    upon failure to find correct interperter; document everything.
1680
1681  - We now include our own YAML.pm work-alike that we can use when the
1682    real YAML isn't installed.  We might soon even start using it when
1683    YAML is installed, because the YAML API and dependency chain have
1684    been changing in unfavorable ways lately. [Stephen Adkins]
1685
1686  - Fixed some shell-argument-quoting issues on VMS.  In the process,
1687    we have added some support for avoiding tripping over
1688    shell-argument-quoting issues on other platforms too. [Initial
1689    patch by Craig A. Berry]
1690
1691 0.27_09  Sat Mar 11 22:48:54 EST 2006
1692
1693  - Fixed find_perl_interpreter() so we can find the perl executable
1694    when running from uninstalled perl even when $^X contains a
1695    relative path. [Yitzchak Scott-Thoennes]
1696
1697  - Fixed warning message where we were printing the wrong field names.
1698    [Chris Dolan]
1699
1700  - Added a 'testpodcoverage' action that runs a POD coverage check for
1701    all modules in the distribution. [Yanick Champoux]
1702
1703  - Added a Cookbook example of subclassing to modify an action. [Dylan
1704    Martin and David Golden]
1705
1706  - When building HTML documentation, we were opening the POD file and
1707    not checking whether the open succeeded, which of course caused
1708    problems down the line if it failed.  Now we do "or die(...)" like
1709    everywhere else. [Spotted by Joerg Braun]
1710
1711 0.27_08  Fri Mar  3 21:22:41 CST 2006
1712
1713  - Due to shell quoting issues and differences in syntax between
1714    various flavors of Windows, the code for the 'pl2bat' utility
1715    distributed with Perl has been incorporated into M::B::P::Windows.
1716    [Thanks to Dr Bean and Ron Savage for help testing and isolating
1717    the problem.]
1718
1719  - Modify add_build_element() so that it only adds elements if they
1720    don't already exist. [David Wheeler]
1721
1722  - Fixed a bug in the 'pass-through' Makefile.PL in which we would die
1723    if CPAN::Shell->install returned false, but apparently this return
1724    value is unreliable.  Now we only die if the module is actually
1725    unavailable after installation.
1726
1727  - Fixed testing problems on VMS related to non-case-preserving
1728    filesystems.  We now bundle Tie::CPHash in the distribution (just
1729    for testing purposes, it doesn't get installed) to help with
1730    this. [Craig Berry and Yitzchak Scott-Thoennes]
1731
1732  - We incorrectly documented the 'dynamic_config' flag in the META.yml
1733    file as having a default value of false, but according to the
1734    META.yml spec (which, for heaven's sake, we wrote) its default
1735    value is true.  Fixed. [Spotted by Adam Kennedy]
1736
1737  - The have_c_compiler() method was dying if the ExtUtils::CBuilder
1738    module wasn't around, which is obviously an unhelpful thing to do.
1739    Now it just returns false. [Spotted by John Peacock]
1740
1741  - Fix detection of $VERSION expressions that are not
1742    assignments. [Spotted by Chris Dolan]
1743
1744  - Obfuscate one of our constructs that uses a $VERSION variable,
1745    because it was getting picked up by ExtUtils::MakeMaker's
1746    version-finder. [Spotted by Randal Schwartz]
1747
1748  - The config_data script for querying and/or setting a module's
1749    config data was forgetting to call write() after setting config
1750    values (though setting feature values was working fine).
1751    Fixed. [Brian Duggan]
1752
1753  - On Windows, remove the pl2bat generated 'Build.bat' script without
1754    the annoying "The batch file cannot be found." error.  [Solution
1755    provided by RazTK and foxidrive on newsgroup alt.msdos.batch]
1756
1757  - Our version comparisons should now work correctly with modules that
1758    use version.pm to delcare their versions (e.g. "our $VERSION =
1759    version->new('1.0.0')"). [John Peacock and Ron Savage]
1760
1761  - We now create a Build.bat script on versions of Windows where it
1762    makes sense. [Yves]
1763
1764  - Fixed the verbiage around choosing the correct make-alike on
1765    different platforms to suggest using 'perl -V:make'. [Suggested by
1766    anonymous user]
1767
1768 0.27_07  Wed Feb  1 20:07:45 CST 2006
1769
1770  - The notes() method now returns the new value when called with two
1771    arguments, just like when it's called with one argument. [Tyler
1772    MacDonald]
1773
1774  - The notes() method now distinguishes among the values undef, 0, and
1775    the empty string, where previously it didn't. [Tyler MacDonald]
1776
1777  - We now unshift(@INC) rather than push(@INC) for the directory where
1778    a build subclass lives, so that we're sure to pick up the right
1779    version and not some already-installed version. [perlmonkey]
1780
1781  - The SIGNATURE file for version 0.27_06 (and I'm sure for lots of
1782    versions before that too!) was messed up, since we were modifying
1783    some files after signing.  This has been band-aided for the time
1784    being by signing twice. [Reported by Chris Dolan]
1785
1786 0.27_06  Mon Jan 23 21:44:54 CST 2006
1787
1788  - Fixed an undefined-variable warning when building the META.yml file
1789    and the author hasn't used the 'module_name' mechanism. [Chris Dolan]
1790
1791  - We should now work with recent (> 0.49) versions of YAML.pm when
1792    creating the META.yml file. [Yitzchak Scott-Thoennes]
1793
1794  - The y_n() method now requires the default parameter, and the
1795    prompt() and y_n() methods have been improved with respect to
1796    how they behave/detect when there is no user to ask.  We're now
1797    more consistent with MakeMaker, including respecting the
1798    PERL_MM_USE_DEFAULT environment variable. [Tyler MacDonald and
1799    Yitzchak Scott-Thoennes]
1800
1801  - When building a README file using Pod::Text, work around a bug in
1802    Pod::Text 3.01, which expects Pod::Simple::parse_file to take input
1803    and output filehandles when it actually only takes an input
1804    filehandle. [Yitzchak Scott-Thoennes]
1805
1806 0.27_05  Thu Jan 12 17:39:21 CST 2006
1807
1808  - In t/common.pl, we were attempting to let the user's installed
1809    Test::More take precedence over ours, but getting thwarted by all
1810    the test scripts' loading Test::More beforehand.  Fixed. [Spotted
1811    by Yitzchak Scott-Thoennes]
1812
1813  - In various test scripts, we were outputting some strings that
1814    weren't strictly conformant with Test::Harness's expected input,
1815    though it didn't actually cause problems.  Now we're more
1816    conformant, though not yet strict. [Spotted by Yitzchak
1817    Scott-Thoennes]
1818
1819 0.27_04  Fri Dec 23 10:43:34 CST 2005
1820
1821  - Removed experimental feature that extended the prerequisite system
1822    to apply ('requires', 'recommends', and 'conflicts') prereqs to all
1823    actions. Most of the internal extensiblity has been retained so
1824    that prereq types can easily be added, more selectively.
1825
1826  - Added a 'prereq_report' action that shows the user a well-formatted
1827    list of all prerequisites, the versions required, and the versions
1828    actually installed. [David Wheeler]
1829
1830  - Clarified the directory name that's created during the 'distdir'
1831    action. [Suggested by Tyler MacDonald]
1832
1833  - Fixed a bug when creating the META.yml file without the help of
1834    YAML.pm - some common strings weren't quoted & escaped properly.
1835    Now only some uncommon ones are. [Spotted by Joshua ben Jore]
1836
1837  - Fixed a bug in which an "UNINST=1" argument specified to a
1838    passthrough Makefile's "make install" wasn't actually seen by
1839    Module::Build.
1840
1841  - Rather than dying when the Build script is run from the wrong
1842    directory, it now simply chdir()s into the right directory and
1843    keeps going. [Suggested by Dominique Quatravaux]
1844
1845  - Added an "Examples on CPAN" section to the cookbook, with an
1846    initial entry pointing to John Peacock's SVN-Notify-Mirror
1847    distribution.
1848
1849  - Add an invoked_action() method to return the name of the original
1850    action invoked by the user.
1851
1852  - Add 'meta-spec' field to the generated META.yml file, including the
1853    version of the specification followed by the current Module::Build
1854    and the url where the specification can be found.
1855
1856  - Introduced two actions, 'html' & 'manpages', that generate
1857    documentation for POD when the respective feature is enabled.  The
1858    actions will generate the documents even if there is no set place
1859    to install to.  However, if the actions are invoked as a dependency
1860    of another action (e.g. build), the documentation will only be
1861    built when there is a default or user-specified place to install to.
1862
1863  - Added support for environment variable, 'MODULEBUILDRC', which can
1864    be used to specify the full path to an option file to use instead
1865    of the default location of ~/.modulebuildrc. A special undocumented
1866    setting of 'NONE' tells Module::Build not to load any user settings,
1867    so tests can be run without tainting from user options.
1868
1869  - Documented and improved preliminary support for more Getopt::Long
1870    style options are supported, including boolean options (--verbose,
1871    --no-verbose), and use of hyphens in option names in addition to
1872    underscores.
1873
1874  - The option to disable/enable reading of the ~/.modulebuildrc file
1875    is changed from 'skip_rcfile' to 'use_rcfile'
1876
1877  - Allow the 'distmeta' action to continue when 'MANIFEST' is missing,
1878    omitting the generation of the 'provieds' field. [Steven Schubiger]
1879
1880  - Fixed some failing regex from generated MANIFEST.SKIP file.
1881
1882  - Fixed an edge case in $VERSION parsing where we thought a package()
1883    declaration was happening but it wasn't. [David Golden]
1884
1885  - Added docs for the install_destination() and install_types() methods.
1886
1887 0.27_03 (Beta for 0.28)  Mon Oct 10 11:19:23 EDT 2005
1888
1889  - We now use ExtUtils::CBuilder to do all compiling of C code (for
1890    example, when compiling XS modules).  (This change actually
1891    occurred in 0.27_01, but it was mistakenly omitted from the Changes
1892    file.)
1893
1894  - Fixed an issue on Win32 (and other case-tolerant
1895    non-case-preserving systems, possibly like VMS?) in which the
1896    current working directory would sometimes be reported with
1897    different case, fooling us into thinking that we were in the wrong
1898    directory. [David Golden]
1899
1900  - The extra_compiler_flags setting was not actually being passed
1901    along to ExtUtils::CBuilder so it could pass it along to the
1902    compiler.  Now it is.
1903
1904  - The synonyms 'scripts' and 'prereq' for 'script_files' and
1905    'requires' were broken in a previous version (0.27_01, probably),
1906    but now they're fixed. [David Golden]
1907
1908  - Previously, we assumed that any custom subclass of Module::Build
1909    was located in _build/lib/.  This is only true if the author used
1910    the subclass() method, though.  We now use %INC to find where the
1911    custom subclass really is, so that we can "use lib" it.  We also
1912    issue a warning if it seems to be outside the build directory.
1913    [Spotted by Peter Tandler]
1914
1915  - Added a URL for each license type that we know about, which will
1916    appear as resources=>license: in the generated META.yml file.
1917
1918  - If the user passes a no_index parameter to our constructor, we now
1919    pass that through when building the META.yml file. [Richard
1920    Soderberg, RT #9603]
1921
1922  - A few more status messages can now be suppressed by using 'quiet'
1923    mode.  [Dave Rolsky]
1924
1925  - Added some more entries to the default MANIFEST.SKIP file. [Chris
1926    Dolan]
1927
1928  - Our POD parser will now accept "AUTHORS" as well as "AUTHOR" when
1929    looking for the author list in a module. [David Wheeler]
1930
1931  - When looking for the POD to auto-generate a README file, or for the
1932    AUTHOR or ABSTRACT for the distribution, we now also look for a
1933    *.pod with the same name as the *.pm file specified by
1934    'version_from'. [David Golden]
1935
1936  - The recommended dependency on ExtUtils::ParseXS has been moved into
1937    the "C_support" auto_feature.
1938
1939  - When building XS files, we now pass the -DVERSION and -DXS_VERSION
1940    flags to the compiler. [Spotted by Jerry Hedden]
1941
1942  - If a distribution has XS files and Module::Build has not been
1943    configured with the "C_support" feature, we now issue a
1944    warning. [Suggested by Jerry Hedden]
1945
1946  - Added a dir_contains() method.
1947
1948  - Some versions of MakeMaker, CPANPLUS, and/or PAUSE thought that a
1949    certain line of our code was declaring a $VERSION when we didn't
1950    intend to.  The line has been obscurified so they won't think that
1951    anymore. [Jos Boumans, RT #14226]
1952
1953  - Added the Apache, MIT, and Mozilla licenses to the list of licenses
1954    that this module knows about. [Bob Ippolito]
1955
1956  - Fixed a pretty significant typo in the documentation for
1957    auto_features. [Spotted by Jonas B. Nielsen]
1958
1959  - In order to aid people who want to do customization of the META.yml
1960    file, we've added a "metafile" property that can then be easily
1961    overridden in subclasses, changed do_create_meta_yml() to
1962    do_create_metafile(), and split out the code that actually
1963    generates the YAML into a new method, write_metafile(). [David
1964    Wheeler]
1965
1966  - Fixed a couple of non-helpful behaviors with extra_compiler_flags
1967    and extra_linker_flags.  These will automatically be run through
1968    split_like_shell() when given to new() as strings.
1969
1970  - When the user doesn't have ExtUtils::ParseXS installed and we use
1971    the old 'xsubpp', the displayed command line for creating the .c
1972    file from the .xs file was missing its newline.  Now it's got it.
1973
1974 0.27_02 (Beta for 0.28)  Fri Jul 15 07:34:58 CDT 2005
1975
1976  - Provided initial support for the --prefix installation parameter,
1977    which acts like MakeMaker's PREFIX.  It is still highly recommended
1978    NOT to use it when you could reasonably use --install_base or
1979    --install_path or --install_dest, but that's just because the way
1980    --prefix is designed is weird and unpredictable.  Ultimately the
1981    choice rests with the installing user. [Patches by Michael Schwern
1982    and Rob Kinyon]
1983
1984  - Fixed a bug in subclass() which prevented people from using it to
1985    subclass subclasses of Module::Build. [Chris Dolan]
1986
1987  - Added a 'pure_install' action, which for the time being is
1988    identical to the 'install' action. [Jos Boumans]
1989
1990  - Fixed a POD error in an L<http://...> tag. [Offer Kaye]
1991
1992  - Note several options for automatically creating a new module dev
1993    tree. [Suggested by Eric Wilhelm]
1994
1995  - Removed some hard-coded references to File::Spec::Unix in the
1996    creation of HTML docs, which should help that code work in more
1997    places, and help people not to panic when they look at it. [Spotted
1998    by Yves]
1999
2000  - We now use Pod::Readme by default (instead of Pod::Text) to
2001    generate the README file when the 'create_readme' option is used.
2002    If Pod::Readme is not installed, we will still fall back to using
2003    Pod::Text.  [Robert Rothenberg]
2004
2005  - The values of the "prefix", "install_base", "install_path", and
2006    "install_dest" parameters can now begin with "~" or "~user", and
2007    we'll de-tilde-ify them by using glob().
2008
2009  - The (optional) auto-creation of the README and Makefile.PL files
2010    have been moved from the 'distdir' action to the 'distmeta'
2011    action. [David Golden]
2012
2013  - When looking for a .modulebuildrc file, we now use a fancier method
2014    of trying to find the home directory, because $ENV{HOME} isn't a
2015    very cross-platform variable. [Robert Rothenberg]
2016
2017  - We now memoize the output of the internal _default_INC() method,
2018    since it uses backticks and might be kind of slow.
2019
2020  - When processing XS files, we now look for a typemap in lib/ as well
2021    as using the system's default typemap. [John Peacock]
2022
2023  - The DESTDIR, PREFIX, and INSTALL_BASE arguments to "make install"
2024    are now supported for pass-through Makefiles (they've been
2025    supported for quite a while as arguments to "perl
2026    Makefile.PL"). [Requested by Guillaume Rousse]
2027
2028  - Test::Harness has changed its output format in recent versions,
2029    which threw off one of our tests.  We now allow for this different
2030    format. [Reported by Scott Godin]
2031
2032  - Fixed an issue that prevented Module::Build from upgrading itself
2033    using its own API (which is how CPANPLUS uses it).  There are still
2034    some issues with this solution, however.  See ticket #13169 in
2035    rt.cpan.org. [Reported by Jos Boumans]
2036
2037  - Fixed a fatal error that occurred when a distribution's author
2038    could not be determined from its POD nor from the call to
2039    Module::Build->new() in its Build.PL.  See ticket #12318 in
2040    rt.cpan.org. [Reported by Jos Boumans]
2041
2042  - Apparently on Windows and cygwin it's not possible to use the "-pi"
2043    switch to perl without a backup extension, so now we use ".bak" and
2044    remove the backup file when we're done.  Thus the "dist" action for
2045    Module::Build itself can now be run on those platforms. [Yitzchak
2046    Scott-Thoennes]
2047
2048  - Improved the handling of auto_features in the config_data access
2049    script. [Yitzchak Scott-Thoennes]
2050
2051 0.27_01 (Beta for 0.28)  Fri Apr 15 21:12:57 CDT 2005
2052
2053  Backward-incompatible (but better) changes:
2054
2055  * When using the 'install_base' option to choose a directory for
2056    installing everything, perl modules now go into lib/perl5/ instead
2057    of just lib/.  It seems this is more consistent with people's
2058    expectations, and the way I had it before was a bit peculiar to the
2059    way I like things in my own home directory. [Michael Schwern]
2060
2061  * When the user is using the 'install_base' option, scripts will now
2062    be installed by default in $install_base/bin/ rather than
2063    $install_base/script/ . [Jan Hudec and Michael Schwern]
2064
2065  Major changes:
2066
2067  - The auto_features mechanism will now re-evaluate dependencies every
2068    time feature() is called for an auto-feature, rather than freezing
2069    the success/failure value during 'perl Build.PL' and using that
2070    value for all eternity (or module update, whichever comes first).
2071    This applies to both $build->feature() and
2072    FooModule::ConfigData->feature() calls. [Requested by many]
2073
2074  - Added the meta_add and meta_merge mechanisms, which let the module
2075    author add/merge arbitrary entries into the META.yml file.
2076
2077  - Now reads per-action default options from '$ENV{HOME}/.modulebuildrc'
2078    if it exists. Command line options override anything set in the rc file.
2079
2080  - We now use ExtUtils::CBuilder to do all compiling of C code (for
2081    example, when compiling XS modules).
2082
2083  - The creation of Unix man pages is no longer a strict necessity - it
2084    has now been turned into an 'auto-feature' contingent on the
2085    presence of Pod::Man and a location specified for man pages to go.
2086
2087  - A user-specified 'install_path' setting will now take precedence
2088    over an 'install_base' setting.  This allows the user to use
2089    'install_base' to set the base for all elements in one go, and then
2090    use 'install_path' to override specific paths or add paths for
2091    additional kinds of targets.
2092
2093  - Split the main documentation from 'Module/Build.pm' into two
2094    sections. The user level documentation and overview remains in
2095    'Module/Build.pm', while a new document,
2096    'Module/Build/Authoring.pod', has been created for module authors.
2097
2098  Minor changes:
2099
2100  - new_from_context() was losing its arguments in some cases (and not
2101    because of inadequate training in forensic debate) - we now pass its
2102    arguments directly to the Build.PL script rather than merging them
2103    in afterwards.
2104
2105  - Let resume() return an object blessed into the appropriate class
2106    if the user has provided a subclass, as specified by the
2107    'build_class' property. This allows current() and new_from_context()
2108    to behave more like factory methods returning objects of the correct
2109    class based on context. [Ray Zimmerman]
2110
2111  - Refactored methods relating to parsing perl module files for
2112    package, version, and pod data into a new class:
2113    Module::Build::ModuleInfo.  It should not be considered part of
2114    Module::Build's API, because we may split it out entirely as a
2115    separate CPAN module that we depend on.
2116
2117  - Added new method Module::Build::prepare_metadata() for authors to
2118    override in order to add custom fields to META.yml.
2119
2120  - We now use Test::More for our regression tests.  If the user
2121    doesn't have it installed, we include a copy in t/lib/ that we can
2122    use during testing.
2123
2124  - When copying files in the 'distdir' action, set permissions to match
2125    the original files. [Julian Mehnle]
2126
2127  - When adding files like META.yml to the MANIFEST, we now tell the
2128    user we're doing so by printing one of the "Added to MANIFEST: ..."
2129    lines.  [Ron Savage]
2130
2131  - Added a runtime_params() method, which lets a module author see
2132    which parameters were overridden by the user on the command line
2133    (or in whatever paradigm the user originally invoked Module::Build
2134    from). [David Wheeler]
2135
2136  - Added the current_action() method, which, surprisingly, returns the
2137    name of the currently running action. [David Wheeler]
2138
2139  - Added docs for run_perl_script().
2140
2141  - Added some stuff to the docs about why PREFIX is unsupported, and
2142    what to use instead. [Steve Purkis]
2143
2144  - The simple get/set accessor methods for all the 'parameters' like
2145    verbose(), license(), etc. now have auto-generated documentation in
2146    Module/Build.pm.
2147
2148  - Created a Cookbook entry for 'Adding new elements to the install
2149    process'
2150
2151  - We now add META.yml to the MANIFEST when META.yml is created, not
2152    when MANIFEST is created. [Spotted by Ron Savage]
2153
2154  - Added some additional patterns to the suggested MANIFEST.SKIP
2155    contents, and changed the docs so that we encourage the user to use
2156    the MANIFEST.SKIP.  [Ron Savage]
2157
2158  - Eliminated a redundant recipe from the Cookbook, now that there are
2159    some more extensive recipes on how to add stuff to the
2160    build/install sequences.
2161
2162  - Eliminated an undefined-variable warning when testing under perl 5.005
2163
2164  - When building HTML documentation, 'html_backlink' and 'html_css'
2165    properties are now first-class properties, so they can be set from
2166    the command line. [Suggested by Sagar R. Shah]
2167
2168  - Have script_files default to everything in bin.  I believe this is
2169    the least surprising behavior. [Suggested by Michael Schwern]
2170
2171  - If script_files is given a directory, consider each file in that
2172    directory tree as a script to be installed.  This avoids having to
2173    remember to add to the script_files list every time you add a
2174    program. [Suggested by Michael Schwern]
2175
2176  - We now only load Pod::Man when we actually need to build man pages.
2177
2178  - We now make Test::Harness use our carefully-selected path to a perl
2179    executable regardless of Test::Harness's version.  Previously we
2180    let it figure stuff out for itself if it was a reasonably modern
2181    version, but it's safer to make sure we're using the same perl
2182    everywhere.
2183
2184 0.2610  Fri Apr 15 08:25:01 CDT 2005
2185
2186  - new_from_context() was losing its arguments in some cases (and not
2187    because of inadequate training in debate) - we now pass its
2188    arguments directly to the Build.PL script rather than merging them
2189    in afterwards. [Ray Zimmerman]
2190
2191  - Fixed a bug in which config_data and feature data were being
2192    forgotten and no ConfigData.pm module would get written. [Ray
2193    Zimmerman]
2194
2195  - Added a recipe to the cookbook showing how to run a single test
2196    file from the command line. [William McKee]
2197
2198  - For command-line arguments, we now accept the syntax "--foo=bar" in
2199    addition to "--foo bar" and "foo=bar".  This seems to fit well with
2200    what GNU getopt and Getopt::Long do, and with people's
2201    expectations. [Adam Spiers]
2202
2203 0.2609  Wed Mar 16 22:18:35 CST 2005
2204
2205  - The html docs that were created during the first invokation of
2206    './Build' were being found and treated as pod that needed to be
2207    converted to html during subsequent invokations. We now are more
2208    specific about the directories we scan for pod that needs to be
2209    converted, effectively avoiding blib/html. [Ray Zimmerman]
2210
2211  - If Pod::Man is not available, we now skip building man pages
2212    (rather than dying) and tell the user why.
2213
2214  - We now write a .packlist file upon installation, in the same place
2215    that ExtUtils::MakeMaker does. [Johnny Lam]
2216
2217  - On some Unix platforms (BSD derivatives, mostly) perl's $^X
2218    variable isn't set to the full path of the perl executable, just
2219    'perl', when the 'Build' script is run as './Build' and not 'perl
2220    ./Build'.  This can lead to some other modules (maybe
2221    Test::Harness, maybe IO::File, I dunno...) getting very confused
2222    about where they are, and they try to load stuff from the wrong
2223    perl lib, and big trouble ensues.  To fix this, we now set $^X to
2224    the value of Module::Build->find_perl_interpreter().
2225
2226  - The 'distcheck' action will now die() if it finds an error in the
2227    MANIFEST, rather than just printing on STDOUT. [David Golden]
2228
2229  - When the README and/or Makefile.PL are autogenerated using
2230    create_readme or create_makefile_pl, we now automatically make sure
2231    they're also listed in the MANIFEST file. [Suggested by Michael
2232    Schwern]
2233
2234  - Got rid of the t/MANIFEST file - it's superfluous, and it had
2235    zero-length, which some versions of Tar don't like. [William
2236    Underwood]
2237
2238  - Added a mention in the documentation that each property that new()
2239    accepts also has a corresponding get/set accessor.  (In the version
2240    0.27_0x series each accessor method is mentioned explicitly in the
2241    docs.) [Omission spotted by Ian Langworth]
2242
2243 0.2608  Wed Jan 26 19:46:09 CST 2005
2244
2245  - Add workaround for test files because Devel::Cover causes
2246    require to fail when the argument to require is an expression
2247    involving File::Spec. We now assign the result of the File::Spec
2248    call to a variable and then call require with that variable.
2249
2250  - Tilde-expansion is now performed on arguments passed to a
2251    compatibility-Makefile.PL [Spotted by Sam Vilain]
2252
2253  - We now run the 'gzip' and 'tar' values through split_like_shell()
2254    when running the 'dist' action, so that e.g. the 'gzip' value can
2255    be set to something like "gzip -f --best" and it'll work
2256    correctly. [Spotted by Chris Dolan]
2257
2258  - Work around some bad mojo between Fedora Core [with its very long
2259    @INC] and old versions of Test::Harness [with its propensity to
2260    compound the number of @INC entries] that produced an "argument
2261    list too long" error during testing.  [assisted by Ville Skytta,
2262    David Golden, & Randy Sims]
2263
2264  - Killed an infinite loop that would happen in y_n() in interactive
2265    mode if the author provided no default value. [Max Maischein]
2266
2267 0.2607 (Bug fix release in 0.26 series)  Sat Dec 18 14:14:09 CST 2004
2268
2269  - Instead of freezing @INC in the 'Build' script to the value it had
2270    when Build.PL was run, we now just add those additional values that
2271    aren't part of the default compiled-in @INC. [Michael Schwern]
2272
2273  - The run_perl_script() method will now propagate any extra entries
2274    in @INC (such as those added by "use lib" or the -I command-line
2275    switch) to the subprocess.  This helps situations in which you want
2276    to tell the subprocess where to find a certain module, for
2277    instance.  [Michael Schwern]
2278
2279 0.2606 (Bug fix release in 0.26 series)   Tue Dec  7 22:33:11 CST 2004
2280
2281  - Fixed a linking bug on Win32, in which compiled C code object files
2282    never got linked in with the modules being built. [Dominic
2283    Mitchell]
2284
2285  - Fixed a bug in the new_from_context() method in which any arguments
2286    passed made us die. [Spotted by Jos Boumans]
2287
2288 0.2605 (Bug fix release in 0.26 series)   Tue Nov 30 07:16:13 CST 2004
2289
2290  - Fixed a bug in which zero-length arguments for hash-valued
2291    parameters (e.g. " --config foo= ") weren't being allowed.
2292
2293  - The tests now play better with environments in which version.pm is
2294    pre-loaded, like in bleadperl. [John Peacock & Michael Schwern]
2295
2296  - Fixed a syntax error in one of the tests under perl 5.005.
2297
2298 0.2604 (Bug fix release in 0.26 series)   Wed Nov 17 14:32:42 CST 2004
2299
2300  - Fixed a split_like_shell() bug introduced in 0.2603 for Windows, in
2301    which an array reference passed as an argument was returned as an
2302    array reference, rather than as a list. [Spotted by Steve Hay]
2303
2304  - module_name() will now return '' instead of undef when module_name
2305    is not set.  This eliminates a couple uninitialized-value
2306    warnings. [Suggested by Michael Schwern]
2307
2308  - The expand_test_dir() method will now skip dotfiles (like ._foo.t,
2309    which sometimes gets automatically created on Mac systems) when
2310    'recursive_test_files' is in effect. [Tom Insam]
2311
2312 0.2603 (Bug fix release in 0.26 series)   Mon Nov 15 10:28:00 CST 2004
2313
2314  - Added documentation for the new_from_context() method.
2315
2316  - Completely rewrote the split_like_shell() method for the Windows
2317    platform so it works like the command.com shell. [Randy Sims]
2318
2319 0.2602 (Bug fix release in 0.26 series)   Thu Nov  4 11:19:29 CST 2004
2320
2321  - The two bug fixes in 0.2601 gnashed against each other incorrectly,
2322    resulting in a Win32 bug in split_like_shell().  Fixed.  [Spotted
2323    by Steve Hay & Randy Sims]
2324
2325  - Removed a couple of 'use warnings' statements from the code - they
2326    were causing compile failures on 5.005_04, where warnings.pm isn't
2327    available. [Blair Zajac]
2328
2329 0.2601 (Bug fix release in 0.26 series)   Wed Nov  3 20:09:27 CST 2004
2330
2331  - Fixed some backslash problems with split_like_shell() on
2332    Win32. [Steve Hay]
2333
2334  - Fixed a bug in split_like_shell() in which leading whitespace was
2335    creating an empty word, manifesting as something like "gcc - no
2336    such file or directory" during tests. [Spotted by Warren L. Dodge]
2337
2338 0.26  Sat Oct  9 17:51:01 CDT 2004
2339
2340  - Removed some language from the Module::Build::Compat documentation
2341    that encouraged people to include a Build.PL without a Makefile.PL.
2342    Also changed "a replacement for MakeMaker" to "an alternative to
2343    MakeMaker" in the main documentation, which is basically what I
2344    meant all along (i.e. a replacement for MakeMaker in your
2345    particular build process - MakeMaker is never going to be fully
2346    replaced in the perl world at large, of course), but some people
2347    got the impression I was a little more truculent toward MakeMaker
2348    than I really am.
2349
2350  - Added the formal concepts of "features" and "config data" for
2351    distributions.  This allows the module author to define a certain
2352    set of features that the user can switch on and off (usually
2353    according to whether they have the proper prerequisites for them),
2354    and to save build-time configuration information in a standardized
2355    format.  See the main documentation of Module::Build for more
2356    details.  (Note that the name of this system was called
2357    "BuildConfig" for a while in beta, but now it's called
2358    "ConfigData".)
2359
2360  - Added an 'auto_features' capability, which simplifies the process
2361    of defining features that depend on a set of prerequisites.
2362
2363  - Added the 'get_options' parameter, which lets module authors
2364    declare certain command-line arguments their Build.PL can accept
2365    [David Wheeler]
2366
2367  - Changed the split_like_shell() method to use the shellwords()
2368    function from Text::ParseWords (a core module since 5.0), which
2369    does a much better job than the split() we were using.
2370
2371  - Added a 'testpod' action, which checks the syntactic validity of
2372    all POD files in the distribution using Test::Pod.  This eliminates
2373    the need for doing so in a regression test. [Initial patch by Mark
2374    Stosberg]
2375
2376  - Added a process_files_by_extension() method, which generalizes the
2377    kind of processing (essentially just copying) that happens for .pm
2378    and .pod files, and makes it available to other user-defined types
2379    of files.  See the new cookbook entry.
2380
2381  - Improved compatibility with version.pm when authors are using
2382    version objects as their $VERSION variables.  Now
2383    version_from_file() can deal with these objects.  Currently we
2384    stringify them right away, but perhaps in the future we will
2385    preserve them as objects for a while.
2386
2387  - During 'distdir' and 'distmeta' actions, die a bit more gracefully
2388    if there's no MANIFEST (i.e. explicitly say that a MANIFEST is
2389    required). [Spotted by Adrian Howard]
2390
2391  - Eliminated a recursive dependency between creating the MANIFEST
2392    file and creating the META.yml file.  [Spotted by Dave Rolsky]
2393
2394  - On Win32, where a single directory might be known variously as
2395    "Module-Build-0.25_03" or "MODULE~1.25_", we now use
2396    Win32::GetShortPathName($cwd) to verify that the 'Build' script is
2397    being run from the correct directory, rather than just a string
2398    comparison.
2399
2400  - The add_to_cleanup() method will now accept glob()-style patterns
2401    in addition to explicit filenames.  Also documented the fact that
2402    they can be specified in either Unix-style or native-style
2403    notation.
2404
2405  - Passing a PREFIX value to a pass-through Makefile 'make install'
2406    now has the same effect as passing it to 'perl Makefile.PL' (it
2407    dies with a helpful message).
2408
2409  - Added the 'testcover' action, which runs a test suite using
2410    Devel::Cover.  [Dave Rolsky]
2411
2412  - Added the 'lib' and 'arch' installation directories to the search
2413    path for the 'diff' action, since they won't necessarily (though
2414    they usually will) be in @INC at installation time. [Suggested by
2415    Kevin Baker]
2416
2417  - The "=head3" POD directive isn't supported in older podlators
2418    (particularly Pod::Man), so we don't use it anymore.
2419
2420  - Fixed a typo & improved the docs in the SUBCLASSING section. [Ron
2421    Savage]
2422
2423  - Added the '.tmp' suffix to the default MANIFEST.SKIP file, which
2424    should avoid adding things like pod2htmi.tmp to the MANIFEST [Ron
2425    Savage]
2426
2427  - Backup files from Emacs, containing the string '.#' in their names,
2428    should no longer find their way into the blib/ directory (and from
2429    there into installation directories).
2430
2431  - Worked around an unpleasant interaction between version.pm and the
2432    version-checking code that makes sure Module::Build's version
2433    hasn't changed during the lifetime of the 'Build' script. [Reported
2434    by Trevor Schellhorn]
2435
2436  - Fixed a problem in htmlify_pods() that would produce test failures
2437    on Cygwin (and probably elsewhere).  [Yitzchak Scott-Thoennes]
2438
2439  - Fixed a test failure on Cygwin (and probably elsewhere) in
2440    t/compat.t, resulting from empty environment variables being set to
2441    the empty string (as opposed to simply being unset) by their mere
2442    presence in the "EXPORT:" list.
2443
2444  - Fixed a fatal error that occurred when the author specified
2445    'dist_author' manually in their Build.PL script. [Spotted by Ron
2446    Savage]
2447
2448  - The 'provides' section of the META.yml file wasn't being built
2449    properly on Win32, because of a mismatch between URL-format and
2450    native-format pathnames.  Fixed.  [Reported by Robert Rothenberg]
2451
2452  - The progress message "lib/Foo.xs -> lib/Foo.c" was previously being
2453    output even when the Foo.c file wasn't being rebuilt.  It's now
2454    fixed.
2455
2456  - Fixed a couple of places in Compat.pm where it could have forgotten
2457    which perl interpreter it had been run with ($^X isn't very
2458    trustworthy).
2459
2460  - On some systems, the way we updated the timestamp on the
2461    "lib/Foo.bs" file (one of the output files for XS-based modules)
2462    was failing.  It's been replaced by a simple call to utime().
2463
2464  - Fixed a problem in t/compat.t that prevented it from being run
2465    individually using 'make test TEST_FILES=t/compat.t'.  The problem
2466    was that a couple environment variables (TEST_FILES, MAKEFLAGS)
2467    were being passed through to subprocesses, and confused them.
2468
2469  - Fixed an important typo in the documentation for the 'install_base'
2470    parameter ('libdoc' and 'bindoc' were switched). [Ray Zimmerman]
2471
2472  - The pass-through Makefiles (type 'small' or 'passthrough') now
2473    support the TEST_FILES parameter to 'make test'.
2474
2475  - Fixed a fatal error that would occur on perl 5.005 when building
2476    HTML documentation, because its version of Pod::Html was old and
2477    didn't like some of the parameters we fed it. [Spotted by Blair
2478    Zajac]
2479
2480  - The final line of the generated pass-through Makefile was missing
2481    its trailing newline, which is now fixed. [Chip Salzenberg]
2482
2483  - We now depend on YAML version at least 0.35 and at most version
2484    0.49, so that we don't pick up a new (and backward-incompatible) beta
2485    version from CPAN.
2486
2487  - Squashed a warning in t/basic.t about '"Foo::Module::VERSION" used
2488    only once', and one in PPMMaker about $^V being undefined. [Blair
2489    Zajac]
2490
2491  - Added a couple temporary output files from HTML documentation
2492    generation to the cleanup list.  [Toby Ovod-Everett]
2493
2494  - The PodParser module will now only extract paragraphs in the
2495    'AUTHOR' section of the pod if they contain an '@' character.  This
2496    tends to do a better job, heuristically speaking, of returning
2497    relevant stuff.
2498
2499  - Added regression tests and a helper method ( add_build_elements() )
2500    for adding new elements to the build process.  Also some
2501    documentation.
2502
2503  - Wrote a recipe in the Cookbook for adding new elements to the build
2504    process, and a recipe for changing the order in which the steps in
2505    the build process will occur.
2506
2507 0.25  Sun Apr 25 11:12:36 CDT 2004
2508
2509  - During the 'distdir' action, if no MANIFEST.SKIP file exists, we
2510    will now create a reasonable default one. [Randy Sims]
2511
2512  - In Makefile compatibility mode, some arguments (like UNINST,
2513    TEST_VERBOSE, etc.) given to 'make' are now recognized and passed
2514    through to Module::Build. [Randy Sims]
2515
2516  - The regression tests now make sure that several pass-through
2517    Makefile.PL parameters are dealt with correctly.
2518
2519  - Added support for the 'LIB' parameter to passthrough
2520    Makefile.PLs. [Spotted by Jesse Erlbaum]
2521
2522  - Passing a 'PREFIX' parameter to a passthrough Makefile.PL was
2523    supposed to make it die with a helpful error message, but instead
2524    it just ignored it and blindly tried to install to the wrong place.
2525    This is now fixed.  [Spotted by Jesse Erlbaum]
2526
2527  - Added an extra_compiler_flags() accessor method.
2528
2529  - If the 'recursive_test_files' option was turned on, the test files
2530    weren't sorted, but returned in an apparently random order.  Now
2531    they're sorted.  [Martyn Peck]
2532
2533  - Documented the 'tar' and 'gzip' parameters to the 'dist' and
2534    'ppmdist' actions.
2535
2536  - The generation of HTML documentation now works (it was accidentally
2537    partially implemented with an itchy patch-application finger in
2538    0.24).  [Randy Kobes]
2539
2540  - Fixed a fatal bug when building META.yml with YAML.pm and
2541    'dynamic_config' is set. [Reported by Jaap Karssenberg]
2542
2543  - Fixed some incorrect error messages that occurred when
2544    compiling/linking C sources went awry.
2545
2546  - If the author uses a custom builder subclass, that subclass will
2547    now be loaded correctly in the passthrough Makefile.PL if the
2548    author uses the 'small' or 'passthrough' Makefile.PL options in
2549    Module::Build::Compat. [Martyn Peck and Jaap Karssenberg]
2550
2551  - If the author uses a custom builder subclass created dynamically
2552    through the subclass() method, passthrough Makefile.PLs (of type
2553    'passthrough' or 'small') didn't work properly, because the custom
2554    builder module wouldn't be loaded at the right time.  This has been
2555    fixed.  [Reported by Toby Ovod-Everett]
2556
2557  - In M::B-generated 'traditional' Makefile.PLs, the entries in
2558    'PREREQ_PM' are now sorted ASCIIbetically rather than randomly.
2559
2560  - The install_types() method will now return any additional types
2561    given as 'install_path' arguments, as well as all elements of the
2562    current 'install_sets' entry.  This makes it easier to add new
2563    types of installable objects to the mix.
2564
2565  - As a consequence of the previous change, there is no longer any
2566    need to have an explicit 'install_types' data member, so it has
2567    been removed.
2568
2569  - In the second example code for the Module::Build->subclass()
2570    method, the Module::Build module needed to be loaded before calling
2571    its methods. [John Peacock]
2572
2573  - Fixed minor error in the POD structure of Module::Build and
2574    Module::Build::Platform::VMS docs.
2575
2576
2577 0.24  Wed Feb 25 15:57:00 CST 2004
2578
2579  - Fixed a problem with incude_dirs not being propagated to the 'ccs'
2580    file when compiling XS files on Win32. [Randy Sims and Steve Hay]
2581
2582  - In 0.23, Module::Build::Compat->fake_makefile() started choking
2583    when no 'build_class' parameter was supplied in the Makefile.PL.
2584    Since these Makefile.PLs still exist on CPAN, we now default
2585    'build_class' to 'Module::Build', which was the old 0.22 behavior
2586    anyway.  [Reported by Martin Titz and Jeremy Seitz]
2587
2588  - Added documentation for the 'include_dirs' parameter to
2589    new(). [Steve Hay]
2590
2591  - Changed the no-op command on Win32 from 'rem' to 'rem>nul' inside
2592    pass-through Makefiles. [Randy Sims]
2593
2594  - The 'autosplit' parameter now accepts an array reference if
2595    multiple files should be split. [Jaap Karssenberg]
2596
2597  - find_perl_interpreter() will now use $^X (if absolute), $ENV{PATH}
2598    (if $^X isn't absolute), and $Config{perlpath}, in that order.
2599    Also, we now make darn sure the result is the same version of perl,
2600    by checking Config::myconfig() for a match against the current
2601    perl.  [Reported by Edward Sabol]
2602
2603  - Fixed a fatal error on Win32 (and any other platform that doesn't
2604    define an installation location for Unix-style man pages) during
2605    installation.
2606
2607 0.23  Sun Feb  8 22:01:18 CST 2004
2608
2609  - Fixed a compatibility problem in pass-through Makefiles (created by
2610    Module::Build::Compat).  Some 'make' utilities (for example, BSD
2611    make) didn't like a '@' by itself on a line, so we stole some
2612    'NOOP' code from MakeMaker to fix it. [Reported by Mathieu Arnold]
2613
2614  - Added a 'ppm_dist' action, which just makes the PPD file and then
2615    makes a tarball out of the blib/ directory. [Randy Sims]
2616
2617  - The @INC of the parent process is now propagated to child processes
2618    when processing *.PL files. [Reported by Jaap Karssenberg]
2619
2620  - We now only attempt to fix the shebang line on a script if the
2621    shebang line matches the regex /perl/i .  This fixes some instances
2622    where people put shell scripts in their distributions. [Jaap
2623    Karssenberg]
2624
2625  - We no longer generate a 'requires', 'recommends', 'conflicts',
2626    etc. entry in the META.yml file if there's no data to go in it.
2627
2628  - Added a documentation reference to Michael Schwern's wiki for tips
2629    on conversion from MakeMaker to M::B. [Randy Sims]
2630
2631  - If there are script_files, we now add EXE_FILES to the
2632    'traditional' Makefile.PL generated by M::B::Compat. [Suggested by
2633    Yuval Kogman]
2634
2635  - Documented the 'test_files' parameter to new(). [Reported by Tony
2636    Bowden]
2637
2638  - Fixed a problem in "Build help <action>", which didn't find the
2639    correct help chunk if <action> was the final element in a POD
2640    list. [Jaap Karssenberg]
2641
2642  - Fixed a problem in the get_action_docs() method which gave
2643    incorrect results if the method was called more than once in the
2644    same program.
2645
2646  - Fixed a problem in which actions defined by user subclasses
2647    wouldn't be available via the pass-through Makefiles created by
2648    Module::Build::Compat. [Reported by Jaap Karssenberg]
2649
2650  - We now use Data::Dumper instead of our own ad-hoc serialization
2651    routines to create the 'traditional' Makefile.PL
2652    arguments. [Suggested by Yuval Kojman]
2653
2654 0.22  Sat Jan 10 22:05:39 CST 2004
2655
2656  - On Unixish platforms, the syntax "FOO=BAR /bin/baz arg arg" now
2657    works when present in $Config{ld}.  This solves a problem on Mac OS
2658    X 10.3. [Reported by Adam Foxson]
2659
2660  - The have_c_compiler() now also tests whether the linker seems to
2661    work too.
2662
2663  - Fixed a problem with creating the distribution tarball in which
2664    permissions would usually be all read-only.  We now use our own
2665    file-copying routines rather than those in ExtUtils::Manifest,
2666    because those do some annoying extra permissions-setting stuff for
2667    no apparent reason.  It makes me happy that this was a very very
2668    easy patch to make.  [Reported by Thomas Klausner]
2669
2670  - The compile_c() method now includes $Config{cccdlflags} in its
2671    command invocation.  It's usually empty, but not always, so we
2672    didn't notice for a while. [Richard Clamp]
2673
2674  - On some platforms it's common to have a $Config{make} defined, but
2675    no 'make' utility actually available.  We now detect this and skip
2676    some 'make' compatibility tests. [Randy Sims]
2677
2678  - Fixed a spurious testing failure on non-Unix platforms that
2679    happened because we accidentally call localize_file_path() on empty
2680    strings in the test suite. [Spotted by Randy Sims on Windows]
2681
2682  - Made the 'name', 'abstract', 'author', and 'version' properties
2683    required when building a PPD file. [Spotted by Randy Sims, Dave
2684    Rolsky, & Glenn Linderman]
2685
2686  - When building a 'traditional' Makefile.PL with
2687    Module::Build::Compat, we now use 'VERSION_FROM' when possible,
2688    rather than always using 'VERSION'.  This way the Makefile.PL
2689    doesn't have to get modified every release.
2690
2691  - Made some fixups to the 'PPM' info-file, improving compatibility
2692    with ActiveState's PPM tools. [Randy Sims, Glenn Linderman]
2693
2694  - The 'dist_author' property can now accept multiple authors, see the
2695    docs for more info. [Randy Sims]
2696
2697  - If the user doesn't have YAML.pm installed during ACTION_dist, we
2698    now create a minimal YAML.pm anyway, without any dependency
2699    information.
2700
2701  - The 'distribution_type' field is no longer created in META.yml
2702    files, in accordance with the finding made at the London CLPAN
2703    meeting that it's essentially meaningless and ill-defined.
2704
2705  - The 'dist' action now accepts an optional 'tar' parameter to use a
2706    system utility for building the tarball, and a 'gzip' parameter for
2707    compressing it.  If these are used, Archive::Tar won't be invoked.
2708    This was added because Archive::Tar is producing some very
2709    non-cross-platform tarballs that many tar utilities can't handle.
2710
2711  - During testing, if YAML.pm isn't installed, then we won't try
2712    making a tarball either, since this would invoke YAML to create the
2713    META.yml file.
2714
2715  - Fixed a problem with chmod() being called incorrectly on MacOS
2716    (i.e. MacPerl, not Mac OS X).  [Spotted by Paul Sanford Toney]
2717
2718  - Fixed a problem with the --config flag not being treated properly
2719    (essentially ignored) on the command line for 'perl Build.PL' or
2720    'Build <action>'. [Spotted by Jakub Bogusz]
2721
2722  - Added a new config() method to get at the Build object's notion of
2723    the %Config hash.
2724
2725  - Test::Harness is starting to contend for the Most Crotchety Module
2726    Award.  Work around a few of its nits when setting harness
2727    switches. [Spotted by Diab Jerius]
2728
2729  - Now the Build script will die() if we're run from the wrong
2730    directory, rather than trying to chdir() to what it thinks is the
2731    right directory and do its work there.  See
2732    https://rt.cpan.org/Ticket/Display.html?id=4039 . [Chris Dolan]
2733
2734  - Changed the manpage separator on OS/2 to '.'. [Ilya Zakharevich]
2735
2736  - On OS/2, disable C compilation, since apparently it isn't working
2737    there. [Reported by Ilya Zakharevich]
2738
2739  - Inserted a comment into auto-generated Makefile.PLs saying it was
2740    auto-generated. [Randy Sims]
2741
2742  - Fixed some annoying behavior in generated passthrough Makefile.PLs
2743    when the user chose not to install Module::Build, or if
2744    installation failed. [Reported by Ilya Zakharevich and Richard
2745    Clamp]
2746
2747  - Moved the documentation for 'codebase' to the section where it's
2748    relevant. [Randy Sims, Glenn Linderman]
2749
2750  - Fixed a have_c_compiler() failure on some platforms, we now define
2751    a boot_compilet() function (since we're compiling a library, not an
2752    executable). [Randy Sims]
2753
2754  - Added a recipe to the Module::Build::Cookbook describing how to
2755    maintain compatibility with older versions of CPAN.pm [Jim Cromie]
2756
2757  - Removed caveat about "looking for alternatives" in how hashes are
2758    specified on the command line, since an alternative has been found.
2759
2760  - Previously most warnings about optional prerequisites looked like
2761    they were actually error messages about required prerequisites.
2762    This has been corrected. [Reported again by Sagar Shah]
2763
2764  - Added support for building XS (and C in general) stuff on AIX.
2765    This was done by a small reorganization of prelink_c() method from
2766    Windows.pm to Build.pm, and it is only invoked for the platforms
2767    that need it invoked.  AIX also massages some very naughty bits
2768    (MakeMaker macro variables) in $Config{lddlflags} that should never
2769    have been put there, but alas, they're there, so we find & resolve
2770    them.
2771
2772  - Added OS/2 ($^O = 'os2') to the list of Unix-like platforms.  This
2773    basically means that most platform-specific operations will be done
2774    in a Unix-like manner.
2775
2776  - Pass-through Makefiles will now die() when they're given a PREFIX
2777    parameter, and suggest using 'destdir' or 'install_base' instead.
2778    Previously they just ignored the parameter and tried to install to
2779    the default location, which is clearly not what the user wanted.
2780
2781  - Updated my email address in the documentation to a more recent
2782    variant.
2783
2784  - Add NetBSD to the list of Unix-like systems. [Adrian Bunk]
2785
2786  - Add SVR5 to the list of Unix-like systems. [Rafael Garcia-Suarez]
2787
2788  - We now use Pod::Parser to find the ABSTRACT and AUTHOR when it's
2789    available on the system. [initial patch by Randy Sims]
2790
2791  - Fixed a little scalar/list buglet in a documentation example.
2792
2793 0.21  Wed Oct 15 20:47:05 CDT 2003
2794
2795  - Added a have_c_compiler() method.
2796
2797  - Added documentation for the requires(), recommends(),
2798    build_requires(), and conflicts() methods.
2799
2800  - On Unix platforms, we now create the "Build" script with a #! line
2801    matching the perl interpreter that was used to invoke the Build.PL
2802    script, rather than whatever is in $Config{startperl}.  This avoids
2803    a potential warning about the interpreters not matching. [Spotted
2804    by Ken Y. Clark]
2805
2806  - The Unix version now uses the safer multi-argument form of system()
2807    when building distribution tarballs.
2808
2809  - Added a regression test for the 'dist' action to the t/runthrough.t
2810    test.
2811
2812  - Fixed a problem with File::Spec usage when creating the names of
2813    'libdoc' manual pages - the code wasn't dealing with the volume or
2814    file portions correctly on certain platforms.
2815
2816  - When creating the names of the 'libdoc' manual pages, we no longer
2817    assume that pods are under the hard-coded paths 'blib/lib' or
2818    'blib/arch'.
2819
2820  - Fixed a crashing bug that could sometimes occur when the
2821    distribution contained no 'lib' directory. [Chris Dolan]
2822
2823  - Fixed a crashing bug that happened when the user had .PL files in
2824    the lib/ directory and didn't explicitly name them in a hash
2825    reference to the new() constructor. [Chris Reinhardt, bug #4036]
2826
2827  - .PL files are now passed the names of their target file(s) on the
2828    command line when they run.
2829
2830  - When YAML.pm wasn't installed, t/runthrough.t wasn't properly
2831    skipping some tests that required YAML.  This is now fixed.
2832    [Stephen J. Smith]
2833
2834  - Added documentation for the dist_version() and dist_name()
2835    methods. [Spotted by Johan Vromans]
2836
2837  - Existing values in $ENV{HARNESS_PERL_SWITCHES} are now respected
2838    and not squashed when we run the 'test' action. [Paul Johnson]
2839
2840  - On cygwin, the separator string for manual page names has been set
2841    to '.'.  Previously it was '::', inherited from Unix. [Yitzchak
2842    Scott-Thoennes]
2843
2844  - Avoid a warning when Build.PL is run (i.e. when the new() method is
2845    called) and no MANIFEST file exists. [Michael Schwern and Kevin
2846    Ruscoe]
2847
2848  - Added documentation for the 'code' and 'docs' actions. [Steve
2849    Purkis and Mark Stosberg]
2850
2851  - The internal method compile_support_files() has been renamed to
2852    process_support_files() in order to make it consistent with other
2853    processing methods.  Note that it was never documented using the
2854    old name.  It's still not documented, actually.  Maybe later.
2855
2856  - Skip the 'write' pseudo-entry in the 'diff' action's installation
2857    map. [Chris Dolan]
2858
2859  - Fixed a bug in which notes() set in the Build.PL before
2860    create_build_script() was called would get lost unless more notes()
2861    were also set afterwards. [Spotted by Dave Rolsky]
2862
2863  - The process of building elements of the distribution is now driven
2864    by a list of build elements, paving the way for letting people add
2865    their own types of build elements in future versions of
2866    Module::Build (or in the current version with some difficulty).
2867
2868  - Fixed some linking errors on Cygwin. [Randy Sims, Terrence Brannon]
2869
2870  - Fixed a line-ending problem with detecting the dist_abstract
2871    properly on Cygwin. [Randy Sims]
2872
2873  - Fixed a problem with signatures that occurred if 'distsign' was
2874    called before 'distdir' - the signature would be generated twice.
2875
2876  - Added a 'create_readme' parameter to new(), which will use
2877    Pod::Text to generate a README from the main (dist_version_from)
2878    module file during the 'distdir' action.
2879
2880  - We now refuse to run the 'Build' script if it was created using a
2881    different version of Module::Build.  This has caused a couple of
2882    nasty bugs in the past, I don't want to know what it would cause in
2883    the future.
2884
2885  - Documentation for do_system() has been added. [Dave Rolsky]
2886
2887  - run_perl_script() is now available as a class method, though it
2888    will need to (re-)find the perl interpreter in this case.
2889
2890  - Added a new_from_context() method that authors of automated tools
2891    like CPANPLUS and CPAN can use instead of running all tasks as
2892    sub-processes.  We also use it in the regression tests for
2893    Module::Build itself.  ** Note that this method is currently
2894    undocumented because its name may change in the future. **
2895
2896  - When signing distributions with Module::Signature, we now
2897    automatically add the SIGNATURE file to the MANIFEST, avoiding an
2898    unpleasant chicken/egg problem for the module author.
2899    [unpleasantness spotted by sungo]
2900
2901  - In Module::Build::Compat, added support for the 'verbose' parameter
2902    to Makefile.PL [spotted by Soren Andersen, fixed by Michael
2903    Schwern]
2904
2905  - The Module::Build distribution now has a cryptographic 'SIGNATURE'
2906    file created by Module::Signature.
2907
2908  - Added proper documentation for the subclass() method. [spotted by
2909    Jonathan Steinert]
2910
2911  - Worked around a Config.pm bug in Red Hat 9 which prevented man
2912    pages from being installed in the correct places. [spotted by Ville
2913    Skytta]
2914
2915  - Fixed a Module::Build::Compat bug in which setting INSTALLDIRS
2916    caused a crash. [spotted by Ilya Martynov]
2917
2918 0.20  Tue Aug 26 14:34:07 CDT 2003
2919
2920  - Separated the 'build' action into two separate actions, 'code' and
2921    'docs'.  This is similar to MakeMaker's separation of the 'all'
2922    target into 'pure_all' and 'manifypods'.  This fixes a permissions
2923    hassle in which doing 'sudo Build install' would often create local
2924    doc files that needed superuser permissions to delete.
2925
2926  - Enhanced the 'help' action - 'Build help foo' will now show the POD
2927    documentation for the 'foo' action.
2928
2929  - Added a notes() feature, which helps share data transparently
2930    between the Build.PL and t/*.t scripts.
2931
2932  - The installation process will now create man(1) and man(3) pages
2933    from POD in modules & scripts, and install them.  We don't build
2934    man pages when there's nowhere to install them, such as on some
2935    Win32 or most Mac systems.  [large patch by Steve Purkis, 5.005 fix
2936    by Mathieu Arnold]
2937
2938  - The 'distdir' action now copies files to the distribution
2939    directory, rather than making them hard links to the original
2940    files.  This allows authors to do last-minute alterations of the
2941    files without affecting the originals. [Dave Rolsky]
2942
2943  - If the author uses XS files in nonstandard locations, the copied
2944    versions of those files will now be cleaned up properly.
2945
2946  - In invoking the 'test' action or invoking 'xsubpp', we now use the
2947    same perl executable as we use everywhere else, rather than blindly
2948    using $^X or $Config{perlpath} (neither of which are very
2949    reliable).
2950
2951  - Fixed a problem with the 'install_path' parameter given to
2952    'Build.PL' being lost in subsequent actions. [Reported by Mathieu
2953    Arnold]
2954
2955  - Fixed yet another bug with installation directories, in which the
2956    'install_base' parameter wasn't being respected on the command
2957    line.  [Spotted by Jonathan Swartz]
2958
2959  - Changed the way the depends_on() method works inside action
2960    subroutines - now each action will only run once per dispatch()
2961    invocation (similar to how perl's require() function works).  This
2962    helps avoid some difficult problems with dependency loops.
2963
2964  - Changed the documentation for the 'autosplit' parameter to give
2965    reasons why it may not be a good idea to use, but no longer
2966    threaten to remove it.  [Suggested by Martyn J. Pearce]
2967
2968  - Improved the formatting of the 'traditional' Makefile.PL generated
2969    by Module::Build::Compat->create_makefile_pl. [Michael Schwern]
2970
2971  - The 'traditional' Makefile.PL will now use the 'module_name'
2972    parameter (as NAME) if it's available, otherwise it will continue
2973    to use the 'dist_name' (as DISTNAME). [Michael Schwern]
2974
2975  - Created read/write accessor methods for all our 'properties'.
2976    [Michael Schwern]
2977
2978  - The 'test_files' parameter can now be specified using glob() syntax
2979    (i.e. 't/*.t'), and the corresponding test_files() method is now a
2980    read/write accessor.
2981
2982  - The location of the 'blib' directory is now a property of the Build
2983    object - nobody is likely to notice this change, with any luck, but
2984    it makes the design and code cleaner.
2985
2986  - The 'disttest' and 'distsign' methods now chdir() back to the
2987    directory where they started, rather than to the base_dir of the
2988    build.
2989
2990  - Improved comparisons of version strings containing underscore
2991    characters (indicating "beta" status). [Steve Purkis]
2992
2993  - Added documentation for the 'dist_author', 'dist_abstract', and
2994    'codebase' parameters to new(), and for the 'ppd' action. [Dave
2995    Rolsky]
2996
2997  - Added documentation for the up_to_date() and contains_pod()
2998    methods. [Dave Rolsky]
2999
3000  - 'traditional' pass-through Makefile.PLs will now contain an
3001    INSTALLDIRS parameter matching the Build.PL's 'installdirs'
3002    setting.
3003
3004  - version_from_file() now ignores $VERSION variables that are defined
3005    in POD or comments.  It can still be tricked by $VERSIONs in string
3006    literals, though.  [Steve Purkis]
3007
3008  - The code to find packages in module files now uses Steve's scanning
3009    method (above) to skip package-declaration-lookalikes in POD or
3010    comments.
3011
3012  - The 'disttest' action will now propagate its @INC settings to its
3013    subprocesses.
3014
3015 0.19  Wed Jul  9 22:34:02 CDT 2003
3016
3017  - Added support for the 'install_path' parameter, which allows custom
3018    specification of where things should be installed.  This is a major
3019    improvement to Module::Build's functionality.
3020
3021  - Added the 'install_base' parameter.  Provides an easy way to
3022    install to local or alternative directory trees.
3023
3024  - We now install scripts by default to $Config{installsitebin}
3025    instead of $Config{installscript}.  Neither is a great choice, but
3026    the former is likely to be [analogous to] /usr/local/bin, and the
3027    latter is likely to be [something like] /usr/bin .  If/when there's
3028    a $Config{installsitescript}, we'll start using that automatically.
3029
3030  - Fixed a problem on Win32 in which C and XS files wouldn't be
3031    compiled properly, and the user would see an error about 'Can't
3032    locate object method "format_compiler_cmd"'.
3033    (http://rt.cpan.org/Ticket/Display.html?id=2391)
3034
3035  - We now use the correct perl interpreter (via
3036    Module::Build->find_perl_interpreter) in pass-through makefiles.
3037
3038  - The t/compat.t test now uses $Config{make} instead of just 'make'
3039    to test makefile compatibility.  This fixes some failures on Win32.
3040    We also skip this test entirely if no make utility is available.
3041
3042  - Alternative distribution layouts are now supported via the
3043    'pm_files', 'pod_files', 'xs_files', 'PL_files', and 'script_files'
3044    parameters to new().  This should help people transition from
3045    MakeMaker, and might even help us write an automatic transition
3046    tool.
3047
3048  - Added tests to t/runthrough.t that check to see installation is
3049    happening correctly.
3050
3051  - Added experimental code to build a .ppd file, in support of
3052    ActiveState's "Perl Package Manager". [original patch by Dave
3053    Rolsky]
3054
3055  - For authors who use Module::Signature to sign their distributions,
3056    we now create the SIGNATURE file right in the distribution
3057    directory, rather than creating it in the top-level directory and
3058    copying it into place.  This solves problems related to having
3059    files get out of date with respect to their signatures.
3060
3061  - We now don't depend on Module::Info to scan for packages during the
3062    'dist' action anymore, because it's way too aggressive about
3063    loading other modules that you may not want loaded.  We now just
3064    (ick, yuck) scan the .pm files with a regular expression to find
3065    "package Foo::Bar;" statements.
3066
3067  - Silenced some annoying copyright/logo output from Microsoft 'nmake'
3068    during Makefile compatibility testing. [Randy W. Sims]
3069
3070  - Command-line arguments may now either be specified using the syntax
3071    '--foo foovalue' as well as the traditional syntax 'foo=foovalue'.
3072    The former is often more convenient for shell tab-completion when
3073    the value is a filename (as in 'Build test --test_files t/basic.t').
3074
3075  - Command-line arguments may now include non-named parameters, which
3076    make some actions more natural.  For instance, the 'diff' action
3077    may now be invoked as 'Build diff -u' rather than as
3078    'Build diff flags=-u'.
3079
3080  - Pass-through Makefile.PLs now convert unknown Makefile.PL
3081    parameters to lower-case and hand them to Build.PL, rather than
3082    ignoring them.  This means we only have to account for the
3083    differences in the interface, not the entire interface, in
3084    translating parameters.
3085
3086  - We now issue a warning & don't proceed if asked to make a distdir
3087    and there's no MANIFEST or it's empty.
3088
3089  - Moved INSTALL to INSTALL.txt to increase compatibility with various
3090    odd versions of 'make' during 'make install' on case-insensitive
3091    filesystems (like nmake on Win32, often).  Only affects the
3092    Makefile compatibility layer.  [reported by Andrew Savige]
3093
3094  - Module::Build->known_actions() now works as a class method.
3095
3096  - Pass-through makefiles now list each action individually rather
3097    than using a ".DEFAULT" catch-all.  This improves compatibility
3098    with 'nmake' on Win32, and probably some other less common 'make'
3099    dialects.  [Andrew Savige]
3100
3101  - We're now more aggressive about testing the pass-through makefiles,
3102    e.g. making sure they can run 'all' and 'test' targets, and making
3103    sure the Makefile itself actually exists.
3104
3105  - Fixed a problem with check_installed_status() when installed
3106    version contains non-numeric characters like underscores.
3107
3108  - Fixed a problem with a bareword 'File::Spec' in one of the test
3109    scripts that caused it not to compile under 5.8.0 (but is fine
3110    under 5.6).
3111
3112  - Fixed a problem with the 'destdir' installation parameter on
3113    platforms that have volume identifiers in path names (like "C:" on
3114    Win32).  The identifier is now stripped from installation
3115    directories before prepending the destdir path.  The destdir path
3116    may still have a volume identifier on it.
3117
3118  - Added an 'add_to_cleanup' parameter to new() that calls
3119    add_to_cleanup() immediately for the given files.
3120
3121  - The distribution directory (e.g. Sample-Module-0.13/ ) will now be
3122    deleted during the 'clean' or 'realclean' actions.
3123
3124  - During testing of modules, blib/lib and blib/arch are now added as
3125    absolute paths, not relative.  This helps tests that load the
3126    modules at runtime and may change the current working directory
3127    (like Module::Build itself does during testing).
3128
3129  - The $Config{cc} entry on some people's systems is something like
3130    'ccache gcc', so we now split that string using split_like_shell().
3131    [Richard Clamp]
3132
3133  - Added documentation for 'extra_linker_flags' parameter, and added a
3134    corresponding 'extra_compiler_flags' parameter. [original patch by
3135    Richard Clamp]
3136
3137  - The pass-through Makefile created by Module::Build::Compat now
3138    supports MakeMaker options like POLLUTE=1 and INC.  We also just
3139    warn & skip when we see any unknown MM parameters, rather than
3140    dying.  [Dave Rolsky]
3141
3142  - Fixed an error about how @INC and $ENV{PERL5LIB} interact during
3143    the testing of M::B itself. [jk <billy2000@fastmail.fm>]
3144
3145  - The pass-through Makefile doesn't include 'recommended' M::B
3146    dependencies in the Makefile anymore, since they're not strictly
3147    necessary.  In particular, this makes installing M::B itself
3148    easier.
3149
3150  - A new 'create_makefile_pl' parameter lets you use
3151    Module::Build::Compat during the 'distdir' (or 'dist') action to
3152    automatically create a Makefile.PL for compatibility with
3153    ExtUtils::MakeMaker.  The parameter's value should be one of the
3154    styles named in the Module::Build::Compat documentation.
3155
3156  - When compiling C code, we now respect 'pollute' and 'inc'
3157    parameters. (XXX - needs docs) [Dave Rolsky]
3158
3159  - Made the creation of the "install map" more generic.  (XXX - needs
3160    documentation)
3161
3162  - Fixed a problem in which add_to_cleanup() didn't note cleanup files
3163    unless create_build_script() had been called already. [Dave Rolsky]
3164
3165  - During 'Build dist', we no longer have to load each .pm file (via
3166    Module::Info) to determine the $VERSION numbers inside.  Instead,
3167    we call our internal version_from_file() method, which is the same
3168    thing MakeMaker and PAUSE and search.cpan.org do.  Also fixes a
3169    failure when Module::Info is installed in a nonstandard directory.
3170    [reported by Teun Burgers]
3171
3172  - Fixed some failing test code on Windows - open files can't be
3173    deleted. [Andrew Savige]
3174
3175  - The Cygwin platform is now treated as a flavor of Unix rather than
3176    a flavor of Windows. [chocolateboy]
3177
3178  - We're now more aggressive about adding temporary C compilation
3179    files (*.c, *.bs) to the cleanup list. [Dave Rolsky]
3180
3181  - When constructing the list in META.yml of packages provided by this
3182    distribution, we now use the same rules as the PAUSE scanner does
3183    when a single .pm file contains multiple VERSIONs.  [Andreas Koenig]
3184
3185  - check_installed_status() now works as both a class method and an
3186    object method (and is documented so).  [Spotted by Dave Rolsky]
3187
3188 0.18  Tue Apr  8 13:24:23 CDT 2003
3189
3190  - We now rewrite the shebang lines of scripts ourselves, rather than
3191    relying on MakeMaker routines to do it.  MakeMaker changed the way
3192    this happened (not the result, but where the code lived) a few
3193    times.  [Suggested by Richard Clamp]
3194
3195  - The scripts() method has changed to script_files(), and likewise
3196    the 'scripts' parameter has changed to 'script_files'.  The old
3197    names can still be used for backward compatibility.
3198
3199  - Support for the 'scripts' parameter (which is now 'script_files')
3200    was broken in 0.17, now it's fixed.  [Richard Clamp]
3201
3202  - We now recommend ExtUtils::ParseXS 2.02, which will fail to load
3203    with perl 5.005 or earlier (which is proper, because it doesn't
3204    work with those versions).  When it fails to load, we still fall
3205    back to using the xsubpp script for XS parsing. [spotted by Dave
3206    Rolsky, fix suggested by Richard Clamp]
3207
3208  - Now works on VMS - the Build script's shebang-line-equivalent
3209    wasn't being formed correctly there - though just about everything
3210    else worked fine.  [Tested & patched by Michael Schwern]
3211
3212  - Eliminated a warning that occurred if 'perl Build.PL' or the
3213    check_installed_status() method was run with -w.  [Spotted by
3214    Michael Schwern]
3215
3216 0.17  Sat Mar 29 18:06:01 CST 2003
3217
3218  - Now works under perl 5.005_03.  [Richard Clamp]
3219
3220  - When building blib/ , .PL files are now processed before doing
3221    anything else.  This means .PL files can be used in any of the
3222    other contexts.
3223
3224  - The locating and processing of .pm, .pod, .xs, .PL files and script
3225    files are now isolated into their own methods.  This is aimed
3226    toward providing a stable interface for this stuff, so they can be
3227    overridden, parameterized, etc.  They're not quite stable yet,
3228    though.
3229
3230  - The internal lib_to_blib() method has gone away, because processing
3231    is now done by smaller specialized methods.  This method had some
3232    duplicate assumptions about filenames that it's nice to get rid of.
3233
3234  - .PL files are no longer automatically processed in the c_source
3235    directory, they must be specified manually in a 'PL_files'
3236    parameter.
3237
3238  - Mention in the docs that it's useful to do "PL_FILES => {}" in a
3239    Makefile.PL if you're using both a Makefile.PL and a
3240    Build.PL. [Dom]
3241
3242  - Add several options to the 'license' field, so that we're in better
3243    sync with PAUSE and CPAN options. [Andreas Koenig]
3244
3245  - Created a find_perl_interpreter() method that tries to locate the
3246    currently executing perl interpreter.  Following a suggestion from
3247    Nicholas Clark <nick@ccl4.org> for Inline, we prefer an absolute
3248    path in $^X, then an existent path in $Config{perlpath}, then
3249    whatever's in $^X.
3250
3251  - Use the aforementioned perl to run scripts in run_perl_script().
3252    This fixes the spurious warning "WARNING: Configuration was
3253    initially created with 'foo', but we are now using 'bar'" that
3254    appeared a lot in version 0.16.
3255
3256
3257 0.16  Mon Feb 24 13:06:47 CST 2003
3258
3259  - All three C compilers that perl supports on Windows environments
3260    (MSVC, BCC, and GCC) are now supported by Module::Build.  We now
3261    reportedly pass all tests on Windows.  [Randy W. Sims]
3262
3263  - The test t/xs.t, which tests building of XS modules, will be
3264    skipped if no C compiler is found. [suggested by Randy W. Sims]
3265
3266  - The "install" action accepts new "destdir" [motivated by Michael
3267    Schwern and Chip Salzenberg] and "uninst" parameters [by Dave
3268    Rolsky].  The former prepends an arbitrary directory to all
3269    installation paths (useful for package management), and the latter
3270    will tell ExtUtils::Install to remove any differing files that are
3271    "shadowing" the stuff you're installing from a different location,
3272    just like MakeMaker's "make install UNINST=1" command will do.
3273
3274  - Made changes to the generated Makefile in Module::Build::Compat
3275    that much better support Windows platforms [after suggestions by
3276    James Freeman]
3277
3278  - Added experimental support for creating distribution SIGNATURE
3279    files via Module::Signature. [Dave Rolsky]
3280
3281  - Added experimental support for installing via the "only.pm" module,
3282    which allows loading specific versions of modules.  Since this
3283    module is so new, the interface may still be changing. [Brian
3284    Ingerson]
3285
3286  - Added support for installing executable scripts, via the 'scripts'
3287    parameter to new(), and the scripts() accessor method.
3288
3289  - Fix an infinite loop that occurred when doing 'perl Build.PL
3290    config="foo=bar"'
3291
3292  - Fix up the formatting of the error message the user gets when
3293    prereqs aren't satisfied.
3294
3295 0.15  Fri Jan 17 15:00:24 CST 2003
3296
3297  - In link_c(), extra object files were mistakenly being treated as
3298    output files, not input files, in the up-to-date check.  Fixed.
3299
3300  - In up_to_date(), don't make an unnecessary copy of the file lists
3301    when they're specified as array references.
3302
3303  - Split off the C compilation phase into its own method,
3304    compile_support_files(), for easier subclassing.
3305
3306  - Start a stub of a 'manifypods' action.
3307
3308  - Compiler optimizations weren't being included in C compilation
3309    statements.  Fixed.
3310
3311  - The 'extra_linker_flags' parameter wasn't being honored.  Fixed.
3312
3313  - The 'ccflags' Config.pm entry wasn't being properly split into
3314    separate arguments.  Fixed.
3315
3316
3317 0.14  Fri Dec 13 14:06:29 AEST 2002
3318
3319   - Added support for MacPerl (Mac OS version 9 and below), which (as
3320     far as I know) was never natively supported by MakeMaker.  Still
3321     lacks support for the 'test' action (because Test::Harness
3322     requires forking, which MacPerl won't do) and compiling XS/C files
3323     (because I don't know how to invoke a compiler on MacOS, and one
3324     may not even be available).  This change is brought to you by
3325     Michael Schwern and the letter '('.
3326
3327   - Improved processing of .xs files.  Now we use the new
3328     ExtUtils::ParseXS module if it's available, otherwise we use
3329     backticks and write the result to a .c file ourselves.  This
3330     avoids the need to do cross-platform shell redirection.
3331
3332   - Make sure all parts of 'Build test' use the not-yet-installed
3333     version of Module::Build.  This only affects the tests for this
3334     module, not any of the module code itself.  [Spotted by Schwern]
3335
3336   - Oopsie - use $Config{ld} instead of $Config{cc} for linking.
3337
3338   - Added a 'diff' action, which is useful for comparing the details
3339     of what you're about to install with what is already installed on
3340     your system.  This uses File::Compare, which is in the core.
3341
3342   - Fixed a problem on Windows in which the _build/ directory wasn't
3343     getting deleted during the 'realclean' action, because we had a
3344     file open in that directory. [Spotted by Michael Schwern]
3345
3346   - delete_filetree() now always uses File::Path::rmtree(), regardless
3347     of whether the thing being deleted is a file or a directory.  This
3348     helps remove things on obscure platforms with strange locking
3349     rules (or even not so obscure ones like MacOS).  It also now
3350     reports the number of files or directories deleted (without
3351     recursing directory contents).
3352
3353   - rm_previous_build_script() is gone, replaced by calls to
3354     delete_filetree().
3355
3356   - 'Build' now chdir()s in a BEGIN block, so the 'use Module::Build'
3357     statement will work correctly.  Solves a problem on MacOS, where
3358     the 'Build' script may often be invoked from the wrong working
3359     directory.  [Fix by Michael Schwern]
3360
3361   - Internally we now use the multi-argument form of system() to run
3362     external commands (such as 'diff' or 'cc') whenever possible (and
3363     whenever we can't avoid system() altogether).  Note that this
3364     means we have to handle splitting some strings (such as
3365     $Config{ccflags}) into argument lists like the shell would, which
3366     is a drag.  However, the alternative would be to handle shell
3367     quoting of all arguments to commands ourselves, which is an even
3368     bigger drag across platforms and involves arbitrary filenames and
3369     so on.
3370
3371   - To handle the argument splitting mentioned above, a method
3372     split_like_shell() has been created.  So far it's just doing naive
3373     processing.  In practice, I've yet to actually see a %Config entry
3374     that uses quotes & spaces, so the splitting task is usually not
3375     very error-prone.
3376
3377   - The 'test' action now takes a 'test_files' parameter, similar to
3378     the (undocumented) ExtUtils::MakeMaker TEST_FILES argument.  Handy
3379     during development when fixing bugs.
3380
3381   - Internally, the rscan_dir() method can now accept a predicate
3382     function that decides whether a file/directory should be matched.
3383
3384   - We now issue a warning message when the author hasn't specified a
3385     license type.
3386
3387 0.13  Wed Nov 20 20:07:53 AEST 2002
3388
3389   - 'cleanup' file lists are now written immediately, rather than at
3390     program termination.  This helps avoid "phantom files" that don't
3391     get handled by the 'realclean' action.  The internal
3392     write_cleanup() method (which was never documented) is now gone.
3393
3394   - The 'blib/' directory is now properly cleaned up in more (all?)
3395     circumstances.  Previously it could become a phantom if
3396     create_build_script() was never called.
3397
3398   - Now scan the 'c_source' directory for .cpp (C++) files as well as
3399     .c files, and compiles them.
3400
3401   - Use a 'phony' target for 'make manifest' in the pass-through
3402     Makefile, for the same reason as 'make install' (see version 0.12
3403     notes below).
3404
3405   - Module::Build::Compat now accepts any known Config.pm key and
3406     passes it through to the Build.PL.  Fixes a problem with CPANPLUS,
3407     which was passing INSTALLMAN1DIR.
3408
3409   - The file 'META.yaml' has been re-named to 'META.yml' in order to
3410     cooperate better with systems that can only handle 3 characters
3411     after the dot.
3412
3413   - The t/xs.t test should give more informative error messages upon
3414     failure.
3415
3416 0.12  Thu Nov 14 18:31:47 AEST 2002
3417
3418   - The META.yaml file was erroneously looking for 'build_depends'
3419     instead of 'build_requires'. [spotted by Iain Truskett]
3420
3421   - Add prompt() and y_n() methods for use in Build.PLs
3422
3423   - Do more to work with all versions of Test::Harness when setting
3424     the TEST_VERBOSE flag and running under the debugger [patch by
3425     Dave Rolsky]
3426
3427   - Include a test for verbosity handling
3428
3429   - Make sure the blib/ directory is always cleaned up with the
3430     'clean' or 'realclean' action.
3431
3432   - In a pass-through Makefile.PL, inform 'make' that 'install' is a
3433     "fake target", so that it works properly on case-insensitive
3434     filesystems like HFS+ with distributions that contain an INSTALL
3435     file. [patch by Brian Ingerson]
3436
3437   - In Module::Build::Compat, show an example Makefile.PL that can
3438     install Module::Build and re-invoke itself in one fell swoop [Dave
3439     Rolsky and Autrijus Tang]
3440
3441   - Improve the formatting of the Module::Build and
3442     Module::Build::Compat documentation.
3443
3444 0.11  Fri Aug 23 18:50:46 AEST 2002
3445
3446   - 'module_version' and 'module_version_from' have been replaced by
3447     'dist_version' and 'dist_version_from', which is what they really
3448     meant in the first place.  'dist_name' has been added.
3449
3450   - 'module_name' is now just a way to set 'dist_name' and
3451     'dist_version_from' in a convenient way.
3452
3453   - The 'name' in META.yaml is now the distribution name, not the
3454     (incorrect) module name. [spotted by Graham Barr]
3455
3456   - Added the check_installed_status() and prereq_failures() methods
3457     for checking prerequisite information with the programmatic
3458     interface
3459
3460   - check_installed_version() now uses check_installed_status()
3461     internally
3462
3463   - Documented the create_build_script() method, which had escaped
3464     documentation.
3465
3466   - create_build_script() now writes prerequisite information to the
3467     _build/ directory, for use by Module::Build::Compat.
3468
3469   - Module::Build::Compat has documentation for a safer way to write a
3470     dummy Makefile.PL. [patch by Autrijus Tang]
3471
3472 0.10  Wed Aug  7 19:36 2002
3473   - Recommend YAML 0.35 instead of 0.30.
3474
3475   - Don't die during 'Build disttest' if YAML isn't installed.  This
3476     fixes tests 5-10 in runthrough.t if YAML isn't installed.
3477
3478   - Die if an unknown license type is used, but still default to
3479     'unknown' if no license is specified.
3480
3481   - Use YAML::DumpFile() if we're using a recent YAML,
3482     YAML::StoreFile() otherwise.
3483
3484   - Show specific error messages in runthrough.t.
3485
3486   - Add a generated_by entry to the META.yaml file.
3487
3488   - Skip a few tests if YAML isn't installed.
3489
3490 0.09  Fri Jun 28 11:07:08 EST 2002
3491
3492   - The 'distdir' action wasn't deleting the distribution directory
3493     before building it again.  This meant that, say, if you did 'Build
3494     disttest' then 'Build dist', you'd end up with a blib/ directory
3495     in your distribution.  I actually had this happen for version
3496     0.08, and it's not nice to distribute a blib/ on CPAN.
3497
3498   - We now keep track of the 'base_dir', i.e. the top-level build
3499     directory, so we can change back into it if we change out of it.
3500     This necessitated a cwd() method, which uses the Cwd.pm module.
3501     I'm aware of Cwd's limitations, particularly under taint-mode, but
3502     I don't know a way around using it here.
3503
3504   - The 'dist_dir' action now changes back into 'base_dir' directory.
3505
3506   - We now do write_config() inside the create_build_script() method,
3507     not inside the new() method.
3508
3509   - Simplified the find_version() method, and improved its error
3510     messages.
3511
3512   - Renamed module_name_to_file() to find_module_by_name(), and added
3513     a parameter specifying the directories to search in.  Previously
3514     we searched in 'lib' and @INC, which wasn't correct in all
3515     situations.
3516
3517   - Patched the docs to change "Build test" to "./Build test"
3518     [Elizabeth Mattijsen]
3519
3520 0.08  Wed Jun 26 20:30:56 EST 2002
3521
3522   - Fixed the 'prereq' alias for the 'requires' parameter
3523
3524   - Added some tests in t/basic.t to test the dependency checking
3525
3526   - Added 'artistic' as a licensing option [Arthur Bergman]
3527
3528   - Fixed some bugs in requires/prereq/recommends/conflicts/build_depends
3529
3530   - Fixed a typo in the 'distclean' action that prevented its
3531     execution [Arthur Bergman]
3532
3533   - Separated the linking phase of building XS items into its own
3534     link_c() method.  Its interface is still unstable, so it's not
3535     documented yet. [suggested by Arthur Bergman]
3536
3537 0.07  Jun  9 2002 15:46
3538
3539   - We now generate a 'META.yaml' metadata file during 'Build dist'.
3540     This can be very useful for lots of things, none of which are
3541     implemented yet.
3542
3543   - Added a 'dynamic_config' parameter, defaulting to false.  This
3544     lets distribution systems (CPAN.pm, etc.) build, test, and install
3545     "easy" modules without having to execute the Build.PL at runtime.
3546     It's also a guarantee that the list of dependencies is exactly
3547     what is present in the metadata file, and won't be changed during
3548     the build process.
3549
3550   - Added support for "recommended" and "build-time requirement"
3551     modules, besides those that are absolutely required.  Also added a
3552     "conflicts" field.
3553
3554   - Changed the 'prereq' field to 'requires' (the old name will
3555     continue to work).
3556
3557   - Added support for checking the installed version of perl as an
3558     explicit dependency.
3559
3560   - Added a 'license' parameter to specify one of a fixed number of
3561     licenses for the distribution.
3562
3563   - Fixed a bug in Module::Build::Compat that was preventing arguments
3564     from being processed properly. [patch by Ilya Martynov]
3565
3566   - Make sure we're in the right directory when we write the cleanup
3567     file, since various ExtUtils::Install errors might leave us in an
3568     unknown directory. [patch by Ilya Martynov]
3569
3570   - Specified the 'license', 'recommends', and 'dynamic_config'
3571     values in Build.PL, and changed 'prereq' to 'requires'.
3572
3573 0.06  Apr 2 2002 17:44
3574
3575   - Added the Module::Build::Compat module for assisting and
3576     explaining compatibility with ExtUtils::Makemaker and cohorts.
3577
3578   - State is now saved using Data::Dumper instead of my ad-hoc
3579     mechanism, guaranteeing data integrity.  Whitespace values broke
3580     in the former scheme.
3581
3582   - Added the 'recommended' option, which works like 'prereq' but
3583     isn't insistent.
3584
3585   - Separated the various parameters into three groups: parameters
3586     that tell Module::Build what to do, Config.pm parameters, and
3587     user-defined parameters for each build (the module author is the
3588     'user' here).  This helps avoid conflicts between names, and it
3589     was silly to have them all together.  The three groups of
3590     parameters are subject to the same rules for overriding: values
3591     specified during a Build action take precedence over values
3592     specified at 'perl Build.PL' time, which in turn take precedence
3593     over values specified in the call to new().
3594
3595   - Improved support for .PL files.  Any .PL file in the lib/
3596     directory or the directory specified by 'c_source' will now get
3597     properly executed.  I also added a 'PL_files' parameter that you
3598     can use in case the .PL doesn't create an obviously-named output
3599     file.
3600
3601   - If a prerequisite condition is malformed, we now report a prereq
3602     failure and say why.  Previously we issued a warning and kept
3603     going.
3604
3605
3606 0.05   10-Jan-2002 20:26
3607   - Added the Module::Build->subclass() method, which makes it easier to
3608     make quick-and-dirty subclasses of Module::Build.
3609
3610   - Reorganized the docs a bit.
3611
3612   - Added the 'testdb' action, and the 'debugger=1' argument to the
3613     'test' action, both of which run tests under the perl
3614     debugger. (idea: Dave Rolsky)
3615
3616   - Added prerequisite checking (Dave Rolsky)
3617
3618   - Fixed an unlikely-to-occur bug with misquoted strings in the
3619     'Build' script (spot: Dave Rolsky)
3620
3621   - We're more careful about shush-ing warnings that
3622     ExtUtils::Manifest might emit (Dave Rolsky)
3623
3624   - The 'help' action now auto-generates the list of actions (Dave Rolsky)
3625
3626   - Added the 'distcheck', 'skipcheck', 'distclean', 'distdir', and
3627     'disttest' actions (Dave Rolsky)
3628
3629   - We're a little more aggressive about cleaning up temporary files -
3630     we'll try to clean them up even when we don't have write permission
3631     on them.  This isn't as dastardly as it sounds; if we /really/
3632     don't have permission, we won't be able to remove them no matter
3633     how hard we try.
3634
3635 0.04   Fri Nov 16 16:55 2001
3636   - Added a 'manifest' action.  It's just like MakeMaker's 'make manifest', it
3637     brings your MANIFEST file up to date with your distribution directory.
3638
3639   - Reorganized some of the responsibilities of various methods, which
3640     allows modules to be built and tested programmatically.
3641
3642   - The 'clean' action will now clean up files that were created more
3643     recently than the on-disk cleanup registry was written.
3644
3645   - Undefined values from Config.pm are handled correctly now.
3646
3647   - The dispatch() method will now accept explicit dispatch
3648     parameters, for use in a programmatic setting.
3649
3650   - $ENV{TEST_VERBOSE} will be set in test scripts if the 'verbose=1'
3651     parameter is set.
3652
3653   - Moved the test.pl script to t/basic.t
3654
3655   - Created the t/xs.t script, which tests building a module with a
3656     .xs component.
3657
3658   - Fixed the loading of $^O-specific modules (there were no such
3659     modules before).
3660
3661   - Added a 'darwin' platform module, which removes -flat_namespace
3662     from $Config{ccflags} while building .xs modules (it's a linker
3663     flag, not a compiler flag).
3664
3665   - Now uses $^W instead of the 'warnings' pragma, which apparently
3666     provides compatibility with perl 5.005 (I've only tested it with
3667     5.6.x myself).
3668
3669   - If a file called C<visual.pl> exists in the top-level directory,
3670     this file will be executed as a Perl script during 'Build test' and
3671     its output will be shown to the user.  This is a good place to put
3672     speed tests or other tests that don't use the C<Test::Harness> format
3673     for output.
3674
3675   - The 'Build install' step will now put .xs-related things in the
3676     correct architecture-dependent libraries.
3677
3678   - Added the 'autosplit' option, even though I think autosplitting is
3679     a load of hooie.
3680
3681 0.03  Sun Nov 11 14:58 CDT 2001
3682   - The 'perl Build.PL' step will now detect whether the current
3683     environment is "unixish", "windowsish", etc., and load the correct
3684     module (i.e. Module::Build::Platform::Unix).  More specific
3685     modules may also be written for particular values of $^O.
3686
3687   - Module::Build will now process any .xs files in the lib/
3688     directory.  Please let me know whether this works or not with your
3689     distribution & platform.  I'll be trying out various distributions
3690     on my platform.
3691
3692   - Corrected some embarassing errors in the POD documentation.  Also
3693     added a long documentation section on the various build actions
3694     (test, install, build, etc.) and added some neato ASCII art.
3695
3696   - Added a 'cleanup' mechanism - any method may call the
3697     $self->add_to_cleanup(@files) method to register files which need
3698     to be cleaned up during 'Build clean'.
3699
3700   - Added a 'Build help' action that gives a little syntax help, and
3701     lists all the actions available.
3702
3703   - Fixed a bug in which 'blib/' wasn't properly being added to @INC
3704     when running 'Build test'.
3705
3706   - For the 'Build dist' action, we'll use the 'tar' and 'gzip'
3707     programs (as specified by Config.pm) on Unix platforms, otherwise
3708     we'll use Archive::Tar and Compress::Zlib.
3709
3710 0.02  Wed Sep  5 00:53:04 CDT 2001
3711   - Added POD documentation.
3712
3713   - Added the 'install', 'fakeinstall', and 'dist' actions.
3714
3715   - new() will now determine version string based on 'module_version', or
3716     'module_version_from', or 'module_name', in that order.
3717
3718   - Module::Build::Base handles its file paths in a platform-independent
3719     way, using the File:: modules
3720
3721
3722 0.01  Sun Aug  5 01:23:10 2001
3723   - original version; created by h2xs 1.1.1.4 with options -XA -n Module::Build
3724