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

March 1999 after 1.48

FirstTime now detects empty MIRRORED.BY.

Updated documentation about private bundle definitions, reflecting the new dependency capabilities.

Removed the documentation for keep_source which was a leftover from very old times.

February 1999 after 1.47

Bundle::CPAN didn't reflect File::Spec, nor did the PREREQ_PM

Queue was not reset at the end of the shell loop.

mkpath in Firsttime could let CPAN die. Is caught now.

Loading of config file now deferred till the first command calls CPAN->all_objects. all_objects is the renamed method all() BTW. I renamed it because I prefer to have method names that are not too common words. If that causes any difficulties, please let me know.

Chris Nandor sent a patch to enable a look() replacement for the Mac (which resides in MM_Mac.pm)

New feature: when Term::ReadLine::{Gnu,Perl} is not available, probe for it repeatedly and if it's there use it immediately.

Finally support for T::R::Gnu added. On my installation, I now must use ^J instead of RETURN because RETURN prints a ^M. I have no idea who's to blame for that. Suggestions for patches welcome.

Probing for LWP::UserAgent instead of LWP before we run LWP::UserAgent->new.

January 1999 after 1.46

Robin Barker <rmb1@cise.npl.co.uk> sent me a patch to Firsttime.pm where it had asked the wrong question (Cache instead of Policy).

January 1999 after 1.45

Chris Nandor sent me patches over 1.45 to make us MacOS compatible!

January 1999 after 1.44

Took a stab at dependencies. A separate package CPAN::Queue queues the items to be built. Bundles work unaltered, mudules have the ability to let others pass (queue jumping). Typically they let the prerequisites go to the head of the queue before they try to make themselves. Seems to work so far. I release a version 1.44_51 to let the community test before I try to up the version number.

1.44_52 is a cleanup. The needs_prereq code now only returns the prereqs u to the caller and doesn't contact the queue directly. That way the caller can decide to queue them all and requeue himself what he does. jump_queue now accepts an array of items. Code seems compacter and easier to debug.

Checking $^O for /win/i and not for eq "Win32" because apparently some say Win32, others say MSWin32. Needs to be bugreported to p5p.

1.44_53 fixes a bug found by Michael G. Schwern <schwern@pobox.com>: Parsing of the PREREQ_PM in the Makefile fails if the module names contain colons. As my patch to MakeMaker is being questioned, I also back out the code for the future MakeMaker.

1.44_54 adds prerequisites_policy options and fixes a bug spottet by Michael G. Schwern. Moreover, I abandoned the Safe compartement within needs_prereqs and replaced it by a regular expression.

In 1.44_55: Spider Boardman <spider@Orb.Nashua.NH.US> sent me a patch that fixes a problem he had with forking during inactivity_timeout (Message-Id: <199809291706.NAA10786@Orb.Nashua.NH.US>).

Applied a typo patch by abigail@fnx.com sent to P5P.

Ater 1.44_55 Michael G. Schwern sent me a documentation patch for the manpage to reflect the dependency tracking. He also reveiled the nonsense in a sleep 2 statement that I consequently removed. And he motivated me a little to write a comment on how I imagine that queuing actually works. The comment is in the source code.

Cleaned up the needs_prereq routine, it had lots of unused code.

December 1998 after 1.43

Greg Ward <gward@ase.com> sent me a patch to make read_mirrored_by() user-friendly. Selection of sites is now done in three layers for continents, countries and sites separately.

Bharat Mediratta <bmedirat@calicotech.com> sent in a patch that inserts a '<' file redirector in CPAN::Tarzip::untar which helped him to work with a strangely broken gzip program on his Windows machine. Later Eric Von Zee <evonzee@tritechnet.com> sent me a note that there is a version of tar for Windows that doesn't work with pipes at all. Changed that again, so that on windows we uncompress the file and then untar it in another system() call.

Made a few formatting changes to help cperl-mode.

December 1998 after 1.42

1.42 had a debugging line in the middle of the code, so a very quick 1.43 had to go out.

Added a simple cpan script that calls the shell. Thanks to Jochen Wiedmann <joe@ispsoft.de> for giving me the kick.

Applied patch by "Douglas L. Schrag" <doug@walker.schrag.mi.us> posted to P5P as with Message-Id <Pine.LNX.3.96.981205005516.1957A-100000@walker.schrag.mi.us> that fixes a problem with using lynx as ftp back end.

December 1998 after 1.41

Win32 could not process 2>&1. Fixed now. Thanks to Randy Kobes <randy@theory.uwinnipeg.ca> for the report.

'make test' seemed to hang because configuration was not yet done. Changed the test to run without configuration.

July-November 1998 after 1.40

Added documentation by Graham Barr about perl on firewalls. Thanks, Graham!

Added documentation how I manage the populating of a perl freshly installed perl.

Keep a backup copy of configuration files during commit.

Applied a patch by Norbert Goevert <goevert@amaunet.informatik.uni-dortmund.de> to fix the "CPAN.pm overwrites Bundle/CPAN.pm" bug. Thanks, Norbert!

Introduced a signal PIPE ignore in CPAN::FirstTime so that hitting 'q' during sitelist cannot throw you out of the whole program. Thanks to chris patti <cpatti@bur-po1.bbn.com> for the report.

Applied a patch by Slaven Rezic <eserte@cs.tu-berlin.de> to introduce policies how often the cache is scanned for sizes. Currently implemented "atstart' and 'never'. Interesting further options should be 'after_install' (i.e. only after an install) and 'threaded' (i.e. in a low priority thread).

Added a summary feedback at the end of a bundle install for easier checking of what went wrong.

Don't require CPAN::Nox in CPAN::FirstTime::init if there is already CPAN.pm loaded. Thanks to Albert Dvornik <bert@genscan.com> for the bugreport.

July 1998 after perl5.005 is out which contains 1.3901

Improved documentation of Bundle::CPAN, upped version number to prevent accident where CPAN.pm overwrites Bundle/CPAN.pm.

Added a warning when CPAN::Bundle->contains() returns zero entries.

Disabled a shortcut in find_bundle_file() that was responsible for the CPAN.pm overwrites Bundle/CPAN.pm bug.

Added h to DSLI statuses L and I.

Added some blurb for CPAN::WAIT in the manpage.

Changed the shell loop to check for question marks with a regex instead of eq().

July 1998 after 1.3901

Added support for ncftpget and don't use ncftp anymore if ncftpget is available.

In the routine hosthard, add an optional < /dev/null , so that ncftp doesn't hang. I fear this would introduce incompatibilities with other OSes, so it must be turned on explicitly. [Left undocumented]

Larry Virden reports that nonsense files can result from bad user input. Fix: Delete files after localize() if we didn't succeed.

July 1998 after 1.39

Insert a few local($/)="\n" to work around a bug in threaded perl. Sarathy puts this version into 5.004_72 as 1.3901

July 1998 after 1.38

Folded in Ilya's changes to the CPAN::FirstTime that comes with perl.

June 1998 after 1.37

Applied a patch by Lupe Christoph <lupe@alanya.m.isar.de> that fixed a newly introduced bug in FirstTime due to the recent %Config "fix". The recent fix introduced a check of %Config for external programs tar, gzip, etc. This fix revealed that Config.pm does not check for many of these externals but nonetheless defines them as "". Lupe introduced more checks to guard against such Configs.

June 1998

Made help an alias for h (Thanks to Stig HackVan <stig@hackvan.com> for the hint)

Constant functions in Compress::Zlib now called with FOO() instead of &FOO.

"Preston L. Bannister" <preston@home.com> reported two Win32 problems in CPAN::FirstTime: don't test for existance of exe files and try to determine make from %Config. Fixed.

Following a suggestion by Tkil <tkil@scrye.com>, I made bye and exit aliases for quit.

Thanks to a bug report by Andrew Johnson <ajohnson@gpu.srv.ualberta.ca> tracked the buggy translation from distribution names to authors' names after the authors' directories restructuring.

Thanks to a suggestion by Jarkko Hietaniemi, added output of the author's email address in several places, so the users can pester them more easily.

May 1998

Courtesy Mark Conty <mark_conty@cargill.com> patch to let the funkyftp programs deal with any protocol, not only ftp. We'll see how well this works out.

April 1998

Disables Compress::Zlib with CPAN::Nox.

Added email address to ``Contact Author'' message, so they are encouraged to write them immediately.

Suppressing ``There's a new CPAN.pm available'' when they are already trying to install exactly that.

February 1998

Fixed the logic when to use Archive::Tar and when to use a system call. Priority takes the system call because Archive::Tar is slow. If tar or gzip isn't there, we use the modules. Besides, this fixes a horrible bug in 1.35 that breaks havoc if Archive::Tar is there but Compress::Zlib is missing. That's the reason why I make this release so quickly. Thanks to D Roland Walker <walker@sky.nlm.nih.gov> for the analysis.

January 1998

Activated the code for Archive::Tar support. After Sarathy's updates to Archive::Tar it seems ready for prime time.

Retrofit for 5.003 again.

FirstTime: Moved the configuration of proxies up, so they are configured before the URLs come.

January 1998

Renamed packages CPAN::Gzip and CPAN::Tar to CPAN::Tarzip.

Discovered that version 1.33 was broken for modules that want to implement a dialog in Makefile.PL. Released 1.34 with a step back to calling system() for the 'perl Makefile.PL' call instead of the proposed open(PIPE).

January 1998

Larry Virden reported: "cpan> install Image::Colorimetry" doesn't give an answer at all. We are more verbose now.

Applied a patch by Ilya Zakharevich to improve the documentation.

Simplified CPAN::FirstTime for Newbies (automatic configuration available), advanced users (the MIRRORED.BY list is available for selecting CPAN sites) and myself (code overhaul).

Made the output of 'o conf' more verbose: now tells us which Configuration files have been read.

Added a Gzip abstraction layer that works with Compress::Zlib as well as with the previously used system().

Added support for Archive::Tar. I had to comment it out again, because I found a bug in Archive::Tar.

Updated Bundle::CPAN to reflect Compress::Zlib and Archive::Tar.

Documented how the signal handling within the shell is supposed to work.

Added a Signal breakpoint to 'r' and 'u' command.

Changed the 'perl Makefile.PL' call from system() to open().

January 2, 1998: v1.32

This release fixes the most urgent bugs reported during the last 5 months. See the Todo file for unfixed bugs and planned features. Please let me know if your bug report isn't addressed in one of the "Changes" or "Todo" file. Let me know, if your favorite feature request doesn't show up there. Maybe I've overlooked something. Thank you.

CPAN::Config::load no longer changes @INC (bug spotted by Ed Peschko)

Build a new perl only when force is in effect or they asked for it via the Distribution name. (Thanks to Ulrich Pfeifer and many others for reporting this)

Reenabled the Cache Manager that was disabled for a long time, I don't know why. Thanks to Paul-Joseph de Werk <Paul.deWerk@MCI.Com> and Hallvard B Furuseth <h.b.furuseth@usit.uio.no> for spotting the bug.

Fixed a "Use of undefined value" warning in the completion when words==2.

Fixed the signal handling code to go back to the cpan prompt and not leave the shell loop. Still a second ^C is interpreted as user panic which causes a cleanup and bye bye. (Thanks to Tom, Jarkko and Ilya for reporting the deficiency in the old code)

If LWP is present, Net::FTP is now being tried directly. It turned out that some networks setups work well with only one of them, not the other (Thanks for the reports from e.g. Alan Burlison, Stephen Zander, Phil Aston, et al.).

If a package comes with a Makefile but no Makefile.PL, we now try to use that Makefile. Previously we overwrote the delivered Makefile. (Thanks to Larry Virden for spotting that)

The MANPAGE headline now gets extracted from a .pod file if the .pm file doesn't contain any.

October, 1997

In CPAN::FTP::hosteasy no longer skip Net::FTP when LWP is available. Thanks to Alan Burlison for the report.

September, 1997

Made it 5.003 compatible again.

Applied a *big* documentation patch by Larry Virden. Thank You, Larry!

September, 1997

Hugo van der Sanden sent me a patch to (a) ignore a SIGPIPE when in the readme, and (b) enable the cache to be used as an incomplete CPAN site that in turn offers its files via ftp. The index files are now stored with their original names instead of the 8.3 counterparts. I very much like this new feature. Thanks, Hugo!

still September, 1997

is_reachable had to go again, firewalls may not allow us to ping

sorting of hosts did lead to some use of undefined value warnings -> fixed

Released as 1.3101

September, 1997

Fixed Bundle::Foo::Bar. More than one level deep nesting could not be read. Thanks to Jarkko Hietaniemi for the hint.

STDOUT/STDERR abstraction layer introduced to allow a Tk frontend to do its own output. Current output producing methods are myprint, mywarn, mydie, myconfess. I don't know how many of these will evolve. I'm coordinating this development with Nathan Patwardhan from O'Reilly who is likely to produce something along Tk or so. There's a routine print_ornamented where colorprinting may be turned on manually to allow easy debugging. Please see the code. Please speak up if you have an opinion on that matter.

Introduced the use of Net::Ping to check for reachability, because the timeouts seem too long for Net::FTP or LWP::Protocol::ftp.

Allowing continuation lines in the shell.

Improved method readme for packages without a README, but still it hurts to use ncftp and lynx. But still we can't be sure that we don't need ncftp or lynx, e.g. for firewalls.

CPAN::FTP::localize broken into 4 routines that should be accessible in any order. If we encounter the first successful download we remember both method and host and try to stick with it. I'm not in favor of making this accessible publicly as I regard it as heavily session-dependent. (Thanks to Martijn Koster for the suggestion)

Fixed unnecessary recursion in has_inst(). An eval {require...} should do in any case.

August 28, 1997

Jarkko's suggestion for a better message when they type an unknown command: Unknown command "..." Type ? for help.

August 21, 1997

Always try file: URLs first (except for index files) to avoid traffic when we have the file already on a CDROM somewhere.

August 11, 1997

Tidied up the inheritance of CPAN -> MM. In a future version this inheritance will go away and MM will be just used statically.

Now delaying the require CPAN::WAIT until somebody really runs a w* command.

CPAN::Module::cpan_version now also returns the string "undef" whenever we can't determine which version is out there.

Now trying to get files as gzipped files earlier immediately after we fail to get a file and that file has no .gz suffix. Earlier versions delayed this try until we had visited all hosts in the urllist.

August 2 1997

Retrofit for 5.003 again (thanks to Vladimir Alexiev <vladimir@cs.ualberta.ca> for the patch)

Touch files back to 1997. There were files with timestamps 2020 due to an error on my side.

Protocol change in the file 02packages on CPAN. A version of 0 is OK from now, a version of "undef" is an unrecognized version. This means that with the upcoming release there will only few "undef" versions be reported, because we have to tell CPAN to re-investigate all "0" versions, and that'll probably take some time.

Fixed a bug in Bundle when we have no clue what Bundle they are talking about.

Fixed completion for array options. Try ``o conf urllist TAB''.

Reordered sequence how we try to access an URL: first we try all URLs with LWP and Net::FTP, then we switch to lynx and ncftp, last resort is ftp. Introduced new subroutine talk_ftp to factor out some duplicate code.

Made code clearer wrt gzip/gunzip during lynx and ncftp calls.

July 1997

Applied a patch by Ilya Zakharevich <ilya@math.ohio-state.edu> to use binmode before checking the checksum.

Got "cwd" patch from Ilya and accomodated it by introducing CPAN::cwd and CPAN::getcwd.

Eliminated the hasLWP, hasFTP, hasWAIT, hasMD5 routines in favor of a runtime solution with a single has() method. This makes it possible use the packages immediately after installation without restarting CPAN.

Major code review under the light of a new AutoSplit.pm. AutoLoading doesn't work yet, but we're closer, I hope.

Updated Bundle::CPAN to fit better current needs and changed the initial prompt to suggest Bundle::CPAN instead of just the Term family.

Skipping lynx, ncftp, and other external programs if they aren't defined or empty strings.

June 1997

After carefully checking which changes have been made in perl5.00401, I dare to release what I'm currently working with as 1.25.

Many small improvements have been made, but several bigger things are still missing.

May 1997

Richard L. Maus, Jr. <rmaus@monmouth.com> patch that adds -c switch to ncftp.

Improved CPAN::FirstTime to better check for valid options.

Removed a stupid -x check on external ftp programs that hindered executing of programs in the PATH.

Improved debugging to inhibit "use of undefined..." messages.

Improved renaming to .bak files and renaming back in case we cannot download for some reason.

Now advertise Bundle::libnet instead of Net::FTP.

Improved debugging and error checking of system calls, especially added a test after a download if the file has >0 bytes (lynx returns status 0 despite some errors).

Added support for Foo.pm.gz files that can still be found on CPAN.

April 16 1997

Applied patch by Achim Bohnet to the TRL logic (To: perl5-porters@perl.org Subject: CPAN & TRL-Gnu Date: Fri, 04 Apr 1997 10:09:03 +0200 From: Achim Bohnet <ach@rosat.mpe-garching.mpg.de>) which was already in 5.003_97e btw.

Fixed leading whitespace bug discovered by Karl Glazebrook <kgb@aaoepp.aao.gov.au>

March 31 1997

Fix bug with Bundle files that are not in the distribution's root directory.

Added tolerance when a file is available in an older version but cannot be retrieved for some reason. (Suggested by Dale Amon and Ulrich Pfeifer)

Fixed the duplicate writing of a Makefile and experimented with alternatives in the inactivity_timeout code. Thanks to Randal Schwartz and Larry Virden for continued heads up on this.

Feb and March 1997

Speedups during reading of the indices (Revision 1.125-128).

Tiny speedups of CacheMgr. Elimination of clean_cache and substituing a call to force_clean_cache. Changed a couple of debugging statements.

Improved feedback upon the invocation of a FirstTime dialog: we tell user which variables are missing.

Beautified spacing with the help of Ilya's newest cperl-mode.

Made the use of Cwd::cwd configurable. Default is ->cwd, but ->getcwd makes sense on some non UNIX systems (hint by Dominic Dunlop).

Added an __END__

Improved message "don't know what it is" with a hint to try "i" command.

External programs are now run even more blindish. No check if they look executable before we run them.

Released 1.22_01.

Feb 11, 1997

Wrong "Unknown argument" message when argument was lowercase fixed.

Better help for "reload".

Fixed the mysterious "loss of ReadLine" bug which was really a hidden call to $Suppress_readline++ :-(.

Fixed Config->{wait_list} becoming larger and larger.

Reading 03modlist.data.txt with $/=undef now (Thanks to Dominic Dunlop for the hint).

Added the somehow lost display of "CONTAINS" for bundles.

Released 1.21

Feb 5, 1997

Changed warn to print for the "Reading..." messages.

1.19 issued the ->load command too early, so inheritance was not yet set up correctly. Now later.

Inserted the -Mops test suggested by Tim Bunce. Backed it out again, because it caches too many Makefie.PLs. Restructured CPAN::Distribution::make preparing for better (i.e. arbitrary) safety handlers. Not yet finished.

Workaround for bug in _25: return statements at the end of subroutines.

released 1.20

Feb 3, 1997

With ReadLine suppressed, CPAN didn't exit of EOF. Fix by Roderick Schertler <roderick@gate.net> applied.

Feb 2, 1997

Ulrich Pfeifer reports another permission problem with the Config file. Fixed.

Found another $^X problem and fixed that too.

We now try to give sensible diagnostics when the CHECKSUMS file is missing or incomplete.

Included a Bundle::CPAN file.

Released 1.18.

Feb 2, 1997

Now fetching MIRRORED.BY whenever we get the first URL in the init dialogue. Offering a loop to correct the URL. Reading MIRRORED.BY if it is younger than 30 days.

Simplified the inheritance tree considerably: Replaced MY with MM, left CPAN::Debug only in the leaves.

Globalized the $term variable to have at least a chance to debug why we're losing connection to ReadLine when we run 'o conf init'.

We have no API yet, but we have a Plugin :-) Thanks to Ulrich Pfeifer for WAIT. Try 'wh' to see what gives.

Released 1.17.

Jan 29, 1997

More feedback for non-cooperative users.

Several potentially undefined variables now initialized.

Added support for ncftp. It is said to have superb features for sites behind firewalls. We're now trying to use lynx or ncftp _before_ ordinary ftp.

Added option 'o conf init' to set all Configuration options interactively whenever needed. Cannot document yet, because it breaks ReadLine. Somehow ReadLine loses the connection to STDIN.

Jan 24, 1997

New Makefile.PL asks only questions to the very first user (when there are no CPAN::Config nor CPAN::MyConfig files to load).

Again improved debugging capabilities for external ftp and the completeness of Configuration parameters (load_succeeded).

Released 1.15.

Jan 24, 1997

Larry Virden discovered his hundredth bug. When the .netrc file contains an autologin routine with "cd" for a given host, we did not cd to the right directory. Fixed and improved debugging for the external ftp invocation.

Jan 22, 1997

Found more incompatibilities: ParseWords had a bug that needs a workaround. ref() worked slightly different too.

Fixed a bug in CPAN::Config::edit which set any value to undefined when we just wanted to query it.

Fixed CPAN::FirstTime to have a locally set $/.

Gave FirstTime an automatically increasing version number.

Jan 22, 1997

Made it compatible with 5.003 for testing purposes. Thanks for precious hints go to Mark D. Baushke again!

Released 1.11

Jan 20, 1997

Made the proxy environment variables configurable in the Config hash (once again ;-)

Added documentation for readme and look.

Added completion for readme and look and fixed it for force.

reload cpan now just counts the redefined subroutines instead of writing all the warnings to the screen. Made waiting less painful by printing single dots (".") for very slow phases of the game.

Released as 1.10.

Jan 17, 1997

Raphael Manfredi considerably improved the logic of the external ftp program. No .netrc needed anymore.

Made the proxy environment variables configurable in the Config hash.

Introduced the "Don't be silly..." message when they try to make, test or install an author.

MD5 is now checked earlier (before we unroll the tarball).

ALPHA STUFF:

Finished the readme method _without documenting it_. Documentation follows after a short testing period. This method just displays the readme file through a pager.

Implemented the look method _without documenting it_. Documentation follows after a short testing period. This method opens a subprocess shell in the associated directory, e.g. for manual building or inspection. (Thanks to Gisle for the idea!)

Dec 23, 1996

Implemented the external-ftp fallback. We're deep in UNIX land here again, sorry for that. We'll see how it goes on UNIX, then we can find OS dependent fallbacks.

Released that as 1.08.

Another big documentation fix.

Fixed big bug in the parsing code for .netrc.

Dec 22, 1996

An afternoon of intense email exchange with Mark D. Baushke <mdb@cisco.com> helped to iron out some nits and make the whole thing more robust. A big thank you to Mark.

The CPAN::Bundle class now knows about force.

File::Copy was not use()d but needed.

Documentation turned out to be wrong and contain references to dead code. Especially the bundle() and the bundles() functions are now removed. Muchly improved docu.

Made the whole source text friendlier to read by adding comments to each subroutine hinting the package.

Inactivity timeout introduced that may kick in when a Makefile.PL expects a response but doesn't get it.

Implemented a lynx fallback.

Dec 21, 1996

Improved bundle mechanism.

Eliminated the star "*" that should save us some memory but introduced complications far beyond what its worth.

Checked over occurrences of rename(). Replaced the one that might fail due to file system boundaries with File::Copy::copy.

Introduced Text::ParseWords::shellwords instead of split for the parsed command lines. This means, you can now set variables to such complicated things as

cpan> o conf make_install_args 'CC="gcc.96q1 -B/usr/ccs/bin/" UNINST=1'

Thanks to "Mark D. Baushke" <mdb@cisco.com> for the hint!!!

Dec 1, 1996

Added security, evals of CHECKSUMS and 03modlist.data.gz now take place in Safe compartements.

CacheMgr now skips symlinks.

Released 0.45a.

Nov 30, 1996

New module CPAN::Nox is a wrapper with same functionality as CPAN.pm, but it will not load XS modules. Useful in a situation where you get caught by binary incomapatibility (Where nights are longest) of a new perl installation and (say) MD5 kills your CPAN session. Makefile.PL now uses CPAN::Nox.

New method recompile() recompiles all installed dynamically loadable extensions in one go.

Nov 21, 1996

Introduced a few sanity checks on data in urllist in the Makefile.PL to prevent bogus URLs being consulted over and over.

Doug sent me another patch because commit didn't work. Thank you, Doug!

Small fixes in read_modpacks: read all entries, even those without a + sign; read all entries, even if we know them already, pay special attention to the CPAN.pm entry :-)

The output of u seemed a bit boring with all those Contact author.. entries. I'm skipping those for now and display only those that have a distribution file associated.

Introduced 'clean'. Works just like test and install.

Nov 17, 1996

Doug MacEachern contributed a powerful suite of interactive manipulation of $CPAN::Config variables. Try 'o conf urllist' to get an impreesion of the feature. The interactive changes can even be committed back into the Config file. Wow. Thanks, Doug!

CHECKSUMS files were never reused. Now CPAN checks if an existing CHECKSUMS file contains the checksum we're looking for.

install quite a few times too often answered with "Foo::Bar is up to date". Should be fixed now.

index files were never refetched. Fixed now.

Renamed misleading configuration option cache_expire to index_expire, more to pager, and inhibit-startup-message to inhibit_startup_message.

If make install does not succeed we now check for permission problems and suggest to become superuser. The feature was suggested by Jon Orwant. This will need a bit more work: check for uid, let them become superuser without leaving the program and such.

Improved help in several places.

Released 0.42a.

Oct 1, 1996

Implemented "force". Usage is simply: force make args... force test args... force install args... This forces the fetch, untar, makefilepl, make and install even in cases where CPAN thinks, the package is either up-to-date or cannot be built or whatever.

Sep 28, 1996

Implemented

cpan> ! install(CPAN::Shell->r) # install all recommendations cpan> ! install(CPAN::Shell->u) # install all uninstalled

or if you prefer

cpan> ! install(grep(/^[F-I]/,CPAN::Shell->r)) # only install from File to IO :-)

following a Dale Amon suggestion. CPAN::Shell->r and u return the list of module names that are printed on STDOUT.

Released 0.40a

Sep 26, 1996

Write Bundle/ (even if no previous call to "b" happened) whenever needed.

Check for a "Configure" script before writing your own Makefile.PL. Run ./configure if you find it.

Don't check for %Term::ReadLine::Perl::, because that may be defined without a good reason. Better check for Term::ReadLine::Perl::readline. That's still silly, but I don't pretend it's clever. We need a way to determine if a readline interface is governing us.

Checking if STDIN is a terminal and not running Term::ReadKey and ReadLine if not. Saves time _and_ allows batchmode to forgive keystrokes during program execution.

Sep 22, 1996

More friendly setting of debugging options.

More checking of write permissions.

Rename of bundles/ directory to Bundle/ (allows perldoc read the pods).

Simplified the code shared between "r" und "u" command, added autobundle.

Deprecated "o index" because it isn't really an option but an action and renamed it to "reload index". Added "reload cpan". Added "o update".

Released 0.35a.

Sep 17, 1996

Support for CHECKSUMS files that have been gzipped by your CPAN site admin. Check if file is readable if it is a local file (and you are your own CPAN site admin :-) Released 0.29.

Direct call of install/make/test/bundle etc. without shell was broken. Fixed and relleased 0.28.

Sep 12, 1996

Release of 0.26a.

Local source cache was ignored, now working.

'perl Makefile.PL < /dev/null' now possible.

After release of 26a: Limit depth of modules to two levels to save memory. Release of 0.27a.

Sep 11, 1996

Isolated both the FTP and the Shell subroutines into their own packages.

Made debug a method in package CPAN::Debug.

Added command o for setting options.

Added a newline here or there.

Added Ulrich's support for proxies.

Sep 10, 1996

Releasing Version 0.14-alpha. Nearly everything has been rewritten. Too numerous changes to remember. This version is shell oriented not batch oriented. Batches should be possible though.

Dropped the recommendation to install LWP, dropped the dependance on LWP completely for UNIX systems.

Introduced CPAN::Config->{keep_source_where} as a pointer to the directory where we store the fetched sources locally.

Introduced CPAN::Config->{makeplarg}, arguments to the '$^X Makefile.PL' call.

Check for Net::FTP even when LWP is available.

Remove the lockfile in a signal handler.

Motherhoodified the pod section ;-)

Apr 28, 1996

0.04-alpha version announced only to the porters

0.01 Mon Feb 19 15:06:30 1996 - original version; created by h2xs 1.16

        Local Variables:
        coding:utf-8
        End: