Changes for Perl extension Module-Install
0.73 Wed 14 May 2008 - Adam Kennedy
- Aggressively increase dependencies for authors to make sure
all the latest release-time tricks will work properly. (ADAMK)
- When generating META.yml where there is an overall Perl version
dependency, add a test for unversioned core dependencies that
MUST already be satified by the Perl dependency. (ADAMK)
- Merged Module::Install MANIFEST.SKIP into the repository
default MANIFEST.SKIP file, and deleted the M:I one (ADAMK)
0.72 Tue 15 Apr 2008 - Adam Kennedy
- exit(0) on requires_external_bin to make it a real NA (ADAMK)
- Change docs to recommend the use of test_requires instead
of build_requires. They do the same thing now, but this may
change in the future and in that case better people use
test_requires now as it is a more accurate description of
intent. Also, it reads clearer. (ADAMK)
- Removed the command prompt_script, it did some unusual magic
and it easy enough to replace with 2 lines of code in the
Makefile.PL of anyone using it anyway (ADAMK)
- Merged the remaining install_script into Metadata.pm (ADAMK)
- Adding documentation about the configure_requires command (ADAMK)
- Automatically add any install_share directory to no_index (ADAMK)
- Check scripts passed to install_script actually exist (ADAMK)
- Allow install_script('foo') to be shorthand for
install_script('script/foo') if no root 'foo' file exists.
This should allow for yet more typing reduction (ADAMK)
- For even more typing reduction, "use inc::Module::Install"
now acts as an implicit "use strict", so you don't need to
use strict in Makefile.PL (ADAMK)
- Fixed a regex bug in name_from (and thus all_from) (ADAMK)
0.71 Mon 24 Mar 2008 - Adam Kennedy
- YAML::Tiny is now good enough to use exclusively (ADAMK)
- Converted Changes file to my normal format, so that my release
automation can deal with it properly (ADAMK)
- Added name_from to auto-detect name, and include name_from in
all_from, so now no name line is needed at all in the
Makefile.PL (ADAMK)
- Removed the redundant Module::Install::Makefile::Name and
Module::Install::Makefile::Version, they were almost never
used and were a bit too magic. (ADAMK)
- Adding a "wrote" flag to the M:I object in preparation for
making WriteAll implicit by default (ADAMK)
- Correcting 01_compile.t to check for 5.004 instead of 5.005
(ADAMK)
- Added Module::Install::_version to numify CPAN-like versions
properly (ADAMK)
- Split TestHelper out as it's own t/lib/Test module (ADAMK)
- Upgrade from File::Path::rmtree to File::Remove::remove in the
test scripts. (ADAMK)
- Various documentation clean ups (ADAMK)
- If building in author mode, make sure that auto-generated META.yml
files are deleted properly during 'make clean' (ADAMK)
0.70 Tue 18 Mar 2008 - Adam Kennedy
- Temporarily restoring auto_install until Matt Trout can craft a
replacement for their installdeps needs, and for feature support
(ADAMK)
0.69 Sat 15 Mar 2008 - Adam Kennedy
- Removing auto_install support (ADAMK)
- Removing Build.PL support (ADAMK)
- Enabling configure_requires support (ADAMK)
- Automatically set a configure_requires for the version of
ExtUtils::MakeMaker that the author is running (ADAMK)
- Refactoring a number of modules for reduced size (ADAMK)
- Add 'share' to the list of directories automatically no_index'ed (ADAMK)
- license_from correctly marks "GNU lesser public license" as lgpl,
not gpl [rt.cpan.org 24635] (AVAR)
- set author mode ($Module::Install::AUTHOR) when first creating
./inc (RJBS)
- Don't write perl into PREREQ_PM when using perl_version (ADAMK)
0.68 - Ricardo Signes
- The author entry in META.yml is now a sequence, as required
0.67 - Adam Kennedy
- Tweaked the license detection code a bit
- Previous changes working well, going production
0.66_02 - Adam Kennedy
- Adding detection of 'proprietary' license.
- "All rights reserved" clashes with or can invalidate most Open Source
licenses. Adding a warning to this effect.
0.66_01 Thu 15 Mar 2007 - Adam Kennedy
- Adding tests_recursive to have M:I search for and explicitly list
all test scripts recursively.
- Adding configure_requires, test_requires and install_requires.
These are currently aliases for build_requires but will later result
in alternative consequences internally (ADAMK)
- Reorganising Module::Install::With on the assumption that CPAN.pm will
be implementing PERL5_CPAN_IS_EXECUTING.
0.65 Tue 6 Mar 2007 - Adam Kennedy
- Add install_as_core, install_as_cpan, install_as_vendor
commands to control the "installdirs" metadata field.
Requested by: Tels (renamed by ADAMK and AUDREYT)
- Add the preop command for users to customize the PREOP rule. (BINGOS)
- Implement support for $ENV{PERL5_CPANPLUS_IS_EXECUTING} in the
experimental Module::Install::With. (ADAMK)
- Remove the use of features in the Module::Install Makefile.PL.
Developers should be quite capable of installing them all. (ADAMK)
- Remove the use of auto_provides in Module::Install Makefile.PL
until we fix it to not break without a pre-existing MANIFEST. (ADAMK)
- YAML::Tiny is now used as a fallback for generating META.yml. The
order of precedence is now YAML::Syck, YAML::Tiny, then YAML.
- META.yml output is now conformant to spec 1.3.
- Add MIT license to those detectable by license_from() (GAAL)
0.64 Thu 24 Aug 2006 - Adam Kennedy
- auto_install() will no longer invoke CPAN.pm or CPANPLUS
recursively when running under CPANPLUS (i.e., when
$ENV{PERL5_CPANPLUS_IS_RUNNING} is set to a true value.)
- auto_install() would not follow prerequisites of requires() when
the module is installed from the command line and only CPAN.pm is
installed. [rt.cpan.org 21139] (MSCHWERN)
0.63 Mon 5 Jun 2006 - Adam Kennedy
- "make" gets confused if the Makefile.PL time is in the future, but there
is no universal fix for this. As an initial solution, catch the error
situation and die with an error to the user. (ADAMK)
- Adding additional notes on no_index package (ADAMK)
- Removing hashbang from Makefile.PL and using a $^W = 1 instead (ADAMK)
0.62 Wed 3 May 2006 - Adam Kennedy
- Various small back-compatibility bugs squashed, since we advertise
that a M:I installer should run back to 5.004 (AUDREYT)
- Allow non-admin installs to do so without the need for YAML.pm (AUDREYT)
- Adding an initial implementation of Module::Install::With, containing
code to detect the existance of other members of the Perl toolchain,
and how we are related to them in any given install run.
Initial experimental implementation of CPAN.pm and CPANPLUS detection,
based on code extracted from Module::AutoInstall, and other code
recommended by the relevant authors.
Leaving the new commands undocumented for now, and recommend NOT making
general use of them until tested. (ADAMK)
- In order to implement any form of version locking, which need to know
which extensions are in the core (and thus version-locked) and which
are custom extensions with legally out-of-sync versions.
Added $ISCORE = 1 global to every potentially-bundled core extention,
for when we start to do version locking. (ADAMK)
- The install_share Makefile fragment fails on older ExtUtils::Install
versions. When we install_share, add an explicit EU::MakeMaker dependency.
Would have done on just ExtUtils::Install, but it isn't
PREFIX/PERL5LIB-safe. (ADAMK)
- Some/many versions of MakeMaker incorrectly set PERL_LIB and PERL_ARCHLIB,
which is only supposed to be used for building the core Perl. Since we'll
never be doing that, make the Makefile munger blank them if they exist.
This lets PREFIX + PERL5LIB for installing private modules work again.
(except not PERL_ARCHLIB for now, it's not getting in the way, and for
some reason it's used for something else) (ADAMK)
0.61 Sat 15 Mar 2006 - Adam Kennedy
- ActivePerl::Config on case-insensitive filesystems interacts
erroneously with Module::Install's (outdated) @INC hack, so remove it.
(Patch from Gisle Aas)
- Improve compatibility with ExtUtils::MakeMaker 5.x by not relying
on FIRST_MAKEFILE being set in the MM instance.
- Remove optional dependency on CPANPLUS. (INGY)
- Add "realclean_files" command to add files to be cleaned on
"make realclean", instead of "make clean". (INGY)
- Add $VERSION back to inc::Module::Install so we can implement
workarounds and back-compatibility code later on. (ADAMK)
0.60 Tue 11 Mar 2006 - Adam Kennedy
- Cleaned up the 0.59 fix a bit and added a bunch of comments explaining
the bootup mechanism. A misunderstanding of this on my part led to
the 0.58 bug. Sorry folks (ADAMK)
- Resolved #18040: bundled Module::Install leaks private information
Debugging information in Module::Install::Admin was leaking potentially
sensitive information. Removed just the files, left the lines (TELS)
- Fixed a smaller part of the problem with 0.58 that still hurts people if
that are an installer AND an author as well. (Reported by dha)
0.59 Fri 7 Mar 2006 - Adam Kennedy
- Resolved #18020: 0.58 was broken; inc::Module::Install's @ISA
and $VERSION needs to be set by Module::Install on its behalf.
(TELS)
0.58 Tue 4 Mar 2006 - Adam Kennedy
- Made Module::AutoInstall generally aware of AUTOMATED_TESTING
- Added compatibility with 5.9.3 proxy constants
- Resolved #11169: problems on VMS.
This doesn't mean there won't be problems on VMS though,
as this path is oldish and their may be more problems.
- Added AUTOMATED_TESTING support to prompt() to force the
selection of the default (via PERL_MM_USE_DEFAULT) when it
is enabled.
- Added infinite loop protection to prompt() just in case automated
and/or shortcutted responses to prompts go badly and leave us
looping over the same question.
- Fixed #17961 Use of uninitialized value in array dereference at
Module/Install/Metadata.pm line 163. (TELS)
0.57 Thu 23 Feb 2006 - Adam Kennedy
- Fixed a bug where a misnamed hash key was making the extensions
fruitlessly reload (or at least try to reload) every command call.
- Fixed a pod bug for the requires_external_bin head2
- Because external deps will need versioning eventually, we can
never provide a hash to requires_external, and so it's really
just supurfluous and invites more bugs. Removed.
- Experimentally added support for the META.yaml dynamic_config flag.
We don't set ANY default value, because of a lack of clarity. It is
undocumented in the META.yaml spec, but false in Module::Build, which
is really really bad, as it leads to falsely assuming dynamic
Makefile.PLs are static when no dynamic_config is provided.
Personally, I think it should be static_config anyway, and we may well
change it to be that anyway.
- Added support for requires_external_cc (requires a C compiler) that will
integrate with whatever central method we use later to signal to
whatever is calling Makefile.PL that there is a missing external
dependency. This will also be called by other methods if there is an
implicit dependency.
- Synchronised all the module versions to all be 0.57.
This will be used a few versions down the line to add integrity testing
of Module::Install's own extension loading process.
- Added a $VERSION and C<use strict> to the extensions that didn't have
one or both of the two already.
- Fixed a number of minor bugs discovered after turning on C<use strict>.
- Very carefully beginning to clean up some of the code so it's much more
boring (i.e. maintainable).
- Changed recursion to always preference the installer we are currently
running under. So use CPAN.pm in CPAN.pm, and CPANPLUS in CPANPLUS.
This simplifies anti-dupe recursion algorithms, and dramatically
reduces memory use under CPAN.pm.
- Documented the install_script command
- Caught _install_cpanplus happily passing completely illegal CPAN.pm
config params to CPANPLUS, and worse, eval-wrapping the set_conf so
it could happily ignore errors.
Added _cpanplus_config to try and auto-convert CPAN config params to
CPANPLUS, and die if we can't. Add more translators as needed.
- Moved the deprecated commands into their own module
Module::Install::Deprecated to stop them being included and reduce
package bloat.
0.56 Sun 12 Feb 2006 - Adam Kennedy
- Added experimental support for requires_external_bin to forcefully
require the installation of a script or command.
- Removed a warning in Module::Install::Admin::MetaData when
perl_version doesn't have a third part.
0.55 Fri 27 Jan 2006 - Adam Kennedy
- This release only not signed (Released by ADAMK who has no keys)
- Another pass over the POD to clean up and remove mistaked (ADAMK)
- Module::Install::Share installs to blib/lib rather than blib/arch.
Most files will be non-arch-specific, and it was causing problems
down the road with File::ShareDir.
All existing working install_share/File::ShareDir continues to work.
- New command auto_include_dependent_dists() to recursively include
dependent CPAN distributions for modules declared with
build_requires().
This differs from auto_include_deps() because it works with whole
distribution source trees, not just single modules.
- Fix POD syntax so t/2-pod.t passes.
Contributed by: Ishigaki Kenichi
- Disable 5.005-specific qr// construct in t/3-autoinstall.t so
Perl 5.004 can build this module again.
- YAML::Syck 0.27+ is now a preferred dependency over YAML 0.35+ for
platforms with a C compiler and without either one available.
0.54 Wed 11 Jan 2006
- Fix can_run() on Cygwin for real.
Contributed by: Mark Grimes
0.53 Wed 11 Jan 2006
- Fix can_run() on Cygwin for paths beginning with /cygdrive/.
Reported by: Mark Staggs
- If YAML::Syck is present on the system, use it instead of YAML.pm
to write out META.yml.
0.52 Tue 3 Jan 2006
- Module::AutoInstall - disable "sudo" prompting for CPANPLUS 0.050
and CPAN.pm 1.80+ which already has "sudo" support.
Reported by: Andreas Koenig
0.51 - 2005-12-31
- An additional 100+ lines of documentations in the Module::Install POD file.
- all_from() with no args now attempts to decude the "from" file
from the "name" property.
- On Cygwin, sometimes AUTOLOAD is called with a gensym'ed package
that does not define _top. Try to accomodate for this.
- Do not ever attempt "sudo" without interactive consent from the user;
make the _prompt() in Module::AutoInstall default to 'n' if we are
not running in an interactive terminal.
- Add lib_paths and lib_links commands to Module::Install::Compiler for
setting LIBS flags.
0.50 Mon 26 Dec 2005
- Fixed the bug where cpan signing was set forcibly to true instead
of defaulting to false.
Reported by: Martin Thurn and Randal Schwartz
- Module::Install::Admin's copy() subroutine was using a lot of CPU
on inefficient regex matches, where a simple passthrough while()
line-processing loop would do.
- The t/ directory is now listed in META.yml's no_index entries by
default, along with inc/.
- YAML.pm is now listed as an explicit dependency.
0.48 Mon 26 Dec 2005
- New Module::Install::Compiler extension with commands:
c_files(), inc_paths(), optimize_flags().
0.47 Sun 25 Dec 2005
- Slight documentation cleanup and update Module::Install::Admin
version to 0.47; no functional changes.
0.46 Thu 22 Dec 2005
- tests() should always take effect even if auto_install() or
makemaker_args() had set it before.
Reported by: Jesse Vincent.
0.45 Fri 16 Dec 2005
- Improved detection for author_from() based on the copyright line
in addition to =head1 AUTHORS.
- Bump version of Module::Install::Admin to match Module::Install.
Reported by: Sebastian Riedel
0.44 Tue 13 Dec 2005
- Module::Install::Bundle now extract files correctly again;
this was a regression since 0.40.
Reported by: Randal Schwartz
- Add support to Module::Includes::Bundle so each subdirectory
can use Module::Install for bundling.
- The "bundles:" key in META.yml is now populated even if the
bundled modules already exist on the system.
0.43 Mon 12 Dec 2005
- Better documentation to install_share().
- New author_from() command to guess the author name from POD.
- all_from() no longer probes for metadata that has been set before.
0.42 Sun 11 Dec 2005
- auto_provides() was broken due to a typo.
- New command install_share() to put a directory's content into the
per-distribution auto/ directory.
0.41 Sun 11 Dec 2005
- Only query '$self->tests' if we haven't been given an explicit list
(From Paul Fenwick)
- New command auto_provides() to calculate "provides:" information using
Module::Build. Requested by Chia-Liang Kao.
0.40 Wed 7 Dec 2005
- Massively updated documentation (more to come later).
- Parentheses are now optional in Makefile.PL.
- Includes Module::AutoInstall, a cleaned-up version of ExtUtils::AutoInstall.
- New command all_from() to combine all *_from() tests into one.
- New command test() to Support specifying test files.
- New command feature() to list individual features easily.
0.37 Thu 4 Aug 2005
- Always include ExtUtils::AutoInstall in inc/ if auto_install() is called.
- Fixed a bug where modules having shared libraries would sometimes
be included in inc/.
- The needs shared library message will now only be printed if the module
version indicates that it would otherwise be included. The module name has
also been corrected so that "::" is used everywhere instead of "/".
0.36 Thu 9 Sep 2004
- First version under SVK management.
- install_scripts() now takes multiple scripts to install.
0.35 Tue 13 Jul 2004
- Jos Boumans reported that "use inc::Module::Install 0.34"
was failing because Module::Install does not assign VERSION
to inc::Module::Install.
- Implemented auto_include_deps() for real.
0.34 Thu 1 Jul 2004
- auto_include() will not include recursive dependencies now;
that functionality is refactored into auto_include_deps().
0.33 Thu 11 Mar 2004
- abstract_from() was broken; it works now thanks to SHAY.
- WriteAll() now takes (inline => 1) to support
Inline-based modules.
0.31 Wed 31 Dec 2003
- Allow auto_install() to take -core-specific options like
(-default => 0).
- No longer use inc/SCRIPT but simply modify the scripts to install.
- Make can_cc() to probe the program part of $Config{cc}
- Bundled M::I-using modules (or subdirs) used to break up
spectacularly by overriding ::AUTOLOAD and reusing their
parents' inc/*. Now the namespaces are keyed by cwd and
more readily unregistered.
0.29 Sun 14 Dec 2003
- Introducing &WriteAll, a combination of &Meta->write,
&check_nmake, &Makefile->write, and if a Build.PL is
present (which should read "require 'Makefile.PL'"),
also supports transparent &Build->write.
- Real Module::Build support in WriteAll and in this module.
- Transparent Build.PL, as promised in README, is back.
- WriteAll now takes three non-metadata flags:
check_nmake (default 1), meta (default 1) and
sign (default 0).
- The "private" key in META.yml is officially obsoleted by "no_index".
- Now warns if the user did not specify a license.
- "requires( perl => $version )" is now supported.
- include_deps() now no longer takes its second argument;
it must be separately supplied with the syntax above.
- "&WriteAll" now officially replaces "&Build->write",
"&Makefile->write", "&Meta->write" and "check_nmake()".
- Implemented auto_include() and bundle_deps().
- Add "#defaults" to MANIFEST.SKIP.
0.28 Thu 11 Dec 2003
- Module::Install::Bundle now works, thanks to Adam Foxson!
- Unbreak against newer EU::MM.
- Let "inc" work with "make test" on 5.6.x too.
- mcdavis pointed out that Microsoft now wants
"Nmake15.exe", not "nmake15.exe".
0.27 Mon 27 Oct 2003
- Make the include'd modules actually work during
"make" and "make test", by adding "inc" to the
Makefile targets.
- Graham's patch for 5.004 backcompat.
- Graham Barr points out that readdir() can return 0.
- Do not sign the distribution if we are not the admin.
0.26 Fri 17 Oct 2003
- sign(1) support for automatic digital signing.
- no_index(directory => 'example') support, for telling
PAUSE and search to skip indexing modules.
0.25 Mon 13 Oct 2003
- Add no_index as an alias to private in META.yml.
- Support for YAML::Parser::Syck.
- No point in supporting Build.PL now.
0.24 Mon 1 Sep 2003
- 0.17 is simply too old as it scans in POD sections.
- Kingpin <mthurn@carbon> notes that we are using "next"
outside a loop block in ScanDeps.
- threads.pm and warnings.pm should be exempted too.
0.23 Mon 18 Aug 2003
- Implemented $self->is_admin to properly test if it's running
on the admin side.
- Andreas Koenig reports that we are writing META.yml
even on the user side, because of this bug.
- Switch to PAR::Dist to do make_par().
0.22 Wed 16 Jul 2003
- Turns out that MakeMaker's NAME corresponds to
META.yml's module_name, and DISTNAME corresponds
to name. Reflect this in the relevant files.
- Introduce a new module_name metadata key that may
be automatically generated from name.
- /\.pm/i should be /\.pm$/i.
- Iain Truskett wants us to not overwrite alien META.yml files.
- PREREQ_PM wasn't being filled out.
- Should be including YAML dependencies too.
- POD cleanups.
0.21 Sun 15 Jun 2003
- Lindsay Morris pointed out that include_deps()
does not work with non-core modules; fixed.
0.20 Thu 5 Jun 2003
- Add pointer to ingy's TPJ article.
- Eliminated warnings on 5.005.
- Added the "package inc::Module::Install;" line at
request by Graham Barr, for search.cpan.org.
- Close META.yml before zipping; otherwise trips on win32.
- requires(), build_requires(), recommends() etc can now take
multiple pairs in addition to a single pair.
- Add standard MANIFEST and META.yml to generated PAR file.
- Implemented the &Meta->read mentioned in the main docs.
- Our version of WriteMakefile was failing to fine Meta
object; fixed.
- 'make reset' now just an author side alias for 'make purge'.
- The whole #! business is unneeded since MakeMaker does that.
- Don't skip other non-pm inc/ stuff when checking MANIFEST.
- The hashbang line should be the first, not last, in scripts.
- Also people may not always like -w.
- We reall want to rmtree() the distdir so that 'make manifest'
won't include clobbered files after an aborted 'make dist'.
- Fix consistency: ->prompt() should only take one line of
prompt and expects y/n.