Add the original source packages to maemo, source lenny
[dh-make-perl] / dev / i386 / libwww-mechanize-perl / libwww-mechanize-perl-1.34 / Changes
1 Revision history for WWW::Mechanize
2
3 Please note that WWW::Mechanize and Test::WWW::Mechanize are no
4 longer using rt.cpan.org for bug tracking.  They are now being
5 tracked via Google Code at
6 http://code.google.com/p/www-mechanize/issues/list
7
8 Mech now has its own mailing list at Google Groups:
9 http://groups.google.com/group/www-mechanize-users
10
11 1.34        Mon Dec 10 00:30:39 CST 2007
12 ========================================
13 [FIXES]
14 Many fixes to make the test suite more portable.
15
16
17 1.32        Tue Oct 30 12:02:17 CDT 2007
18 ========================================
19 [ENHANCEMENTS]
20 Added dump methods to mirror mech-dump:
21 * $mech->dump_images()
22 * $mech->dump_links()
23 * $mech->dump_forms()
24 * $mech->dump_all()
25
26 Sanity checks in the WWW::Mechanize::Image constructor.  Every Image
27 must have a "url" and "tag" field passed in to it.
28
29
30 1.31_02     Thu Oct 25 11:48:29 CDT 2007
31 ========================================
32 [ENHANCEMENTS]
33 Added class, class_regex, id and id_regex limiters to find_link()
34 and find_all_links().  Thanks to Adriano Ferreira.
35
36
37 1.31_01     Mon Sep 17 23:38:03 CDT 2007
38 ========================================
39 [FIXES]
40 Mech tests now pass even if your DNS server gives A records for
41 anything (like OpenDNS).  Thanks, Miyagawa!
42
43 Searching for the <base href> is now case-inensitive.  A better
44 solution would be to actually parse the HTML.
45
46 [ENHANCEMENTS]
47 mech-dump now handles --user and --password arguments for sites
48 that require authentication.
49
50
51 1.30        Thu May 24 21:31:10 CDT 2007
52 ========================================
53 [DOCUMENTATION]
54 Minor doc fixes.  Thanks David Steinbrunner.
55
56
57 1.29_01     Tue May 22 14:02:55 CDT 2007
58 ========================================
59 Kevin Falcone and I ask for your assistance in figuring out how to
60 handle the warnings thrown by the tests, other than hiding them.
61
62 [FIXES]
63 Overhauled how tainting was done.  Stole code directly from
64 Test::Taint.
65
66 Have LWP only handle decoding of Content-Encoding, not charset.
67
68 [DOCUMENTATION]
69 Fixed the docs for $mech->submit_form()'s with_fields arg.
70 Thanks, Peteris Krumins.
71
72
73 1.26        Wed May 16 14:21:29 CDT 2007
74 ========================================
75 [FIXES]
76 Re-reversed the content decoding.  This is critical for reading from
77 sites with gzip on the fly, like Wikipedia.
78
79 Content is now properly tainted.
80
81 [ENHANCEMENTS]
82 mech-dump can now pass --agent and --agent-alias flags so you can
83 fetch from sites like Wikipedia that block LWP user agents.
84
85 [INSTALLATION]
86 The mech-dump program is now always installed.  It no longer is
87 presented as an option.
88
89
90 1.24        Fri May 11 15:57:56 CDT 2007
91 ========================================
92 NOTE: Version 1.24 will NOT automatically decode gzipped content for
93 you any more.  Consider it a "do not use" release.
94
95 [FIXES]
96
97 *   Fixed failures in "make test" with some versions of HTTP::Server::Simple
98 *   RT #26593: Improved handling of charsets.  Thanks Kevin Falcone.
99 *   RT #24354: find_link now handles http-equivs with quoted URLs.
100 *   Reverses the change in 1.21_01 where it decodes the content.
101
102 [ENHANCEMENTS]
103 *   Added find_all_inputs() and find_all_submits() methods.  Thanks,
104     Mike O'Regan.
105 *   Test::LongString is no longer needed, so has been removed as a
106     requirement.
107
108 [TESTS]
109 *   Added a test for save_content()
110
111
112 1.22        Fri Mar  2 00:05:57 CST 2007
113 ========================================
114 [INTERNALS]
115 Added new tests.
116
117 Added Perl::Critic changes and a perlcriticrc file.
118
119
120 1.21_04     Sat Oct  7 21:35:42 CDT 2006
121 ========================================
122 [FIXES]
123 *   $mech->content( type => 'text' ) was not freeing memory.  Thanks to
124     Cat Okita for finding it.
125
126 [INTERNALS]
127 *   Made the order of parms to $mech->content() not relevant.
128
129
130 1.21_03     Sat Oct  7 01:21:46 CDT 2006
131 ========================================
132 [THINGS THAT MAY BREAK YOUR CODE]
133 *   The methods $mech->form() and $mech->follow() have been removed.
134     They've been deprecated since 1.10, which was released in Feb 2005.
135
136 [ENHANCEMENTS]
137 *   I'm trying to nail down what seems to be a memory leak on long-running
138     Mech programs.  I'm stringifying URI::URL objects wherever I can.
139
140 [INTERNALS]
141 *   No longer uses UNIVERSAL.
142
143
144 1.21_02     Wed Oct  4 13:14:30 CDT 2006
145 ========================================
146 [ENHANCEMENTS THAT MAY BREAK YOUR CODE]
147
148 *   The $mech->stack_depth() setting had no way to say "don't cache any
149     pages at all".  How silly!
150
151     Now, if you set $mech->stack_depth(0), no history of pages will be kept.
152     In the past, it would mean "Keep all pages."  This means that if you want
153     to set it to keep all pages, set it to some ridiculously large number.
154
155 [DOCUMENTATION]
156 *   The docs previously refered to Compress::Gzip instead of Compress::Zlib.
157
158
159 1.21_01 Mon Sep 18 17:18:43 CDT 2006
160 ========================================
161 [ENHANCEMENTS]
162 *   If Compress::Zlib is installed, gzipped content is now
163     accepted and transparently decoded. No additional syntax needed!
164     This should save time and bandwidth in a number of cases.
165     (Mark Stosberg)
166
167 *   Added a put() method.  It also calls a subfunction called
168     _SUPER_put that will be removed once LWP::UserAgent supports put().
169
170
171
172 1.20   Sat Aug 19 09:09:08 EDT 2006
173
174         [ENHANCEMENTS]
175         * Added new two-argument form of credentials() method.
176           $mech->credentials($username, $password);
177           That provides simpler visiting of password-protected
178           resources in the vast majority of cases and still
179           allows the other cases to be supported. (Peter Scott)
180
181         [BUG FIXES]
182         * autocheck no longer is triggered when informational
183           responses are returned. (Mark Stosberg)
184
185         [INTERNALS]
186         * test suite no longer fails when Test::Warn is missing. 
187           (CPAN testers, Mark Stosberg)
188         * Removed all the testing against live sites. The networking
189           code is not actually in Mech anway, and they were prone to
190           breaking, as the live sites changed. (Mark Stosberg)
191
192
193 1.19_02 Mon Aug  7 23:57:56 CDT 2006
194
195         [ENHANCEMENTS]
196         * Add new Do-What-I-Mean submit_form() option.
197             $mech->submit_form(
198                 with_fields => \%data
199             );
200          That expresses that you want to select the first form contains all
201          fields in \%data, and then submit the data to that form. See the docs
202          for form_with_fields() and submit_form() for details.
203          (Mark Stosberg, inspired by RT#6100)
204
205         [BUG FIXES]
206         * The behavior of clone() now copies over the cookie jar, which
207           is probably what you expected it did in the first place.
208           This fixes bug RT#13541 filed against Test::WWW::Mechanize,
209           which was using clone() internally. (Mark Stosberg)
210
211         * The correct URL is returned after redirecting. This a regression
212           from 1.04 and was reported as RT#9059, RT#12882, and RT#12786.
213           The documentation about this has also been clarified that we
214           return a URI object, but that it stringifies to the URI itself.
215
216         [DOCUMENTATION]
217         * Fixed a misleading parm in the constructor.
218         * Document the return value of set_visible (RT#6071, MJD,
219           Mark Stosberg)
220         * Document that form_name and form_number return an HTML::Form
221           object (Mark Stosberg)
222
223         [INTERNALS]
224         * Made lots of little cleanups based on Perl::Critic
225         * Fix Taint-mode warnings with Perl 5.6.1 (RT#16945)
226
227 1.18    Thu Feb  2 00:11:26 CST 2006
228         [TESTS]
229         * Makefile.PL now takes four new parms:
230             * --live/nolive turns on/off the live tests
231             * --local/nolocal turns on/off the local tests
232             * --mech-dump/nomech-dump installs/doesn't the mech-dump program
233             * --all turns on all tests and installs mech-dump
234
235         * Fixed some failures in tests.  Non-existent URLs now have a
236           "." postpended to them, so if someone's got a search domain
237           with a wildcard (i.e. ignore.us) it'll ignore that.  Also,
238           Google's second link is now a https:// link, which some Mechs
239           can't handle.  Added a 'url_regex' which now makes it look at
240           the second non-https link.  Thanks to Pete Krawczyk.
241
242 1.16    Fri Oct 28 17:34:20 CDT 2005
243         [ENHANCEMENTS]
244         * Sped up Mech significantly (~20% in some cases).  Images and
245           links are extracted from the HTML, and objects are created,
246           only when they're actually needed.  This will be a speedup for
247           pages where you're only following links, or vice versa.
248
249         [THINGS THAT MAY BREAK YOUR CODE]
250         * If you've been relying on the $mech->{images} and $mech->{links}
251           fields being populated so that you can bypass the $mech->images()
252           and $mech->links() accessors, your code will break.  That's OK,
253           because you should have been using the accessors all along.
254
255 1.14    Tue Aug 30 17:17:40 CDT 2005
256         [DOCUMENTATION]
257         * Added lots of new FAQs.  Thanks to Peter Stevens.
258
259         [INTERNALS]
260         * Now requires Test::LongString.  That's not too odious.
261
262         [FIXES]
263         * Tests now pass with the shuffling around that Google did.
264
265 1.13_01 Tue Apr 12 14:11:18 CDT 2005
266         [ENHANCEMENTS]
267         * Now dies if you call submit_form() with a non-existing
268           form_number or form_name.  Before, it would just warn.
269
270         [DOCUMENTATION]
271         * Added an example of using credentials() in the cookbook.
272
273 1.12    Thu Feb 24 23:38:44 CST 2005
274         [FIXES]
275         * Fixed RT #9026: hang in t/local/back.t under Windows XP.
276           Thanks Andrew Savige.  It also should no longer complain
277           about being unable to clean up a temp file.
278
279 1.11_01 Mon Feb 14 00:12:48 CST 2005
280         [THINGS THAT MAY BREAK YOUR CODE]
281         * Removed deprecated _parse_html() method.
282
283         [FIXES]
284         * Was incorrectly looking for INPUT tags TYPE="SUBMIT" as images.
285           Thanks to Abe Timmerman.
286
287         [ENHANCEMENTS]
288         * Calling $mech->set_fields() with no current form now dies.
289           Thanks to Julien Beasley.
290
291
292 1.10    Tue Jan 31 11:30pm-ish
293         [FIXES]
294         * Fixed bug where images inside of links would not be found.
295
296         * Fixed test failures because of Google changes.  Thanks to
297           Offer Kaye and others who sent in patches.
298
299         [DOCUMENTATION]
300         * More samples in the FAQ.  Thanks to Joshua Gatcomb.
301
302         [INTERNALS]
303
304         * Added explanation of running live tests against Google in
305           Makefile.PL.
306
307
308 1.08    Fri Dec 24 01:01:06 CST 2004
309         [ENHANCEMENTS]
310         * Added find_image() and find_all_images().
311
312 1.06    Wed Dec  8 14:58:39 CST 2004
313         [INTERNALS]
314         * Now uses the base pragma instead of setting @ISA.
315
316 1.05_04 Fri Nov  5 23:35:38 CST 2004
317         [ENHANCEMENTS]
318         * Added WWW::Mechanize::Image object for representing images.
319         * Improved the regex on the URL for META tags.
320         * Added --images flag to mech-dump.
321
322         [FIXES]
323         * When parsing urls out of meta refresh tags, "url" may now be
324           uppercase (RT#8230)
325
326         * Behavior of back() fixed in a number of cases (RT#8109 reported
327           by Josh Purinton, patched by Dominique Quatravaux)
328
329         [INTERNALS]
330         * Mark figured out to how to prevent his text editor from
331           putting tabs into the code. Andy's blood pressure dropped
332           slightly.
333
334 1.05_03 Sun Oct 31 20:54:33 CST 2004
335
336         [ENHANCEMENTS]
337         * click_button() has a new input option for HTML::Form::SubmitInput
338           objects (DOMQ)
339
340         * content() has new options to return the page formatted
341           as text, with a <base href> added. (RT#8087, patch by
342           Dominique Quatravaux)
343
344         * update_html() method has been added, which can be used
345           to modify the HTML that Mech parses. It should be sub-classed
346           instead of _parse_html(), which has been deprecated.
347           (RT#8087, patch by Dominique Quatravaux)
348
349         * select() has new option to select an option by number
350           (RT#5789, Scott Lanning)
351
352         * WWW::Mechanize::Link now has support providing all the
353           attributes of the link through a new attrs() method, which
354           returns them as a hashref. This is a replacement for the
355           alt() method, added in 1.05_01. It's not backwards
356           compatible with that, but, hey, that's what developer
357           releases are for. (RT#8092, Rob Casey and Mark Stosberg)
358
359         [FIXES]
360         * Upload <input type="file" ... > does not use the default
361           value to prevent attacks, patch by Jan Pazdziora (RT #7843).
362
363         [INTERNALS]
364         * Improved tests and documentation for select() (RT#5789,
365           Scott Lanning)
366
367         * Improve taint-safeness on Perl 5.6.1 (RT#8042, patch by
368           Dominique Quatravaux)
369
370         * Added tests for click_button() (RT#8061, by Dominique
371           Quatravaux)
372
373         * Require URI 1.25, fixing bug which exposed itself in
374           WWW::Mechanize (RT#3048)
375
376         * Move select() to better location in docs. Document and
377           test the return values.  The return value is now "1" on
378           success instead of the undocumented behavior of returning
379           a form value. (RT#6138, spotted by MJD, patched by Mark
380           Stosberg)
381
382         * Possible matching tags for the find_link() 'tag_regex'
383           attribute are now documented. (RT#2989, by Mark Stosberg)
384
385         * refactored find_link() to avoid use of eval(). This should
386           improve performance a bit and avoid potential security
387           issues. (Mark Stosberg)
388
389 1.05_02 Sat Oct  2 16:55:59 CDT 2004
390         [ENHANCEMENTS]
391         * Added the $mech->save_content( $filename ) function, so you
392           can dump stuff to files easily.
393
394 1.05_01 Thu Sep 30 21:04:44 CDT 2004
395
396         [FIXES]
397         * set_visible() doesn't stop setting values when it finds a zero.
398
399         [ENHANCEMENTS]
400         * WWW::Mechanize::Link has a new, easier to remember constructor
401           interface. The old one is still supported. Support for including
402           an 'alt' attribute was added, which is useful for <area> links.
403           (RT #3317). Thanks to Mark Stosberg.
404
405         * When links are extracted from <area> tags, the ALT attribute will
406           be captured and become part of the WWW::Mechanize::Link object.
407           (RT #3317). Patch by Mark Stosberg. 
408
409         [INTERNALS]
410         * t/mech-dump.t is now more portable (RT #7690)
411
412         * t/local/follow.t has new tests to confirm that 'follow*' functions
413           work with characters like o-umlaut, even when the o-umlaut is
414           encoded in the HTML, but not in the call to follow(). (RT #2416)
415           By Mark Stosberg.
416
417
418
419 1.04    Wed Sep 15 23:27:53 CDT 2004
420
421         [ENHANCEMENTS]
422         * $mech->get() now accepts a WWW::Mechanize::Link object.
423
424         * $mech->stack_depth(n) lets you set the depth of the mech
425           object's page stack.  This way, if you have a Mech that does
426           lots of stuff and never/rarely goes back(), you won't be eating
427           up memory.  Thanks to BooK and Chi-Fung. (RT #5362)
428
429         [FIXES]
430         * Fixed tests that fail under LWP >= 5.800.
431
432         * Added a workaround for LWP::UserAgent->clone() when ->{proxy}
433           is undef. (RT #6443)
434
435         * The Referer was getting passed as a URI object sometimes,
436           and that caused sadness.  Eugene Haimov supplied a workaround.
437           (RT #6372)
438
439         [DOCUMENTATION]
440         * Added Ian Langworth's listmod and John Beppu's photobucket
441           uploader programs to WWW::Mechanize::Examples.
442
443         * Minor doc tweak for find_link()
444
445         * Finally added a value() func.  Thanks to Spoon,
446           who even now, months after his passing, is still contributing
447           to Mechanize.
448
449
450 1.02    Tue Apr 13 22:45:10 CDT 2004
451
452         No reason to install if you have 1.00.  Fixes are only in tests.
453
454         [FIXES]
455         * t/referer.t didn't cope with spaces in $FindBin::Bin.  Plus,
456           it now forces its URL to localhost.
457
458
459 1.00    Sat Apr 10 00:35:51 CDT 2004
460
461         I figure it's about time we hit 1.00, and this version seems
462         like a good place to do it, because of the potential breakage
463         described below...
464
465         [THINGS THAT WILL BREAK YOUR CODE]
466         * Header handling has changed.  There is no more package variable
467           %headers that holds all the headers to be added.  They are
468           now added on a per-object basis.
469
470           If you were adding a header with add_header(), and the code
471           relied on that header still being set later on in a later
472           instance of the class, that code will now break, because the
473           later instance won't have the header set.
474
475         [ENHANCEMENTS]
476         * You can now prevent a header from being sent by adding it with
477           an undef value, as in:
478
479             $mech->add_header( Referer => undef );
480
481         [FIXES]
482         * Now correctly adds Accept-Encoding to all requests that need it.
483
484         [INTERNALS]
485         * Added new $mech->_modify_request($req) method to do all the
486           HTTP header modification before the actual request gets
487           sent off.  Subclasses are able to override it if they want.
488
489         * Removed the unused Compress::Zlib stuff.
490
491
492 0.76    Wed Apr  7 22:01:43 CDT 2004
493
494         [ENHANCEMENTS]
495         * Added update_html() to let you update the HTML for the page
496           you're on.
497
498         [FIXES]
499         * Test files account for new Google layout.
500
501         [INTERNALS]
502         * Rearranged the local tests into their own t/local/ directory.
503
504         * Made the standalone tests show what server they're hitting.
505
506         * Checked that it runs under LWP 5.78.
507
508
509 0.74    Mon Mar 22 23:36:46 CST 2004
510
511         [ENHANCEMENTS]
512         * WWW::Mechanize now sends an Accept-Encoding header of "identity"
513           to always enforce plaintext responses. Preliminary support for
514           Compress::Zlib is also there, but is disabled by default.
515
516         * Added click_button() and select() methods.  The field() method
517           can now take an arrayref of values, if appropriate. Thanks,
518           Linda Lee Julien.
519
520         * Added url_abs and url_abs_regex parms to find_all_links().
521
522         * URLs in META REFRESH tags are now treated as links.
523
524         * t/taint.t makes sure that things that should be tainted are.
525
526         [FIXES]
527         * Still more fixes if the machine you're on doesn't have
528           DNS pointing to it.
529
530         * The local changes use localhost as the local host name, instead
531           of whatever host name that might be on the box, but not in DNS.
532           Thanks to David Wheeler for letting me play on his box.
533
534         * The http_proxy and HTTP_PROXY environment variables get
535           deleted during the tests that access the dummy local server.
536           This should let your tests pass, and clear up a lot of RT
537           tickets.
538
539 0.72    Mon Jan 26 21:07:20 CST 2004
540         [ENHANCEMENTS]
541         * Added the set_visible() method, thanks to Peter Scott.
542
543         [DOCUMENTATION]
544         * Started the Cookbook at WWW::Mechanize::Cookbook.pod.
545
546         [INTERNALS]
547         * Made the globbing in Makefile.PL a little less command-line
548           intensive.  Also fixed the missing files in MANIFEST.
549         * Added t/pod-coverage.t for testing POD coverage.
550
551 0.71_02 Mon Dec 22 14:29:13 CST 2003
552         [THINGS THAT MAY BREAK YOUR CODE]
553         * Added a 5th, optional parameter to WWW::Mechanize::Link's
554           constructor.  In 0.71_01, it was at the beginning of the
555           argument list and was required.  Now it's at the end and is
556           optional.  If, in the 15 hours since 0.71_01 came out, you
557           went and changed all your WWW::Mechanize::Link constructors,
558           you'll have to change them around again.  Otherwise, you can
559           just ignore this change.
560
561 0.71_01 Sun Dec 21 23:48:12 CST 2003
562         [THINGS THAT MAY BREAK YOUR CODE]
563         * WWW::Mechanize::Link's constructor has a new argument
564           that needs to be passed in, at the start of the argument
565           list.
566
567         [ENHANCEMENTS]
568         * WWW::Mechanize::Link object now takes a $base URL, and will
569           return absolute URLs with the url_abs() method.  Thanks to
570           Ashley Pond.
571         * Added another script to WWW::Mechanize::Examples.  It's a
572           script that didn't make it into Spidering Hacks.
573
574         [INSTALL & TESTS]
575         * Heavy use of the new Test::Memory::Cycle module.
576         * Fixed Makefile.PL so that the tests are selected under Win32.
577         * Changed t/mech-dump.t so that the test succeeds under Win32.
578         * Updated t/referer.t and t/mech-dump.t so they run under VMS.
579           Thanks to Peter Prymmer.
580
581
582 0.70    Sun Nov 30 23:45:27 CST 2003
583         [THINGS THAT MAY BREAK YOUR CODE]
584         * Redirects are now handled better by LWP, so the code that
585           changes POSTs to GETs on redirects has been removed.
586
587         [FIXES]
588         * Fixed redirect_ok(), which had its API changed out from under
589           it in LWP 5.76.
590
591         [ENHANCEMENTS]
592         * New warnings in find_link() for strings that are space padded,
593           and for text matches that are passed a regex.  Thanks to
594           Jim Cromie.
595
596         [DOCUMENTATION]
597         * Patches from Mark Stosberg and Jim Cromie.
598
599         [INTERNALS]
600         * Removed all the checking for Carp.  I don't know why I
601           was thinking that Carp wasn't core. RT #4523.
602
603         Also, a big bump in requirements on LWP: We need 5.76.
604
605
606 0.66    Thu Nov 13 14:35:31 CST 2003
607
608         No new functionality.  Fixed up some install bugs and made a
609         few documentation tweaks, mostly to plug Spidering Hacks.
610
611
612 0.65    Mon Nov 10 00:11:06 CST 2003
613         [ENHANCEMENTS]
614         * Made a _parse_html() method that you can override or call
615           manually, per request from Gavin Estey.
616
617         [FIXES]
618         * Made some path naming use File::Spec->catfile so that
619           they work correctly under Windows.
620         * "make clean" cleans up temp flag files.
621
622         [INTERNALS]
623         * Uses the new Test::Pod 1.00 for simplicity.
624
625
626 0.64    October 23, 2003  11:15pm
627         [ENHANCEMENTS]
628         * Many new tests, based on the excellent coverage reporting
629           created by Paul Johnson's Devel::Cover module.
630
631         * The start of JavaScript support, sort of!
632
633           If you have an <A> tag that does an onClick that opens a
634           window, Mech will find the URL from that and make that
635           be the link for the tag.  This is for things like Movable
636           Type that pop little windows to rebuild indexes.
637
638           This is subject to change in the future.  I don't know
639           if it will, but I'm not making promises.  It might be so
640           buggy I just yank the whole thing.
641
642         * Big jump in requirements, since we'll soon be using Gisle's
643           new HTML::Form stuff.  Also, older versions of HTML::Form
644           don't give output I'm expecting.
645
646         [FIXES]
647         * Fixed the t/mech-dump.t failure.
648
649 0.63    October 13, 2003  2:56pm
650         [ENHANCEMENTS]
651         * mech-dump defaults to dumping forms.
652         * Added name, name_regex, tag and tag_regex options to find_link()
653           and follow_link().
654         * Added tests from Jim Brandt.
655
656
657 0.62    October 7, 2003  8:46pm
658         [THINGS THAT MIGHT BREAK YOUR CODE]
659         * The parms for find_link()'s url_regex and text_regex must now
660           be actual regex objects, as in qr// objects.  They can't just
661           be little text strings.  If this is a big bummer, let me know.
662
663         [ENHANCEMENTS]
664         * Added autocheck parm, to tell your Mech object to die on
665           any error.  This saves you from having to check yourself.
666           This closes RT #3056.
667         * Renamed the internal _carp() method as warn().
668         * Added a die() method.
669         * Can now override the warn() and die() handlers in the
670           constructor.
671         * find_link() now complains if it gets a *_regex parm that isn't
672           actually a regex.  See RT #3032.
673
674         [FIXES]
675         * mech-dump.t no longer runs if you're not installing mech-dump.
676           See RT #3724.
677
678         [DOCUMENTATION]
679         * More FAQs.  Thanks to Gavin Estey.
680
681
682 0.61    October 6, 2003  6:30pm
683         No new functionality here.  It's mostly to get the new tests
684         into the pipeline so the CPAN testers can run 'em.
685
686         [FIXES]
687         * Missing dependency on File::Temp.  Thanks, Ask.
688
689         [ENHANCEMENTS]
690         * Added the test case for the form processing problem as a .t
691           file, since I spent so long getting it down to a simple case.
692         * Internal code uses accessors instead of direct hash entries.
693           Prepare for deprecation of existing hash entries!
694
695         [DOCUMENTATION]
696         * The FAQ is now its own document at WWW::Mechanize::FAQ.
697
698
699 0.60    September 22, 2003  10:00pm
700         [FIXES]
701         * Changed how t/failure.t tries to fail.  It used to hit
702           a bogus hostname in .com, but with Verisign doing its
703           SiteFinder crap, even bogus addresses in .com succeed.
704
705         [ENHANCEMENTS]
706         * Added _make_request() to let WWW::Mechanize::Cached easily
707           hook into the request chain.
708
709 0.59    September 3, 2003  11:56pm
710         [FIXES]
711         * Squelched a warning in follow() where it tries to do a regex
712           match against an undef value.
713         * The page stack functionality, including the back() button,
714           was entirely broken.  Now it works.  Thanks to the mighty
715           Iain Truskett for help.
716
717         [ENHANCEMENTS]
718         * Added the mech-dump script, which replaces mech-forms.
719           It will dump forms and lists of links.  Eventually it will
720           do lists of images, too, but not yet.
721
722 0.58    August 14, 2003  11:30pm
723         [THINGS THAT MIGHT BREAK YOUR CODE]
724         * $mech->uri() now returns a plain string, not a URI object.
725           The automatic stringification of the URI object was
726           causing problems on Win32 and/or threaded Perls, and I
727           didn't feel like figuring out why.  If the non-objectness
728           of the uri() method is a problem, let me know.
729         * form(), form_name() and form_number() now return the
730           HTML::Form object of the form that was chosen.  They used
731           to return a 1 or 0.  This means that if you're explicitly
732           checking for 1 or 0, instead of evaluating the return
733           code in a boolean context, your code will break.
734
735         [FIXES]
736         * The <AREA>-handling in extract_links() was incorrectly
737           building the text.
738         * uri() now returns a string, not a URI object.
739         * form(), form_name() and form_number() now return the
740           HTML::Form object of the form that was chosen.
741
742         [INTERNALS]
743         * Determination of live vs. local tests is now done in
744           Makefile.PL, and we don't have to set those silly semaphore
745           files any more.
746         * Made other cleanups in Makefile.PL, like using
747           ExtUtils::Command instead of rolling my own touch().
748         * Moved all the *-live.t tests into t/live/*.t, and renamed
749           the *-local.t files to not be -local.
750         * Added more tests for <AREA> tags.
751
752 0.57    July 31, 2003  11:21pm
753         [ENHANCEMENTS]
754         * Added <AREA HREF=...> tags to those that are links per
755           find_links().
756
757 0.56    July 24, 2003  12:15pm
758         [THINGS THAT MIGHT BREAK YOUR CODE]
759         * Created agent_alias() method to do the browser string
760           translation.  Passing "Windows IE 6" to agent() will get
761           you back exactly that string as the agent.  You have to call
762           $a->agent_alias( "Windows IE 6" ) to get the translation.
763
764           Fortunately, unless you used the new functionality of agent() in
765           the past two days since I released 0.55, it won't be a problem.
766
767         [ENHANCEMENTS]
768         * Removed the dependencies on Carp and Test::Builder.  There still
769           is a dependency on Test::Builder for Test::More, but it's no
770           longer explicit in the Makefile.PL.  Mech will use Carp if
771           possible, but it's no longer a requirement.
772
773         [INTERNALS]
774         * Added _carp method for handling conditional warnings, rather
775           than checking quiet() all the time.
776
777 0.55    July 22, 2003  12:10pm
778         [ENHANCEMENTS]
779         * Added WWW::Mechanize::Link object to encapsulate what used to
780           be an array reference of stuff from find_link().  This replaces
781           having to know that $link->[0] was URL and so on.  However,
782           since WWW::Mechanize::Link is a blessed arrayref, it's backwards
783           compatible with existing code.
784
785         * The WWW::Mechanize::Link object now tracks what tag the link
786           came from (<A>, <FRAME> or <IFRAME>).
787
788         * No longer loads Carp unless and until it's necessary.
789
790         * submit_form() now uses the currently specified form if a
791           form_name or form_number parm is not specified. (RT #2768)
792
793         * Added a translate table of handy browser strings that the
794           agent() method recognizes.  These strings may be one of the
795           following:
796
797              * Windows IE 6
798              * Windows Mozilla
799              * Mac Safari
800              * Mac Mozilla
801              * Linux Mozilla
802              * Linux Konqueror
803
804           For example, "Windows IE 6" gets replaced with
805           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)".
806           Thanks to Ed Silva for the list.
807
808         [DOCUMENTATION]
809         * Moved the deprecated methods to their own section.
810
811         * Removed the TODO list, since it's all in RT.
812
813 0.54    July 20, 2003  12:47am
814         [THINGS THAT MIGHT BREAK YOUR CODE]
815         * See the enhancements on extract_links() and failures.
816           Also, see the note about #2811 below.
817
818         [ENHANCEMENTS]
819         * find_all_links() and find_link() can specify multiple
820           text or url parameters, which will be anded together.
821           Before, there was a pecking order in which parm took
822           precedence, and any extras were ignored.  To find the
823           first link with text of "news" and with "cnn.com" in the
824           URL, use:
825
826             $a->find_link( text => "news", url_regex => qr/cnn\.com/ );
827
828           Thanks to Greg Davies for the idea. (RT #2973)
829
830         * extract_links() is now an internal-only method, named
831           _extract_links().  If you're using it, don't.  Use
832           find_all_links() instead, which is more flexible.
833
834         * Now, when there is a failure of some kind, certain fields
835           like title, forms and links are cleared out.  Before, you'd
836           have leftover links from the previous page.  I suspect that
837           at least one person out there has been mistakenly relying
838           on this behavior, and his code will now break, but that's
839           a good thing.  See t/failure.t for more.
840
841         [FIXES]
842         * No longer tries to tech mech-forms if you're not installing
843           it.
844         * Fixed #2811: The definition of the link text contents
845           did not match the documentation.
846
847         [DOCUMENTATION]
848         * Added a sample CPAN search from Ed Silva.
849         * Added link to the Perl Advent Calendar.
850
851
852 0.53    July 16, 2003
853         This version ONLY fixes some test-file problems.  There are no
854         functionality enhancements or bug fixes in WWW::Mechanize itself.
855
856         [FIXES]
857         * Explicitly stringifies URI::file objects in the *.t files,
858           in hopes of getting the thread bummers fixed.  See RT
859           #2874 and #2880.
860
861 0.52    July 7, 2003
862         [ENHANCEMENTS]
863         * mech-forms now handles local files.
864         * Added t/mech-forms.t to test the app
865         * Added some parm-checking to submit_form()
866         * All the warns are now carps.  Thanks to MJD for pointing
867           it out during his "Tricks Of The Wizards" talk.
868
869         [FIXES]
870         * Bumped up the Test::Builder requirement to 0.17, which
871           I hope will get rid of the thread problems with t/tick.t.
872           Thanks to Autrijus Tang for pointing out the note in
873           Builder.pm.
874
875 0.51    June 29, 2003
876         [ENHANCEMENTS]
877         * Added the "mech-forms" command to list all the forms on
878           a given page.
879
880         [FIXES]
881         * Made the tick.t test not rely on 2shortplanks.com.
882
883 0.50    June 24, 2003
884         [ENHANCEMENTS]
885         * Mech now does what most browsers do when they handle a
886           redirect: It changes the POST to a GET.  This doesn't match the
887           RFC, but it's what browsers do.  Thanks to Stuart Children.
888
889 0.49    June 23, 2003
890         [FIXES]
891         * Added a fix a while ago that tracks redirect history.  That fix
892           had the bad side effect of always allowing a redirect.
893           That has now been fixed.
894
895 0.48    June 22, 2003
896         [ENHANCEMENTS]
897         * Added find_all_links() as the counterpart to find_link().
898
899         [FIXES]
900         * get() wasn't passing through its parms to LWP::UserAgent::get(),
901           so you couldn't use the :content_file parm.  Now it
902           behaves like a good little subclass.
903
904 0.47    June 21, 2003
905         [ENHANCEMENTS]
906         * find_link() now lets you pass n=>"all" to get back a list
907           of all links that match the other criteria.  NOTE: Outdated!  See
908           v0.48 for the preferred way.
909         * find_link() and follow_link() now complain if you pass
910           invalid parms to them.
911
912         [FIXES]
913         * Tracks URI history properly after redirects.
914
915 0.46    June 20, 2003
916         [ENHANCEMENTS]
917         * Added tick() and untick() functions for handling checkboxes.
918           Thanks to Mark Fowler for this patch.
919         * The uri() will only be the URI of the requested page if it worked.
920         * Oh yes, I forgot to mention: We're on Sourceforge now.
921
922 0.45    June 11, 2003
923         [ENHANCEMENTS]
924         * Added response() method, which is identical to res().
925         * Added a convenience method success(), which is just a wrapper
926           around $agent->res->is_success().
927         * Passes along a Referer: header.  It can still be overridden
928           with the %Headers hash, though.  Thanks, Corion.
929         * We now have a set of localized tests that run for machines that
930           aren't connected to the Net.  There's now a t/lib/ directory for
931           those helper files, and the previous Utils.pm has been dropped.
932           Again, Corion to the rescue.
933
934         [DOCUMENTATION]
935         * Added to the FAQ
936         * Rearranged all the functions in the file so they are now
937           logically grouped.
938
939 0.44    June 5, 2003
940         [ENHANCEMENTS]
941         * Now follows redirects after a POST.  By default, LWP::UserAgent
942           does NOT follow redirects after a POST.  This matches the
943           official RFC.  However, since WWW::Mechanize is meant to be a
944           browser clone, and browsers follow the redirects after a POST,
945           I've changed this behavior.  If this causes bummers, let me
946           know and maybe I'll throw in a switch.
947
948         [DOCUMENTATION]
949         * The package now includes the WWW::Mechanize logo in the etc/
950           directory.  I have no idea what I'll do with it, but thanks
951           to Meng Wong for making it!
952
953 0.43    May 29, 2003
954         [ENHANCEMENTS]
955         * Now uses request() instead of send_request().  This should
956           solve all of our redirection and cookie bummers.
957         * Added reload() method.  Thanks, Corion.
958
959 0.42    May 26, 2003
960         [ENHANCEMENTS]
961         * Renamed _do_request() to send_request(), so it's now a
962           proper overload of LWP::UserAgent.  Thanks to Philippe Bruhat.
963           Recorded in RT ticket #1708.
964         * Removed the req() method, and tests that used it.
965         * extract_links() now checks for <IFRAME> tags along with the
966           existing <A> and <FRAME>.
967         * Now explicitly requires HTML::HeadParser.
968         * Doesn't load Carp unless it's actually needed.
969
970 0.41    May 22, 2003
971         [ENHANCEMENTS]
972         * There are no enhancements in functionality.
973         * Testing suite getting more network-independent.
974
975         [DOCUMENTATION]
976         * Started a FAQ section.
977         * New SYNOPSIS section.  Thanks to Uri Guttmann.
978         * Documentation fixes.  Thanks to Mark Stosberg, Mike Fragassi.
979
980 0.40    April 18, 2003
981         [ENHANCEMENTS]
982         * Three new methods.
983           * find_link() for finding a specified link
984           * follow_link() for following a specified link
985           * submit_form() for all-in-one form submission.
986           All three owe a great deal to Uri Guttmann.  Thanks, Uri!
987         * Split out the examples into WWW::Mechanize::Examples.pod
988         * Added t/back.t
989         * Documentation fixes from Abigail
990
991 0.39    April 1, 2003
992         [ENHANCEMENTS]
993         * No functional enhancements.  Everything is docs.
994
995         * Added a new example from Dan Rinzel, for posting to Movable Type
996
997         * Started playing with having the test suite not have to have
998           live net access.
999
1000 0.38    March 24, 2003
1001         [DEPRECATIONS]
1002         * The %WWW::Mechanize::Headers hash is officially deprecated.
1003           It will be removed pretty soon.  I'm not sure what the
1004           replacement will be, but it won't be a package-level hash.
1005
1006         [ENHANCEMENTS]
1007         * The submit() method is no longer an alias for click("submit"),
1008           because some forms don't have a button called "submit".
1009           In fact, some may not have any buttons at all if they're
1010           JavaScript-controlled.
1011
1012         [FIXES]
1013         * RT #2056: $agent->field() wasn't returning proper input field,
1014           because of an incorrect call to the underlying HTML::Form.
1015           Thanks to Prakash Kailasa.
1016
1017 0.37    March 4, 2003
1018         [ENHANCEMENTS]
1019         * Added an is_html() method
1020         * Added a title() method
1021         * No longer requires the Clone module.
1022         * No longer requires the Test::Pod module, although it's nice
1023           to have.
1024
1025 0.36    February 4, 2003
1026         [ENHANCEMENTS]
1027         * Added form lookup by name.  Thanks to Jan Ivar Pladsen and
1028           Iain Truskett for their patches.
1029         * Added new functions form_name() and form_number().  Existing
1030           form() function calls each of these as appropriate.
1031         * Explicitly requires LWP 5.69 because of the form naming.
1032         * Added new POD section "Examples" for user-submitted sample code
1033           of how to use WWW::Mechanize.
1034         * Quieted the warnings in the test suite, so that you don't get
1035           expected, but disconcerting, warnings to the screen.
1036
1037 0.35    January 22, 2003
1038         [ENHANCEMENTS]
1039         * Now creates an internal cookie_jar by default.
1040         * Beefing up the test suite
1041         * Don't forget, direct access to internal members is deprecated.
1042           Use the accessors starting now.
1043
1044 0.33    January 15, 2003
1045         [ENHANCEMENTS]
1046         * Added accessor methods
1047         * Deprecated the direct accessing of object contents.  You can
1048           no longer rely on the names of any of the hash elements.
1049         * Added a quiet() method to suppress warnings to the screen.
1050
1051         [FIXES]
1052         * More documentation fixes.  (Thanks to Briac Pilpré)
1053
1054 0.32    September 23, 2002
1055         [FIXES]
1056         * Now correctly calls the LWP::UserAgent constructor.  (Thanks to
1057           Philippe "BooK" Bruhat)
1058
1059         * Fixed doc on what get() method returns.  (Again thanks to BooK)
1060
1061         * Now uses http://www.google.com/intl/en/ as the basis for
1062           testing, since non-US users apparently get redirected to
1063           country-specific sites when they hit http://www.google.com/
1064
1065 0.31    September 13, 2002
1066         [ENHANCEMENTS]
1067         * get() now returns the HTTP::Response object.
1068         * Prepended push_page_stack(), pop_page_stack() and
1069           do_request() with underscores, to emphasize that they
1070           are for internal use only.
1071
1072 0.30    September 10, 2002
1073         [ENHANCEMENTS]
1074         * Fixed the stack popping problem.
1075
1076         [FIXES]
1077         * Put all the inline tests into t/*.t
1078
1079         * get() doesn't work w/relative URLs
1080         http://rt.cpan.org/NoAuth/Bug.html?id=1492
1081
1082         * The arrays returned by extract_links()
1083         now have a third element, which contains
1084         the name attribute of the link (undef
1085         if the link has no name attribute).
1086
1087
1088 Code before this point is forked off from WWW::Automate 0.20b.