[Module-build-checkins] Module-Build Changes,1.385,1.386
Status: Beta
Brought to you by:
kwilliams
|
From: Ken W. <kwi...@us...> - 2005-10-10 15:20:49
|
Update of /cvsroot/module-build/Module-Build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12455 Modified Files: Changes Log Message: Version bump Index: Changes =================================================================== RCS file: /cvsroot/module-build/Module-Build/Changes,v retrieving revision 1.385 retrieving revision 1.386 diff -u -d -r1.385 -r1.386 --- Changes 10 Oct 2005 15:18:54 -0000 1.385 +++ Changes 10 Oct 2005 15:20:36 -0000 1.386 @@ -1,6 +1,6 @@ Revision history for Perl extension Module::Build. -0.27_03 +0.27_03 (Beta for 0.28) Mon Oct 10 11:19:23 EDT 2005 - We now use ExtUtils::CBuilder to do all compiling of C code (for example, when compiling XS modules). (This change actually @@ -1256,592 +1256,3 @@ - Added documentation for 'extra_linker_flags' parameter, and added a corresponding 'extra_compiler_flags' parameter. [original patch by Richard Clamp] - - - The pass-through Makefile created by Module::Build::Compat now - supports MakeMaker options like POLLUTE=1 and INC. We also just - warn & skip when we see any unknown MM parameters, rather than - dying. [Dave Rolsky] - - - Fixed an error about how @INC and $ENV{PERL5LIB} interact during - the testing of M::B itself. [jk <bil...@fa...>] - - - The pass-through Makefile doesn't include 'recommended' M::B - dependencies in the Makefile anymore, since they're not strictly - necessary. In particular, this makes installing M::B itself - easier. - - - A new 'create_makefile_pl' parameter lets you use - Module::Build::Compat during the 'distdir' (or 'dist') action to - automatically create a Makefile.PL for compatibility with - ExtUtils::MakeMaker. The parameter's value should be one of the - styles named in the Module::Build::Compat documentation. - - - When compiling C code, we now respect 'pollute' and 'inc' - parameters. (XXX - needs docs) [Dave Rolsky] - - - Made the creation of the "install map" more generic. (XXX - needs - documentation) - - - Fixed a problem in which add_to_cleanup() didn't note cleanup files - unless create_build_script() had been called already. [Dave Rolsky] - - - During 'Build dist', we no longer have to load each .pm file (via - Module::Info) to determine the $VERSION numbers inside. Instead, - we call our internal version_from_file() method, which is the same - thing MakeMaker and PAUSE and search.cpan.org do. Also fixes a - failure when Module::Info is installed in a nonstandard directory. - [reported by Teun Burgers] - - - Fixed some failing test code on Windows - open files can't be - deleted. [Andrew Savige] - - - The Cygwin platform is now treated as a flavor of Unix rather than - a flavor of Windows. [chocolateboy] - - - We're now more aggressive about adding temporary C compilation - files (*.c, *.bs) to the cleanup list. [Dave Rolsky] - - - When constructing the list in META.yml of packages provided by this - distribution, we now use the same rules as the PAUSE scanner does - when a single .pm file contains multiple VERSIONs. [Andreas Koenig] - - - check_installed_status() now works as both a class method and an - object method (and is documented so). [Spotted by Dave Rolsky] - -0.18 Tue Apr 8 13:24:23 CDT 2003 - - - We now rewrite the shebang lines of scripts ourselves, rather than - relying on MakeMaker routines to do it. MakeMaker changed the way - this happened (not the result, but where the code lived) a few - times. [Suggested by Richard Clamp] - - - The scripts() method has changed to script_files(), and likewise - the 'scripts' parameter has changed to 'script_files'. The old - names can still be used for backward compatibility. - - - Support for the 'scripts' parameter (which is now 'script_files') - was broken in 0.17, now it's fixed. [Richard Clamp] - - - We now recommend ExtUtils::ParseXS 2.02, which will fail to load - with perl 5.005 or earlier (which is proper, because it doesn't - work with those versions). When it fails to load, we still fall - back to using the xsubpp script for XS parsing. [spotted by Dave - Rolsky, fix suggested by Richard Clamp] - - - Now works on VMS - the Build script's shebang-line-equivalent - wasn't being formed correctly there - though just about everything - else worked fine. [Tested & patched by Michael Schwern] - - - Eliminated a warning that occurred if 'perl Build.PL' or the - check_installed_status() method was run with -w. [Spotted by - Michael Schwern] - -0.17 Sat Mar 29 18:06:01 CST 2003 - - - Now works under perl 5.005_03. [Richard Clamp] - - - When building blib/ , .PL files are now processed before doing - anything else. This means .PL files can be used in any of the - other contexts. - - - The locating and processing of .pm, .pod, .xs, .PL files and script - files are now isolated into their own methods. This is aimed - toward providing a stable interface for this stuff, so they can be - overridden, parameterized, etc. They're not quite stable yet, - though. - - - The internal lib_to_blib() method has gone away, because processing - is now done by smaller specialized methods. This method had some - duplicate assumptions about filenames that it's nice to get rid of. - - - .PL files are no longer automatically processed in the c_source - directory, they must be specified manually in a 'PL_files' - parameter. - - - Mention in the docs that it's useful to do "PL_FILES => {}" in a - Makefile.PL if you're using both a Makefile.PL and a - Build.PL. [Dom] - - - Add several options to the 'license' field, so that we're in better - sync with PAUSE and CPAN options. [Andreas Koenig] - - - Created a find_perl_interpreter() method that tries to locate the - currently executing perl interpreter. Following a suggestion from - Nicholas Clark <ni...@cc...> for Inline, we prefer an absolute - path in $^X, then an existent path in $Config{perlpath}, then - whatever's in $^X. - - - Use the aforementioned perl to run scripts in run_perl_script(). - This fixes the spurious warning "WARNING: Configuration was - initially created with 'foo', but we are now using 'bar'" that - appeared a lot in version 0.16. - - -0.16 Mon Feb 24 13:06:47 CST 2003 - - - All three C compilers that perl supports on Windows environments - (MSVC, BCC, and GCC) are now supported by Module::Build. We now - reportedly pass all tests on Windows. [Randy W. Sims] - - - The test t/xs.t, which tests building of XS modules, will be - skipped if no C compiler is found. [suggested by Randy W. Sims] - - - The "install" action accepts new "destdir" [motivated by Michael - Schwern and Chip Salzenberg] and "uninst" parameters [by Dave - Rolsky]. The former prepends an arbitrary directory to all - installation paths (useful for package management), and the latter - will tell ExtUtils::Install to remove any differing files that are - "shadowing" the stuff you're installing from a different location, - just like MakeMaker's "make install UNINST=1" command will do. - - - Made changes to the generated Makefile in Module::Build::Compat - that much better support Windows platforms [after suggestions by - James Freeman] - - - Added experimental support for creating distribution SIGNATURE - files via Module::Signature. [Dave Rolsky] - - - Added experimental support for installing via the "only.pm" module, - which allows loading specific versions of modules. Since this - module is so new, the interface may still be changing. [Brian - Ingerson] - - - Added support for installing executable scripts, via the 'scripts' - parameter to new(), and the scripts() accessor method. - - - Fix an infinite loop that occurred when doing 'perl Build.PL - config="foo=bar"' - - - Fix up the formatting of the error message the user gets when - prereqs aren't satisfied. - -0.15 Fri Jan 17 15:00:24 CST 2003 - - - In link_c(), extra object files were mistakenly being treated as - output files, not input files, in the up-to-date check. Fixed. - - - In up_to_date(), don't make an unnecessary copy of the file lists - when they're specified as array references. - - - Split off the C compilation phase into its own method, - compile_support_files(), for easier subclassing. - - - Start a stub of a 'manifypods' action. - - - Compiler optimizations weren't being included in C compilation - statements. Fixed. - - - The 'extra_linker_flags' parameter wasn't being honored. Fixed. - - - The 'ccflags' Config.pm entry wasn't being properly split into - separate arguments. Fixed. - - -0.14 Fri Dec 13 14:06:29 AEST 2002 - - - Added support for MacPerl (Mac OS version 9 and below), which (as - far as I know) was never natively supported by MakeMaker. Still - lacks support for the 'test' action (because Test::Harness - requires forking, which MacPerl won't do) and compiling XS/C files - (because I don't know how to invoke a compiler on MacOS, and one - may not even be available). This change is brought to you by - Michael Schwern and the letter '('. - - - Improved processing of .xs files. Now we use the new - ExtUtils::ParseXS module if it's available, otherwise we use - backticks and write the result to a .c file ourselves. This - avoids the need to do cross-platform shell redirection. - - - Make sure all parts of 'Build test' use the not-yet-installed - version of Module::Build. This only affects the tests for this - module, not any of the module code itself. [Spotted by Schwern] - - - Oopsie - use $Config{ld} instead of $Config{cc} for linking. - - - Added a 'diff' action, which is useful for comparing the details - of what you're about to install with what is already installed on - your system. This uses File::Compare, which is in the core. - - - Fixed a problem on Windows in which the _build/ directory wasn't - getting deleted during the 'realclean' action, because we had a - file open in that directory. [Spotted by Michael Schwern] - - - delete_filetree() now always uses File::Path::rmtree(), regardless - of whether the thing being deleted is a file or a directory. This - helps remove things on obscure platforms with strange locking - rules (or even not so obscure ones like MacOS). It also now - reports the number of files or directories deleted (without - recursing directory contents). - - - rm_previous_build_script() is gone, replaced by calls to - delete_filetree(). - - - 'Build' now chdir()s in a BEGIN block, so the 'use Module::Build' - statement will work correctly. Solves a problem on MacOS, where - the 'Build' script may often be invoked from the wrong working - directory. [Fix by Michael Schwern] - - - Internally we now use the multi-argument form of system() to run - external commands (such as 'diff' or 'cc') whenever possible (and - whenever we can't avoid system() altogether). Note that this - means we have to handle splitting some strings (such as - $Config{ccflags}) into argument lists like the shell would, which - is a drag. However, the alternative would be to handle shell - quoting of all arguments to commands ourselves, which is an even - bigger drag across platforms and involves arbitrary filenames and - so on. - - - To handle the argument splitting mentioned above, a method - split_like_shell() has been created. So far it's just doing naive - processing. In practice, I've yet to actually see a %Config entry - that uses quotes & spaces, so the splitting task is usually not - very error-prone. - - - The 'test' action now takes a 'test_files' parameter, similar to - the (undocumented) ExtUtils::MakeMaker TEST_FILES argument. Handy - during development when fixing bugs. - - - Internally, the rscan_dir() method can now accept a predicate - function that decides whether a file/directory should be matched. - - - We now issue a warning message when the author hasn't specified a - license type. - -0.13 Wed Nov 20 20:07:53 AEST 2002 - - - 'cleanup' file lists are now written immediately, rather than at - program termination. This helps avoid "phantom files" that don't - get handled by the 'realclean' action. The internal - write_cleanup() method (which was never documented) is now gone. - - - The 'blib/' directory is now properly cleaned up in more (all?) - circumstances. Previously it could become a phantom if - create_build_script() was never called. - - - Now scan the 'c_source' directory for .cpp (C++) files as well as - .c files, and compiles them. - - - Use a 'phony' target for 'make manifest' in the pass-through - Makefile, for the same reason as 'make install' (see version 0.12 - notes below). - - - Module::Build::Compat now accepts any known Config.pm key and - passes it through to the Build.PL. Fixes a problem with CPANPLUS, - which was passing INSTALLMAN1DIR. - - - The file 'META.yaml' has been re-named to 'META.yml' in order to - cooperate better with systems that can only handle 3 characters - after the dot. - - - The t/xs.t test should give more informative error messages upon - failure. - -0.12 Thu Nov 14 18:31:47 AEST 2002 - - - The META.yaml file was erroneously looking for 'build_depends' - instead of 'build_requires'. [spotted by Iain Truskett] - - - Add prompt() and y_n() methods for use in Build.PLs - - - Do more to work with all versions of Test::Harness when setting - the TEST_VERBOSE flag and running under the debugger [patch by - Dave Rolsky] - - - Include a test for verbosity handling - - - Make sure the blib/ directory is always cleaned up with the - 'clean' or 'realclean' action. - - - In a pass-through Makefile.PL, inform 'make' that 'install' is a - "fake target", so that it works properly on case-insensitive - filesystems like HFS+ with distributions that contain an INSTALL - file. [patch by Brian Ingerson] - - - In Module::Build::Compat, show an example Makefile.PL that can - install Module::Build and re-invoke itself in one fell swoop [Dave - Rolsky and Autrijus Tang] - - - Improve the formatting of the Module::Build and - Module::Build::Compat documentation. - -0.11 Fri Aug 23 18:50:46 AEST 2002 - - - 'module_version' and 'module_version_from' have been replaced by - 'dist_version' and 'dist_version_from', which is what they really - meant in the first place. 'dist_name' has been added. - - - 'module_name' is now just a way to set 'dist_name' and - 'dist_version_from' in a convenient way. - - - The 'name' in META.yaml is now the distribution name, not the - (incorrect) module name. [spotted by Graham Barr] - - - Added the check_installed_status() and prereq_failures() methods - for checking prerequisite information with the programmatic - interface - - - check_installed_version() now uses check_installed_status() - internally - - - Documented the create_build_script() method, which had escaped - documentation. - - - create_build_script() now writes prerequisite information to the - _build/ directory, for use by Module::Build::Compat. - - - Module::Build::Compat has documentation for a safer way to write a - dummy Makefile.PL. [patch by Autrijus Tang] - -0.10 Wed Aug 7 19:36 2002 - - Recommend YAML 0.35 instead of 0.30. - - - Don't die during 'Build disttest' if YAML isn't installed. This - fixes tests 5-10 in runthrough.t if YAML isn't installed. - - - Die if an unknown license type is used, but still default to - 'unknown' if no license is specified. - - - Use YAML::DumpFile() if we're using a recent YAML, - YAML::StoreFile() otherwise. - - - Show specific error messages in runthrough.t. - - - Add a generated_by entry to the META.yaml file. - - - Skip a few tests if YAML isn't installed. - -0.09 Fri Jun 28 11:07:08 EST 2002 - - - The 'distdir' action wasn't deleting the distribution directory - before building it again. This meant that, say, if you did 'Build - disttest' then 'Build dist', you'd end up with a blib/ directory - in your distribution. I actually had this happen for version - 0.08, and it's not nice to distribute a blib/ on CPAN. - - - We now keep track of the 'base_dir', i.e. the top-level build - directory, so we can change back into it if we change out of it. - This necessitated a cwd() method, which uses the Cwd.pm module. - I'm aware of Cwd's limitations, particularly under taint-mode, but - I don't know a way around using it here. - - - The 'dist_dir' action now changes back into 'base_dir' directory. - - - We now do write_config() inside the create_build_script() method, - not inside the new() method. - - - Simplified the find_version() method, and improved its error - messages. - - - Renamed module_name_to_file() to find_module_by_name(), and added - a parameter specifying the directories to search in. Previously - we searched in 'lib' and @INC, which wasn't correct in all - situations. - - - Patched the docs to change "Build test" to "./Build test" - [Elizabeth Mattijsen] - -0.08 Wed Jun 26 20:30:56 EST 2002 - - - Fixed the 'prereq' alias for the 'requires' parameter - - - Added some tests in t/basic.t to test the dependency checking - - - Added 'artistic' as a licensing option [Arthur Bergman] - - - Fixed some bugs in requires/prereq/recommends/conflicts/build_depends - - - Fixed a typo in the 'distclean' action that prevented its - execution [Arthur Bergman] - - - Separated the linking phase of building XS items into its own - link_c() method. Its interface is still unstable, so it's not - documented yet. [suggested by Arthur Bergman] - -0.07 Jun 9 2002 15:46 - - - We now generate a 'META.yaml' metadata file during 'Build dist'. - This can be very useful for lots of things, none of which are - implemented yet. - - - Added a 'dynamic_config' parameter, defaulting to false. This - lets distribution systems (CPAN.pm, etc.) build, test, and install - "easy" modules without having to execute the Build.PL at runtime. - It's also a guarantee that the list of dependencies is exactly - what is present in the metadata file, and won't be changed during - the build process. - - - Added support for "recommended" and "build-time requirement" - modules, besides those that are absolutely required. Also added a - "conflicts" field. - - - Changed the 'prereq' field to 'requires' (the old name will - continue to work). - - - Added support for checking the installed version of perl as an - explicit dependency. - - - Added a 'license' parameter to specify one of a fixed number of - licenses for the distribution. - - - Fixed a bug in Module::Build::Compat that was preventing arguments - from being processed properly. [patch by Ilya Martynov] - - - Make sure we're in the right directory when we write the cleanup - file, since various ExtUtils::Install errors might leave us in an - unknown directory. [patch by Ilya Martynov] - - - Specified the 'license', 'recommends', and 'dynamic_config' - values in Build.PL, and changed 'prereq' to 'requires'. - -0.06 Apr 2 2002 17:44 - - - Added the Module::Build::Compat module for assisting and - explaining compatibility with ExtUtils::Makemaker and cohorts. - - - State is now saved using Data::Dumper instead of my ad-hoc - mechanism, guaranteeing data integrity. Whitespace values broke - in the former scheme. - - - Added the 'recommended' option, which works like 'prereq' but - isn't insistent. - - - Separated the various parameters into three groups: parameters - that tell Module::Build what to do, Config.pm parameters, and - user-defined parameters for each build (the module author is the - 'user' here). This helps avoid conflicts between names, and it - was silly to have them all together. The three groups of - parameters are subject to the same rules for overriding: values - specified during a Build action take precedence over values - specified at 'perl Build.PL' time, which in turn take precedence - over values specified in the call to new(). - - - Improved support for .PL files. Any .PL file in the lib/ - directory or the directory specified by 'c_source' will now get - properly executed. I also added a 'PL_files' parameter that you - can use in case the .PL doesn't create an obviously-named output - file. - - - If a prerequisite condition is malformed, we now report a prereq - failure and say why. Previously we issued a warning and kept - going. - - -0.05 10-Jan-2002 20:26 - - Added the Module::Build->subclass() method, which makes it easier to - make quick-and-dirty subclasses of Module::Build. - - - Reorganized the docs a bit. - - - Added the 'testdb' action, and the 'debugger=1' argument to the - 'test' action, both of which run tests under the perl - debugger. (idea: Dave Rolsky) - - - Added prerequisite checking (Dave Rolsky) - - - Fixed an unlikely-to-occur bug with misquoted strings in the - 'Build' script (spot: Dave Rolsky) - - - We're more careful about shush-ing warnings that - ExtUtils::Manifest might emit (Dave Rolsky) - - - The 'help' action now auto-generates the list of actions (Dave Rolsky) - - - Added the 'distcheck', 'skipcheck', 'distclean', 'distdir', and - 'disttest' actions (Dave Rolsky) - - - We're a little more aggressive about cleaning up temporary files - - we'll try to clean them up even when we don't have write permission - on them. This isn't as dastardly as it sounds; if we /really/ - don't have permission, we won't be able to remove them no matter - how hard we try. - -0.04 Fri Nov 16 16:55 2001 - - Added a 'manifest' action. It's just like MakeMaker's 'make manifest', it - brings your MANIFEST file up to date with your distribution directory. - - - Reorganized some of the responsibilities of various methods, which - allows modules to be built and tested programmatically. - - - The 'clean' action will now clean up files that were created more - recently than the on-disk cleanup registry was written. - - - Undefined values from Config.pm are handled correctly now. - - - The dispatch() method will now accept explicit dispatch - parameters, for use in a programmatic setting. - - - $ENV{TEST_VERBOSE} will be set in test scripts if the 'verbose=1' - parameter is set. - - - Moved the test.pl script to t/basic.t - - - Created the t/xs.t script, which tests building a module with a - .xs component. - - - Fixed the loading of $^O-specific modules (there were no such - modules before). - - - Added a 'darwin' platform module, which removes -flat_namespace - from $Config{ccflags} while building .xs modules (it's a linker - flag, not a compiler flag). - - - Now uses $^W instead of the 'warnings' pragma, which apparently - provides compatibility with perl 5.005 (I've only tested it with - 5.6.x myself). - - - If a file called C<visual.pl> exists in the top-level directory, - this file will be executed as a Perl script during 'Build test' and - its output will be shown to the user. This is a good place to put - speed tests or other tests that don't use the C<Test::Harness> format - for output. - - - The 'Build install' step will now put .xs-related things in the - correct architecture-dependent libraries. - - - Added the 'autosplit' option, even though I think autosplitting is - a load of hooie. - -0.03 Sun Nov 11 14:58 CDT 2001 - - The 'perl Build.PL' step will now detect whether the current - environment is "unixish", "windowsish", etc., and load the correct - module (i.e. Module::Build::Platform::Unix). More specific - modules may also be written for particular values of $^O. - - - Module::Build will now process any .xs files in the lib/ - directory. Please let me know whether this works or not with your - distribution & platform. I'll be trying out various distributions - on my platform. - - - Corrected some embarassing errors in the POD documentation. Also - added a long documentation section on the various build actions - (test, install, build, etc.) and added some neato ASCII art. - - - Added a 'cleanup' mechanism - any method may call the - $self->add_to_cleanup(@files) method to register files which need - to be cleaned up during 'Build clean'. - - - Added a 'Build help' action that gives a little syntax help, and - lists all the actions available. - - - Fixed a bug in which 'blib/' wasn't properly being added to @INC - when running 'Build test'. - - - For the 'Build dist' action, we'll use the 'tar' and 'gzip' - programs (as specified by Config.pm) on Unix platforms, otherwise - we'll use Archive::Tar and Compress::Zlib. - -0.02 Wed Sep 5 00:53:04 CDT 2001 - - Added POD documentation. - - - Added the 'install', 'fakeinstall', and 'dist' actions. - - - new() will now determine version string based on 'module_version', or - 'module_version_from', or 'module_name', in that order. - - - Module::Build::Base handles its file paths in a platform-independent - way, using the File:: modules - - -0.01 Sun Aug 5 01:23:10 2001 - - original version; created by h2xs 1.1.1.4 with options -XA -n Module::Build - |