The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# $Id: Changes,v 1.53 2003/08/15 04:30:48 petdance Exp $
Revision history for Perl extension WWW::Mechanize

0.58	August 14, 2003  11:30pm
	[THINGS THAT MIGHT BREAK YOUR CODE]
	* $mech->uri() now returns a plain string, not a URI object.
	  The automatic stringification of the URI object was
	  causing problems on Win32 and/or threaded Perls, and I
	  didn't feel like figuring out why.  If the non-objectness
	  of the uri() method is a problem, let me know.
	* form(), form_name() and form_number() now return the
	  HTML::Form object of the form that was chosen.  They used
	  to return a 1 or 0.  This means that if you're explicitly
	  checking for 1 or 0, instead of evaluating the return
	  code in a boolean context, your code will break.

	[FIXES]
	* The <AREA>-handling in extract_links() was incorrectly
	  building the text.
	* uri() now returns a string, not a URI object.
	* form(), form_name() and form_number() now return the
	  HTML::Form object of the form that was chosen.

	[INTERNALS]
	* Determination of live vs. local tests is now done in
	  Makefile.PL, and we don't have to set those silly semaphore
	  files any more.
	* Made other cleanups in Makefile.PL, like using
	  ExtUtils::Command instead of rolling my own touch().
	* Moved all the *-live.t tests into t/live/*.t, and renamed
	  the *-local.t files to not be -local.
	* Added more tests for <AREA> tags.

0.57	July 31, 2003  11:21pm
	[ENHANCEMENTS]
	* Added <AREA HREF=...> tags to those that are links per
	  find_links().

0.56    July 24, 2003  12:15pm
	[THINGS THAT MIGHT BREAK YOUR CODE]
	* Created agent_alias() method to do the browser string
	  translation.	Passing "Windows IE 6" to agent() will get
	  you back exactly that string as the agent.  You have to call
	  $a->agent_alias( "Windows IE 6" ) to get the translation.

	  Fortunately, unless you used the new functionality of agent() in
	  the past two days since I released 0.55, it won't be a problem.

	[ENHANCEMENTS]
	* Removed the dependencies on Carp and Test::Builder.  There still
	  is a dependency on Test::Builder for Test::More, but it's no
	  longer explicit in the Makefile.PL.  Mech will use Carp if
	  possible, but it's no longer a requirement.

	[INTERNALS]
	* Added _carp method for handling conditional warnings, rather
	  than checking quiet() all the time.

0.55	July 22, 2003  12:10pm
	[ENHANCEMENTS]
	* Added WWW::Mechanize::Link object to encapsulate what used to
	  be an array reference of stuff from find_link().  This replaces
	  having to know that $link->[0] was URL and so on.  However,
	  since WWW::Mechanize::Link is a blessed arrayref, it's backwards
	  compatible with existing code.

	* The WWW::Mechanize::Link object now tracks what tag the link
	  came from (<A>, <FRAME> or <IFRAME>).

	* No longer loads Carp unless and until it's necessary.

	* submit_form() now uses the currently specified form if a
	  form_name or form_number parm is not specified. (RT #2768)

	* Added a translate table of handy browser strings that the
	  agent() method recognizes.  These strings may be one of the
	  following:

	     * Windows IE 6
	     * Windows Mozilla
	     * Mac Safari
	     * Mac Mozilla
	     * Linux Mozilla
	     * Linux Konqueror

	  For example, "Windows IE 6" gets replaced with
	  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)".
	  Thanks to Ed Silva for the list.

	[DOCUMENTATION]
	* Moved the deprecated methods to their own section.

	* Removed the TODO list, since it's all in RT.

0.54	July 20, 2003  12:47am
	[THINGS THAT MIGHT BREAK YOUR CODE]
	* See the enhancements on extract_links() and failures.
	  Also, see the note about #2811 below.

	[ENHANCEMENTS]
	* find_all_links() and find_link() can specify multiple
	  text or url parameters, which will be anded together.
	  Before, there was a pecking order in which parm took
	  precedence, and any extras were ignored.  To find the
	  first link with text of "news" and with "cnn.com" in the
	  URL, use:

	    $a->find_link( text => "news", url_regex => qr/cnn\.com/ );

	  Thanks to Greg Davies for the idea. (RT #2973)

	* extract_links() is now an internal-only method, named
	  _extract_links().  If you're using it, don't.  Use
	  find_all_links() instead, which is more flexible.

	* Now, when there is a failure of some kind, certain fields
	  like title, forms and links are cleared out.  Before, you'd
	  have leftover links from the previous page.  I suspect that
	  at least one person out there has been mistakenly relying
	  on this behavior, and his code will now break, but that's
	  a good thing.  See t/failure.t for more.

	[FIXES]
	* No longer tries to tech mech-forms if you're not installing
	  it.
	* Fixed #2811: The definition of the link text contents
	  did not match the documentation.

	[DOCUMENTATION]
	* Added a sample CPAN search from Ed Silva.
	* Added link to the Perl Advent Calendar.

	
0.53	July 16, 2003
	This version ONLY fixes some test-file problems.  There are no
	functionality enhancements or bug fixes in WWW::Mechanize itself.

	[FIXES]
	* Explicitly stringifies URI::file objects in the *.t files,
	  in hopes of getting the thread bummers fixed.  See RT
	  #2874 and #2880.

0.52	July 7, 2003
	[ENHANCEMENTS]
	* mech-forms now handles local files.
	* Added t/mech-forms.t to test the app
	* Added some parm-checking to submit_form()
	* All the warns are now carps.  Thanks to MJD for pointing
	  it out during his "Tricks Of The Wizards" talk.

	[FIXES]
	* Bumped up the Test::Builder requirement to 0.17, which
	  I hope will get rid of the thread problems with t/tick.t.
	  Thanks to Autrijus Tang for pointing out the note in
	  Builder.pm.

0.51	June 29, 2003
	[ENHANCEMENTS]
	* Added the "mech-forms" command to list all the forms on
	  a given page.

	[FIXES]
	* Made the tick.t test not rely on 2shortplanks.com.

0.50	June 24, 2003
	[ENHANCEMENTS]
	* Mech now does what most browsers do when they handle a
	  redirect: It changes the POST to a GET.  This doesn't match the
	  RFC, but it's what browsers do.  Thanks to Stuart Children.

0.49	June 23, 2003
	[FIXES]
	* Added a fix a while ago that tracks redirect history.  That fix
	  had the bad side effect of always allowing a redirect.
	  That has now been fixed.

0.48	June 22, 2003
	[ENHANCEMENTS]
	* Added find_all_links() as the counterpart to find_link().

	[FIXES]
	* get() wasn't passing through its parms to LWP::UserAgent::get(),
	  so you couldn't use the :content_file parm.  Now it
	  behaves like a good little subclass.

0.47	June 21, 2003
	[ENHANCEMENTS]
	* find_link() now lets you pass n=>"all" to get back a list
	  of all links that match the other criteria.  NOTE: Outdated!  See
	  v0.48 for the preferred way.
	* find_link() and follow_link() now complain if you pass
	  invalid parms to them.

	[FIXES]
	* Tracks URI history properly after redirects.

0.46	June 20, 2003
	[ENHANCEMENTS]
	* Added tick() and untick() functions for handling checkboxes.
	  Thanks to Mark Fowler for this patch.
	* The uri() will only be the URI of the requested page if it worked.
	* Oh yes, I forgot to mention: We're on Sourceforge now.

0.45	June 11, 2003
	[ENHANCEMENTS]
	* Added response() method, which is identical to res().
	* Added a convenience method success(), which is just a wrapper
	  around $agent->res->is_success().
	* Passes along a Referer: header.  It can still be overridden
	  with the %Headers hash, though.  Thanks, Corion.
	* We now have a set of localized tests that run for machines that
	  aren't connected to the Net.  There's now a t/lib/ directory for
	  those helper files, and the previous Utils.pm has been dropped.
	  Again, Corion to the rescue.

	[DOCUMENTATION]
	* Added to the FAQ
	* Rearranged all the functions in the file so they are now
	  logically grouped.

0.44	June 5, 2003
	[ENHANCEMENTS]
	* Now follows redirects after a POST.  By default, LWP::UserAgent
	  does NOT follow redirects after a POST.  This matches the
	  official RFC.  However, since WWW::Mechanize is meant to be a
	  browser clone, and browsers follow the redirects after a POST,
	  I've changed this behavior.  If this causes bummers, let me
	  know and maybe I'll throw in a switch.
	  
	[DOCUMENTATION]
	* The package now includes the WWW::Mechanize logo in the etc/
	  directory.  I have no idea what I'll do with it, but thanks
	  to Mengwong for making it!

0.43	May 29, 2003
	[ENHANCEMENTS]
	* Now uses request() instead of send_request().  This should
	  solve all of our redirection and cookie bummers.
	* Added reload() method.  Thanks, Corion.

0.42	May 26, 2003
	[ENHANCEMENTS]
	* Renamed _do_request() to send_request(), so it's now a
	  proper overload of LWP::UserAgent.  Thanks to Philippe Bruhat.
	  Recorded in RT ticket #1708.
	* Removed the req() method, and tests that used it.
	* extract_links() now checks for <IFRAME> tags along with the
	  existing <A> and <FRAME>.
	* Now explicitly requires HTML::HeadParser.
	* Doesn't load Carp unless it's actually needed.

0.41	May 22, 2003	
	[ENHANCEMENTS]
	* There are no enhancements in functionality.
	* Testing suite getting more network-independent.

	[DOCUMENTATION]
	* Started a FAQ section.
	* New SYNOPSIS section.  Thanks to Uri Guttmann.
	* Documentation fixes.  Thanks to Mark Stosberg, Mike Fragassi.

0.40	April 18, 2003
	[ENHANCEMENTS]
	* Three new methods.
	  * find_link() for finding a specified link
	  * follow_link() for following a specified link
	  * submit_form() for all-in-one form submission.
	  All three owe a great deal to Uri Guttmann.  Thanks, Uri!
	* Split out the examples into WWW::Mechanize::Examples.pod
	* Added t/back.t
	* Documentation fixes from Abigail

0.39	April 1, 2003
	[ENHANCEMENTS]
	* No functional enhancements.  Everything is docs.
	
	* Added a new example from Dan Rinzel, for posting to Movable Type

	* Started playing with having the test suite not have to have
	  live net access.

0.38	March 24, 2003	
	[DEPRECATIONS]
	* The %WWW::Mechanize::Headers hash is officially deprecated.
	  It will be removed pretty soon.  I'm not sure what the
	  replacement will be, but it won't be a package-level hash.

	[ENHANCEMENTS]
	* The submit() method is no longer an alias for click("submit"),
	  because some forms don't have a button called "submit".
	  In fact, some may not have any buttons at all if they're
	  JavaScript-controlled.
	  
	[FIXES]
	* RT #2056: $agent->field() wasn't returning proper input field,
	  because of an incorrect call to the underlying HTML::Form.
	  Thanks to Prakash Kailasa.

0.37	March 4, 2003
	[ENHANCEMENTS]
	* Added an is_html() method
	* Added a title() method
	* No longer requires the Clone module.
	* No longer requires the Test::Pod module, although it's nice
	  to have.

0.36	February 4, 2003
	[ENHANCEMENTS]
	* Added form lookup by name.  Thanks to Jan Ivar Pladsen and
	  Iain Truskett for their patches.
	* Added new functions form_name() and form_number().  Existing
	  form() function calls each of these as appropriate.
	* Explicitly requires LWP 5.69 because of the form naming.
	* Added new POD section "Examples" for user-submitted sample code
	  of how to use WWW::Mechanize.
	* Quieted the warnings in the test suite, so that you don't get
	  expected, but disconcerting, warnings to the screen.

0.35	January 22, 2003
	[ENHANCEMENTS]
	* Now creates an internal cookie_jar by default.
	* Beefing up the test suite
	* Don't forget, direct access to internal members is deprecated.
	  Use the accessors starting now.

0.33	January 15, 2003
	[ENHANCEMENTS]
	* Added accessor methods
	* Deprecated the direct accessing of object contents.  You can
	  no longer rely on the names of any of the hash elements.
	* Added a quiet() method to suppress warnings to the screen.

	[FIXES]
	* More documentation fixes.  (Thanks to Briac Pilpré)

0.32	September 23, 2002
	[FIXES]
	* Now correctly calls the LWP::UserAgent constructor.  (Thanks to
	  Philippe "BooK" Bruhat)

	* Fixed doc on what get() method returns.  (Again thanks to BooK)

	* Now uses http://www.google.com/intl/en/ as the basis for
	  testing, since non-US users apparently get redirected to
	  country-specific sites when they hit http://www.google.com/

0.31	September 13, 2002
	[ENHANCEMENTS]
	* get() now returns the HTTP::Response object.
	* Prepended push_page_stack(), pop_page_stack() and
	  do_request() with underscores, to emphasize that they 
	  are for internal use only.

0.30	September 10, 2002
	[ENHANCEMENTS]
	* Fixed the stack popping problem.
	
	[FIXES]
	* Put all the inline tests into t/*.t
	
	* get() doesn't work w/relative URLs
	http://rt.cpan.org/NoAuth/Bug.html?id=1492

	* The arrays returned by extract_links()
	now have a third element, which contains
	the name attribute of the link (undef
	if the link has no name attribute).


Code before this point is forked off from WWW::Automate 0.20b.