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