1.37  2024-11-14

- fix parsing of "use if ..."
  Fixes errors in PAR::Packer test t/90-rt59710.t

- add test for _parse_libs()

1.36  2024-10-21

- Fix CVE-2024-10224: Unsanitized input leads to LPE

  - use three-argument open()
  - replace 'eval "..."' constructs

  Note: this version was not released on CPAN because of
  Coordinated Release Date for CVE

- README: add "Source Repository" and "Contact" info
  switch "Please submit bug reports to ..." to GitHub issues

- add preload rule for MooX::HandlesVia
  cf. https://github.com/rschupp/PAR-Packer/issues/88

1.35  2023-11-05

- massive speed up, esp. for scripts using stuff from 
  the Moose ecosystem, thanks to @shawnlaffan:

  - add package level caches for INC searches (_find_in_inc, _glob_in_inc)
  - faster add_deps on case insensitive systems AKA Windows

1.34  2023-09-24

- Fix issue #19 (AKA rschupp/PAR-Packer#78): invalid paths in zip file
  
  - Restore behaviour from version 1.31 when using "pp --execute ..." or
    "scandeps.pl --execute ...". 
    
    When using "scan_deps(execute => 1, ...)", %INC as gleaned from
    running the script must be sanitized. Contrary to documentation
    "The  key  is the filename you specified (with module names
    converted to pathnames)" %INC *may* contain keys that are 
    *absolute pathnames* (or start with "./relativ/path" when 
    "relative/path" is in @PATH). Examples are autosplitted modules
    (for autosplit.ix and *.al files). pp will pack these absolute
    paths into the zip (Archive::Zip doesn't complain) which
    results in strange error messages when the packed executable
    tries to unpack them under CACHEDIR/inc on Windows.
  
    Add t/19-autosplit.t to test for this.
    Add IPC::Run3 to TEST_REQUIRES, used in t/19-autosplit.t

- Add GitHub CI

1.33  2023-08-04

- Recognize Moose/Moo/Mouse style inheritance ("extends") 
  or composition ("with") statements.

- Add %Preload entries for known dependants of XS::Parse::Keyword.
  
  Note: XS::Parse::Keyword is loaded from XS code, grep.metacpan.org
  for calls of boot_xs_parse_keyword() in *.xs files.

1.32  2023-07-05

- Ensure $inc gets removed from the start of $File::Find::name
  
  On Windows, if $inc contains backslashes then it won't always get removed
  from the start of $File::Find::name because the latter may be canonicalized
  to only contain forward slashes.
    
- Provide dedicated test scripts for some tests instead of using 
  the test scripts themselves: Test::More draws in all kinds of stuff,
  totally unpredictable

- Rewrite test helpers in t/Utils.pm to use Test::More's subtest feature

- Code cleanup; fix detection of 'do STRING' (cf PR #15)

- scandeps.pl:  sort items in "used by" column

- Handle spaces after quote operator, e.g. eval qq {Some::Module}
    
- Fixes #12: share dir not returned when require module is in an eval
    
- Recognize constructs like "eval qq{require Inline::C}".

- Recognize idioms like "if (eval { require Foo }) { ..."
    
- Add %preload rules for some Mojo resource files
    
  Fixes rschupp/PAR-Packer#44

- Bump perl dependency to guard against ancient perls without FindBin::again()

- Add tool to trace when (and from where) Perl searches for a module

1.31  2021-04-21

- Try to match more PerlIO ":layer(args)" in open() or binmode()
  e.g. Spreadsheet::ParseODS uses ":gzip(none)";
  
  Thanks, @shawnlaffan, for the suggestion (cf. PR #12)

- XML::Twig::XPath needs either XML::XPathEngine or XML::XPath
  XML::Twig may use URI if present

- Moo may use Class::XSAccessor if present

- Fixes #10 "Support IUP.pm Module"

1.30  2021-01-13

- change bugtracker to GitHub issues

- guard against trailing slashes for paths in @INC

- interprete more common "use lib" idioms

1.29  2020-08-16

- implement interpretation of stuff like

  use FindBin;
  use lib "$FindBin/../lib";

1.28  2020-08-06

- placate cperl ("Attempt to change hash while iterating over it.")

- make _find_encoding() more robust

1.27  2019-01-15

- fixes by Shawn Laffan <shawnlaffan@gmail.com>
  - Process lines like "{ package foo; use if 1, "warnings"; } (#8)
  - Also handle 'do {use module; ...}'

- some clean ups
  - scandeps.pl: sort output by module name
  - add_deps(): use _gettype() instead of inline code
  - _compile_or_execute(): require DynaLoader _before_ accessing
    its variables
  - t/7-check-dynaloader.t: improve diagnostics

- drop Cwd from the list of potential XS modules

- suppress warnings in some ancient Perls

1.26  2018-12-12

- Glue DLLs of XS modules should have type "shared" rather than "data"

  Detection broke on Windows where nowadays $Config{dlext} = "xs.dll"
  (i.e. it's not a simple suffix)

- Mention some other modules: Module::ExtractUse and Perl::PrereqScanner::* family

- Add %Preload rules for:
  - JSON::MaybeXS
  - HTTP::Entity::Parser
  - FFI::Platypus

1.25  2018-08-18

- Merge pull request #2 from shawnlaffan/master, thanx Shawn!

  continue scanning one-liners when use if, autouse or >5.010 found

- Fix how data obtained from compiling or executing a file
  is incorporated (_info2rv).

  Sanitize all pathnames to use slash (instead of backslash):
  - members of @INC
  - keys and values of %INC
  - members of @dl_shared_objects
  This should make stripping @INC prefixes finally work.

- Add %Preload rule for FFI::Platypus

- Add bugtracker to META.yml

1.24  2017-06-28

- Merge pull request from Salvador FandiƱo (salva), thx!
  Specio::PartialDump uses unicore

- Fix RT#119737: Problems with detecting DateTime::Format::Natural dependencies
  ... by adding a %Preload rule

1.23  2016-11-16

- add %Preload rules for List::SomeUtils and Pod::Simple::Transcode

- get rid of Module::Install, use ExtUtils::MakeMaker

1.22  2016-09-17

- Fix RT#117887: Not parsing new release of Net::DNS::Resolver
  add %Preload rule for Net/DNS/Resolver.pm

- Move to GitHub. Thanks, OpenFoundry, for years of service.

1.21  2016-04-05

- %Preload: add rules for List::MoreUtils and Log::Dispatch

- %Preload: make the following modules require the unicore stuff:
  charnames.pm
  Unicode/Normalize.pm
  Unicode/UCD.pm

- add helper _glob_in_inc_1()

- remove all references to http://par.perl.org/, doesn't exist anymore

1.20  2015-10-04

- Fix RT #107304: Newer versions of File::Path cause warning "_Inline for _Inline: No such file or directory at Module/ScanDeps.pm line 1339."
  - drop the dubious call to rmtree()

- Fix RT106142: Preload dependencies for PDL and PDL::NiceSlice
  - adopted from a patch by Shawn Laffan, thanks Shawn!

- Fix RT#106144: Preload dependencies for File::BOM)
  - adopted from a patch by Shawn Laffan, thanks Shawn!

- Revise our stance on utf8.pm:

  - A line of "use utf8;" just means "this file is encoded in UTF-8"
    and should _not_ result in scanning utf8.pm which will pull in
    the whole Unicode shebang (propery tables and what not).
    Yes, utf8.pm *does* contain "require utf8_heavy.pl", but only inside
    an AUTOLOAD() that is *not* triggered by calling functions
    like utf8::is_utf8().

  - OTOH the innocently looking one-liner

      perl -ne 'print if /\pN/'

    implicitly loads utf8.pm and triggers the AUTOLAD().

  - So prevent utf8.pm from being scanned and make utf8_heavy.pl
    the indicator for "I need the Unicode stuff" instead.

  - Cache the results of _get_preload('utf8_heavy.pl').

- Make %Preload "transitive" so that given

    my %Preload = (
      'Foo.pm' => [ 'Bar.pm' ],
      'Bar.pm' => [ 'Quux.pm' ],
      ...
    );

  scan_deps_static() registers a dependency on Bar.pm _and_
  Quux.pm when it has seen "use Foo;"

- Minor changes:
  - drop dubious %Preload of utf8.pm for SOAP::Lite and XML::Parser::Expat
  - drop code for Perl < 5.008 as we require 5.8.1 already
  - rework the implementation of -x/-c
  - add add_preload_rule() to dynamically add a %Preload rule
  - recognize constructs like "open FH, '<:via(Foo)', ..."
  - upgrade to Module::Install 1.16

1.19  2015-05-27

  - add %Preload rule for LWP::MediaTypes: data file LWP/media.types

  - add %Preload entry for MIME::Types: data file MIME/types.db

  - add %Preload rule for AnyEvent

  - always add Encode.pm when fix encountering constructs like

      decode("klingon", ...)
      open FH, "<:encoding(klingon)", ..

  - add license

  - update OpenFoundry repository URL

1.18  2015-01-19

  - Fix RT #101569: Incorrect module parsing if Moose is included

1.17  2014-10-31

  - scandeps.pl: die if an option is not recognized

  - Reformat Changes file according to CPAN::Changes::Spec

  - Modify %Preload rule: let Unicode::UCD explicitly imply utf8.pm.
    This fixes PAR::Packer's self test.
    Previously Unicode::UCD implied utf8.pm implicitly because
    it contains calls to some utf8::foo() functions.

  - Add %Preload rule: Mozilla::CA requires its cacert.pem file

  - Recognize "do filename" constructs even if "do" isn't at the start
    of a chunk.

  - Upgrade to Module::Install 1.14

1.16  2014-09-28

  - Fix RT#98938: recognize Module::Runtime module-loading functions

  - Fix a nasty typo that broke scandeps.pl option -E

      $ scandeps -E "some string"
      Unknown option: E
      Can't open some string: No such file or directory at scandeps.pl line 49.

    - also scandeps.pl: die if an option is not recognized

  - Remove some overzealous heuristics from scan_chunk()
    - they were looking for

      Foo::Bar->something
      Foo::Bar::whatever(...)

    _anywhere_ in programs to infer a dependency on Foo/Bar.pm.

    BEWARE: This might break some use cases, i.e. missing some dependencies.
    On the other hand,  this causes hard to investigate problems like the one
    starting at http://www.mail-archive.com/par@perl.org/msg05531.html.
    While the former can easily be worked around by the user itself (just
    add a missing dependecy explicitly, e.g. using "pp -M ...") and
    typically can be solved in general by adding a %Preload rule,
    the latter just wastes people's times.

  - Recognize Test::More require_ok() and use_ok()
    - makes 3-static_oo_interface_real.t pass again (fallout from the above)

  - Upgrade to Module::Install 1.12

  - Add option -T to request information from CPAN
    - don't access CPAN behind the user's back just because they have
      CPANPLUS installed (it was in the Perl core from 5.10 to 5.18) -
      it might not even have been configured (e.g. in a corporate internet)
    - only do this when explicitly requested

1.15  2014-08-23

  - Fix RT #98203: Migrate from deprecated Module::Build::ModuleInfo to Module::Metadata
    - thanx Petr Pisar (ppisar@redhat.com) for the hint

  - add long option names to scandeps.pl

  - implement option --xargs for scandeps.pl

  - fix wrong version numbers in Changes

1.14  2014-08-03

  - Fix RT #92860 (t/7-check-dynaloader.t doesn't handle systems with mod2fname),
    also RT #97519 (Fix for t/7-check-dynaloader.t on systems with DynaLoader::mod2fname)
    - applied patch from Brian Fraser (fraserbn@gmail.com), thanks!
    - lib/Module/ScanDeps/DataFeed.pm: apply here, too

1.13  2013-12-21

  - Fix recognition of (open() arguments) "<:encoding(klingon)",
    implies modules PerlIO and PerlIO::encoding.

1.12  2013-12-01

  - Fix RT #90869: Use of uninitialized value $module in substitution (s///)

  - Fix RT #87775: typo fixes, thanks dsteinbrunner@pobox.com

  - new %Preload rule for B::Hooks::EndOfScope

  - new %Preload rule for Pod::Usage

  - add a fake %Preload rule that warns if use of Module::Implementation
    or Module::Runtime is detected (coz' they're doing runtime loading)

  - change some tests to use Test::Requires instead of homegrown stuff;
    hence add it to "test_requires"
  - clean up some uses of Test::More

1.11  2013-09-28

  - Fix RT #89000: test broken by indirect base.pm disuse
    - delete base.pm from list of expected deps,
      patch by Andrew Main (zefram@fysh.org)

  - new %Preload rule for Net::HTTPS (e.g. used by LWP::Protocol::https)
    - look for IO::Socket::SSL or Net::SSL

  - new %Preload rule for YAML::Any
    - try to figure out what YAML::Any would have used
      (using YAML::Any->implementation)
    - as fallback, include anything below YAML

1.10  2012-10-20

  - add %Preload rule for Params::Validate to detect
    its PP and XS implementations

  - Fix RT #80276 Module DateTime::Format::ISO8601 generates error
    after being packaged
    - caused by failing to pack DateTime::Format::Builder::Parser::XXX modules
      needed by DateTime::Format::Builder::Parser
    - add a corresponding %Preload rule

  - update to Module::Install 1.06

1.09  2012-09-09

  - teach Module::ScanDeps about "use if ..." constructs
    - fixes CPAN Testers failures for PAR::Packer with perl 5.17.1 and up
      (Roderich Schupp)

  - RT #79003: t/7-check-dynaloader.t failing when /usr/lib != /usr/lib64
    - scrap the test for "$entry{file} starts with $expected_prefix" as
      its assumptions are flawed (Roderich Schupp)

  - Mojo::Base is a loader (Alexandr Ciornii)
  - Special case for Class::Load (Alexandr Ciornii)

1.08  2012-02-21

  - RT #73785: scandeps -c fails on modules that depend on Getopt::Euclid
    - for "scandeps -c ..." switch from an INIT block to a CHECK block
      and call the augmented script with "perl -c"  instaed of "perl"

  - RT#72954 ":encoding(UTF-8)" doesn't imply a dependency on Encode.pm
    - if scan_chunk sees ":encoding(FOO)" or similar, it goes to some
      length to find the "external" Encode module to handle FOO; but it
      forgets that Encode.pm itself is needed at runtime (esp. if FOO
      is an encoding "internally" handled by Encode.pm, e.g. "UTF-8")

  - %Preload: add rules for Gtk2.pm and Pango.pm
  - %Preload: fix a problem with Image::ExifTool

1.07  2011-11-29

  - RT #72796: dynaloader test fails when the .so files are in the
    system lib dirs and local::lib is involved?
    Relax a check in t/7-check-dynaloader.t
  - Update Module::Install to 1.04

1.06  2011-11-28

  - RT #72211: pp includes way too much modules (when using 'use strict;')?
    Rework regexes to detect "use MODULE ...":
    the following line from unicore/mktables

      my $unihan = 'Unihan properties are by default not enabled in the Perl core.  Instead use CPAN: Unicode::Unihan';

    would erroneously detect a dependency on CPAN.pm (which will in turn
    pull in a lot of modules)
  - Bump Perl version requirement to 5.8.1 (Schwern: The End Of 5.6 Is Nigh!)
  - Rewrite t/7-check-dynaloader.t to look for more candidates of dynamic modules
    that might be used as test cases

1.05  2011-11-02

  - RT #72082: $FindBin::Bin issue on Moudel::ScanDeps 1.04
    Make FindBin work (at least with option -c or -x) by spoofing $0
    in the temp script generated for M:SD::DataFeed
  - RT #70134: patch suggestions for Module::ScanDeps 1.04: additional preload
    rules, used_via_preload attribute
    Add suggested %Preload rules from the attached patch (thanks, Markus Jansen)
  - Add %Preload rules for MozRepl
  - Special case for Package::Stash (Alexandr Ciornii)
  - Special case for Moose (Alexandr Ciornii)

1.04  2011-07-21

  - Brown paper bag bug: fix option -x (execute) (broken by changes for -c)
  - While we're at it: honor option -I with -c

1.03  2011-07-18

  - RT #69213: ScanDeps incompatible with AnyEvent (Perl 5.14, AnyEvent 5.34, PAR 1.00.2)
    For option -c (compile) M:SD used to wrap the file in one big sub and
    appended an END block where it dumps %INC etc; the outer sub causes problems
    with certain contructs. Instead we now use an INIT block prepended
    to the file.

  - RT #69471: Problem with "eval { require SomeModule }" constructions
    Module::ScanDeps::DataFeed now omits %INC pairs with an undefined value
    (these may be created by an unsuccessful "require" under certain conditions).
    Also omit CODE refs from @INC.

  - Fix for failing CPAN Testers report
    http://www.cpantesters.org/cpan/report/4208fa16-a5d1-11e0-a0bc-c71a7862a918:
    Perl 5.15.0 got rid of Shell.pm

  - Fix for failing CPAN Testers report
    http://www.cpantesters.org/cpan/report/772147dc-6c1f-1014-baf2-318eb63ba09a:
    - regex meta characters in filenames break consistency check

  - Simplify Module::ScanDeps::DataFeed somewhat by localizing %INC
    around "require Module::ScanDeps::DataFeed" and by using Data::Dumper
    for the actual dump.

  - Don't create the tempfiles for DataFeed in the working directory.

  - Purge all pod from Module::ScanDeps::DataFeed, advise the  CPAN
    indexer not to bother with it; same for Module::ScanDeps::Cache.

1.02  2011-04-03

  - %Preload: add _all_ *.pl file below .../unicore for utf8.pm

1.01  2011-03-26

  - %Preload: add "unicore/version" for Unicode/UCD.pm
    (because it contains a call openunicode(..., "version"))

1.00  2011-02-19

  - RT #65855: Special handling for POSIX requested (Roderich Schupp)
  - RT #65252: Temp files left when execute fails (Roderich Schupp)
  - add a %Preload rule for Log::Report::Dispatcher (Roderich Schupp)
    cf. http://www.nntp.perl.org/group/perl.par/2011/01/msg4871.html
  - add %Preload rule for Date::Manip (Roderich Schupp)
  - speed up scanning *significantly* by not re-constructing regexen
    for every line of input and reducing the no. of sub calls (Steffen Mueller)
  - add Eric Roode to AUTHORS (Steffen Mueller)
  - RT #61027: "use lib" does not work (Roderich Schupp)
    scan_line(): When handling "use lib '/some/dir'" we add "/some/dir/ARCHNAME",
    "/some/dir/VER" and "/some/dir/VER/ARCHNAME", but forgot
    to add "/some/dir" itself.
    While we're at it, improve parsing the argument list of "use lib".
    Simply eval the string, this should at least make all forms of
    quoted strings work correctly.
  - fix URI special case (clkao)
  - fix a regression reported by CPAN Testers (Roderich Schupp)
  - finally: bump version to 1.00

0.98  2010-07-26

  - Make %Preload entry for "utf8.pm" lazy (Roderich Schupp)
  - Upgrade to Module::Install 1.00 (Roderich Schupp)
  - RT #58093: Par-Packer not including all dependencies (unicore/Heavy.pl) (Roderich Schupp)
  - Add %Preload rule for RPC::XML (Roderich Schupp)
  - RT #57494: add %Preload rule for JSON.pm (Roderich Schupp)

0.97  2010-04-10

  - Pack the content of module/distribution sharedirs is automatically. (kmx)
  - RT #56020 - add data files used by Unicode::UCD (Roderich Schupp)
  - RT #55746 - remove bogus "... if %Config::Config" condition (Roderich Schupp)
  - Add special case for CGI::Application::Plugin::AutoRunmode (Alexandr Ciornii)
  - Add special case for CGI::Application::Plugin::Authentication (Alexandr Ciornii)
  - Add special case for DBIx::Perlish (Alexandr Ciornii)

0.96  2009-11-13

  - perl 5.6.1 compatibility (Alexandr Ciornii)
  - Test for "use module version;" (Alexandr Ciornii)

0.95  2009-10-16

  - Fix "uninitialized value" warnings (Dave Rolsky)
  - Add special case for Perl::Critic (Alexandr Ciornii)
  - Add special case for Event (Alexandr Ciornii)
  - Add special case for Wx.pm (Alexandr Ciornii)
  - Add special case for Log::Any

0.94  2009-08-10

  - Add tests for scan_line (Alexandr Ciornii)
  - RT#48151 fixed, "require __PACKAGE__" should not die (Alexandr Ciornii)
  - OS/2 fixes (Ilya Zakharevich)

0.93  2009-07-19

  - Implement caching of dependencies (Christoph Lamprecht)

0.92  2009-07-19

  - Fix bug with {type} being set to unexpected values in some cases (Christoph Lamprecht)
  - Add tests for scan_chunk (Alexandr Ciornii)
  - Add special case for parent.pm (Alexandr Ciornii)
  - Fix for "use parent::something" (Alexandr Ciornii)
  - Add special case for Catalyst.pm (Alexandr Ciornii)

0.91  2009-06-22

  - Add special case for Tk's setPalette call (Christoph Lamprecht)

0.90  2009-05-09

  - Add special case for DateTime::Locale
  - Add special case for PAR::Repository and PAR::Repository::Client

0.89  2008-11-03

  - Distribution fixes.
  - Do not use base Exporter.
  - Detection of 'asa' and 'only::matching'.

0.88  2008-10-28

  - Add special case for File::HomeDir.

0.87  2008-10-28

  - Add special case for PPI.

0.86  2008-10-23

  - Fix the 'use prefork "Foo"' static detection.
  - Fix the detection of any of the module-loader modules such as
    prefork, autouse, etc. if invoked as 'use prefork"Foo"' (note
    the lack of a space).
  - Slightly refactor the loader-module scanning. (see above)
  - Support for "use maybe 'foo';"
  - Use (arch|priv)libexp instead of (arch|priv)lib
    in scandeps.pl (Mark Stosberg)
  - Update to Module::Install 0.77

0.85  2008-08-01

  - Add special case for Net::Server.

0.84  2008-05-13

  - Add special case for Class::MethodMaker.

0.83  2008-03-23

  - Add special case for Image::ExifTool.

0.82  2008-01-08

  - Add Test::More to build requirements (Alexandr Ciornii)
  - Add dependency on version.pm
  - Now correctly identifies feature.pm as a dependency if
    "use 5.10.0;" (and up) is found.

0.81  2007-12-07

  - Fix for the case-insensitive-file-system-test.

0.80  2007-11-30

  - Fix to avoid duplicated entries arising from used_by references with
    case differences.
  - Do not report input files themselves as dependencies.
    (Regression from 0.74 onwards)
  - Remove warning from ScanFileRE tests.

0.78  2007-11-17

  - Fix ScanFileRE heuristics to allow for scanning files without
    suffixes.

0.77  2007-09-20

  - Add support for prefork.pm (similar to how base.pm is detected).
  - Added uses field to hash descriptions returned by scan_deps +
    tests (Adrian Issott)
  - Added ScanFileRE to restrict the files scanned to .pl, .pm, .al and
    .t but allow the user to override + tests (Adrian Issott)

0.76  2007-07-21

  - Fix special case for Term::ReadLine (should not rope in Tk)
  - New special case for Tcl::Tk (should not rope in Tk either!)
  - New special case for threads::shared ==> rope in attributes.pm
  - Fix to avoid duplicated entries that can arise due to case
    differences that don't actually matter on case-tolerant
    systems (Adrian Issott)
  - M::SD warnings now go to STDERR not STDOUT (Adrian Issott)
  - Fixed bug #24162: scandeps.(bat|pl) doesn't correctly identify Core
    Modules on Windows (Adrian Issott)
  - Now finds shared libraries for modules specified as input files.
  - Tests for finding shared libraries.

0.75  2007-06-24

  - Fix special cases for POE. (Roderich Schupp)
  - Added exported path_to_inc_name subroutine (Adrian Issott)
  - Added Module::Build::ModuleInfo dependency (Adrian Issott)
  - Fixed bug where input files weren't scoped properly
  - Add new "check-for-dynaloader" test. (Eric Wilhelm)

0.74  2007-04-26

  - Same as 0.73_01, but not a developer release.

0.73_01  2007-03-28

  - Fixed bug "scan_deps doesn't show ALL the dependencies"
  - Ensured all file entries are given by absolute paths
  - Added a number of test artificial dependency trees as test data
    mainly for "scan_deps doesn't show ALL the dependencies" bug
  - Added tests for scandeps recurse option (all pass)
  - Added tests for scandeps skip option (all pass)
  - Added tests to show a duplicated dependency is in fact only shown
    once (all pass)
  - Added Utils.pm test module containing generic_scandeps_rv_test and
    compare_scandeps_rvs subroutines (Adrian Issott)

0.73  2007-03-25

  - Now being a little cleverer for detecting globs in diamond operators.
    (Requiring a meta character within the <>.)

0.72  2007-02-03

  - Case-insensitive @INC removal for case-insensitive
    filesystems (Eric Wilhelm)

0.71  2007-01-04

  - Added special cases for
    Catalyst
    Class::MakeMethods
    Config::Any
    DBIx::Class
    Email::Send
    Log::Log4perl
    SQL::Translator
  - print() the "# Legend..." line instead of warn()ing it.

0.70  2006-11-21

  - Added special case for Image::Info.

0.69  2006-11-07

  - Additional corner cases for LWP::UserAgent and LWP::Parallel::UserAgent and
    friends.

0.68  2006-10-25

  - Added special case for PerlIO.pm. If PerlIO.pm is needed, require
    PerlIO::scalar, too, because it can be used "under the hood".
    (Roderich Schupp)
  - Added some File::Spec'ness. (Steffen Mueller)
  - Refactored the %Preload mapping code into _get_preload so that
    the PAR -M %Preload fix would work. (Steffen Mueller)

0.67  2006-10-24

  - Added @IncludeLibs which is used alongside @INC for searching modules.
    (David Romano)
  - Won't pick up Tk as a dependency for Term::ReadLine any more.
    You can stop laughing now!

0.66  2006-09-24

  - Fixed another bug in Module::ScanDeps::Datafeed which would break
    run- and compile-time dependency scanners if $ENV{PERL5LIB} entries
    had trailing backslashes. Thanks to Steven Mackenzie for pointing
    this out.
  - Added some documentation and comments to M::SD::Datafeed for the sake of
    future maintainers.

0.65  2006-09-24

  - Fixed bug in Module::ScanDeps::Datafeed which would die() in 0.64.

0.64  2006-09-22

  - Upgraded to Module::Install 0.64
  - Added warning of missing modules when -V is in effect (scandeps.pl).
  - Added warning of missing modules if "warn_missing=>1" specified as
    an option to scan_deps.

0.63  2006-08-27

  - Upgraded to Module::Install 0.63

0.62  2006-07-16

  - Better diagnostics.pm support for searching the related
    .pod file.

0.61  2006-06-30

  - Now presenting more helpful (and correct) error messages when
    multiple versions of a module (files) are found.
  - Corrected a POD error.
  - Added test for POD correctness.

0.60  2006-05-23

  - Fixed bug that prevented "use encoding 'utf-8';" from being
    picked up. This was because the -8 was stripped and thus, the
    encoding wasn't recognized.

0.59  2006-05-03

  - Recovering 5.005 compatibility. (Hopefully!)
  - Using Module::Install 0.62
  - Added a dependency on File::Temp for pre 5.6 perls.
  - Fixed broken Module::Pluggable support.

0.58  2006-04-16

  - Added dependency for Test::Deep
  - Added dependency for Math::Symbolic

0.57  2006-03-03

  - Applied Stephen Schulze's patch which fixes the problem that modules are
    reported as depended upon only once.

0.56  2006-02-20

  - Added special dependency for Tk::Getopt. Suggested by Slaven Rezic.

0.55  2006-02-17

  - Applied Roderich Schupp's patch to fix a problem with 'autouse'.
  - Now using Module::Install 0.56

0.54  2006-01-11

  - Switch to File::Temp::tempfile() for more robust temporary file creation.
    Contributed by: Jesse Vincent

  - Update to latest Module::Install _again_ to fix Cygwin installation.
    Reported by: Matt S Trout

0.53  2006-01-10

  - Update to latest Module::Install; no functional changes.

0.52  2005-12-12

  - Support for autouse.pm.

  - Support for Tk::DragDrop.  Reported by: Renee Baecker.

0.51  2005-01-08

  - scandeps.pl is now usable without CPANPLUS.pm installed.
    Reported by: Rafael Garcia-Suarez

0.50  2004-10-03

  - LWP::Authen::* is now bundled with LWP::UserAgent.
    Reported by: Marcus Rueckert

  - Properly sign the release with newer EU::MM.

0.49  2004-09-26

  - Adds Class::Autouse support, as requested by Adam Kennedy.

0.48  2004-09-07

  - Skip auto/ files too if explicitly specified.

  - Also check for lower-cased keys in %skip, if operating under a
    case-insensitive file system.

0.47  2004-09-07

  - First version under svk management.

  - Support for Mail::Audit plugins; prompted by Andrew Lee.

  - Support for modules that use Module::Plugin; prompted by Brian Cassidy.

  - scandeps.pl now reports module versions, courtesy of Dan Friedman.

  - Delayed loading of CPANPLUS on scandeps.pl.

0.46  2004-07-02

  - Doc fixes; update signature test; add Alan to authors.

  - add POE heuristics from:
http://search.cpan.org/dist/POE/lib/POE/Preprocessor.pm

0.44  2004-06-08

  - Consistently recognize .ph files and upper-cased .p[mh]
    files.

  - Support for PDF::Writer.
  - Patfch from Roderich Shupps to fix absolute filename
detection on non-Unix systems.

0.43  2004-06-02

  - Add preliminary support for BioPerl, as suggested by
Nathan Haigh.
  - Support for Net::SSH::Perl was incorrectly specified.
  - Add some support for PDF::API2 -- note you still have
to explicitly require "PDF::API2::Basic::TTF::Font"
to get TrueType support.

  - add heuristics for Devel::ParallelPort, as reported by
    Jouke Visser.

0.42  2004-04-30


  - add support for DBIx::SearchBuilder and
    DBIx::ReportBuilder.


  - oops, typo

  - add PerlIO.pm to :encoding.

0.41  2004-04-18


  - correctly handle SVN::Core, courtesy of Robert Spiers.

  - handles SVK::Command properly.

  - add support for Parse::Binary-based modules

0.40  2004-02-23

  - Malcolm Nooning noticed that _execute() and _compile()
    checks were failing under directories that contain spaces,
    due to a qw() misuse.

  - Add heuristics for XML::SAX and XML::Parser::Expat,
    reported by Darek Adamkiewicz and Iain Cass.

0.39  2004-01-25

  - Merged Edward's patch to make DataFeed.pm work with
    pre-5.8.3 perl versions.

0.38  2004-01-08

  - Switching back to ExtUtils::MakeMaker,
    hoping to make ActiveState's cpanrun happy.

0.37  2003-12-31


  - Win32 does not take Cwd::abs_path() for filenames.
  - Detection for __END__ blocks was wrong in _compile().

0.36  2003-12-31

  - sorry, "scandeps.pl -r" should be "-x".

0.35  2003-12-31

  - New "-c" and "-r" flags to scandeps.pl for additional
    compile- and runtime-checking of dependencies.
  - New "compile" and "execute" flags to scan_deps() for
    runtime scanning, using scan_deps_runtime().

  - integrated Edward S. Peschko's massive runtime detection
    patch, as scan_deps_runtime().

0.34  2003-12-30

  - changes.

0.33  2003-12-21

  - Upgrades to Module::Install 0.30 framework.

  - Nik's got a CPAN ID.

0.32  2003-10-26

  - Support for Locale::Maketext::Guts, reported by Jouke
    Visser.
  - Support for XML::Parser, reported by Jan Dubois.
  - Support for :encoding(), encoding.pm, and
    encode()/decode().

0.31  2003-10-17


  - Jesse Schoch reports that LWP::Protocol::https is not properly detected.

0.30  2003-09-20

  - "use base" was still incorrectly parsed.

0.29  2003-09-17

  - Simon Andrews points out that Math::BigInt's heuristics
    is badly coded.  Fixed, and added heuristics for Math::BigFloat.
  - More defense against hash randomisation by sorting all keys() and values().

0.28  2003-08-17

  - Move ScanDeps.pm to lib/Module/.

  - Suggestion from Matt Sergeant to recognize A::B from
    A::B::C only on functions like A::B::C().

  - This be 0.27 for real.
  - "use base" was improperly detected.

0.27  2003-08-16


  - more patch from Roderich Schupp: handles "use base" and fixed Tk::Scrolled.

  - add $SeenTk to control Tk-specific heuristics.
  - add_deps now takes (skip => \%skip) properly.
  - scan_chunk() can now return more than one files in list
    context.
  - bump version.

0.26  2003-08-11

  - add link to http://par.perl.org/ and the mailing list.

  - don't append ".pm" to require '' lines if it already has an extension.
    (this is required for Win32API::Registry to work with .pc files.)

0.25  2003-08-10

  - tidy up the source a little.

  - POD and END sections was also scanned. bad.
  - PAR::read_file() should not imply dependency on PAR.pm.

0.24  2003-08-10

  - Add support for SOAP::Lite, XMLRPC::Lite and
    Win32::SystemInfo.

0.23  2003-08-08

  - @File::Spec::ISA was crippled during scanning, thanks
    to Roderich Schupp for pointing out.

0.22  2003-08-07


  - huge patch to include almost all heuristics deducible from PerlApp:
    Authen::SASL, Crypt::Random, DBI, File::Spec,
    HTTP::Message, Math::BigInt, MIME::Decoder, Net::DNS::RR,
    Net::FTP, Net::SSH::Perl, SQL::Parser, Template,
    Term::ReadLine, URI, XML::Parser::Expat, diagnostics.

  - now accepts uppercased "DBI:" in DSN strings.
  - fixed a typo on Tk::FBox's xpm file.

0.21  2003-07-30

  - Jouke reports that Win32.pm pulls all Win32::* DLLs.

  - oops.

  - scandeps.pl now take -e to scan a perl expression

  - anydbm implies SDBM.

  - Bruce Winter says that this fix for SerialJunks is needed
    on his Red Hat Linux oh well.

0.19  2003-03-22


  - Jess Robinson reported that the fix was not -w safe.

0.18  2003-03-20

  - added logic for "utf8" and "charnames" needed by Germain Garand.
  - added logic for "Devel::SerialPort" needed by Bruce Winter.
  - POSIX.pm no longer pulls in utf8.pm anymore.
  - .ph files are now fully supported.

  - take unshift/push @INC into account, too.
  - add Nik to authors.

  - Nik Clayton's patch to properly handle 'use lib'.

  - IO.pm dependencies, courtesy of Jerry Veldhuis.

0.14  2003-01-19


  - s/UNIVERSA/UNIVERSAL/;

  - test explicitly for a hashref for safety.

  - try to fix D.H.'s bug report about broken 5.6 and pseudohashfications.

  - add lathos and obra to authors.

  - mention scandeps.pl earlier in pod.

0.13  2003-01-18


  - much more improved scandeps, as suggested by jesse
    vincent.

  - add #! for core; explains the symbols.

  - use cpanplus to tell apart redundant modules if possible.

0.12  2003-01-18

  - adds script/scandeps.pl
  - new year.

  - add CAVEATS about the fact that we don't probe beyond
    @INC, as requested by crazyinsomniac.

  - M::B heuristics.

  - reflect SEE ALSO in README.

0.10  2002-11-04

  - Now featuring an object-oriented syntax, conformant
    with App::Packer::Frontend.
  - added corresponding documentation and tests.

0.03  2002-11-03

  - add AUTHORS.

  - last minute fix from merlyn's bug report.

  - New presets for Locale::Maketext::Lexicon, Term::ReadLine,
    Regexp::Common, File::Spec, ExtUtils::MakeMaker.
  - New heuristics for Module::Name->method,
    Module::Name::sub
  - Strings in comments were erroneously checked. Fixed.
  - Mention PerlApp as a source of inspiration.

  - Regexp::Common.

0.02  2002-11-02

  - now performs testing by looking at the test file itself.

  - displays correct message when connection fails.

  - backported to 5.001.
  - was looking in POD sections; fixed.
  - thorough comments and documentations.

  - oops, Makefile shouldn't be in RCS.

  - written-from-scratch version of dependency finding
    algorithm.