Menlo-1.9019/000755 000765 000024 00000000000 13270043652 013633 5ustar00miyagawastaff000000 000000 Menlo-1.9019/Changes000644 000765 000024 00000164674 13270043652 015150 0ustar00miyagawastaff000000 000000 See http://github.com/miyagawa/cpanminus/ for the latest development. 1.9019 2018-04-25 02:17:27 PDT [Releng] - Split Menlo::CLI::Compat into Menlo-Legacy distribution 1.9018 2018-04-22 15:53:26 CEST [New Features] - Support x_use_unsafe_inc CPAN Meta experiment (haarg, ether) #535, #536 [Releng] - Remove App::cpanminus::fastscript, favoring Menlo::CLI::Compat 1.9017 2018-04-21 19:30:21 CEST [Bug Fixes] - Change the log output to say App::cpanminus for downstream consumers such as App::cpanminus::reporter 1.9016 2018-04-21 13:17:14 CEST [Improvements] - Support version in x_static_install (leont) 1.9015 2018-04-21 12:55:01 CEST [Improvements] - Make static install work out of the box, and require TAP::Harness::Env only when tesing is enabled 1.9014 2018-04-21 11:39:11 CEST [Bug Fixes] - Fix quoting in commands in Win32 #545 - Disable static_install when required modules are not installed 1.9013 2018-04-20 23:17:33 CEST [New Features] - Support dist, mirror and url options in cpanfile (#568) 1.9012 2018-04-20 16:53:04 CEST [Releng] - Change git tag format to identify Menlo and App-cpanminus 1.9011 2018-04-20 14:38:47 CEST [Bug Fixes] - Restore arguments to Menlo::CLI::Compat->new for cpm (skaji) 1.9010 2018-04-20 11:57:17 CEST [Bug Fixes] - Stop passing command-line supplied arguments to Menlo::CLI::Compat object directly 1.9009 2018-04-20 10:19:24 CEST [Improvements] - Make IO::Uncompress::Gunzip a soft depedency for 5.8 fatpack 1.9008 2018-04-19 20:17:59 CEST [Bug Fix] - Revert API change in Compat so that Carmel and cpm keeps working 1.9007 2018-04-19 17:23:21 CEST [Release Engineering] - Fix some optional dependencies 1.9006 2018-04-19 16:22:18 CEST [Improvements] - Use cpan.metacpan.org for all MetaCPAN-resolved tarballs - Sync with cpanminus 1.7044 1.9005 2017-05-12 14:18:49 JST [Improvements] - Migrate to MetaCPAN V1 API #520 (skaji) [Releng] - Merge with cpanminus 1.7043 1.9004 2017-04-02 20:57:03 PDT [Improvements] - Set PERL_USE_UNSAFE_INC for 5.26+ (haarg) 1.9003 2016-05-24 10:30:41 PDT [Bug Fix] - Return true when file mirror skips copying files 1.9002 2016-05-24 01:44:47 PDT [Releng] - Merge with cpanminus 1.7042 1.9001 2015-09-02 08:07:28 CEST [Release Engineering] - Make this a non-dev release so it can be installed with the standard install tools - Note that Menlo::CLI::Compat API is considered UNSTABLE [Incompatible Changes] - Require MYMETA generation in configure tools 1.9000 2015-08-13 13:47:13 PDT - This is the first developer release for Menlo (cpanm 2.0) 1.7044 2018-04-19 13:54:29 CEST [Improvements] - Support zip files with comments (skaji) #560 - Use metacpan download_url API (haarg) #522 1.7043 2017-04-02 20:56:06 PDT [Improvements] - Set PERL_USE_UNSAFE_INC for 5.26+ (haarg) #521 - Strictly match module NAME in Bundle 1.7042 2016-05-24 00:48:13 PDT [Improvements] - Merge configure dependencies with cpanfile requirements too 1.7041 2016-05-08 11:28:31 PDT [Improvements] - Add environment variables to man pages (Doug Bell) #481 - Support --with-configure and --without-condfigure (zebardy) #482 - Make file mirror faster (Matthew Horsfall) #499 1.7040 2016-01-07 11:28:07 PST [Improvements] - Removed a workaround to skip tests for config dependencies such as Module::Build #462 - Various doc improvements 1.7039 2015-06-28 18:05:10 PDT [Improvements] - Only enable softening of MakeMaker dependency when Module::Install is present (reported by haarg) - Support .git URL with http protocol (shoichikaji) #468 1.7038 2015-06-22 18:04:44 PDT [Releng] - bump minimum perl requirement to 5.8.1 in META files 1.7037 2015-06-18 14:37:32 PDT [Improvements] - Bump CPAN-Meta-Check to 0.012 #465 - Bump HTTP-Tiny to 0.056 - Bump CPAN-Meta to 2.150005 - Bump CPAN-Meta-YAML to 0.016 1.7036 2015-06-05 22:07:50 PDT [Improvements] - Also soften MakeMaker depenency in runtime prereq, which is just a weird bug in an old Module::Install pre 1.0 1.7035 2015-06-05 10:51:17 PDT [Improvements] - Add a workaround for distributions with an old (buggy) Module::Install, now that the problems occur more frequently with 5.22.0 shipping with a dev version of ExtUtils::MakeMaker #463 1.7034 2015-05-07 14:20:57 PDT [Improvements] - Improved an error message when dependency requirement in cpanfile get conflict with prereqs in sub dependencies. 1.7033 2015-05-01 17:17:42 PDT [Improvements] - Remove MakeMaker and Module::Build from cpanm's runtime dependencies. Rather it will upgrade the minimum version requirement as it finds distributions that uses them in configure requirements. Also, they will be installed with 'notest' option for now, since Module::Build test suite takes a bit too long time. 1.7032 2015-04-29 18:51:36 PDT [Improvements] - Prefer to use cpanmetadb's package history API for pinning versions. Note that it only works against versions since April 2012. You can set `--metacpan` to still prefer MetaCPAN API search, and can use `--cascade-search` to fallback to MetaCPAN after CPAN MetaDB as well. 1.7031 2015-04-22 14:13:37 PDT [Bug Fixes] - Fixed a rare case where circular dependencies in cpanfile prevents satisfying modules from being installed. (#452) [Improvements] - Stop reporting perl versions by default if running under certain CI related env vars. 1.7030 2015-04-19 14:15:34 CEST - Same as 1.7029 1.7029 2015-04-19 00:15:32 CEST [New Features] - Consider root cpanfile's requirement when following dependencies with --installdeps (#363) - Added back --metacpan option [Improvements] - Bump Module::Metadata to 1.000027 - Bump CPAN::Meta::Check to 0.011 - Bump CPAN::Meta::YAML to 0.014 - Bump Parse::PMFile to 0.36 1.7028 2015-04-17 19:22:59 CEST [Improvements] - Keep the mirror index file as absolute (skaji) #438 - Updated the documentation about HTTPS cert warnings #441 1.7027 2015-02-14 12:14:13 PST [Improvements] - Use provides as provided in META.json and do not scan packages as PAUSE does. #435 1.7026 2015-02-13 17:11:38 PST [Improvements] - Respect provides in META file before loading from Parse::PMFile 1.7025 2015-02-07 07:58:21 CET [Improvements] - Bump Parse::PMFile to 0.35 - Bump CPAN::Meta::Check to 0.020 - Bump CPAN::Meta::Requirements to 2.132 - Bump HTTP::Tiny to 0.054 - Bump Module::Metadata to 1.000026 - Bump version.pm to 0.9912 1.7024 2015-01-12 13:31:19 PST [New Features] - Includes vendor lib and arch path to search for core modules, when installing self-contained lib by default. This behavior can be turned off with --exclude-vendor (tartansandal) #426 1.7023 2015-01-05 07:59:52 JST [Improvements] - Bump Parse::PMFile to 0.34 - Bump CPAN::Meta::Requirements to 2.131 - Bump HTTP::Tiny to 0.53 - Bump Module::Metadata to 1.000025 - Bump local::lib to 2.000015 1.7022 2014-12-12 16:41:47 PST [Improvements] - Enabled unsafe option to parse version with PMFile to avoid segfaults and weird errors 1.7021 2014-12-11 21:42:36 PST [Improvements] - Bump Parse::PMFile to 0.32 - Bump HTTP::Tiny to 0.052 1.7020 2014-12-08 17:53:18 PST [Improvements] - Bump Parse::PMFile to 0.31 1.7019 2014-12-04 12:51:41 PST [Improvements] - Bump Parse::PMFile to 0.30 1.7018 2014-11-25 14:08:41 PST [Maintenance] - bump $VERSION correctly in cpanm executable 1.7017 2014-11-25 14:00:40 PST [Improvements] - Bump fatpacked CPAN::Meta and HTTP::Tiny - Added documentation for -M and --from in man page 1.7016 2014-11-16 11:46:32 PST [New Features] - Added -M and --from to set --mirror and --mirror-only at the same time while overriding previously set mirrors (sri) #175, #417 [Improvements] - cpanmin.us is now available under HTTPS (marcus) 1.7015 2014-11-14 13:14:07 PST [Improvements] - Bump Parse::PMFile to 0.29 - Bump CPAN::Meta::Requirements to 2.129 1.7014 2014-10-07 20:52:58 PDT [Improvements] - Bump Parse::PMFile to 0.28 1.7013 2014-10-06 23:52:14 PDT [Improvements] - Update bundled JSON::PP to fix issues with JSON parsing on older perl 5.8 1.7012 2014-09-26 19:28:25 PDT [Improvements] - Upgrade CPAN::Meta and HTTP::Tiny in fatpack - Skip @INC on dev directory when running from git checkout when to search for an installed module 1.7011 2014-09-22 15:08:22 JST - Same as 1.7010. Make it a non-trial release. 1.7010 2014-09-17 18:27:53 JST [Improvements] - Use Parse::PMFile rather than our own fork (charsbar) #409 1.7009 2014-09-10 01:43:45 PDT [Bug Fixes] - Fix fatpacked executable to include Parse::CPAN::Meta 1.7008 2014-09-10 01:19:04 PDT [Improvements] - Show **** instead of *password* when masking passwords - Internal code refactoring 1.7007 2014-09-09 09:25:46 PDT [Improvements] - Make sure MetaCPAN search looks up the dist by right author #405 - Ignore Module::Build artifacts in _build when indexing modules metadata 1.7006 2014-09-05 15:44:15 PDT [Bug Fixes] - Work around MetaCPAN bugs in numifying dev release versions (#367, #377) - Bump bootstrapping MakeMaker version recent enough to support MYMETA [Incompatible Changes] - Removed undocumented --metacpan option that was only for testing purposes 1.7005 2014-09-05 05:04:06 PDT [Bug Fixes] - Do not index common directories such as t, xt or inc in install.json - Support tarball extraction on HP-UX 11 (Brian Wightman) [Improvements] - Update Parse::PMFile to 0.19 equivalent (charsbar) - Fixed various documentation (syohex, Graham Ollis) - Mask passwords when failing to download a module (andyjones) - Don't find directories when searching for executables (haarg) - Only assume Module::Build configure prereq when there's no config prereq (haarg) - Upgrade fatpacked modules to the latest 1.7004 2014-04-27 18:22:11 CEST [Bug Fixes] - Downgrade Parse::CPAN::Meta as well #373 1.7003 2014-04-27 17:11:14 CEST [Bug Fixes] - Downgrade CPAN::Meta (moznion) #372 1.7002 2014-04-27 07:45:53 CEST [Bug Fixes] - Bump fatpacked local::lib #364 - Fix a bug where build.log files are not properly renamed on the first run on Win32 (haarg) #368 1.7001 2013-09-08 13:11:16 PDT [Bug Fixes] - Fix bootstrap with perl 5.8 and MakeMaker/Module::Build (haarg) #311 1.7000 2013-09-04 15:01:34 PDT - Same as 1.6943. Some of the major changes between 1.61 are: - Add --uninstall/-U command - Support installing recommends/suggests/develop dependencies - Support features selection with --with-feature, --without-feature etc. - Support passing arguments to configure, build, test and install with --configure-args etc. - Add experimental --cpanfile option - Add experimental --pp option - Now much safer to run multiple instances of cpanm - Improved local::lib support - Improved MetaCPAN query - Improved version extraction for install metadata (for Carton) - Completely eliminated dependency on search.cpan.org 1.6943 2013-09-03 16:39:27 PDT [Bug Fixes] - Localize PERL_MB_OPT for --pureperl-only since it leaks out in build/test/install process (Thanks to doyster and leont) 1.6942 2013-08-27 11:10:40 PDT [Bug Fixes] - Fixed the date sort for developer releases with MetaCPAN #308 1.6941 2013-08-20 11:32:09 PDT [Incompatible Changes] - -v/--verbose doesn't imply --interactive anymore. It was added as a backward compatibility when --interactive was added, but i think it now does more harm than good. [RT#70041] 1.6940 2013-08-08 12:35:36 PDT [Bug Fixes] - Support extracting packages from dists without MANIFEST https://github.com/miyagawa/carton/issues/126 1.6939 2013-08-06 02:55:08 PDT [Bug Fixes] - Fix extracting version from Parse::RecDescent (lestrrat) 1.6938 2013-08-05 23:11:16 PDT [Bug Fixes] - Fix extracting version from modules with qv(). #299 (lestrrat) 1.6937 2013-08-05 18:54:31 PDT [Bug Fixes] - Fix a bug where version is not correctly scanned for VERSIONs using version.pm (lestrrat) [Improvements] - Gives a warning when local::lib directory contains spaces in its name, since it will likely cause issues with local::lib and MakeMaker #298 - Upgrade bundled CPAN::Meta, CPAN::Meta::Check, local::lib and Module::CPANfile 1.6936 2013-08-04 21:37:32 PDT [Bug Fixes] - Create correct install info for dists with ancient META.yml (tokuhirom) - Extract packages based on the sorted filenames order to eliminate randomness 1.6935 2013-07-31 11:36:03 PDT [Bug Fixes] - Fix install meta information where it populates empty key for the dist name - Collect packages from .pm.PL like PAUSE (using Parse::PMFile) - Don't display () in error messages when version is not specified [Improvements] - Display git cloning errors even under -q 1.6934 2013-07-26 16:16:57 PDT [Bug Fixes] - Fix install failure when non-array version of no_index is used in META.yml #294 1.6933 2013-07-25 09:57:38 PDT [Bug Fixes] - inline CPAN::Version since it wasn't core on older perls #293 [Improvements] - Use MANIFEST to find files to scan packages for rather than finding them 1.6932 2013-07-24 15:28:05 PDT [Bug Fixes] - Stop scanning .pm files for root installdeps target (e.g. carton apps) 1.6931 2013-07-24 14:50:59 PDT [Bug Fixes] - Use (patched) Parse::PMFile to parse packages and versions from current directory rather than Module::Metadata from blib. - Fixes a bug where install.json has bogus file path in provides - Honor no_index metadata when scanning provides from .pm files - no_index fatscript.pm since fatpacks bunch of external modules 1.6930 2013-07-24 13:46:10 PDT [Bug Fixes] - Fixed fatscript.pm being stripped, causing issues with Metadata inspection - Bumped Module::CPANfile 1.6929 2013-07-24 11:45:48 PDT [New Features] - Include App/cpanminus/fatscript.pm which is exactly the same content as cpanm. This allows both calling .pm as a script or reading the content to call with Scriptlet, which would also make fatpacking cpanm (in another program!) easier. - Removed the Share dir feature added in 1.6928 in favor of fatscript 1.6928 2013-07-23 14:10:20 PDT [New Features] - Installs cpanm executable to share dir for App-cpanminus, so that other applications can run the specific version of cpanm without relying on user's $PATH or shebang 1.6927 2013-07-23 00:44:53 PDT [New Features] - Add experimental --cpanfile option to specify alternate cpanfile location 1.6926 2013-07-20 09:02:39 PDT [Incompatible Changes] - Log messages are printed to STDOUT rather than STDERR, except errors. - --scandeps are now deprecated. Only in the documentation for now. [Bug Fixes] - Fixes a bug in printing "Expiring directories" 1.6925 2013-07-19 22:07:21 PDT [Bug Fixes] - Ignore leading/trailing spaces in PERL_CPANM_OPT #288 (ribasushi) - Stop checking dependencies with --scandeps mode #286 (tazle) [Improvements] - Mask passwords in URI when printing them in terminal and log files #281 (xdg, thaljef) - Added link to App::cpanminus::reporter #284 (garu) [New Features] - Added experimental --cpanmetadb option #279 (xdg) 1.6924 2013-07-16 11:36:56 PDT [Bug Fixes] - Sort MetaCPAN API results based on date (older one wins) to work around the issue with Crixa-0.01 (https://github.com/CPAN-API/cpan-api/issues/274) [Improvements] - Document --with-develop - Document fixes (oalders, garu) - Added Perl::Strip for develop deps if you'd like to build fatpacked binary 1.6923 2013-07-03 22:16:04 PDT [Bug Fixes] - Reverted the --skipdeps in PERL_AUTOINSTALL since it breaks default dependencies in Module::Install-based distributions 1.6922 2013-06-19 13:55:54 PDT [Improvements] - No changes in the code, packaging update so the fatpacked executable on cpanm has the right version. #274 1.6921 2013-06-18 03:18:55 PDT [Bug Fixes] - Fixes install with Module::Build < 0.35, i.e. vanilla perl 5.10.1 (Thanks to joshk for the report) - Fixes install on 5.8 with Module::Build dists without configure_requires #273 (Thanks to gildegoma for the report) 1.6920 2013-06-14 14:08:44 PDT [Improvements] - Handle PERL_LOCAL_LIB_ROOT in case multiple paths are stacked (mst) - Remove the search.cpan.org fallback where no META files exist. Generate stub using CPAN::Meta 1.6919 2013-06-12 08:32:06 PDT [Incompatible Changes] - Automatically detect local::lib mode when environment variables are already configured on the shell. This is to fix the first time run when local::lib is configure but arch library path doesn't exist. #263 1.6918 2013-06-10 13:02:06 PDT [Improvements] - Fix documentation about --quiet - Find the best (non-backpan) match out of MetaCPAN results when there are multiple results https://github.com/CPAN-API/cpan-api/issues/274 1.6917 2013-06-05 10:07:12 JST [Incompatible Changes] - build.log is now created inside a work directory, then a symlink to the file is made in ~/.cpanm. On platforms where symlink is not available (Win32), the build.log file is copied from the build directory once the installation has finished. (ilmari) 1.6916 2013-06-04 19:54:36 JST [Improvements] - Do not complain upgrading cpanm in local::lib - Accept 0-9_ in PAUSE ID (#265) 1.6915 2013-05-15 19:00:56 PDT [Improvements] - Skip LWP when HTTPS mirror is specified and SSL driver is not installed (thaljef) #258 - Fatpack Exporter to fix bootstrapping problems with perl 5.8.1/5.8.2 (tokuhirom) 1.6914 2013-05-12 16:02:28 PDT [Incompatible Changes] - When you have a 1.01 of module X and CPAN mirror has 1.00, `cpanm X` would not overwrite with 1.00, unless you specify `--reinstall`. `cpanm X@1.00` will continue installing the version (and ranges) you specify. #257 1.6913 2013-05-09 17:02:43 PDT [Improvements] - Fix download URL for 2-letter PAUSE-ID #255 - Documentation fixes 1.6912 2013-05-06 13:58:33 PDT [Bug Fixes] - `curl -L cpanmin.us | perl - --self-upgrade` should not complain about '-' not in the install path (Thanks to jdb) 1.6911 2013-05-04 13:26:17 PDT [Incompatible Changes] - Turn off automatic installation of recommendations by default, for now 1.6910 2013-05-03 00:29:22 PDT [Bug Fixes] - Do not output the "up to date" message when the requested version is higher than what's on mirror index #246 1.6909 2013-04-29 01:49:04 PDT [Improvements] - Fixed error messages and tests for #237 1.6908 2013-04-26 18:11:38 PDT [Improvements] - Stop counting failures upon installing dependencies, rather check if dependencies are satisfied once it's done. #237 1.6907 2013-04-26 11:39:00 PDT [Maintenance] - Make this a non-dev release 1.6906 2013-04-24 23:18:54 PDT [Improvements] - Fixed messaging so that downgrading says downgrades (@tsibley) #240 - Prepend space in pure-perl options so that other args can stay (@gfx) #242 - Add --skipdeps to PERL_AUTOINSTALL env for old versions of AutoInstall bundled in inc/ 1.6905 2013-04-23 20:03:36 PDT [Improvements] - Added NONINTERACTIVE_TESTING environment variables when it is not interactive per Lancaster Consensus - Added --pp, --pureperl command line option to prefer Pure perl build of the distribution which supports Lancaster Consensus 1.6904 2013-04-23 19:23:31 PDT [Bug Fixes] - Fixes installation failure when perl is in 'recommends' (sjn) #238 1.6903 2013-04-22 09:05:50 CST [New Features] - EXPERIMENTAL --uninstall/-U command to uninstall modules 1.6902 2013-04-21 09:16:46 CST - No changes, maintenance release 1.6901 2013-04-21 08:50:10 CST [Improvements] - --self-upgrade dies rather than warns when it's installed via perlbrew etc. - Fixed --version output 1.6900 2013-04-15 16:41:31 JST [Maintenance] - Remove 'cpanm' executable in the root directory from the distribution 1.6193 2013-04-15 16:36:53 JST [Maintenance] - Changed how to make a release by switching to Milla and dzil 1.6192 Sun Apr 14 17:12:52 JST 2013 [New Features] - Support features with --with-feature [Improvements] - Fixed an inconsistency when `cpanm Module@ver` always tries to reinstall the module even when you have it already, when --skip-installed is on - Display useful info about %ENV, %Config and @INC in cpanm --version 1.6191 Sun Apr 14 12:05:57 JST 2013 [New Features] - Support --configure-args [Improvements] - Use String::ShellQuote on non-Win32 systems - Strip lib files for cpanm executable as well - Support version requirements for 'perl', not just modules 1.6190 Sat Apr 13 20:44:52 JST 2013 [New Features] - Support --with-develop to install develop dependencies - Installs 'recommends' dependencies by default, but ignore failures - Add --with-suggests to also install 'suggests' dependencies [Improvements] - Overhauled Metadata handling using CPAN::Meta's validation - Stopped monkey-patching Module::Build to skip man-page generation #130 1.6108 Sat Apr 13 15:29:32 JST 2013 [Improvements] - Fix the way local::lib options are expanded - Support --configure-timeout, --build-timeout and --test-timeout - Enable PERL_MM_USE_DEFAULT in building as well - Fixed the way fatpacked modules are perl-stripped 1.6107 Sat Apr 6 21:17:57 PDT 2013 [Improvements] - strip perl files in fatlib. Reduces cpanm executable size about 100KB 1.6106 Sat Apr 6 14:18:25 PDT 2013 [Improvements] - Support git-ssh with @commit (ikasam_a) 1.6105 Thu Apr 4 22:15:44 PDT 2013 [Improvements] - Better error message when https is not supported with LWP #117 1.6104 Tue Apr 2 18:02:53 PDT 2013 [New Features] - Added --self-contained, it's like --local-lib-contained but without --local-lib (schwern) 1.6103 Sat Mar 30 14:33:07 PDT 2013 [Bug Fixes] - Fixed rare crash with version.pm loading order in perl 5.8 (tokuhirom) 1.6102 Wed Mar 27 17:14:18 PDT 2013 [Improvements] - Added a safe guard check if Module::CoreList loaded is broken/outdated (jdb) - Removed the check to see if make executable begins with quotes (jdb, charsbar) - Added to load Module::Metadata in post-installation #226 1.6101 Mon Mar 25 13:39:56 PDT 2013 [Improvements] - Always install direct test dependencies with --installdeps even when --notest option is used. This should make Travis CI users happy #222 (hide_o_55) 1.6100 Sun Mar 24 21:09:30 PDT 2013 [Improvements] - Support 'perl' key in requires (aka The Oslo Consensus) #221 (tokuhirom) - Gives warnings when pruning lots of work directories (xdg) 1.6008 Tue Mar 19 09:07:43 PDT 2013 [Improvements] - Document the link to privacy policy for perl version collection, as well as added option --no-report-perl-version to opt out 1.6007 Sun Mar 17 14:26:07 PDT 2013 [Improvements] - Fixed a warning where temp directory created with git install doesn't actually cleanup the temporary directory. (Tim Heaney) #219 1.6006 Wed Mar 13 22:53:44 PDT 2013 [Improvements] - Fixed --save-dists option when used with non-CPAN distros. They're now saved into $dir/vendor. (Dave Rolsky) #216 - Fixed PAUSE dist path where author ID is only 2 chars (Brian Cassidy) #218 1.6005 Fri Mar 8 11:46:11 PST 2013 [Improvements] - Fatpack CPAN::Meta to fix bootstrap failure with --installdeps + cpanfile 1.6004 Fri Mar 8 11:30:37 PST 2013 [Improvements] - Add perl version to User-Agent strings 1.6003 Fri Mar 8 10:57:13 PST 2013 [Improvements] - Display cpanfile syntax error if any (robario) - Fixed failure to install oddly laid out dists without blib (winfinit) 1.6002 Wed Feb 27 12:12:09 PST 2013 [Improvements] - Support parsing configure dependencies from META.json in spec 2 (kazeburo) 1.6001 Tue Feb 26 16:57:04 PST 2013 [Improvements] - Enable developer release if a specific version is requested with == or @. #203 1.6000 Tue Feb 26 09:50:57 PST 2013 [Major Changes since 1.5] - Support fixed version search with @version and ~"version range" - MetaCPAN and BackPAN search using MetaCPAN API - --dev to install developer releases - Install via git:// URL (with @branch, tag or commit) - Better MYMETA version range and cpanfile support - No fallback to search.cpan.org, which means you can't install from command names 1.59_13 Mon Feb 25 12:06:44 PST 2013 [New Features] - Support @branch (or commit or tag) in Git URLs so that you can specify a commitish to check out before installing from Git repo - Search for BackPAN by default when specific version (or range) is requested [Improvements] - Detect .zip root directory more reliably (frioux) - Fixed pathname of the CPAN distribution given as a URL (xaicron) 1.59_12 Wed Feb 13 18:13:49 PST 2013 [Internals] - Switch to metacpan_script for the new MetaCPAN query 1.59_11 Mon Feb 11 14:10:26 PST 2013 [Improvements] - Support META.json in addition to META.yml for pre-configure requirements - Fatpack JSON::PP and CPAN::Meta::YAML properly 1.59_10 Thu Feb 7 16:27:03 PST 2013 [New Features] - EXPERIMENTAL: added an ability to install from git URL (ikasam_a) [Improvements] - Exclude backpan distribution from MetaCPAN query (mo) - Add back Module::CPANfile to fatpack, accidentally deleted in a previous release - Remove CPAN::Meta from fatpack, because it's unsued yet. This reduces the file size of cpanm executable about 30%. 1.59_09 Thu Feb 7 01:55:48 PST 2013 [Improvements] - Re-enable --metacpan option to prefer MetaCPAN over CPANMetaDB for all queries, mostly for testing purpose. - Improved MetaCPAN queries in case a release have multiple modules with different versions. Also fixed a bug where it tried to extract distribution version as a module version in some cases 1.59_08 Wed Feb 6 11:25:45 PST 2013 [Bug Fixes] - Prioritize MetaCPAN when --dev option is enabled, for real 1.59_07 Wed Feb 6 11:08:05 PST 2013 [Incompatible Changes] - Disable implicit --skip-satisfied auto conversion with version specification - Do not fallback to search.cpan.org scraping anymore. This means some of the bogus search that doesn't match package name on PAUSE but returns a hit on search.cpan.org can't be installed anymore. You have to use the right package name for it. - Enable MetaCPAN search by default. --metacpan option is deprecated [New Features] - EXPERIMENTAL: --dev option to enable including developer release for searching against MetaCPAN [Improvements] - Improve MetaCPAN query to search stable releases, unless developer release is requested 1.59_06 Tue Feb 5 12:36:00 PST 2013 [Incompatible Changes] - --mirror-index option doesn't automatically assume --mirror-only [Improvements] - Use versioned MetaCPAN API endpoint (oalders) 1.59_05 Mon Feb 4 11:49:40 PST 2013 [New Features] - Support version ranges in command args and cpanfile queried agsinst MetaCPAN with the proper version range query to get the best version that satisfies the requirements. Huge thanks to #metacpan guys 1.59_04 Sun Feb 3 09:04:12 PST 2013 [Improvements] - Make file copy more reliable on Win32 (A.J. Lucas) #180 - Always send cpanminus User-Agent to the servers no matter which backend is used (curl, wget etc.) 1.59_03 Fri Feb 1 10:42:57 PST 2013 [Improvements] - Fix issues working with file:// URLs with drive letters on Win32 (A.J. Lucas) #180 - Fix home directory detection without HOME env on win32 (kmx, Christian Walde) #132 - Allow comment fields in 02packages file (Jeffrey Thalhammer) #187 1.59_02 Thu Jan 31 19:09:43 PST 2013 [New Features] - Added experimental @ shortcut to mean exact version e.g. cpanm DBI@1.20 - Support version range with "~", such as cpanm DBI~">= 1.0, < 2.0" - Enable metacpan release search when exact version is given (and when mirror-only is not specified) i.e. cpanm DBI@1.100 will fetch the exact release based on metacpan 1.59_01 Thu Jan 31 09:54:50 PST 2013 [New Features] - Added a proper support for version range in MYMETA files using CPAN::Meta::Requirements - Skip installing modules when found versions from CPAN doesn't satisfy the requirement, rather than proceeding as if it is ok. For instance, if a ditribution X requires Y >= 1.1 and Y on CPAN (or your CPAN mirror) has 1.0, cpanm will just complain and stop installing it. - Better cpanfile end-to-end support - Upgraded fatpacked modules to the latest 1.5021 Thu Jan 31 00:42:28 PST 2013 [Improvements] - Added new --verify option that enables verifying CHECKSUM and SIGNATURE for distributions from CPAN/PAUSE 1.5020 Tue Jan 29 10:29:08 PST 2013 [Bug Fixes] - Fixed a bug in --cascade-search that was checking a wrong version from 02packages file (Bryce Baril) - Added a workaround for older version of File::Temp bug (kentnl) 1.5019 Sun Dec 23 02:19:45 JST 2012 [Bug Fixes] - Fixes a bug where --installdeps fail to configure dependencies with cpanfile (hoelzro) [Improvements] - Cleaned up unused code - Added documentation about --mirror option and local file path 1.5018 Wed Sep 19 14:40:28 JST 2012 [Improvements] - Check cpanm path upon --self-upgrade to give warnings for perlbrew users 1.5017 Wed Jul 18 08:28:49 PDT 2012 [Improvements] - Ignore tarballs whose first entry is "./" (doy) #184 1.5016 Tue Jul 17 12:00:57 PDT 2012 [Improvements] - Added Module/CPANfile.pm to the fatlib. This allows bootstrapping dependencies with cpanm --installdeps on Heroku etc. 1.5015 Sun Jun 24 15:34:57 PDT 2012 [Improvements] - Improved Makefile.PL to include bugtracker info (Ben Bullock) - Fixed some merge mess with devel 1.5014 Tue Jun 12 18:27:02 PDT 2012 [Improvements] - Make sure 'f' flag becomes the last for some tar versions (mst, aaronsw) - Fixed warnings on perl 5.17+ (rjbs) - Fix local::lib error message (berekuk) 1.5013 Sat May 12 06:15:44 EEST 2012 [Bug Fixes] - Fixed --cascade-search to seach for missing modules, which was broken by #150 1.5012 Fri May 11 05:47:56 CEST 2012 [Improvements] - Change the behavior of --mirror-index so that it won't fallback to CPAN mirrors #150 (thaljef) - Support v-strings in versions specified install [https://github.com/miyagawa/carton/issues/48] 1.5011 Thu Apr 12 18:57:06 JST 2012 [Improvements] - Point default mirror to www.cpan.org #148 1.5010 Sat Mar 31 12:59:52 CEST 2012 [New Feature] - Implemented --test-only option #40 1.5009 Fri Mar 30 18:44:12 CEST 2012 [Bug Fixes] - Fixed a bug where URL containing ~ (childe) fails to install #134 - Fixed a bug where install.json contains bogus data when you specify dist paths 1.5008 Sat Mar 17 18:19:57 PDT 2012 [Bug Fixes] - Fied a bug where `cpanm Foo` doesn't properly activate local::lib during installs when you don't have write permissions #143 (goodel, ash) - Improved the warning message when you don't have write permisisons #145 (ash) 1.5007 Tue Dec 20 10:15:48 PST 2011 [Bug Fixes] - Fixed to change directory when installing from multiple local directories (motemen) [Improvements] - Stop setting AUTOMATED_TESTING (again!) and set PERL_MM_USE_DEFAULT in testing (#138) - Offer opening the build.log with PAGER when --prompt is enabled (doy) - Documentation added for --skip-installed option (AlexBio) 1.5006 Tue Nov 29 11:47:15 PST 2011 [Improvements] - Updated cpanmetadb URL to point to cpanmetadb.plackperl.org 1.5005 Tue Nov 22 13:29:27 PST 2011 [Bug Fixes] - Fixed a bug where copying meta JSON files fail on Win32 (#133, #135) 1.5004 Tue Nov 8 14:28:20 PST 2011 [Bug Fixes] - Include version of the main module instead of distribution version in install.json (pfig) 1.5003 Wed Oct 19 16:29:29 JST 2011 [Bug Fixes] - Use ExtUtils::Install to install meta files and let --sudo run it with sudo #124 1.5002 Tue Oct 18 09:06:17 JST 2011 [Bug Fixes] - Make sure to include non-core perl modules in -L that are installed in 'perl' by mistake - Ensure all module names use :: instead of dashes because of EUMM NAME errors (Christian Walde) 1.5001 Fri Oct 14 00:18:33 JST 2011 [New Features] - Added EXPERIMENTAL --metacpan support (tokuhirom) [Improvements] - Do not scan Makefile if MYMETA.yml is found - Support MYMETA.json with spec 2.0 1.5000 Thu Oct 13 15:31:13 JST 2011 [New Features] - Added EXPERIMENTAL --mirror-index, --skip-satisfied and --cascade-search options - Installs MYMETA.json and install.json into $ARCH/.meta library path [Bug Fixes] - Use Cwd::chdir to update CWD environment variable - Fix ExtUtils::ParseXS issue with -L - Fix CoreList bootstrap issue with perl < 5.8.9 when using -L - Dump more descriptive error message when configure failed with --installdeps #111 [Improvements] - Upgraded many fatlib embedded modules - Support --no-quiet - Removed ugly @INC dumping hack for -L. This causes modules that has conditional deps such as Any::Moose not to pull down necessary requirements. This is a known issue and will be addressed later. - Support special _ for -l and -L argument to respect local::lib defaults #115 1.49_02 Wed Oct 12 18:53:35 JST 2011 [Improvements] - Use Cwd::chdir to change PWD (yannk) [Bug Fixes] - Unbreak -L with newer ExtUtils::ParseXS installed [Developers] - Changed the path to save metadata information - removed Dist::Metadata use, but instead use Module::Metadata to get provides - removed the ugly DumpedINC hack for -L 1.49_01 Sun Jun 26 10:56:51 PDT 2011 - A couple of experimental new features (documented in 1.5) 1.4008 Wed Jun 15 17:58:28 PDT 2011 [Improvements] - Added experimental --skip-configure - Delay load Module::Build bootstrap so that -L won't auto-intall the latest M::B 1.4007 Tue May 17 10:51:18 PDT 2011 [Incompatible Changes] - Remove LWP from Makefile.PL dependencies, since due to the split it brings in many dependencies such as HTTP::Daemon and HTTP::Parser (which requires a C compiler). HTTP::Tiny is embedded as a last resort anyway, and if Makefile.PL is executed via some CPAN client (CPAN.pm, CPANPLUS or cpanminus) it means your client is already configured to be able to fetch files over HTTP. 1.4006 Mon May 16 10:02:45 PDT 2011 [Bug Fixes] - Proper fix for the -l option installing the same modules 1.4005 Wed May 11 12:05:49 PDT 2011 [Bug Fixes] - -l should now correctly locate installed modules to skip reinstalling. Regression in 1.4004 - Ignore Module::CoreList loading errors with -L on perl < 5.8.9 - Fixed --prompt in combination with --quiet RT:66602 - Fixed a broken Bundle:: module installation 1.4004 Thu Mar 10 10:04:28 PST 2011 [Incompatible Changes] - Fixed the issue where `ssh host cpanm Module` waits on input forever. As a side effect of fixing this bug, cpanm reads modules from STDIN only if there's no module arguments given. Options such as -L or --scandeps continu to work. #86 (Reported by dku, Getty and many people) [Bug Fixes] - Fixed a long standing bug where newer versions of bundled modules such as LWP could be loaded when combined with -L or -l, which causes API incompatiblities. - Fixed the use of gunzip (cho45) 1.4003 Wed Mar 9 18:13:21 PST 2011 - Fixed a weird bug that -L fails to bootstrap Module::Build when an old version such as 0.28 is installed - Do not show help if it reads args from STDIN and nothing is supplied - Stripped down the `cpanm` executable size for 20% by stripping POD for fatpacked dependencies :) 1.4002 Tue Mar 8 17:47:51 PST 2011 - Display configure errors in --scandeps so that configure_requires can be manually satisfied (suggested by marcus) 1.4001 Tue Mar 8 10:10:28 PST 2011 - Fixed a workaround code for META.yml being JSON (reported by leedo) 1.4000 Tue Mar 8 01:00:49 PST 2011 [New Features] - Changed the verbosity level of -q to be actually *so* useful and recommended now - Added a new option --no-man-pages to skip man page generation and installation - Added new --scandeps and --format option that scans module dependency tree before actually installing a module - Support Bundle:: modules - Added new --save-dists option See below changes between 1.30_02 and 1.30_13 for more improvements and bug fixes. 1.30_13 Mon Mar 7 10:42:01 PST 2011 - Fix for the use of Module::CoreList for perl with versions ending in 0, such as 5.13.10. - Do not attempt to upgrade Module::Build if you have the version that comes with perl 1.30_12 Sun Mar 6 18:54:41 PST 2011 - Support Bundle:: modules #81 - Fixed a bug where META.yml is being fetched for no reason. This reduces the HTTP GET calls a lot and should speed up the build process - Falls back to search.cpan.org/meta service when (and only when) META.yml is not included or unparsable. Now it can handle distributions like AnyEvent::HTTP or ancient packages better. - Fixed a bug where nmake is doubly quoted on Win32 (charsbar) #76 - Makes the wget/curl execution safer (J. Nick Koston) - Support archives where tar list begins with ./ like Image::Magick (Reported by doy) #80 1.30_11 Sun Mar 6 01:34:59 PST 2011 - Fix SIGNATURE testing for Module::Build 0.38 or later - Implemented EXPERIMENTAL --scandeps command and --format option - Implemented EXPERIMENTAL --save-tarballs option - Show (undef) in the version output instead of () 1.30_10 Sat Mar 5 14:55:16 PST 2011 - Changed how it special cases Module::Build load path in -L mode. It's much more reliable and support 0.38 with the new CPAN::Meta dependencies 1.30_09 Fri Mar 4 18:15:40 PST 2011 - Changed the verbosity level of -q|--quiet so that it prints only necessary information (instead of nothing, which is not really useful) - Shows the number of distribution in the end of the session 1.30_08 Fri Mar 4 16:04:29 PST 2011 - Renamed the option to --man-pages and --no-man-pages 1.30_07 Fri Mar 4 15:19:44 PST 2011 - Disable the man page generation by default only if -L is in use. (suggested by rjbs) 1.30_06 Fri Mar 4 14:55:35 PST 2011 - Skip the man page generation by default. You can enable it with --pod2man 1.30_05 Fri Mar 4 01:36:28 PST 2011 - Fixed the way it reduces @INC in the tests when -L is in use, so the tests that call $^X with -I can keep those library paths. i.e. Test::More 1.30_04 Fri Mar 4 00:46:24 PST 2011 - Support minor case where blib/* is manually added via -I (e.g. FCGI.pm) 1.30_03 Fri Mar 4 00:30:39 PST 2011 - Fixed a bug the modules are not loaded from blib in test_harness with -L 1.30_02 Thu Mar 3 19:53:30 PST 2011 - Fixed a bug where tests are loading modules from your site_perl even when -L is used 1.3001 Thu Mar 3 18:33:56 PST 2011 - Documentation overhaul - Fixed a bug -L will install non-core modules again and again for each run 1.3000 Wed Mar 2 14:39:44 PST 2011 - No changes since the last beta 1.29_02 Tue Mar 1 16:06:20 PST 2011 - Improved the dependencies detection when -L is in use so the core modules that have been upgraded inside can be correctly be detected, using Module::CoreList. - Added a crazy hack to support Build.PL configure dependencies > 0.36 when -L is in effect 1.29_01 Mon Feb 28 18:57:27 PST 2011 - Disable --uninstall-shadows by default for perl >= 5.12 1.2001 Wed Feb 16 10:54:21 PST 2011 - This be official 1.2 - Skips tests during the bootstrap, making a much better first time experience 1.19_02 Tue Jan 18 14:11:23 PST 2011 - Module::Metadata now requires version.pm 0.87. This makes cpanm unable to boostrap when version.pm is older than that. For now, include the pure perl version/vpp.pm and version.pm in the fatlib and then fatpacked in cpanm executable #78 1.19_01 Tue Jan 18 12:48:47 PST 2011 - Upgraded bundled modules, notably Module::Metadata and local::lib - Switched the pure perl fallback to HTTP::Tiny 1.1007 Tue Jan 18 09:39:05 PST 2011 - Fixed installation documents - Added PERL_CPANM_NO_AUTOMATED_TESTING to unset AUTOMATED_TESTING to find which modules break (mst) 1.1006 Thu Dec 16 11:27:29 PST 2010 - Fixed docs to use curl instead of wget because of its cert bug - Fixed the usage of local() where PERL5_CPANPLUS_IS_RUNING was leaking (dg) #75 1.1005 Tue Dec 14 15:07:31 PST 2010 - Accept Foo/Bar/Baz.pm style invocation in args (requested by larryl and many others) 1.1004 Tue Nov 30 10:03:01 PST 2010 - Fixed a bug where uncompressed and compressed index timestamps are out of sync which causes issues when the local and mirror server's clocks are out of sync (reported by sukria) 1.1003 Thu Nov 25 01:17:28 PST 2010 - Fixed a bug where --mirror-only doesn't detect module version updates (reported by sukria) 1.1002 Tue Nov 16 18:27:19 PST 2010 - Implemented --auto-cleanup and set that to 7 (days) by default 1.1001 Fri Nov 12 12:37:31 PST 2010 - Fixed the mirror index scanning code to uncompress on-disk and scan line-by-line to be less RAM hoggy (hobbs) - Fixed docs 1.1000 Thu Nov 11 23:56:46 PST 2010 - Added --mirror-only to support minicpan and DarkPAN (jonallen, xdg, tokuhirom) 1.0015 Fri Sep 24 16:51:49 PDT 2010 - Fixed the output introcuced in the previous release 1.0014 Tue Sep 21 12:42:28 PDT 2010 - Added "--> Working on ..." output for a better understanding of overall build process 1.0013 Sun Sep 12 12:46:36 PDT 2010 - Added --no-wget and --no-curl to bootstrap LWP in an environment with old versions of wget/curl (rsp) 1.0012 Fri Aug 20 12:46:34 PDT 2010 - version check with -L and -l was failing with --skip-installed default. Now fixed (reported by leedo) #55 - Fixed the code to find root of tarballs (perlpilot) 1.0011 Wed Aug 18 16:38:24 PDT 2010 - -f now implies --reinstall (perigrin) 1.0010 Fri Jul 30 12:54:03 PDT 2010 - Make --skip-installed as default - Revised documentations 1.0006 Fri Jul 2 16:52:06 PDT 2010 - Use module's version number instead of distribution when to display whether this is an upgrade or reinstall (doy) #43 1.0005 Fri Jul 2 16:36:55 PDT 2010 - Clarified that the minimal perl version supported is 5.8 (chocolateboy) - Now being able to look when configure and build fails - Automatically disable uninstall_shadows when local::lib is used. This bug was causing cpanm to remove modules in @INC with perl 5.10 or older (kazeburo, sugyan) 1.0004 Fri May 14 16:08:23 PDT 2010 - Do not use Cwd::abs_path if the -l path begins with / (rafl) - Skipping perl should now be considered as success, not failure (rafl) - Fixed PREREQ_PM scanner for dists that conflict with core functions such as UNIVERSAL::isa (yannk) - --look should now imply --no-skip-installed (doy) #45 1.0003 Tue May 4 16:12:53 PDT 2010 - Worked around win32 fork and stdout dup issue (xaicron, charsbar) 1.0002 Sat May 1 20:49:39 PDT 2010 - Fixed docs - Fallback to the version of the distribution filename when META.yml is not parsable 1.0001 Sat Apr 24 16:20:56 CST 2010 - Make this 1.0! 0.999_05 Wed Apr 21 20:37:25 JST 2010 [Bug Fixes] - Fixed the timing to make -l and -L an abstract path (ash) 0.999_04 Mon Apr 19 15:21:01 JST 2010 [Bug Fixes] - Fixed installationg from arbitrary URLs or file paths 0.999_03 Wed Apr 14 02:26:28 PDT 2010 [Improvements] - Fixed a problem when uninstalling shadows fail with an old ExtUtils::Install by bootstrapping it to require 1.46 0.999_02 Tue Apr 13 09:08:00 CEST 2010 [Improvements] - Improved --skip-installed so sub packages version in a distribution can be compared correctly - --look command is now back, per popular demands [Bug Fixes] - Fixed broken configure_requires in 0.999_01 0.999_01 Mon Apr 12 12:24:57 CEST 2010 This is the first release candidate for 1.00 [INCOMPATIBLE CHANGES] - Do not support (undocumented) CPANMINUS_* environment variable anymore. Use PERL_CPANM_* instead - Plugins are not supported anymore. They will be available as part of a new client! - Deleted --look command - Deleted --recent command [Improvements] - Get metadata from search.cpan.org before fetching tarballs, which makes commands like --info or --skip-installed much faster. #3, #8, #9 - Added --mirror option where you can specify the mirror base URL - Added --prompt option that asks users to skip, force install, retry or look when test fails #23 - When one of the dependencies fail to install, cpanm bails out the installation of source dist by default. --prompt will ask if you want to install anyway - Added a man page for cpanm [Developer Fixes] - Do not display 'Already tried...' message by default - Set non-zero exit code if one or more modules failed to build 0.9934 Sun Apr 11 13:53:07 CEST 2010 [Developer Fixes] - Unlink MYMETA.yml after the configuration to avoid failing Module::Signature tests - Always run make install UNINST=1. You can disable it with --no-uninst-shadows #26 0.99_33 Sun Apr 11 09:44:16 CEST 2010 [Improvements] - Delay load Archive::Zip #38 (Tim Bunce) - Made wget download more fault torelant #15 [Bug Fixes] - Work around the situation where installsitelib doesn't exist yet #2 [Developer Fixes] - Upgrade local::lib #33 - Delay local::lib configuration as late as possible #35 (doy) - Redirect tar's stderr (stoned) - Shows an error message when CPANM home is not writable #37 (avar) - Fixed how to handle duplicated dependencies #6, #32 - Indicate test failures with --force #22 (rafl) 0.9932 Mon Apr 5 16:27:12 PDT 2010 [Developer Fixes] - Special case deprecated modules so they can be upgraded into site lib #34 0.9931 Sun Apr 4 18:16:46 PDT 2010 [Developer Fixes] - Doesn't close STDIN anymore when building modules. Instead set AUTOMATED_TESTING #36 0.9930 Tue Mar 30 14:27:49 PDT 2010 [Improvements] - untar now works with Solaris' stock bad tar (nnunley) 0.9929 Fri Mar 26 21:35:23 PDT 2010 [Improvements] - Make cpanm work with perl 5.10.0 with old version.pm [Developer Fixes] - Stopped using Safe.pm reval() to parse Makefile or _build/prereqs 0.9928 Thu Mar 25 22:03:36 PDT 2010 [Bug Fixes] - Make PERL_CPANM_OPT=~/perl work again (clkao) [Developer Fixes] - Document --skip-installed 0.9927 Tue Mar 23 11:23:18 PDT 2010 [Improvements] - Suppress warnings when initializing local::lib directory [Developer Fixes] - Fixes -L with local::lib enabled shell 0.99_26 Mon Mar 22 20:22:10 PDT 2010 [Developer Fixes] - Fixed the broken delay loaded LWP runtime in -L - Actually changed how -L sets up @INC so that it won't affect the current cpanm process at all which is more correct way to deal with this. 0.99_25 Mon Mar 22 19:52:12 PDT 2010 [Improvements] - Log version information of build tools in build.log [Developer Fixes] - Fixed the way it passes DumpedINC - Fixes tools initialization like LWP with -L - Set PID in PERL5_CPAN*_IS_RUNNING rather than just 1 0.99_24 Sun Mar 21 21:57:59 PDT 2010 [Improvements] - Improve the error message on bootstrapping - Implemented experimental -L|--local-lib-contained option to install module and its non-core dependencies into local::lib directory [Developer Fixes] - Use Module::Metadata and avoid calling another perl interpreter to check the installed versions of the modules - Also dump @INC into a file DumpedINC.pm when self-contained is enabled - Set PERL5_CPANM_IS_RUNNING in configure - Changed the way to pack modules into a file, now using App::FatPacker 0.9923 Mon Mar 15 17:03:14 PDT 2010 [Improvements] - Improved docs (chromatic) [Developer Fixes] - Added a dummy test to make CPAN testers happy (gfx) 0.9922 Thu Mar 11 10:56:10 JST 2010 [Improvements] - Possibly support bad tar (GNU tar 1.13 or 1.22 on Win32) (mattn) [Developer Fixes] - Support building with Module::Build < 0.36 - Use Safe to eval some code when scanning prereqs 0.9921 Wed Mar 10 23:59:49 JST 2010 [Bug Fixes] - Fixed an occasional STDIN related errors in tests (lestrrat) - Fixed a bug where cpanm /path/to/dir doesn't work [Developer Fixes] - Once bootstrap is done, return to the original current dir rather than work dir so that `cpanm .` still looks at the (right) current directory 0.99_20 Wed Mar 10 18:46:45 JST 2010 [Developer Fixes] - Prefer Build.PL except some exceptions such as Module::Build dependencies 0.9919 Wed Mar 10 11:39:35 JST 2010 [Bug Fixes] - Fixed Module::Build distribution, broken in 0.9917 (rafl) 0.9918 Wed Mar 10 11:19:35 JST 2010 [Bug Fixes] - Fix --sudo broken in 0.9917 (omega) 0.9917 Tue Mar 9 22:51:21 JST 2010 [Improvements] - Do not wait on input on bad tests waiting on STDIN (except on some Win32 environments) [Developer Fixes] - Do not uses system() when running Makefile.PL or make etc. but uses fork & exec (tokuhirom) - Depend on newer LWP that has decoded_content - Do not overwrite verbose internal flag (mst) 0.9916 Thu Mar 4 11:33:16 PST 2010 [Developer Fixes] - Use 'distfile' as cpanmetadb key rather than 'dist' (rjbs, xdg) 0.9915 Thu Mar 4 01:56:06 PST 2010 [Developer Fixes] - Fixed circular references (hopefully) 0.9914 Thu Mar 4 00:39:49 PST 2010 [Improvements] - Use cpanmetadb for the faster and more reliable lookup [Developer Fixes] - Fixed ->get on LWP to return undef when the request errored out 0.9913 Tue Mar 2 19:20:34 PST 2010 [Bug fixes] - Fixes --recent and --list-plugins to work again 0.9912 Tue Mar 2 18:50:23 PST 2010 [Improvements] - Some boolean options can now be set to PERL_CPANM_OPT but can be negated using the --no- prefix such as --no-sudo - Directory mode now only works if it begins with / or . [Developer fixes] - --self-upgrade skips if it's already the latest - Improved perl Makefile.PL --author - --help and --version won't bother ~/perl5 initialization (rjbs, ingy) - LWP dependency is injected only if you run from CPAN clients (ingy, marcus) 0.9911 Mon Mar 1 16:27:52 PST 2010 [Developer fixes] - Removed build_timeout and test_timeout by default (rafl) [Bug fixes] - Fixed broken --self-upgrade (chocolateboy) 0.9910 Sun Feb 28 21:56:30 PST 2010 [Improvements] - wget cpanm | perl - should now work better (hachi, dormando) [Developer fixes] - Always use forward slashes even if it's on win32 (charsbar, xaicron) - Check installsitebin (charsbar) - Stop setting AUTOMATED_TESTING 0.99_07 Sat Feb 27 21:05:08 PST 2010 [Improvements] - Bootstrap local::lib directory in ~/perl5 for the first run - Bootstrap ExtUtils::MakeMaker, ExtUtils::Install and Module::Build in the first run - Support --local-lib|-l option to specify which path to set local::lib dir - Added PERL_CPANM_OPT command line option to add global command line options - Support curl fallback (squeeky, gfx) - Improved the installation success message to indicate it is a new, upgrade or reinstall of the distribution - Improved the error message in configure failure - Fall back to embedded HTTP::Lite when any of LWP/wget/curl is unavailable - Support piping module/dist for cpanm command, like `cat module_list | cpanm` - Added --skip-installed option which makes cpanm behave like cpan - Documented how to upgrade cpanm itself [Developer fixes] - Remove LWP::Simple and switch to LWP::UserAgent - Create a temp file first when to generate standalone executable (gfx) - cpanm (without argument) will output a shorten help - Changed the NO_LWP env var to --no-lwp option - Improved the permission check to also check sitebin directory - Added --author option to Makefile.PL to generate cpanm from git repo (gfx) - Introduced $depth parameter when installing dependencies. Unused in any places yet 0.99_06 Thu Feb 25 14:50:51 PST 2010 - Fixed packaging and VERSION 0.99_05 Thu Feb 25 14:39:07 PST 2010 [Developer fixes] - Changed the way 'cpanm' standalone script is generated - Developers checking out from git should use script/cpanm.PL for test drive 0.99_04 Thu Feb 25 09:11:44 PST 2010 [Improvements] - Supported modules and packages without POD on search.cpan.org - --look command now works on Win32 (charsbar, xaicron) - Improved the error message when configure fails (tokuhirom) - Supported modules with .tgz format archive (frew) - Supported older LWP < 5.828 (chocolateboy) [Developer fixes] - Improved the way it checks configuration results (mst, confound, rjbs, LeoNerd) - Killed the automatic Build.PL stub generation because it doesn't work. - Support PERL_MB_OPT in the sanity check - Adds PERL5_CPANPLUS_IS_RUNNING to work with older Module::AutoInstall < 0.73 (Alias) - Changed the way plugins check api_version - Rewrote internals for the at_exit hook and removed Util:: functions (vincent, mst, ewhilhelm) 0.99_03 Tue Feb 23 23:03:20 PST 2010 [Bug fixes] - .zip support didn't go through the proper merge process. Now merged 0.99_02 Tue Feb 23 22:13:46 PST 2010 [Improvements] - Limit the number of --recent to 50 [Bug fixes] - Work around with broken LWP installations (yannk) [Developer fixes] - Updated cpandb URI (BinGOs) - Standardize env var keys to PERL_CPANM_* so `env | grep PERL` can be used (miyagawa, mst) - Added ->env method - Added PERL_CPANM_NO_LWP=1 so it can upgrade LWP without LWP - Move documents to lib/App/cpanminus.pm 0.99_01 Tue Feb 23 12:31:56 PST 2010 [Improvements] - Improved the duplicated or circular dependent package detections (gfx, Yappo) - Improved the progressive message format - Support .zip files (sekimura) - Added --look command, like CPAN shell's look - Added --recent command that shows you the recent updated modules - Added --interactive option, good middleground when installing Task:: modules - Added --self-upgrade (NOTE: it will downgrade to the stable if you run from the dev release!) - Fixed the installation doc to prefer git over CPAN shell - Documented that you need GNU tar >= 1.22 - Wraps configure and test with alarm timeout to not choke on bad dists (hirose31, yappo, tokuhirom) [Bug fixes] - Fixed a bug where log appending fails on Win32 (xaicron) - Various fixes on win32 (charsbar) - Fixed a bug failing on dists with dual Build.PL/Makefile.PL (mst, aperion) - Fixed a bug where build/ directory is treated as Module::Build's Build file on HFS [Developer fixes] - Rewrote the internal using a sane and simple object oriented programming - Changed the ~/.cpanm directroy layout - much easier to dig through - Rewrote the documentation to be less defensive - set AUTOMATED_TESTING when testing a distribution - Mentions pip in the doc (chocolateboy, adamk) - Support cpan:// URI - Added --perl option to specify which perl path to use (mst) - Specify minimum versions for ExtUtils::MakeMaker, Module::Build and ExtUtils::Install [Beta features] - Implemented plugin architectures - this is unstable and turned off by default 0.09 Sat Feb 20 23:47:16 PST 2010 - Fixed the way archives are untared - Log file is now always ~/.cpanm/build.log - Improve the diag message - Made quiet mode the default. Use -v|--verbose to make it chatty like CPAN(PLUS) - Added retry for HTTP downloads - Fixed the way it generates a stub Build.PL when make is not available 0.08 Sat Feb 20 15:36:53 PST 2010 - Implemented --installdeps - Implemented -q|--quiet that makes you a peaceful install experience - Relaxed the defensive docs a little bit since many people love the idea 0.07 Sat Feb 20 12:17:56 PST 2010 - Fixed packaging -- standalone cpanm file now has '/usr/bin/env perl' in shebang but CPAN dist has #!perl (so EUMM can fix it) - Added -i for cpan compatibility - Fixed the way to get VERSION from modules 0.06 Fri Feb 19 21:48:09 PST 2010 - Fixed the command detection in win32 - Make C-c work when downloading tar balls - perl 5.6 compat (i think) - Fixed packaging again 0.05 Fri Feb 19 21:15:20 PST 2010 - Fixed no warranty copy 0.04 Fri Feb 19 21:01:10 PST 2010 - Added -v - Changed how to get dependencies to be more sensible and #toolchain friendly by supporting MYMETA.yml etc. - Added NO WARRANTY 0.03 Fri Feb 19 19:38:30 PST 2010 - Fixed packaging - Make local file install work without LWP (hopefully) 0.02 Fri Feb 19 19:13:03 PST 2010 - arguments to cpanm can now be a directory, file, URI or CPAN tarball name 0.01 Fri Feb 19 18:24:04 PST 2010 - Initial version to CPAN Menlo-1.9019/cpanfile000644 000765 000024 00000002410 13270043652 015334 0ustar00miyagawastaff000000 000000 requires 'perl', '5.008001'; # runtime dependencies. Mostly core and fatpackable back to 5.8 # https://github.com/miyagawa/cpanminus/issues/455 requires 'CPAN::Common::Index', 0.006; requires 'CPAN::DistnameInfo'; requires 'CPAN::Meta', '2.132830'; requires 'CPAN::Meta::Check'; requires 'CPAN::Meta::Requirements'; requires 'CPAN::Meta::YAML'; requires 'Capture::Tiny'; requires 'Class::Tiny', 1.001; requires 'Exporter'; requires 'ExtUtils::Config', 0.003; requires 'ExtUtils::Helpers', '0.020'; requires 'ExtUtils::InstallPaths', 0.002; requires 'File::Temp'; requires 'File::Which'; requires 'File::pushd'; requires 'Getopt::Long', 2.36; requires 'HTTP::Tiny', '0.054'; requires 'HTTP::Tinyish', '0.04'; requires 'JSON::PP', 2; requires 'Module::CPANfile'; requires 'Module::CoreList'; requires 'Module::Metadata'; requires 'Parse::CPAN::Meta'; requires 'Parse::PMFile', '0.26'; requires 'String::ShellQuote'; requires 'URI'; requires 'Win32::ShellQuote'; requires 'local::lib'; requires 'parent'; requires 'version'; # soft dependencies for optional features suggests 'LWP::UserAgent', '5.802'; suggests 'Archive::Tar'; suggests 'Archive::Zip'; suggests 'File::HomeDir'; suggests 'Module::Signature'; suggests 'Digest::SHA'; on test => sub { requires 'Test::More', '0.96'; }; Menlo-1.9019/dist.ini000644 000765 000024 00000000114 13270043652 015273 0ustar00miyagawastaff000000 000000 name = Menlo [@Milla] installer = MakeMaker Git::Tag.tag_format = Menlo-%v Menlo-1.9019/lib/000755 000765 000024 00000000000 13270043652 014401 5ustar00miyagawastaff000000 000000 Menlo-1.9019/LICENSE000644 000765 000024 00000044012 13270043652 014641 0ustar00miyagawastaff000000 000000 This software is copyright (c) 2010- by Tatsuhiko Miyagawa . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Terms of the Perl programming language system itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- This software is Copyright (c) 2010- by Tatsuhiko Miyagawa . This is free software, licensed under: The GNU General Public License, Version 1, February 1989 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! --- The Artistic License 1.0 --- This software is Copyright (c) 2010- by Tatsuhiko Miyagawa . This is free software, licensed under: The Artistic License 1.0 The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End Menlo-1.9019/Makefile.PL000644 000765 000024 00000005111 13270043652 015603 0ustar00miyagawastaff000000 000000 # This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.009. use strict; use warnings; use 5.008001; use ExtUtils::MakeMaker; my %WriteMakefileArgs = ( "ABSTRACT" => "A CPAN client", "AUTHOR" => "Tatsuhiko Miyagawa ", "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0 }, "DISTNAME" => "Menlo", "LICENSE" => "perl", "MIN_PERL_VERSION" => "5.008001", "NAME" => "Menlo", "PREREQ_PM" => { "CPAN::Common::Index" => "0.006", "CPAN::DistnameInfo" => 0, "CPAN::Meta" => "2.132830", "CPAN::Meta::Check" => 0, "CPAN::Meta::Requirements" => 0, "CPAN::Meta::YAML" => 0, "Capture::Tiny" => 0, "Class::Tiny" => "1.001", "Exporter" => 0, "ExtUtils::Config" => "0.003", "ExtUtils::Helpers" => "0.020", "ExtUtils::InstallPaths" => "0.002", "File::Temp" => 0, "File::Which" => 0, "File::pushd" => 0, "Getopt::Long" => "2.36", "HTTP::Tiny" => "0.054", "HTTP::Tinyish" => "0.04", "JSON::PP" => 2, "Module::CPANfile" => 0, "Module::CoreList" => 0, "Module::Metadata" => 0, "Parse::CPAN::Meta" => 0, "Parse::PMFile" => "0.26", "String::ShellQuote" => 0, "URI" => 0, "Win32::ShellQuote" => 0, "local::lib" => 0, "parent" => 0, "version" => 0 }, "TEST_REQUIRES" => { "Test::More" => "0.96" }, "VERSION" => "1.9019", "test" => { "TESTS" => "t/*.t" } ); my %FallbackPrereqs = ( "CPAN::Common::Index" => "0.006", "CPAN::DistnameInfo" => 0, "CPAN::Meta" => "2.132830", "CPAN::Meta::Check" => 0, "CPAN::Meta::Requirements" => 0, "CPAN::Meta::YAML" => 0, "Capture::Tiny" => 0, "Class::Tiny" => "1.001", "Exporter" => 0, "ExtUtils::Config" => "0.003", "ExtUtils::Helpers" => "0.020", "ExtUtils::InstallPaths" => "0.002", "File::Temp" => 0, "File::Which" => 0, "File::pushd" => 0, "Getopt::Long" => "2.36", "HTTP::Tiny" => "0.054", "HTTP::Tinyish" => "0.04", "JSON::PP" => 2, "Module::CPANfile" => 0, "Module::CoreList" => 0, "Module::Metadata" => 0, "Parse::CPAN::Meta" => 0, "Parse::PMFile" => "0.26", "String::ShellQuote" => 0, "Test::More" => "0.96", "URI" => 0, "Win32::ShellQuote" => 0, "local::lib" => 0, "parent" => 0, "version" => 0 ); unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { delete $WriteMakefileArgs{TEST_REQUIRES}; delete $WriteMakefileArgs{BUILD_REQUIRES}; $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; } delete $WriteMakefileArgs{CONFIGURE_REQUIRES} unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; WriteMakefile(%WriteMakefileArgs); Menlo-1.9019/MANIFEST000644 000765 000024 00000000545 13270043652 014770 0ustar00miyagawastaff000000 000000 # This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.009. Changes LICENSE MANIFEST META.json META.yml Makefile.PL README cpanfile dist.ini lib/Menlo.pm lib/Menlo/Builder/Static.pm lib/Menlo/Dependency.pm lib/Menlo/Index/MetaCPAN.pm lib/Menlo/Index/MetaDB.pm lib/Menlo/Index/Mirror.pm lib/Menlo/Util.pm t/author-pod-syntax.t t/basic.t Menlo-1.9019/META.json000644 000765 000024 00000014267 13270043652 015266 0ustar00miyagawastaff000000 000000 { "abstract" : "A CPAN client", "author" : [ "Tatsuhiko Miyagawa " ], "dynamic_config" : 0, "generated_by" : "Dist::Milla version v1.0.20, Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Menlo", "no_index" : { "directory" : [ "eg", "examples", "inc", "share", "t", "xt" ] }, "prereqs" : { "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0" }, "suggests" : { "JSON::PP" : "2.27300" } }, "develop" : { "requires" : { "Dist::Milla" : "v1.0.20", "Test::Pod" : "1.41" } }, "runtime" : { "requires" : { "CPAN::Common::Index" : "0.006", "CPAN::DistnameInfo" : "0", "CPAN::Meta" : "2.132830", "CPAN::Meta::Check" : "0", "CPAN::Meta::Requirements" : "0", "CPAN::Meta::YAML" : "0", "Capture::Tiny" : "0", "Class::Tiny" : "1.001", "Exporter" : "0", "ExtUtils::Config" : "0.003", "ExtUtils::Helpers" : "0.020", "ExtUtils::InstallPaths" : "0.002", "File::Temp" : "0", "File::Which" : "0", "File::pushd" : "0", "Getopt::Long" : "2.36", "HTTP::Tiny" : "0.054", "HTTP::Tinyish" : "0.04", "JSON::PP" : "2", "Module::CPANfile" : "0", "Module::CoreList" : "0", "Module::Metadata" : "0", "Parse::CPAN::Meta" : "0", "Parse::PMFile" : "0.26", "String::ShellQuote" : "0", "URI" : "0", "Win32::ShellQuote" : "0", "local::lib" : "0", "parent" : "0", "perl" : "5.008001", "version" : "0" }, "suggests" : { "Archive::Tar" : "0", "Archive::Zip" : "0", "Digest::SHA" : "0", "File::HomeDir" : "0", "LWP::UserAgent" : "5.802", "Module::Signature" : "0" } }, "test" : { "requires" : { "Test::More" : "0.96" } } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "https://github.com/miyagawa/cpanminus/issues" }, "homepage" : "https://github.com/miyagawa/cpanminus", "repository" : { "type" : "git", "url" : "https://github.com/miyagawa/cpanminus.git", "web" : "https://github.com/miyagawa/cpanminus" } }, "version" : "1.9019", "x_contributors" : [ "Aaron Moses ", "Alessandro Ghedini ", "Andrew Rodland ", "Andy Jones ", "andyjones ", "Ash Berlin ", "Ben Bullock ", "Breno G. de Oliveira ", "Brian Wightman ", "cho45 ", "Christian Walde ", "chromatic ", "Dagfinn Ilmari Manns\u00e5ker ", "Dana M. Diederich ", "Dave Goodell ", "Dave Rolsky ", "David Golden ", "David Steinbrunner ", "Doug Bell ", "Eli Flanagan ", "fREW Schmidt ", "Fuji, Goro ", "Gareth Kirwan ", "gfx ", "Graham Knop ", "Graham Ollis ", "ikasam_a ", "Ingy dot Net ", "Jan Dubois ", "Jeffrey Ryan Thalhammer ", "Jesse Luehrs ", "J. Nick Koston ", "jonallen ", "Jonathan Scott Duff ", "Kahlil (Kal) Hodgson ", "Kenichi Ishigaki ", "Kent Fredric ", "kmx ", "Larry Leszczynski ", "lestrrat ", "Masahiro Nagano ", "Masayoshi Sekimura ", "Matthew Horsfall ", "Matt S Trout <>", "Matt S Trout ", "Michael G. Schwern ", "motemen ", "moznion ", "Nicolas R ", "Norman Nunley ", "Olaf Alders ", "Olivier Mengu\u00e9 ", "Pedro Melo ", "Rafal Pocztarski ", "reezer ", "Ricardo Signes ", "robario ", "Robert Buels ", "Rob Hoelz ", "Roman Jurkov ", "Sebastian Riedel ", "Shoichi Kaji ", "Slaven Rezic ", "Smylers ", "Stoned Elipot ", "Syohei YOSHIDA ", "Tatsuhiko Miyagawa ", "Thomas Sibley ", "Tokuhiro Matsuno ", "Tuure Laurinolli ", "vti ", "Vyacheslav Matyukhin ", "xaicron ", "Yann Kerherve ", "yappo ", "zebardy " ], "x_serialization_backend" : "Cpanel::JSON::XS version 3.0233", "x_static_install" : 1 } Menlo-1.9019/META.yml000644 000765 000024 00000010767 13270043652 015117 0ustar00miyagawastaff000000 000000 --- abstract: 'A CPAN client' author: - 'Tatsuhiko Miyagawa ' build_requires: Test::More: '0.96' configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 0 generated_by: 'Dist::Milla version v1.0.20, Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Menlo no_index: directory: - eg - examples - inc - share - t - xt requires: CPAN::Common::Index: '0.006' CPAN::DistnameInfo: '0' CPAN::Meta: '2.132830' CPAN::Meta::Check: '0' CPAN::Meta::Requirements: '0' CPAN::Meta::YAML: '0' Capture::Tiny: '0' Class::Tiny: '1.001' Exporter: '0' ExtUtils::Config: '0.003' ExtUtils::Helpers: '0.020' ExtUtils::InstallPaths: '0.002' File::Temp: '0' File::Which: '0' File::pushd: '0' Getopt::Long: '2.36' HTTP::Tiny: '0.054' HTTP::Tinyish: '0.04' JSON::PP: '2' Module::CPANfile: '0' Module::CoreList: '0' Module::Metadata: '0' Parse::CPAN::Meta: '0' Parse::PMFile: '0.26' String::ShellQuote: '0' URI: '0' Win32::ShellQuote: '0' local::lib: '0' parent: '0' perl: '5.008001' version: '0' resources: bugtracker: https://github.com/miyagawa/cpanminus/issues homepage: https://github.com/miyagawa/cpanminus repository: https://github.com/miyagawa/cpanminus.git version: '1.9019' x_contributors: - 'Aaron Moses ' - 'Alessandro Ghedini ' - 'Andrew Rodland ' - 'Andy Jones ' - 'andyjones ' - 'Ash Berlin ' - 'Ben Bullock ' - 'Breno G. de Oliveira ' - 'Brian Wightman ' - 'cho45 ' - 'Christian Walde ' - 'chromatic ' - 'Dagfinn Ilmari MannsÄker ' - 'Dana M. Diederich ' - 'Dave Goodell ' - 'Dave Rolsky ' - 'David Golden ' - 'David Steinbrunner ' - 'Doug Bell ' - 'Eli Flanagan ' - 'fREW Schmidt ' - 'Fuji, Goro ' - 'Gareth Kirwan ' - 'gfx ' - 'Graham Knop ' - 'Graham Ollis ' - 'ikasam_a ' - 'Ingy dot Net ' - 'Jan Dubois ' - 'Jeffrey Ryan Thalhammer ' - 'Jesse Luehrs ' - 'J. Nick Koston ' - 'jonallen ' - 'Jonathan Scott Duff ' - 'Kahlil (Kal) Hodgson ' - 'Kenichi Ishigaki ' - 'Kent Fredric ' - 'kmx ' - 'Larry Leszczynski ' - 'lestrrat ' - 'Masahiro Nagano ' - 'Masayoshi Sekimura ' - 'Matthew Horsfall ' - 'Matt S Trout <>' - 'Matt S Trout ' - 'Michael G. Schwern ' - 'motemen ' - 'moznion ' - 'Nicolas R ' - 'Norman Nunley ' - 'Olaf Alders ' - 'Olivier Mengué ' - 'Pedro Melo ' - 'Rafal Pocztarski ' - 'reezer ' - 'Ricardo Signes ' - 'robario ' - 'Robert Buels ' - 'Rob Hoelz ' - 'Roman Jurkov ' - 'Sebastian Riedel ' - 'Shoichi Kaji ' - 'Slaven Rezic ' - 'Smylers ' - 'Stoned Elipot ' - 'Syohei YOSHIDA ' - 'Tatsuhiko Miyagawa ' - 'Thomas Sibley ' - 'Tokuhiro Matsuno ' - 'Tuure Laurinolli ' - 'vti ' - 'Vyacheslav Matyukhin ' - 'xaicron ' - 'Yann Kerherve ' - 'yappo ' - 'zebardy ' x_serialization_backend: 'YAML::Tiny version 1.70' x_static_install: 1 Menlo-1.9019/README000644 000765 000024 00000004567 13270043652 014527 0ustar00miyagawastaff000000 000000 NAME Menlo - A CPAN client DESCRIPTION Menlo is a backend for cpanm 2.0, developed with the goal to replace cpanm internals with a set of modules that are more flexible, extensible and easier to use. COMPATIBILITY Menlo is developed within cpanminus git repository at Menlo subdirectory at https://github.com/miyagawa/cpanminus Menlo::CLI::Compat started off as a copy of App::cpanminus::script, but will go under a big refactoring to extract all the bits out of it. Hopefully the end result will be just a shim and translation layer to interpret command line options. MOTIVATION cpanm has been a popular choice of CPAN package installer for many developers, because it is lightweight, fast, and requires no configuration in most environments. Meanwhile, the way cpanm has been implemented (one God class, and all modules are packaged in one script with fatpacker) makes it difficult to extend, or modify the behaviors at a runtime, unless you decide to fork the code or monkeypatch its hidden backend class. cpanm also has no scriptable API or hook points, which means if you want to write a tool that works with cpanm, you basically have to work around its behavior by writing a shell wrapper, or parsing the output of its standard out or a build log file. Menlo will keep the best aspects of cpanm, which is dependencies free, configuration free, lightweight and fast to install CPAN modules. At the same time, it's impelmented as a standard perl module, available on CPAN, and you can extend its behavior by either using its modular interfaces, or writing plugins to hook into its behaviors. FAQ Dependencies free? I see many prerequisites in Menlo. Menlo is a set of libraries and uses non-core CPAN modules as its dependencies. App-cpanminus distribution embeds Menlo and all of its runtime dependencies into a fatpacked binary, so that you can install App-cpanminus or Menlo without having any CPAN client to begin with. Is Menlo a new name for cpanm? Right now it's just a library name, but I'm comfortable calling this a new package name for cpanm 2's backend. AUTHOR Tatsuhiko Miyagawa COPYRIGHT 2010- Tatsuhiko Miyagawa LICENSE This software is licensed under the same terms as Perl. SEE ALSO cpanm Menlo-1.9019/t/000755 000765 000024 00000000000 13270043652 014076 5ustar00miyagawastaff000000 000000 Menlo-1.9019/t/author-pod-syntax.t000644 000765 000024 00000000454 13270043652 017674 0ustar00miyagawastaff000000 000000 #!perl BEGIN { unless ($ENV{AUTHOR_TESTING}) { print qq{1..0 # SKIP these tests are for testing by the author\n}; exit } } # This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. use strict; use warnings; use Test::More; use Test::Pod 1.41; all_pod_files_ok(); Menlo-1.9019/t/basic.t000644 000765 000024 00000000134 13270043652 015342 0ustar00miyagawastaff000000 000000 use strict; use Test::More; use Menlo; # replace with the actual test ok 1; done_testing; Menlo-1.9019/lib/Menlo/000755 000765 000024 00000000000 13270043652 015453 5ustar00miyagawastaff000000 000000 Menlo-1.9019/lib/Menlo.pm000644 000765 000024 00000004623 13270043652 016016 0ustar00miyagawastaff000000 000000 package Menlo; our $VERSION = "1.9019"; 1; __END__ =encoding utf8 =head1 NAME Menlo - A CPAN client =head1 DESCRIPTION Menlo is a backend for I, developed with the goal to replace L internals with a set of modules that are more flexible, extensible and easier to use. =head1 COMPATIBILITY Menlo is developed within L git repository at C subdirectory at L Menlo::CLI::Compat started off as a copy of App::cpanminus::script, but will go under a big refactoring to extract all the bits out of it. Hopefully the end result will be just a shim and translation layer to interpret command line options. =head1 MOTIVATION cpanm has been a popular choice of CPAN package installer for many developers, because it is lightweight, fast, and requires no configuration in most environments. Meanwhile, the way cpanm has been implemented (one God class, and all modules are packaged in one script with fatpacker) makes it difficult to extend, or modify the behaviors at a runtime, unless you decide to fork the code or monkeypatch its hidden backend class. cpanm also has no scriptable API or hook points, which means if you want to write a tool that works with cpanm, you basically have to work around its behavior by writing a shell wrapper, or parsing the output of its standard out or a build log file. Menlo will keep the best aspects of cpanm, which is dependencies free, configuration free, lightweight and fast to install CPAN modules. At the same time, it's impelmented as a standard perl module, available on CPAN, and you can extend its behavior by either using its modular interfaces, or writing plugins to hook into its behaviors. =head1 FAQ =over 4 =item Dependencies free? I see many prerequisites in Menlo. Menlo is a set of libraries and uses non-core CPAN modules as its dependencies. App-cpanminus distribution embeds Menlo and all of its runtime dependencies into a fatpacked binary, so that you can install App-cpanminus or Menlo without having any CPAN client to begin with. =item Is Menlo a new name for cpanm? Right now it's just a library name, but I'm comfortable calling this a new package name for cpanm 2's backend. =back =head1 AUTHOR Tatsuhiko Miyagawa Emiyagawa@bulknews.netE =head1 COPYRIGHT 2010- Tatsuhiko Miyagawa =head1 LICENSE This software is licensed under the same terms as Perl. =head1 SEE ALSO L =cut Menlo-1.9019/lib/Menlo/Builder/000755 000765 000024 00000000000 13270043652 017041 5ustar00miyagawastaff000000 000000 Menlo-1.9019/lib/Menlo/Dependency.pm000644 000765 000024 00000003463 13270043652 020075 0ustar00miyagawastaff000000 000000 package Menlo::Dependency; use strict; use CPAN::Meta::Requirements; use Class::Tiny qw( module version type original_version dist mirror url ); sub BUILDARGS { my($class, $module, $version, $type) = @_; return { module => $module, version => $version, type => $type || 'requires', }; } sub from_prereqs { my($class, $prereqs, $phases, $types) = @_; my @deps; for my $type (@$types) { push @deps, $class->from_versions( $prereqs->merged_requirements($phases, [$type])->as_string_hash, $type, ); } return @deps; } sub from_versions { my($class, $versions, $type) = @_; my @deps; while (my($module, $version) = each %$versions) { push @deps, $class->new($module, $version, $type) } @deps; } sub merge_with { my($self, $requirements) = @_; # save the original requirement $self->original_version($self->version); # should it clone? not cloning means we upgrade root $requirements on our way eval { $requirements->add_string_requirement($self->module, $self->version); }; if ($@ =~ /illegal requirements/) { # Just give a warning then replace with the root requirements # so that later CPAN::Meta::Check can give a valid error warn sprintf("Can't merge requirements for %s: '%s' and '%s'", $self->module, $self->version, $requirements->requirements_for_module($self->module)); } $self->version( $requirements->requirements_for_module($self->module) ); } sub requires_version { my $self = shift; # original_version may be 0 if (defined $self->original_version) { return $self->original_version; } $self->version; } sub is_requirement { $_[0]->type eq 'requires'; } 1; Menlo-1.9019/lib/Menlo/Index/000755 000765 000024 00000000000 13270043652 016522 5ustar00miyagawastaff000000 000000 Menlo-1.9019/lib/Menlo/Util.pm000644 000765 000024 00000000543 13270043652 016730 0ustar00miyagawastaff000000 000000 package Menlo::Util; use strict; use Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw(WIN32); use constant WIN32 => $^O eq 'MSWin32'; if (WIN32) { require Win32::ShellQuote; *shell_quote = \&Win32::ShellQuote::quote_native; } else { require String::ShellQuote; *shell_quote = \&String::ShellQuote::shell_quote_best_effort; } 1; Menlo-1.9019/lib/Menlo/Index/MetaCPAN.pm000644 000765 000024 00000006560 13270043652 020417 0ustar00miyagawastaff000000 000000 use 5.008001; use strict; use warnings; package Menlo::Index::MetaCPAN; # ABSTRACT: Search index via MetaCPAN # VERSION use parent 'CPAN::Common::Index'; use Class::Tiny qw/uri include_dev/; use Carp; use HTTP::Tinyish; use JSON::PP (); use Time::Local (); sub BUILD { my $self = shift; my $uri = $self->uri; $uri = "https://fastapi.metacpan.org/v1/download_url/" unless defined $uri; # ensure URI ends in '/' $uri =~ s{/?$}{/}; $self->uri($uri); return; } sub search_packages { my ( $self, $args ) = @_; Carp::croak("Argument to search_packages must be hash reference") unless ref $args eq 'HASH'; my $range; if ( $args->{version} ) { $range = "== $args->{version}"; } elsif ( $args->{version_range} ) { $range = $args->{version_range}; } my %query = ( ($self->include_dev ? (dev => 1) : ()), ($range ? (version => $range) : ()), ); my $query = join "&", map { "$_=" . $self->_uri_escape($query{$_}) } sort keys %query; my $uri = $self->uri . $args->{package} . ($query ? "?$query" : ""); my $res = HTTP::Tinyish->new->get($uri); return unless $res->{success}; my $dist_meta = eval { JSON::PP::decode_json($res->{content}) }; if ($dist_meta && $dist_meta->{download_url}) { (my $distfile = $dist_meta->{download_url}) =~ s!.+/authors/id/\w/\w\w/!!; return { package => $args->{package}, version => $dist_meta->{version}, uri => "cpan:///distfile/$distfile", download_uri => $self->_download_uri("http://cpan.metacpan.org", $distfile), }; } return; } sub _parse_date { my($self, $date) = @_; my @date = $date =~ /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)$/; Time::Local::timegm($date[5], $date[4], $date[3], $date[2], $date[1] - 1, $date[0] - 1900); } sub _uri_escape { my($self, $string) = @_; $string =~ s/([^a-zA-Z0-9_\-.])/uc sprintf("%%%02x",ord($1))/eg; $string; } sub _download_uri { my($self, $base, $distfile) = @_; join "/", $base, "authors/id", substr($distfile, 0, 1), substr($distfile, 0, 2), $distfile; } sub index_age { return time } # pretend always current sub search_authors { return } # not supported 1; =for Pod::Coverage attributes validate_attributes search_packages search_authors BUILD =head1 SYNOPSIS use CPAN::Common::Index::MetaCPAN; $index = CPAN::Common::Index::MetaCPAN->new({ include_dev => 1 }); $index->search_packages({ package => "Moose", version => "1.1" }); $index->search_packages({ package => "Moose", version_range => ">= 1.1, < 2" }); =head1 DESCRIPTION This module implements a CPAN::Common::Index that searches for packages against the MetaCPAN API. This backend supports searching modules with a version range (as specified in L) which is translated into MetaCPAN search query. There is also a support for I release search, by passing C parameter to the index object. The result may include an optional field C which suggests a specific mirror URL to download from, which can be C if the archive was deleted, or C if the release date is within 1 day (because some mirrors might not have synced it yet). There is no support for searching packages with a regular expression, nor searching authors. =cut # vim: ts=4 sts=4 sw=4 et: Menlo-1.9019/lib/Menlo/Index/MetaDB.pm000644 000765 000024 00000006747 13270043652 020172 0ustar00miyagawastaff000000 000000 use 5.008001; use strict; use warnings; package Menlo::Index::MetaDB; # ABSTRACT: Search index via CPAN MetaDB our $VERSION = "1.9019"; use parent 'CPAN::Common::Index'; use Class::Tiny qw/uri/; use Carp; use CPAN::Meta::YAML; use CPAN::Meta::Requirements; use HTTP::Tiny; sub BUILD { my $self = shift; my $uri = $self->uri; $uri = "http://cpanmetadb.plackperl.org/v1.0/" unless defined $uri; # ensure URI ends in '/' $uri =~ s{/?$}{/}; $self->uri($uri); return; } sub search_packages { my ( $self, $args ) = @_; Carp::croak("Argument to search_packages must be hash reference") unless ref $args eq 'HASH'; return unless exists $args->{package} && ref $args->{package} eq ''; my $mod = $args->{package}; if ($args->{version} || $args->{version_range}) { my $res = HTTP::Tiny->new->get( $self->uri . "history/$mod" ); return unless $res->{success}; my $range = defined $args->{version} ? "== $args->{version}" : $args->{version_range}; my $reqs = CPAN::Meta::Requirements->from_string_hash({ $mod => $range }); my @found; for my $line ( split /\r?\n/, $res->{content} ) { if ($line =~ /^$mod\s+(\S+)\s+(\S+)$/) { push @found, { version => $1, version_o => version::->parse($1), distfile => $2, }; } } return unless @found; $found[-1]->{latest} = 1; my $match; for my $try (sort { $b->{version_o} <=> $a->{version_o} } @found) { if ($reqs->accepts_module($mod => $try->{version_o})) { $match = $try, last; } } if ($match) { my $file = $match->{distfile}; $file =~ s{^./../}{}; # strip leading return { package => $mod, version => $match->{version}, uri => "cpan:///distfile/$file", ($match->{latest} ? () : (download_uri => "http://backpan.perl.org/authors/id/$match->{distfile}")), }; } } else { my $res = HTTP::Tiny->new->get( $self->uri . "package/$mod" ); return unless $res->{success}; if ( my $yaml = CPAN::Meta::YAML->read_string( $res->{content} ) ) { my $meta = $yaml->[0]; if ( $meta && $meta->{distfile} ) { my $file = $meta->{distfile}; $file =~ s{^./../}{}; # strip leading return { package => $mod, version => $meta->{version}, uri => "cpan:///distfile/$file", }; } } } return; } sub index_age { return time }; # pretend always current sub search_authors { return }; # not supported 1; =for Pod::Coverage attributes validate_attributes search_packages search_authors BUILD =head1 SYNOPSIS use CPAN::Common::Index::MetaDB; $index = CPAN::Common::Index::MetaDB->new; $index->search_packages({ package => "Moose" }); $index->search_packages({ package => "Moose", version_range => ">= 2.0" }); =head1 DESCRIPTION This module implements a CPAN::Common::Index that searches for packages against the same CPAN MetaDB API used by L. There is no support for advanced package queries or searching authors. It just takes a package name and returns the corresponding version and distribution. =cut # vim: ts=4 sts=4 sw=4 et: Menlo-1.9019/lib/Menlo/Index/Mirror.pm000644 000765 000024 00000002021 13270043652 020325 0ustar00miyagawastaff000000 000000 package Menlo::Index::Mirror; use strict; use parent qw(CPAN::Common::Index::Mirror); use Class::Tiny qw(fetcher); use File::Basename (); use File::Spec (); use URI (); our $HAS_IO_UNCOMPRESS_GUNZIP = eval { require IO::Uncompress::Gunzip }; my %INDICES = ( # mailrc => 'authors/01mailrc.txt.gz', packages => 'modules/02packages.details.txt.gz', ); sub refresh_index { my $self = shift; for my $file ( values %INDICES ) { my $remote = URI->new_abs( $file, $self->mirror ); $remote =~ s/\.gz$// unless $HAS_IO_UNCOMPRESS_GUNZIP; my $local = File::Spec->catfile( $self->cache, File::Basename::basename($file) ); $self->fetcher->($remote, $local) or Carp::croak( "Cannot fetch $remote to $local"); if ($HAS_IO_UNCOMPRESS_GUNZIP) { ( my $uncompressed = $local ) =~ s/\.gz$//; IO::Uncompress::Gunzip::gunzip( $local, $uncompressed ) or Carp::croak "gunzip failed: $IO::Uncompress::Gunzip::GunzipError\n"; } } } 1; Menlo-1.9019/lib/Menlo/Builder/Static.pm000644 000765 000024 00000010015 13270043652 020623 0ustar00miyagawastaff000000 000000 package Menlo::Builder::Static; use strict; use warnings; use CPAN::Meta; use ExtUtils::Config 0.003; use ExtUtils::Helpers 0.020 qw/make_executable split_like_shell man1_pagename man3_pagename detildefy/; use ExtUtils::Install qw/pm_to_blib install/; use ExtUtils::InstallPaths 0.002; use File::Basename qw/dirname/; use File::Find (); use File::Path qw/mkpath/; use File::Spec::Functions qw/catfile catdir rel2abs abs2rel splitdir curdir/; use Getopt::Long 2.36 qw/GetOptionsFromArray/; sub new { my($class, %args) = @_; bless { meta => $args{meta}, }, $class; } sub meta { my $self = shift; $self->{meta}; } sub manify { my ($input_file, $output_file, $section, $opts) = @_; return if -e $output_file && -M $input_file <= -M $output_file; my $dirname = dirname($output_file); mkpath($dirname, $opts->{verbose}) if not -d $dirname; require Pod::Man; Pod::Man->new(section => $section)->parse_from_file($input_file, $output_file); print "Manifying $output_file\n" if $opts->{verbose} && $opts->{verbose} > 0; return; } sub find { my ($pattern, $dir) = @_; my @ret; File::Find::find(sub { push @ret, $File::Find::name if /$pattern/ && -f }, $dir) if -d $dir; return @ret; } my %actions = ( build => sub { my %opt = @_; my %modules = map { $_ => catfile('blib', $_) } find(qr/\.p(?:m|od)$/, 'lib'); my %scripts = map { $_ => catfile('blib', $_) } find(qr//, 'script'); my %shared = map { $_ => catfile(qw/blib lib auto share dist/, $opt{meta}->name, abs2rel($_, 'share')) } find(qr//, 'share'); pm_to_blib({ %modules, %scripts, %shared }, catdir(qw/blib lib auto/)); make_executable($_) for values %scripts; mkpath(catdir(qw/blib arch/), $opt{verbose}); if ($opt{install_paths}->install_destination('bindoc') && $opt{install_paths}->is_default_installable('bindoc')) { manify($_, catfile('blib', 'bindoc', man1_pagename($_)), $opt{config}->get('man1ext'), \%opt) for keys %scripts; } if ($opt{install_paths}->install_destination('libdoc') && $opt{install_paths}->is_default_installable('libdoc')) { manify($_, catfile('blib', 'libdoc', man3_pagename($_)), $opt{config}->get('man3ext'), \%opt) for keys %modules; } 1; }, test => sub { my %opt = @_; die "Must run `./Build build` first\n" if not -d 'blib'; require TAP::Harness::Env; my %test_args = ( (verbosity => $opt{verbose}) x!! exists $opt{verbose}, (jobs => $opt{jobs}) x!! exists $opt{jobs}, (color => 1) x !!-t STDOUT, lib => [ map { rel2abs(catdir(qw/blib/, $_)) } qw/arch lib/ ], ); my $tester = TAP::Harness::Env->create(\%test_args); $tester->runtests(sort +find(qr/\.t$/, 't'))->has_errors and return; 1; }, install => sub { my %opt = @_; die "Must run `./Build build` first\n" if not -d 'blib'; install($opt{install_paths}->install_map, @opt{qw/verbose dry_run uninst/}); 1; }, ); sub build { my $self = shift; my $action = @_ && $_[0] =~ /\A\w+\z/ ? shift @_ : 'build'; die "No such action '$action'\n" if not $actions{$action}; my %opt; GetOptionsFromArray([@$_], \%opt, qw/install_base=s install_path=s% installdirs=s destdir=s prefix=s config=s% uninst:1 verbose:1 dry_run:1 pureperl-only:1 create_packlist=i jobs=i/) for ($self->{env}, $self->{configure_args}, \@_); $_ = detildefy($_) for grep { defined } @opt{qw/install_base destdir prefix/}, values %{ $opt{install_path} }; @opt{ 'config', 'meta' } = (ExtUtils::Config->new($opt{config}), $self->meta); $actions{$action}->(%opt, install_paths => ExtUtils::InstallPaths->new(%opt, dist_name => $opt{meta}->name)); } sub configure { my $self = shift; $self->{env} = defined $ENV{PERL_MB_OPT} ? [split_like_shell($ENV{PERL_MB_OPT})] : []; $self->{configure_args} = [@_]; $self->meta->save(@$_) for ['MYMETA.json'], [ 'MYMETA.yml' => { version => 1.4 } ]; } 1; =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2011 by Leon Timmermans, David Golden. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut