The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.000_194 - 2014-11-02

  • Add eg/cpan-adhoc options -production, -development, -date. Add eg/distro-by Finally fix undef hash key problem in corpus().

Changes for version 0.000_193 - 2014-10-31

  • Try (unsuccessfully, as it turns out) to fix undefined value error in eg/cpan-adhoc corpus Add -latest option to eg/cpan-adhoc corpus. This causes only the highest-numbered version of each release to be listed.

Changes for version 0.000_192 - 2014-10-31

  • Base corpus() on the author's CHECKSUMS file instead of plowing through indexed distributions. In the eg/cpan-adhoc corpus command, add -verbose as a synonym for -full.

Changes for version 0.000_191 - 2014-03-21

  • Have the CPAN::Access::AdHoc::Archive::Zip item_present() check for the item by name with Archive::Zip memberNamed() rather than searching for it with membersMatching(). Various tweaks to eg/cpan-adhoc:
    • Make it more pipe-friendly;
    • Add -full to the 'corpus' command;
    • Add 'info' command;
    • Add 'write' command;
  • Fix various test failures.

Changes for version 0.000_19 - 2013-08-06

  • Substantial rewrite to eg/cpan-adhoc to try to make it much smarter about retrieving distributions. Also make every command that takes a file name take a module name as well. Make CPAN::Access::AdHoc method fetch_distribution_checksums() conform to its documentation. Add CPAN::Access::AdHoc method exists(), which takes the name of a file (relative to the root of the archive) and returns true if it exists, and false otherwise.

Changes for version 0.000_18 - 2013-07-28

  • Get rid of unused variables.

Changes for version 0.000_17 - 2012-08-09

  • If the CPAN::Access::AdHoc::Archive wrap_archive() method does not get the {author} or {directory} options, and the file name does not look like a repository file name, infer the author from the directory, and make the path attribute look like a repository file name for that author.

Changes for version 0.000_16 - 2012-07-06

  • Use URI::file to construct expected repository file: URI in t/config.t, to try to eliminate test failures under MSWin32. Document the 'extract' verb in eg/cpan-adhoc.

Changes for version 0.000_15 - 2012-07-02

  • Get rid of mock Safe object. Instead, require a version of Safe that plays nicely with Devel::Cover. Attempt to handle the case where version information is missing from the module index.

Changes for version 0.000_14 - 2012-02-21

  • Changed calling sequence for CPAN::Access::Adhoc __init() method. It now takes the invocant and a hash reference, rather than the invocant and an unrolled hash. It now returns nothing. Overrides must call $self->SUPER::__init( $args ) before processing their own arguments. All this is because once I tried to override it I found that the previous implementation did not actually work as advertised.
  • Removed old signature of CPAN::Access::AdHoc::Archive->wrap_archive(). This was deprecated in version 0.000_12.

Changes for version 0.000_13 - 2012-02-10

  • Add read-only attribute mtime() to the CPAN::Access::AdHoc::Archive classes. In practice, this comes from the Last-Modified header.

Changes for version 0.000_12 - 2012-02-06

  • Change the signature of CPAN::Access::AdHoc::Archive->wrap_archive(). The new signature specifies an optional leading hash. The author is specified with the {author} key, or the directory with the {directory} key. The old signature is deprecated, and will be removed a week after publication.

Changes for version 0.000_11 - 2012-02-04

  • Remove deprecated CPAN::Access::AdHoc::Archive methods guess_media_type() and handle_http_response().
  • Change the second argument of the HTTP error handler from an absolute URL to a relative path. The old version was never released to CPAN, so this is technically not an incompatability.
  • Flesh out the 'SEE ALSO' section of the CPAN::Access::AdHoc docs.

Changes for version 0.000_10 - 2012-01-31

  • Add attribute http_error_handler() to CPAN::Access::AdHoc.
  • The CPAN::Access::AdHoc fetch_module_index() method takes a return without data from http_error_handler() as a request to return an empty index.

Changes for version 0.000_09 - 2012-01-30

  • The default_cpan_source attribute is now carried internally as a reference to an array of the expanded class names, and this is what is returned by the accessor.
  • CPAN::Access::AdHoc method __init() added to initialize attributes. Subclasses override this rather than new().
  • The mutator logic has been rewritten in terms of hooks to supply defaults, validate, and do post-assignment processing. This is still package-private, though it is documented.

Changes for version 0.000_08 - 2012-01-28

  • Don't have Build_Repos.PL load CPAN::Checksums until we _know_ we need to rebuild the mock repository.

Changes for version 0.000_07 - 2012-01-28

  • Add a write() method to the CPAN::Access::AdHoc::Archive::* classes. This writes the archive, compressing it if need be. The file name written can be specified as an argument, defaulting to the base name of the original file. Modify method CPAN::Access::AdHoc::Archive->wrap_archive() so that its second argument can be either an author directory, or a scalar reference which dereferences to the directory relative to the repository root.

Changes for version 0.000_06 - 2012-01-27

  • Add method CPAN::Access::AdHoc::Archive->wrap_archive(), which instantiates an archive object from an archive file and optional CPAN ID. This seems to remove the need to expose guess_media_type() and handle_http_response(), so their functionality has become private to the package. CPAN::Access::AdHoc::Archive->guess_media_type() and handle_http_response() are deprecated and will warn on use. Because they have never appeared in a production release they will be removed after a week. Make the CPAN::Access::AdHoc cpan() attribute a URI object, both internally and extrnally. The mutator takes either a stringifiable object or a string. The scheme must be supported according to LWP::Protocol::implementor(), and support a hierarchical name space.

Changes for version 0.000_05 - 2012-01-24

  • Retract the test of get_item_mtime() for Zip archives, since there is no way to make it work in any time zone. Document (briefly) the problems in CPAN::Access::AdHoc::Archive::Zip. Add static method CPAN::Access::AdHoc::Archive->guess_media_type(). This (currently) wraps LWP::MediaTypes::guess_media_type(), but provides some ad-hocery to help the latter in cases it can't handle. I'm not real happy with either this or handle_http_response(), but so far have been unable to come up with anything better.

Changes for version 0.000_04 - 2012-01-21

  • INCOMPATIBLE CHANGES Remove all methods deprecated in 0.000_03. Change the way CPAN::Access::AdHoc::Archive::Null looks at its contents. Specifically:
    • base_directory() now returns the directory portion of the path() attribute -- unless this looks like the path of a distribution, in which case it returns the directory relative to the authors/id/ directory.
    • list_content() now returns just the base name of the enclosed file.
    • The get_item_*() and item_present() methods just take the base name of the enclosed file.
    • extract() creates directories as specified by the base_directory() method.
  • OTHER CHANGES Add to CPAN::Access::AdHoc::Archive an umbrella handle_http_response() method that iterates over the subclasses returning the first archive object actually manufactures, or nothing if none of the subclasses know how to handle the argument. Rely on LWP::MediaTypes for MIME information, rathr than doing our own guessing. Guard against undefined value warnings when fetching unpackaged distributions such as T/TO/TOMC/scripts/whenon.dir/LastLog/ Abort the build if $Config{useperlio} is false, since we use this to make a file handle out of the data returned from the CPAN repository.

Changes for version 0.000_03 - 2012-01-10

  • INCOMPATIBLE CHANGES The CPAN::Access::AdHoc::Archive::Null handle_http_response() static method now returns a CPAN::Access::AdHoc::Archive::Null object, rather than the content of the file. The CPAN::Access::AdHoc fetch_package_archive() method is deprecated in favor of the fetch_distribution_archive() method. The deprecated method will go away before the first production release. The CPAN::Access::AdHoc fetch_registered_module_index() now returns a reference to a hash contining the module index, rather than a string that needs to be eval-ed. OTHER CHANGES Add method fetch_distribution_checksums() to CPAN::Access::AdHoc. Have the CPAN::Access::AdHoc fetch() method actually check checksums. Add method get_item_mtime() to the CPAN::Access::AdHoc::Archive classes. The CPAN::Access::AdHoc cpan() mutator now validates URLs using URI::URL.

Changes for version 0.000_02 - 2012-01-06

  • The CPAN::Access::AdHoc default_cpan_source() mutator now validates its argument, and croaks on an error. The CPAN::Access::AdHoc cpan() mutator now croaks if its argument was undef and no default can be computed. Check in CPAN::Access::AdHoc for failure when opening string references, and croak with error if needed. CPAN::Access::AdHoc::Default::CPAN::CPAN::Mini now explicitly converts the local repository path to POSIX before making a file: URL out of it. Add dependency on Module::Pluggable::Object, in lieu of home-grown plugin code. Review and update dependencies. Add author tests without optional modules CPANPLUS, CPAN::Mini and App::cpanminus. Add 'cpan' and 'cpan_default_source' commands to eg/cpan-adhoc, and have the 'help' command not exit.

Changes for version 0.000_01 - 2012-01-04

  • Initial release


Retrieve stuff from an arbitrary CPAN repository
Common archive functionality for CPAN::Access::AdHoc
Archive-like wrapper for un-archived data.
Provide consistent interface to Archive::Tar
Provide a consistent interface to Archive::Zip
Get the default CPAN URL from CPAN
Get the default CPAN from CPAN::Mini
Get the default CPAN from CPANPLUS
Get the default CPAN URL from cpanminus.
Utility functions for CPAN::Access::AdHoc