2005-10-01 Andreas J. Koenig * Applied three patches by Slaven Rezic, David Storrs, and Toni Prug. Untested--just to get it out the door. All patches look very reasonable, but I repeat: untested, so we make it a developer version. 2005-09-22 Andreas J. Koenig * lib/CPAN.pm: Integrate patch by Slaven Rezic to support a notest pragma (undocumented); take CPAN::Version into a sparate file 2005-09-18 Andreas Koenig * Shame, two years without a release. Most of the code in this release has been collected by perl5porters over the last two years. Thanks a lot to all of them. The whole Module::Signature code has been written by Autrijus two years ago and I have to apologize that I didn't make a release with it. Real life was intruding too strongly. I have made cautious changes to the version comparison functions, anticipating the likely changes we're gonna see with a better indexer on CPAN courtesy John Peacock. I'm releasing 1.76_51 as an orientation for CPANPLUS so we can find the smoothest transition possible between the old and the new indexer. The new indexer will be based on version.pm 0.48 and will bring the substantial change that all modules that are using version strings will be represented as floats according to the conversion routine implemented in version.pm. Up to now the conversion from version strings to floats was lossy but with the new version.pm it is a well defined 1 to 1 mapping. See version.pm for the details. To make the transition smoother, I'm intending to leave the indexer with the old algorithm for all strings that look like floating point numbers, and for other strings that contain an underline character or alphabetical stuff. Future plans: once we have rolled out the version related changes, I'm planning to fix open bugs and integrate waiting patches that have not yet made their way into CPAN.pm. 2003-09-20 Andreas J Koenig * Tiny tweak for the rare case that a module has an author who has no email so seems to be inexistent. CGI::Request triggered this bug. 2003-07-31 Andreas J Koenig * The pumpkin has asked for a longer testing period of the PKI stuff. So 1.76 removes the stuff from Makefile.PL and CPAN.pm. We expect to have several 1.76_XX releases for testing. 2003-07-29 Andreas J Koenig * Applying patches 20294, 20295, and 20306 in the perforce repository with the subject lines: There is no skip() since we are not using Test*. unlink pre-PGP-signed CHECKSUM. Too many my $fh:s. * Added missing 'use File::Spec' directive to the Makefile.PL (Thanks to Tom Metro) * Reworked the 'make dist' sequence to make sure that I won't again sign before META.yml is written (1.73 has a broken SIGNATURE because of this mistake) 2003-07-27 Andreas J Koenig * Signed the distribution myself with my GnuPG key * Integrated patch from Autrijus Tang to support digital signatures. 2003-07-04 Andreas J Koenig * This is 1.71 2003-05-09 Andreas J. Koenig * FirstTime.pm: Do not mention POLLUTE=1 anymore. It's an old option that isn't interesting anymore nowadays. (Thanks to Michael Schilli for the hint) 2003-04-12 Andreas J. Koenig * Makefile.PL: do not require FirstTime anymore 2003-04-08 Andreas J. Koenig * CPAN.pm: mydie was called as function instead of method 2003-04-05 Andreas J. Koenig * CPAN::FTP: Try maybe_command on $CPAN::Config->{ftp} plus minor cleanup. 2003-04-01 Andreas J. Koenig * CPAN.pm: Better error message when encountering a recursive dependency: it was just 'panic' and shows now the dependency graph. 2003-03-29 Andreas J. Koenig * Nox.pm: add a '1;' at the end. Thanks to Dan Kogai for finding the buglet. * CPAN.pm: document 'o conf init' in the manpage. Thanks to Slaven Rezic for noticing the missing docs. 2003-03-19 Andreas J. Koenig * Makefile.PL: dependency on File::Spec 0.8 due to CPAN::MakeMaker's use of splitdir 2003-03-13 Andreas J. Koenig * Change error message "Subprocess error" by "Subprocess exit code $code". Suggestion by Slaven Rezic. * Introduce support flag "abandoned" for DSLIP. Warn if users want to install an abandoned module * When determining the "CPAN_USERID" in Module->as_string, try first userid from 03modlist, then CPAN_USERID from 02modules. They need not be identical: WPS has uploaded his distro, then KSTAR took the module over, but has not yet uploaded. 2003-03-09 Andreas J. Koenig * add "abandoned" flag to the Support item in the DSLIP status * CPAN::FirstTime: Remove WAIT configuration * Bundle::CPAN: remove CPAN::WAIT from the bundle 2003-02-28 Brian Ingerson * CPAN's use of CPAN::MakeMaker caused an ironic but serious bug. It installed CPAN::MakeMaker into installprivlib, rendering modules that used CPAN::MakeMaker potentially uninstallable. The solution is to patch CPAN.pm's install process to detect and cure infected systems. This will take time to propagate out, as people upgrade to this and future versions of CPAN.pm. Eventually the problem will fade away. I hope. The irony is that only CPAN.pm (by the nature of its name) could cause ExtUtils to install CPAN::MakeMaker. Why me?! * This patch relies on a special version (0.12) of CPAN::MakeMaker which was written for this situation, and will not be released onto CPAN. 2003-02-27 Andreas J. Koenig * CPAN::Bundle::look: now dispatches to as_string. Thanks to Juergen Christoffel for the suggestion. 2003-02-09 Andreas J. Koenig * lib/CPAN.pm: protect code running without a terminal from dying on $term->can. 2003-02-08 Andreas J. Koenig * Fixes for Win32, irrelevant for all other platforms. No code changes in CPAN.pm. Moved "cpan" to "scripts/cpan" to avoid name clash with the CPAN directory. Removed the second ".PHONY" line in CPAN::MakeMaker. 2003-02-05 Andreas J. Koenig * lib/CPAN.pm (savehist, CPAN::shell): new config variables histfile and histsize control saving and retrieving of history. * Explain the status of CPAN.pm vs. CPANPLUS.pm in the POD * Documentation: mention FTP_PASSIVE; courtesy Peter Valdemar Mørch 2002-11-22 Andreas J. Koenig * correct all split commands to use a regex instead of a string. Thanks to Rafael Garcia-Suarez for detecting the abuse. 2002-11-17 Andreas J. Koenig * BUNDLE/Test/{Builder,More}.pm: Strip POD from the two bundled modules. 2002-11-15 Andreas J. Koenig * Makefile.PL: Switch to CPAN::MakeMaker for this one experimental release. The implications of CPAN::MakeMaker are yet to be evaluated. Here I use the "True Bundle" feature to add Test::More and Test::Builder and remove the dependency on them. 2002-11-12 Andreas J. Koenig * lib/CPAN/FirstTime.pm (read_mirrored_by): Bill Pollock made me aware about simple mistakes that can be avoided in the URL selection dialogue (entering URL strings instead of numbers, entering leading or trailing whitespace). With a few simple tweaks these should be avoided in the future. 2002-10-20 Andreas J. Koenig * lib/CPAN.pm: the last few patches also fixed accidentally some "redefined" warnings during "reload cpan". 2002-09-30 Andreas J. Koenig * Roland Bauer sent me a patch that carefully appended a trailing newline to a couple of "mywarn" messages that came without it. * CPAN::FirstTime::display_some: Change the displayed dialogue to make clear that SPACE ENTER is the trick to page through results. Correct some indenting and trailing whitespace. Remove some unused variables. * print_ornamented: Newline fix for various Windows systems by Roland Bauer 2002-09-03 Andreas J. Koenig * CPAN::FirstTime::init: Catch non-absolute path in cpan_home. 2002-08-30 Andreas J. Koenig * New version of the cpan script by brian d foy. 2002-07-28 Andreas J. Koenig * Releasing as 1.62. * cpan: beefed-up cpan script courtesy brian d foy. * Makefile.PL: deactivate PREREQ_PM for File::Spec in case we are running under 5.6.0, otherwise 5.6.0's CPAN.pm would download 5.8.0 just for File::Spec. 2002-05-07 Andreas J. Koenig * Releasing as 1.61. * The default WAIT server has got a new domain name: ls6-www.informatik.uni-dortmund.de * Protecting against not existing $META->{is_tested} element. 2002-04-21 Andreas J. Koenig * Repackaging, no changes in the code. The reason is that search.cpan.org could not grok the format of my ChangeLog file which mixed POD and non-POD. Now ChangeLog is POD-free and old Changes are in Changes.old. Going to package as 1.60b. 2002-04-19 Andreas J. Koenig * Change the quoting in system command for Windows systems. Thanks to Alessandro Forghieri for the report. * merge with bleadperl 2001-06-16 Andreas J. Koenig * Typo Frontent->Frontend in three places. Thanks to Rich Williams for spotting. 2001-05-28 Andreas J. Koenig * manpage_headline: fixed the NAME parsing regular expression to ignore headlines that just start with NAME. Thanks to Jost Krieger for spotting. 2001-05-22 Andreas J. Koenig * CPAN::Bundle::look: disable the look command on bundles. Till now it meant to recursively look into all members. This could be time-consuming and even hard to interrupt. As I know nothing else one could expect from look(Bundle), I decided to disable it completely. 2001-04-xx Andreas J. Koenig * Do not remember exact date: Applied a patch by Gisle Aas to replace MD5 by Digest::MD5. 2001-02-09 Andreas J. Koenig * Releasing as 1.59_54. * CPAN::Tarzip::TIEHANDLE: Applied a patch by Robin Barker about a wrong error message ("Could pipe" instead of "Could not pipe") 2001-02-06 Andreas J. Koenig * CPAN::Index::rd_modpacks: Add a stalenes warning if the index file is older than 30 days. Thanks to "tanbin" for the report. * To improve the protection against stale mirrors, add a global for $CPAN::Index::DATE_OF_02 to keep track of the currently used index. This is also stored in the cache. It will be printed as a reminder whenever a fetch fails and whenever the metadata are retrieved from the index file or via Storable. 2001-01-02 Andreas J. Koenig * CPAN::Author::as_glimpse): added email address * CPAN::Shell::a: uppercasing any argument broke experimental advanced query. Made conditional on the existence of an equal sign now. 2000-12-31 Andreas J. Koenig * POD: add a description of the ls command. * Improve documentation of support for authenticated proxies. * CPAN::Bundle::contains: Bail out if there is no inst_file and cpan_file eq "N/A". Old code would have tried to download N/A. 2000-12-27 Andreas J. Koenig * normalize: Fix bug with "Strange distribution name" if it is "Contact Author..." 2000-12-26 Andreas J. Koenig * CPAN::LWP::UserAgent: new class to customize proxy authentication. Thanks to David C Worenklein for a working implementation that I could use as a basis. 2000-12-19 Andreas J. Koenig * manpage: Added a pointer to the Japanese translation. 2000-12-13 Andreas J. Koenig * FAQ: While working on the FAQ mirroring item, I discovered that we need a mirror command because "get" unwraps the tarfiles as a side effect, which is not nice. Mirror() will do nothing if source is a "file:" URL. It will probably understand force to override that. It will copy to ~/.cpan/sources but leave the file unopened and untouched. Backed out the FAQ item until we have that fixed. 2000-12-11 Andreas J. Koenig * CPAN::Distribution::normalize: Did not work correctly for authors that have subdirectories in their CPAN directory. Was counting slashes, am now also checking against a regexp. * cpl: make completion work with "get". * CPAN::Shell::ls: Reject arguments not matching [A-Z\-] to prevent /.../ expansion which neither worked nor is considered useful. * CPAN::Shell::h: include ls command * variable naming: rename $date_of_03 and $last_time to uppercase counterparts. Globals must stand out visually. * FAQ: Adding "How do I set up a local CPAN mirror that does not contain things I'm not interested in?". Thanks to Paul Moore for asking the question (but see above, the article was removed for further consideration on 2000-12-13) * CPAN::Author::id: add a sanity check, first letter must be A-Z 2000-12-10 Andreas J. Koenig * CPAN::Distribution::look: Protect against empty $dir and use safe_chdir instead of chdir. 2000-12-01 Andreas J. Koenig * get: finished the treatment of the NFS racing condition that motivated many of the recent changes in get(). Thanks for reporting and heavy testing to Steffen Beyer. * Releasing as 1.59_51. * normalize: protect against the case when normalize is called without argument. * Thanks to Jeremy Wadsack who read the first sketch of the documentation of the programmer's interface and provided helpful comments and additions. * Declaring 1.58_93 as 1.59 and releasing as such to have a stable baseline again. 1.58_93 had been integrated into the development track of 5.7.0 with patch 7737 on 2000/11/18. 2000-11-30 Andreas J. Koenig * CPAN::Distribution::get: removed a special case that was never documented and apparently never worked: when keep_source_where matched /^no/, we tried to delete the source again after an installation. * POD: documented expandany * CPAN::Bundle::inst_file: now takes the newest Bundle definition file it finds within @INC and ~/.cpan/Bundle/. Sets INST_VERSION as side effect. CPAN::Bundle::inst_version calls inst_file. * CPAN::Distribution::uptodate: New method. * CPAN::Bundle::uptodate: New method. Thanks to Jeremy Wadsack who discovered that an uptodate method for Bundles was missing. * POD: Wrote at least the headlines for all public methods to make a second step at opening CPAN.pm for programmers. 2000-11-28 Andreas J. Koenig * CPAN::Admin (CPAN::Shell::register): opened for XML, Tk, and Apache. * CPAN::Author::ls: include the author's ID in the listing to make copy&paste easier. * normalize: Allowed the special case "N/A ..." for bundles. * CPAN::Complete::cpl: made completion for bundles work on install et al. * localize: Encountered a C although has_usable returned true. Could not find out the reason, so I wrapped it into an eval. 2000-11-23 Andreas J. Koenig * Sending as 1.58_94 to Steffen, no release to avoid confusion. * Due to a bug report by Steffen Beyer I added a whole lot of debugging statements to get in the hope, I can find a reason why his copy misbehaves under 5.00503. * CPAN::Distribution::get: Fixed indenting in get(). Added $! to the error messages there. 2000-11-22 Andreas J. Koenig * CPAN::FirstTime::conf_sites: Added the option to download a MIRRORED.BY immediately even if the local one seems fresh enough. * POD: Lots of fixes spotted by John P. Linderman 2000-11-15 Andreas J. Koenig * Fixed an incompatibility with 5.00503 discovered by Ask B. Hansen. 2000-11-14 Andreas J. Koenig * lib/CPAN/FirstTime.pm: MyConfig/Config buglet during site-picking and more verbosity for selecting good arguments for make (Thanks to Larry Virden for the report) * print_ornamented: Made shell output ornamenting dependent on a global variable $CPAN::Shell::PRINT_ORNAMENTING. It is and will stay a rarely used feature, so a global to turn it on and off seems appropriate. For the record: this does not do anything but colorize STDOUT and STDERR differently for debugging if all messages are wrapped correctly. 2000-11-11 Andreas J. Koenig * Admin: Made the machine name of PAUSE a constant. 2000-11-10 Andreas J. Koenig * rematein: Enable dump of Author objects (was the useless silly message) * Two (temporary) global variables introduced: $CPAN::Tarzip::BUGHUNTING enables naughty code that may help track some bugs in Archive::Tar (already reported to SRZ). And $CPAN::Shell::ADVANCED_QUERY turns on a form of the query like C or C or C But this syntax is highly experimental and WILL change, do not rely on it. 2000-11-09 Andreas J. Koenig * CPAN::Module::userid: change to mean either CPAN_USERID from 02modules or userid from 03modlist. Up to now it only meant the latter. As both are always identical, we could save some space by renaming CPAN_USERID to userid. --> Todo 2000-11-08 Andreas J. Koenig * CPAN::Complete::cpl: Make completion work for locally installed bundles on the first try, not just the second. * CPAN::Complete::cpl: Make completion for authors work even when lowercase was typed in so far. * releasing as 1.58_90 * CPAN::Module::name: was an alias for &cpan_file. That made the m command slow without any visible advantage. C used to find the modules in the distribution HTML-Tree-XXX and now doesn't anymore. But this is misfeature as we have both and for that. * cpan_file: Fixed a bug that could instantiate an empty Author object. 2000-11-07 Andreas J. Koenig * format_result: Add a summary line at the end how many items in the set. * print_ornamented: Moved the special-case for fullname to print-ornamented to be prepared for other UTF-8 fields besides fullname (Try with C) 2000-11-06 Andreas J. Koenig * Released as 1.58_57 * CPAN::Shell::ls: I believe, ls is now fully functional, but it still needs some work on PAUSE to be perceived as bugfree. Thu left undocumented (but it's already useful as it is, even completion works; if you're interested: give it only authors as arguments). * CPAN::shell: Detect parse errors when Text::ParseWords fails without die()ing, like in C. * CPAN::Distribution::normalize: Try A/AC/ACALPINI/foo when the user says ACALPINI/foo. I have only tested for the C family and the C command so far. Need to find all places where the normalization is needed. * CPAN::Module::as_string: improved manpage parsing on files with CRLF in them. 2000-11-04 Andreas J. Koenig * Releasing as 1.58_56. * CPAN::Shell::local_bundles: Did not discover local bundle files if they were nested. Thanks to Ask B. Hansen for the report. * CPAN::Shell::ls: Started work on an ls command. Left undocumented because not yet finished. Needs mtime in CHECKSUMS file. * localize: Improved messaging when we try to download a compressed file instead of an uncompressed. * o conf: Made C to mean remove Module debugging from the current debugging settings. Handy when you turn on "all" and discover that Module is too noisy. 2000-10-29 Andreas J. Koenig * FAQ about readline: Thanks to Joseph Kewish who knew the correct answer. 2000-10-28 Andreas J. Koenig * untar: again change preference to tag+gzip to hunt down a bug in Archive::Tar. * Admin's register: Forgive when URI::Escape isn't installed yet and let it be installed while we're running. 2000-10-27 Andreas J. Koenig * Releasing snapshot as 1.58_55. * CPAN::Admin::register: do not run a get if the command line already contains more than one arguments. 2000-10-26 Andreas J. Koenig * Added documentation for CPAN::shell and term_is_latin. * CPAN::Author::fullname: convert to latin1 if $CPAN::Config->{term_is_latin} is set to true. * CPAN::Module::as_glimpse and CPAN::Shell::_u_r_common: enabled coloring of module names that are already registered in the module list. This feature bloat will have to go away in a future version, but for a while it might prove useful. The diffs between RCS 1.361 and 1.362 should then be applied reversed. The feature bloat is only visible when the global $CPAN::Shell::COLOR_REGISTERED is set, no visible changes are made otherwise. * Added CPAN::Admin in an extra file. The subclass is for CPAN admins only. For others it is an instructive programming example. I consider the programming environment still alpha and need feedback on its usefulness. E.g. I consider it ugly that CPAN::Shell::expand and CPAN::instance have such a B different interface. I hate it that testing C<$m->{RO}{something}> creates the RO slot. I'm unsure what one could make easier when expand() returns a list of objects instead of a single object. * cpl: made CPAN::Complete::cpl more flexible by assigning all commands to the global @COMMANDS and offering a fallback for the second word to modules and bundles when an unknown command is entered. CPAN::Admin takes advantage of this feature. 2000-10-25 Andreas J. Koenig * shell: The C<$term||=> change of 2000-10-20 broke the re-detection of ReadLine for fresh installations. Fixed that again so that both ways are possible: disposing the Stub interface and re-using an interface that is better than Stub. 2000-10-21 Andreas J. Koenig * CPAN::shell: Now takes two arguments, one is the prompt, the second is the default initial command line. * Released this snapshot as 1.58_51 * hosthard: applied a patch by Michael Dean to support wget. 2000-10-20 Andreas J. Koenig * CPAN::Distribution::containsmods: Did not return a value, now returns the contained modules * CPAN::Distribution::get: chdir back to initial CWD * CPAN::anycwd: new routine replaces all occurrences of replicated two-line code * shell: chdir-ing back to initial directory at end of CPAN::shell * CPAN::exists: added a config loader because everything depends on it. Will have to identify other places that need it. * shell: Assignment of a readline interface to term now is a "||=" rather than a "=" in case somebody calls shell multiple times. * Moved the call to read_metadata_cache from shell to CPAN::Index::reload so that (1) it isn't called so early and (2) programmers can enjoy its availability too. * CPAN::Config::commit: die when you can't write the config file. We did only warn, but it is more frustrating to repeatedly get the same questions asked than to get at least a good error message. Will have to catch some error conditions earlier. 2000-10-18 Andreas J. Koenig * CPAN::Module::as_string: up to now the MANPAGE attribute was only generated for installed modules. Now we try to read the manpage headline if a get has been issued so that a build_dir exists. This is helpful for exploring CPAN without installing anything, e.g. when you have no or only slow access to a WAIT server. * Releasing as 1.58 2000-10-15 Andreas J. Koenig * FAQ: two new FAQ items added: autobundle and readline 2000-10-07 Andreas J. Koenig * Setting Version to 1.57_68RC * POD: numbering FAQ items; rewording of FAQ item 6 about bundles; introduced FAQ item 7 about CPAN::Site. * CPAN::FirstTime::init: Making cache_metadata default to 1. * missing_config_data: Making cache_metadata a reason to rerun configuration. 2000-09-29 Andreas J. Koenig * CPAN::DESTROY: Protected the call to $gz->gzclose with an if defined $gz. Thanks to abigail for reporting the bug, apologies that I'm also not sure if this fixes the cause, or just the sympton. * has_inst: 2nd warning for not having installed Net::FTP silencified with a global (Thanks to Anno Siegel for the suggestion) 2000-09-16 Andreas J. Koenig * 1.57_67 is a release candidate. * FirstTime: rewording of the intro for the cache_metadata feature from experimental to beta. Leaving default to off. As it is still turned off, I do not add the feature to the "necessary" features in sub missing_config_data. Will do so when default changes to on. * untar: for running the pipe, the external programs gzip and tar are OK to use but for a pure uncompress I prefer to use our own method gunzip for maximum code reuse (fallback to external gzip is there anyway) and less use of system(). * hosthard: after Jost has approved that the code now is much more defensive against the install-an-inexistent-distribution errors, now the funkyftp programs are disallowed to process C URLs at all. 2000-09-12 Andreas J. Koenig * get: userid "anon" if cpan_userid does not provide one. * 1.57_66 for the sole purpose of testing the error provoked by the old lynx version. Next version will disable lynx for file: URLs and thus will doubly guard against the bug. * untar and gtest: enabled gtest with Compress::Zlib again, now with a test if the file size and buffer size are equal. In that case gtest returns false. untar now also uses gtest ahead of decompression to catch the error condition provoked by DB<5> x system "echo -n | /bin/tar xvf -" 0 0 The fact that tar returns TRUE on zero byte input could lead us to believe that we were doing a successful untar while in reality we had an uncompressed file that was completely bogus. Once again a big thank you to Jost Krieger who discovered this bug by feeding an inexistent distribution name to install() while he had an old version of lynx installed that did not discover the mistake and created the file as textfile containing an error message. 2000-09-11 Andreas J. Koenig * gtest: disabled Compress::Zlib because it seems to offer no method to test if a file is compressed or not. If a file was not compressed, it happily treats it "as expected" setting no error. I was so sure that I tested this when it was introduced. We really need a test harness. * get: New instance variable had_no_makefile_pl * get: New instance variable was_uncompressed to later use it for heuristics if we're on the wrong track. * If we write a Makefile.PL on our own, we now choose the NAME parameter more carefully. * Ask user if he wants to proceed if the CHECKSUM file does not contain data about a downloded file. * hosthard: Skip "file" URLs * hosthardest: eliminated unused code for is_reachable 2000-09-10 Andreas J. Koenig * Tarball 1.57_65 (63 and 64 were not uploaded because I found errors during testing) * Bundle::inst_file: cleanup * unsat_prereq: decision to accept any installed version if PREREQ_PM says 0 or "undef" or undef. * follow_prereqs: broke this new method out of make because I want to repeat it in test. Repeating the check in test has the advantage that the user is reminded in time that still some prereq is missing. 2000-09-09 Andreas J. Koenig * Tarball 1.57_63. * rd_modpacks: do not let bundles be both bundles and modules anymore. Seems like memory bloat without any value. * reload: $last_time was set too early to a new value. It seems to have never manifested itself as a bug, but we now do the more correct localizing of the newer timestamp until we have read all three index files and then set the timestamp globally. * reload and read_metadata_cache: extend the index protocol to memory so that whenever a new protocol is introduced, the index gets loaded into memory asap. * instance vs set: moved the code that creates the RO pointer from instance to set and commenting the set method to have this side effect. This was the cause for a very difficult to diagnose bug. Thanks to Jost Krieger for discovering wrong content in Metadata. 2000-09-08 Andreas J. Koenig * read_metadata_cache: More sanity checks. * _u_r_common: Added informational message about the number of matches in the database. * checklock: Checking $fh for undef. Thanks to Slaven Rezic for the report. 2000-09-06 Andreas J. Koenig * lib/CPAN.pm (expandany): Distributions always had the habit to spring into existence, that means, people could say test A/AN/ANDK/CPAN-1.57_60.tar.gz and got that thing downloaded if it existed on CPAN. Jost discovered this was broken. Fixed by replacing an expand() by instance() for distributions in expandany. 2000-09-05 Andreas J. Koenig * undelay: After a jumpqueue we must not continue because success is unlikely. We set $self->{later} and the queuerunner calls undelay. * Bundle::inst_file: reviewed the code after Jost pointed out that it was suspectly formatted. Re-enabled the newer, better code that allows for multi-level Bundle package names. * Distribution::install: improved wording for the case where make failed (Thanks To Jost Krieger for spotting) * Bundle::as_string: CONTAINS was rendered as ARRAY(...) * expandany: added a scan for bundles as one could not install bundles immediately after program start but only after a "b" command (Thanks to Jost Krieger for the bugreport) * color_cmd_tmps: protection against deep recursion with a panic message. * expand: temporary introduced the "=" hack to eval code on the command line repeatedly. Now disabled again to prevent surprise. But as a reminder, I did run this command successfully before disabling: cpan> m '=length($self->id)==16 && substr($self->id,12,2) eq "::"' Module Bundle::HTML::EP (N/A) Module Games::Cards::Tk (A/AK/AKARGER/Games-Cards-1.45.tar.gz) Module Games::Worms::PS (S/SB/SBURKE/Games-Worms-0.61.tar.gz) Module Games::Worms::Tk (S/SB/SBURKE/Games-Worms-0.61.tar.gz) Module Lingua::Stem::En (S/SN/SNOWHARE/Lingua-Stem-0.40.tar.gz) * color_cmd_tmps: we're now coloring all objects when they enter the queue and we uncolor them when a command is finished. We just need a hook now to check if we really uncolored them all. What should the hook be? i ="$self->{incommandcolor}>0" 2000-09-04 Andreas J. Koenig * color_cmd_tmps: rename the method reset_badtestcnt to color_cmd_tmps because it turns out to be the right place to reset sponsored_mods and maybe install_failed too, and if we mark them as dirty when used and as clean when reset, we might even succeed to have a tidy kitchen. * untar: backed out the preference towards Archive::Tar. It seems from reports I get and one hiccups I witnessed myself that Archive::Tar is not stable (sorry, no bugreport available). With the current state of CPAN.pm we cannot afford the additional risk from an external source. * Queue: backed out the change from string based queue to object based queue. I made some mistakes during transition and everything stopped working. This seemed the easiest way out. * reset_testcnt: introduced attribute badtestcnt for Modules, Bundles, and Distributions and method reset_badtestcnt to get rid of that counter before and after a command. During the command we inc the counter on unsuccessful make test commands. But we do not reset unknown dependencies. During 'make test' we up this counter if test fails and consequently do not repeat the testing. This should now safe much time if, say LWP tests fail and we have all of WWW::RobotRules, File::Listing, LWP, HTTP::Negotiate, HTML::Form, and LWP::Simple in a Bundle or reach the stuff via a dependency. Former versions would have repeated the testing ad nauseam. We now refuse on the second occasion and the user may be required to run something to finish building. * prereq_pm: split of method needs_prereq into unsat_prereq_pm and prereq_pm and letting the prereq_pm be stored in the object * cpl: added readme and dump to the list of supported keywords for completion * POD: documented the dump command in the debugging section of the manpage. Simplified the debugging section. * changed queue to work with objects instead of object IDs making it more natural to deal with them. Having the string representation there bit me several times in the past. At the same time shuffled some code from the queue-running loop to the queue-constructing loop thus catching errors before starting to work on the queue. * renamed dotdot_onreload to paintdots_onreload. Changed $redef from global to lexical. * lib/CPAN.pm (dump): made dump more userfriendly by adding a print statement, it is now a regular command to type C. But still left undocumented to augment comments from those who read the ChangeLog (That's you:) 2000-09-03 Andreas J. Koenig * heavy re-structuring of Metadata in memory with high potential for breakage. All metadata are now split into a readonly and a read-write part and all objects have a pointer to the readonly part. The Metadata cache logic stores only the readonly part, so that no session-specific data will ever be found again in a future session. * AUTOLOAD: removed the autoloader support that was never used and seems not very intersting anymore with today's hardware. RCS: 1.325 * removed all the %vd comments. * shortened all lines longer than 80 characters to make future patches better readable. * read_metadata_cache: Introduced protocol version number for Metadata. * removing a 'no strict' around the shell loop I do not recall the reason of. * lib/CPAN.pm: Folding two occurrances of use vars into one. 2000-09-01 Andreas J. Koenig * lib/CPAN.pm (readable): After release spotted en error in the FAQ about not being root. Improved it a little, added another FAQ and gave it the VERSION 1.57_57. * Releasing as 1.57_56 as candidate for 5.7.0 * missing_config_data and FirstTime: declared cache_metadata as not yet stable enough to turn it on per default. The reason is that I want the official external data from CPAN and the generated internal data from the current session clearly separated and this will take another working session that I cannot provide before 5.7.0. 2000-08-31 Andreas J. Koenig * POD: Added two FAQs about not being root and about the look command. * Replaced all backticks that were misused in documentation or dialogs as pretty left quotes by single ticks. I think it was Markus Kuhn who said so. * float2vv: added conversion of float to visible v-string for comparisons. Added some tests too. * MD5_check_file: Now die instead of print when the MD5 checksum mismatches. * untar and unzip: preferring Archive::Tar now that it works again. Adding extra security check by testing for absolute path and updir. * unzip_me: made it symmetrical to untar_me and added a few Signal checkers to both. * hosteasy/hard/hardest: now checking for $Signal and giving up in several places within the download loop. Thanks for the suggestion to Johan Vromans. I'd be ready to ask a question where to continue but it turns out to need careful wording because the loop is deeply nested: method, host, and within the methods LWP/Net::FTP or lynx/ncftpget/ncftp. Simple wording might cause more grief than just giving up. * localize: now setting $ENV for proxies if config has values for them. Thanks for the bugreport to Johan Vromans. * checklock: changed comment in the code 2000-08-30 Andreas J. Koenig * Applied 2 doc patches by Elaine and Jarkko. * Call to force now wants a first argument and this was not there. This was the reason why force DIST didn't work. Thanks to Jost Krieger for the bugreport. * install /xyz/ always needlessly went down the wrong path of trying to download "/xyz/". We're now catching this mistake earlier. Thanks to Jost Krieger for he idea. * changed the messages on a failure of make in test and install from "Oops" to something much more certifying. Thanks to Jost Krieger for the idea. * in vcmp short circuit for equality for speedup. Thanks to Jost Krieger for the idea. 2000-08-27 Andreas J. Koenig * Releasing as 1.57_53 without enough testing in the hope that I can test more the next days and maybe others can test a little. * CPAN::Distribution did not handle the force_update attribute correctly: it was never reset to false. Tried to fix that at the end of sub install and by limiting the scope of the force_update attribute to install, not to make anymore. Thirdly, the places where we leave the make, test or install by means of the signal handler, we also reset force. * Added a test for CPAN::Version::vcmp. * lib/CPAN/FirstTime.pm (init): corrected spelling (Thanks to Ask B. Hansen) 2000-08-25 Andreas J. Koenig * rd_modpacks: track deletes on every reread, otherwise the metadatacache won't forget a thing ever. * Fixing Distribution->clean which was broken in that it set "force_update" leading to a mess when the user later tried to build this dist again. Thanks to Jost Krieger for spotting this. * Minor cleanups * CPAN::Version::readable now picks the head of the string * Storable::store => nstore. Thanks to Tim Jenness for the hint 2000-08-21 Andreas J. Koenig * Detected code duplication in CPAN::Shell::o and CPAN::Config::edit. Moved everything to CPAN::Config::prettyprint * Introduced package CPAN::Version which fixed and extended the support for v-strings. Old perls should not be affected at all and new perls should be protected against broken displays. New perls should also "do the right thing" as soon as the index files write "v1.0" for the literal v1.0 . Seems now feature-complete to me. Next thing to do is upgrade PAUSE and see what happens. * Applied a patch by Slaven Rezic to allow cacheing of the metadata from the index files via Storable. 2000-08-16 Andreas J. Koenig * Fixed numerous chdir that were not checked for success. 2000-08-13 Andreas J. Koenig * Thought about v-strings and their impact. Marked the relevant places in the code with "%vd" and applied some more or less simple changes to try a few things out. See Todo for a few memo sentences. At least diagnostics.pm is now reported fine as 1.0 again. * Added support for Archive::Zip. The less external programs needed the better (?) 2000-08-11 Andreas J. Koenig * Changed all occurrences of $ in regular expressions to (?!\n)\Z which is a 5.004-save equivalent of \z. Thus patch 5406 to the perl core is re-integrated after it had been thrown out on 2000-03-25. * isa_perl logic was duplicated in CPAN::Distribution::isa_perl and in CPAN::Shell::_binary_extensions. Made the latter use the former. Also extended the Distribution object with CPAN_COMMENT that can be set from the "02..." index file. If that comment matches /isa_perl\(.+?\)/, then it is a perl and $1 is the version. 2000-08-01 Andreas J. Koenig * Quick bugfix release 1.56. Thanks to Bruce Barnett who showed me that I had forgotten debugging statements in the CPAN::Module::inst_version method reminding me also that unpatched 5.6.0 still produces warnings where it shouldn't. A quick fix is in and I release that as 1.56 immediately. 2000-07-30 Andreas J. Koenig * Made completion output for a,b,d,m sorted. I have no idea when this sorting was lost or if it ever was there. * Set version number to 1.55 and going to release today or tomorrow after testing. * o conf was not prepared for hash refs. * Fixed propagation of error report during Bundle installation. Until now recursive bundles reported each bundle's faiures separately. Now callers in addition report what called bundles reported. This still doesn't seem perfect because the report can come too early but at least it is better now than it was and if one reruns the install command on a bundle, the report will be correct on the second run. 2000-07-29 Andreas J. Koenig * Applied a patch by Daniel Muiño that was submitted to p5p where a my($msg) declaration was conditional. * Applied a patch by Anno Siegel who encountered a rarely seen bug in the download logic wrt. gzipped vs. not gzipped downloads. He cleaned up the variable names too in that area and I cleaned some more variable names after him. I believe, the variable names there were really inappropriate/misleading. * Following a suggestion by Michael G. Schwern, I made "ask" the default for prerequisites_policy. The old default of "follow" seemed to intimidate some new users, he said, and I agree, the default should be as little intrusive as possible while still being useful. "ask" seems the right choice for a first time user. 2000-06-23 Andreas J. Koenig * Replaced the undocumented old semantics of C<$CPAN::Dontload{"Compress::Zlib"} = undef;> in favor of the more natural C<$CPAN::Config->{"dontload_hash"}{"Compress::Zlib"} = 1;> and documented that. * Eliminated all occurrances of E<39> in the POD because pod2html has a bug that mistreats them and we do not really need them. Thanks to Daniel S. Lewart for reporting his. 2000-06-18 Andreas J. Koenig * The "a" command now always converts its arguments to uppercase. 2000-06-17 Andreas J. Koenig * Introduced has_usable which is pickier than has_inst. Thanks to a report by Ian Phillipps who reported the Net::FTP/Net::Config connection: e.g. upgrading the processor deprecates Net::Config but not Net::FTP. * Applied a patch by Ben Tilly that changed the exception of isa_perl in CPAN::Distribution::make() from dying to warning so that bundles can continue if they contain core modules. 2000-04-15 Andreas J. Koenig * Thanks to "Magnus Ullberg" who reported that configuring lynx with arguments actually works, so I documented it in the firewall section. 2000-03-28 Andreas J. Koenig * Change ${DISTVNAME} to $(DISTVNAME) in the Makefile.PL because nmake can't deal with the former. Thanks to David P. Mott for the report. 2000-03-25 Andreas J. Koenig * Change all \z back to $ because \z is not in perl5.004_05. Thanks to Paul Schinder for the report. Update: Later Ronald Kimball posted the better solution to P5P. He said "'\z' is equivalent to '(?!\n)\Z' and '\Z(?!\n)', which should work under 5.004." 2000-03-22 Andreas J. Koenig * Both Andrew Speer and Michael G. Schwern sent me a patch to the effect that version numbers in PREREQ_PM are honoured. Till now we installed the newest version for all PREREQ_PMs. I applied a mishmash of the two patches. 2000-03-20 Andreas J. Koenig * Found bug in the changes made on 03-14, the return value of &CPAN::Config::edit must be true. 2000-03-17 Andreas J. Koenig * lib/CPAN.pm: no lib "."; since we do a lot of chdirs *and* do a lot of demand-loading, we need to prune the current directory. I wonder how everything could work so smoothely with the default INC path. 2000-03-14 Andreas J. Koenig * Editing the $CPAN::Config hashref had always tried to keep the type of hash values but that was errorprone. Switched to matching /list\z/ in the key instead. * Changing the urllist now triggers resetting of Thesite and Themethod. Maybe this needs a more general solution that resets any cache of any variable, but for testing the effect, I start with these two. 2000-03-11 Andreas J. Koenig * Added an FAQ section to the manpage. First 2 Fs deal with UNINST=1. 2000-03-10 Andreas J. Koenig * Updated the isa_perl checks to match 5.6.0 style. * The 02modules... file is now verified against its Line-Count header. The other index files need new headers to verify them. * Without any net access we did not make it through the configuration dialog. Fixed now. * Apply patches 4416, 4419, 5406 and 5409 from perl-5.6.0 candidate. 2000-01-08 Andreas J. Koenig * Releasing 1.52 which is a pure bugfix release. New functionality is there but not used or not documented. Should be very stable. 2000-01-03 Andreas J. Koenig * Added a CPAN::Distribution::containsmods method that lists all modules within a distribution. * reload index now removes the whole old index. No, wait a minute, that's stupid. We want to keep session info. This is just a temporary measure to improve debugging. What we need is "wipe index" or some such and we need it for debugging only. [Backed out] * Text::Wrapping output of "o debug". * Fixed an uninitialized warning in CPAN::Shell::expand() * Protected call to close() in DESTROY with "if defined". * Allow "#" comments in a bundle definition section. * Text::Wrapping bundle install summary. 2000-01-02 Andreas J. Koenig * Overhauled the help page that gets output on "h", documented "get", undocumented "install r", it never worked (Thanks to Peder Stray for spotting) * ncftpget made to work again by changing directory before downloading (spotted aeons ago by Jarkko Hietaniemi) 1999-12-31 Andreas J. Koenig * Applied a patch by Paul Schinder which corrects the computation of disk usage on the Mac. 1999-12-29 Andreas J. Koenig * Increased 30 to 60 in FirstTime where we "protect" against old MIRRORED.BY files and protect against endless loop if MIRRORED.BY remains older. Thanks for spotting the bug to James P. Goltz . * Applied patch from Doug MacEachern that implements cvs_import without documentation. 1999-10-26 Andreas J. Koenig * Joe Schell sent me a fix that disabled processing of bundles on NT. 1999-10-15 Andreas J. Koenig * Fixed a typo reported by Stas Bekman 1999-10-01 Andreas J. Koenig * Added a posting by Larry as a comment to rethink use of $SIG{__DIE__} 1999-08-01 Andreas J. Koenig * Applied a patch by 1999-06-13 Adrian Aichner (hosthardest): Initialize $netrcfile with $netrc->netrc. (untar): Attempt piping gzip output to tar irregardless of $OSNAME. Run commands separately in case of error. * Applied a patch from Ilya Zakharevich for unbuffering STDOUT and STDERR to get sane behavior in pipes. 1999-07-30 Andreas J. Koenig * Fixed a floating point issue that came up with DBD::ADO. See stringify comment in CPAN::Module::inst_version. Thanks to Lupe Christoph and Michael G. Schwern for the reports and Tim Bunce for the suggestion how to fix. * Fixed my email address in the manpage 1999-07-28 Andreas J. Koenig * CPAN::Nox was broken, probably since 5.005's new AUTOLOAD behavior. Thanks to Marc Lehmann for the report. 1999-05-23 Andreas J. Koenig * The force pragma no longer removes its record of prerequisites that it has already dealt with. This removes a potential for infinite loops when force is in effect. * Added a CPAN::InfoObj::dump method that can be used like so: ! print expand("Distribution","JWIED/DBD-CSV-0.1021.tar.gz")->dump or ! print expand("Module","DBD::CSV")->dump Not particularly userfriendly, thus left undocumented. * Added a check if Makefile.PL really wrote a Makefile. 1999-05-22 Andreas J. Koenig * Applied another patch by Ilya for return value of gzreadline with regard to -1: <19990522144647.A15778@monk.mps.ohio-state.edu> * Applied Ilya's patch for MD5_check_file for READ returning -1. 1999-05-08 Andreas J. Koenig * Improved error message if cpan_home can't be created (bug report by Jarkko Hietaniemi ) 1999-04-19 Andreas J. Koenig * Added a note about the correct format of file URLs * Added documentation to CPAN.pm for how to write cronjobs that watch The CPAN (thanks to Brian Moseley for asking) * FirstTime: initialize urllist to be an empty array, because otherwise it could accidentally become a string * Renamed Changes file to ChangeLog and switched format to emacsens ChangeLog format Local Variables: coding:utf-8 End: