Commits

Yoko Toka committed 5210a8d

Twill 0.9 init

Comments (0)

Files changed (159)

+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
+<title>twill: a simple scripting language for Web browsing</title>
+<style type="text/css">
+
+/*
+:Author: David Goodger
+:Contact: goodger@users.sourceforge.net
+:Date: $Date: 2005-12-18 01:56:14 +0100 (Sun, 18 Dec 2005) $
+:Revision: $Revision: 4224 $
+:Copyright: This stylesheet has been placed in the public domain.
+
+Default cascading style sheet for the HTML output of Docutils.
+
+See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+customize this style sheet.
+*/
+
+/* used to remove borders from tables and images */
+.borderless, table.borderless td, table.borderless th {
+  border: 0 }
+
+table.borderless td, table.borderless th {
+  /* Override padding for "table.docutils td" with "! important".
+     The right padding separates the table cells. */
+  padding: 0 0.5em 0 0 ! important }
+
+.first {
+  /* Override more specific margin styles with "! important". */
+  margin-top: 0 ! important }
+
+.last, .with-subtitle {
+  margin-bottom: 0 ! important }
+
+.hidden {
+  display: none }
+
+a.toc-backref {
+  text-decoration: none ;
+  color: black }
+
+blockquote.epigraph {
+  margin: 2em 5em ; }
+
+dl.docutils dd {
+  margin-bottom: 0.5em }
+
+/* Uncomment (and remove this text!) to get bold-faced definition list terms
+dl.docutils dt {
+  font-weight: bold }
+*/
+
+div.abstract {
+  margin: 2em 5em }
+
+div.abstract p.topic-title {
+  font-weight: bold ;
+  text-align: center }
+
+div.admonition, div.attention, div.caution, div.danger, div.error,
+div.hint, div.important, div.note, div.tip, div.warning {
+  margin: 2em ;
+  border: medium outset ;
+  padding: 1em }
+
+div.admonition p.admonition-title, div.hint p.admonition-title,
+div.important p.admonition-title, div.note p.admonition-title,
+div.tip p.admonition-title {
+  font-weight: bold ;
+  font-family: sans-serif }
+
+div.attention p.admonition-title, div.caution p.admonition-title,
+div.danger p.admonition-title, div.error p.admonition-title,
+div.warning p.admonition-title {
+  color: red ;
+  font-weight: bold ;
+  font-family: sans-serif }
+
+/* Uncomment (and remove this text!) to get reduced vertical space in
+   compound paragraphs.
+div.compound .compound-first, div.compound .compound-middle {
+  margin-bottom: 0.5em }
+
+div.compound .compound-last, div.compound .compound-middle {
+  margin-top: 0.5em }
+*/
+
+div.dedication {
+  margin: 2em 5em ;
+  text-align: center ;
+  font-style: italic }
+
+div.dedication p.topic-title {
+  font-weight: bold ;
+  font-style: normal }
+
+div.figure {
+  margin-left: 2em ;
+  margin-right: 2em }
+
+div.footer, div.header {
+  clear: both;
+  font-size: smaller }
+
+div.line-block {
+  display: block ;
+  margin-top: 1em ;
+  margin-bottom: 1em }
+
+div.line-block div.line-block {
+  margin-top: 0 ;
+  margin-bottom: 0 ;
+  margin-left: 1.5em }
+
+div.sidebar {
+  margin-left: 1em ;
+  border: medium outset ;
+  padding: 1em ;
+  background-color: #ffffee ;
+  width: 40% ;
+  float: right ;
+  clear: right }
+
+div.sidebar p.rubric {
+  font-family: sans-serif ;
+  font-size: medium }
+
+div.system-messages {
+  margin: 5em }
+
+div.system-messages h1 {
+  color: red }
+
+div.system-message {
+  border: medium outset ;
+  padding: 1em }
+
+div.system-message p.system-message-title {
+  color: red ;
+  font-weight: bold }
+
+div.topic {
+  margin: 2em }
+
+h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
+h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
+  margin-top: 0.4em }
+
+h1.title {
+  text-align: center }
+
+h2.subtitle {
+  text-align: center }
+
+hr.docutils {
+  width: 75% }
+
+img.align-left {
+  clear: left }
+
+img.align-right {
+  clear: right }
+
+ol.simple, ul.simple {
+  margin-bottom: 1em }
+
+ol.arabic {
+  list-style: decimal }
+
+ol.loweralpha {
+  list-style: lower-alpha }
+
+ol.upperalpha {
+  list-style: upper-alpha }
+
+ol.lowerroman {
+  list-style: lower-roman }
+
+ol.upperroman {
+  list-style: upper-roman }
+
+p.attribution {
+  text-align: right ;
+  margin-left: 50% }
+
+p.caption {
+  font-style: italic }
+
+p.credits {
+  font-style: italic ;
+  font-size: smaller }
+
+p.label {
+  white-space: nowrap }
+
+p.rubric {
+  font-weight: bold ;
+  font-size: larger ;
+  color: maroon ;
+  text-align: center }
+
+p.sidebar-title {
+  font-family: sans-serif ;
+  font-weight: bold ;
+  font-size: larger }
+
+p.sidebar-subtitle {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+p.topic-title {
+  font-weight: bold }
+
+pre.address {
+  margin-bottom: 0 ;
+  margin-top: 0 ;
+  font-family: serif ;
+  font-size: 100% }
+
+pre.literal-block, pre.doctest-block {
+  margin-left: 2em ;
+  margin-right: 2em ;
+  background-color: #eeeeee }
+
+span.classifier {
+  font-family: sans-serif ;
+  font-style: oblique }
+
+span.classifier-delimiter {
+  font-family: sans-serif ;
+  font-weight: bold }
+
+span.interpreted {
+  font-family: sans-serif }
+
+span.option {
+  white-space: nowrap }
+
+span.pre {
+  white-space: pre }
+
+span.problematic {
+  color: red }
+
+span.section-subtitle {
+  /* font-size relative to parent (h1..h6 element) */
+  font-size: 80% }
+
+table.citation {
+  border-left: solid 1px gray;
+  margin-left: 1px }
+
+table.docinfo {
+  margin: 2em 4em }
+
+table.docutils {
+  margin-top: 0.5em ;
+  margin-bottom: 0.5em }
+
+table.footnote {
+  border-left: solid 1px black;
+  margin-left: 1px }
+
+table.docutils td, table.docutils th,
+table.docinfo td, table.docinfo th {
+  padding-left: 0.5em ;
+  padding-right: 0.5em ;
+  vertical-align: top }
+
+table.docutils th.field-name, table.docinfo th.docinfo-name {
+  font-weight: bold ;
+  text-align: left ;
+  white-space: nowrap ;
+  padding-left: 0 }
+
+h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
+h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
+  font-size: 100% }
+
+tt.docutils {
+  background-color: #eeeeee }
+
+ul.auto-toc {
+  list-style-type: none }
+
+</style>
+</head>
+<body>
+<div class="document" id="twill-a-simple-scripting-language-for-web-browsing">
+<h1 class="title">twill: a simple scripting language for Web browsing</h1>
+<p>twill is a simple scripting language intended for programmatic or
+automated browsing of Web sites.</p>
+<p>Documentation is available in the release package under
+doc/index.txt or doc/index.html.</p>
+<p>The latest release as well as all documentation is always online at
+<a class="reference" href="http://twill.idyll.org/">http://twill.idyll.org/</a>.  You can also find
+information on mailing lists, bug fixes, and new releases there.</p>
+<p>twill is Copyright (C) 2005, 2006, 2007 by C. Titus Brown, and is
+available for use, modification, and distribution under the MIT
+license.</p>
+<p>Contact <a class="reference" href="mailto:titus&#64;caltech.edu">titus&#64;caltech.edu</a> with questions or comments.</p>
+</div>
+</body>
+</html>
+twill: a simple scripting language for Web browsing
+===================================================
+
+twill is a simple scripting language intended for programmatic or
+automated browsing of Web sites.
+
+Documentation is available in the release package under
+doc/index.txt or doc/index.html.
+
+The latest release as well as all documentation is always online at
+http://twill.idyll.org/.  You can also find
+information on mailing lists, bug fixes, and new releases there.
+
+twill is Copyright (C) 2005, 2006, 2007 by C. Titus Brown, and is
+available for use, modification, and distribution under the MIT
+license.
+
+Contact titus@caltech.edu with questions or comments.

doc/ANNOUNCE-0.7.1.txt

+ANNOUNCING twill v0.7.1.
+
+twill is a simple Web scripting language built on top of Python and
+John J. Lee's 'mechanize'.  It's designed for automated testing of Web
+sites, but it should prove useful for anybody who needs to interact
+with Web sites (especially those using logins and cookies) on the
+command line or via a script.
+
+twill is a reimplementation of Cory Dodt's PBP.
+
+A twill script looks like this:
+
+  # go to the /. login page
+  go http://slashdot.org/login.pl
+
+  # fill in the form
+  fv 1 unickname test
+  fv 1 upasswd test
+  submit
+
+  # ok, there's no such account ;). show error HTML.
+  show
+
+---
+
+This is the second public release of twill, version 0.7.1.
+
+(Tagline: "Most of the obvious bugs have been fixed.")
+
+I'm still looking for general feedback on usability, as well as
+suggestions on additional use cases.
+
+Download directly here:
+
+    http://darcs.idyll.org/~t/projects/twill-0.7.1.tar.gz
+
+Documentation is online at
+
+    http://www.idyll.org/~t/www-tools/twill.html
+
+---
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill scripts can be recorded with maxq, although scripts may require
+some hand tweaking at the moment.  See the twill documentation for
+more information.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+Notable bug fixes and features:
+
+ * file upload & HTTP basic authentication;
+
+ * submit w/o submit buttons now works;
+
+ * better error reporting;
+
+ * 'quiet', 'interact after scripts', and 'fail-immediately'
+   command-line options.
+
+ * '-' <== stdin on command line.

doc/ANNOUNCE-0.7.2.txt

+ANNOUNCING twill v0.7.2.
+
+twill is a simple Web scripting language built on top of Python and
+John J. Lee's 'mechanize'.  It's designed for automated testing of Web
+sites, but it should prove useful for anybody who needs to interact
+with Web sites (especially those using logins and cookies) on the
+command line or via a script.
+
+twill is a reimplementation of Cory Dodt's PBP.
+
+A twill script looks like this:
+
+  # go to the /. login page
+  go http://slashdot.org/login.pl
+
+  # fill in the form
+  fv 1 unickname test
+  fv 1 upasswd test
+  submit
+
+  # ok, there's no such account ;). show error HTML.
+  show
+
+---
+
+This is the third public release of twill, version 0.7.2.
+
+(Tagline: "no obvious bugs")
+
+I'm still looking for general feedback on usability, as well as
+suggestions on additional use cases.
+
+Download directly here:
+
+    http://darcs.idyll.org/~t/projects/twill-0.7.2.tar.gz
+
+Documentation is online at
+
+    http://www.idyll.org/~t/www-tools/twill.html
+
+---
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill scripts can be recorded with maxq, although scripts may require
+some hand tweaking at the moment.  See the twill documentation for
+more information.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+Notable bug fixes and features:
+
+ * save_html and HTTP debugging commands;
+
+ * fixed extend_with bugs;
+
+ * updated pyparsing to 1.3.2;
+
+ * first PyPi release;

doc/ANNOUNCE-0.7.3.txt

+ANNOUNCING twill v0.7.3.
+
+twill is a simple Web scripting language built on top of Python and
+John J. Lee's 'mechanize'.  It's designed for automated testing of Web
+sites, but it should prove useful for anybody who needs to interact
+with Web sites (especially those using logins and cookies) on the
+command line or via a script.
+
+twill can also now be used for stress-testing and benchmarking of
+complex sites via the twill-fork script.
+
+twill is a reimplementation of Cory Dodt's PBP.
+
+A twill script looks like this:
+
+  # go to the /. login page
+  go http://slashdot.org/login.pl
+
+  # fill in the form
+  fv 1 unickname test
+  fv 1 upasswd test
+  submit
+
+  # ok, there's no such account ;). show error HTML.
+  show
+
+---
+
+This is the fourth public release of twill, version 0.7.3.
+
+(Tagline: "miscellaneous updates & twill-fork initial implementation")
+
+Download directly here:
+
+    http://darcs.idyll.org/~t/projects/twill-0.7.3.tar.gz
+
+Documentation is online at
+
+    http://www.idyll.org/~t/www-tools/twill.html
+
+---
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill scripts can be recorded with maxq, although scripts may require
+some hand tweaking at the moment.  See the twill documentation for
+more information.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+Notable bug fixes and features:
+
+ * added 'twill-fork' to allow multiprocess execution of twill-scripts
+   for stress-testing & benchmarking;
+
+ * image 'submit' buttons now allowed (Robert Leftwich);
+
+ * added 'Accept: text/html' above */* (Nic Ferrier);
+
+ * added 'run' to execute Python commands (Ed Rahn);
+
+ * added 'runfile' to execute other scripts (Ed Rahn);
+
+ * added $variable substitution (Ed Rahn);
+
+ * added 'setglobal'/'setlocal' to go along with $variable subs;
+
+ * increased code coverage of tests;

doc/ANNOUNCE-0.7.4.txt

+ANNOUNCING twill v0.7.4.
+
+twill is a simple Web scripting language built on top of Python and
+John J. Lee's 'mechanize'.  It's designed for automated testing of Web
+sites, but it should prove useful for anybody who needs to interact
+with Web sites (especially those using logins and cookies) on the
+command line or via a script.
+
+twill can also now be used for stress-testing and benchmarking of
+complex sites via the twill-fork script.
+
+twill is a reimplementation of Cory Dodt's PBP.
+
+A twill script looks like this:
+
+  # go to the /. login page
+  go http://slashdot.org/login.pl
+
+  # fill in the form
+  fv 1 unickname test
+  fv 1 upasswd test
+  submit
+
+  # ok, there's no such account ;). show error HTML.
+  show
+
+---
+
+This is the fifth public release of twill, version 0.7.4.
+
+(Tagline: "many bugs fixed, nose-based unit tests now work.")
+
+Download directly here:
+
+    http://darcs.idyll.org/~t/projects/twill-0.7.4.tar.gz
+
+Documentation is online at
+
+    http://www.idyll.org/~t/www-tools/twill.html
+
+---
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill scripts can be recorded with maxq, although scripts may require
+some hand tweaking at the moment.  See the twill documentation for
+more information.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+Notable bug fixes and features:
+
+  * better error handling & display;
+
+  * many, many browsing bugs fixed;
+
+  * new 'url', 'exit', 'showlinks', 'title', 'config' and 'agent' commands;
+
+  * 'nose' unit tests and unit-test support infrastructure; c.f.
+
+     http://www.idyll.org/~t/www-tools/twill.html#unit-testing
+
+Thanks go to Tommi Virtanen, James Cameron, sureshvv, William Volkman,
+and Mike Rovner for patches and bug reports.

doc/ANNOUNCE-0.7.txt

+ANNOUNCING twill v0.7.
+
+twill is a simple Web scripting language built on top of Python and
+mechanize.  It's designed for automated testing of Web sites, but
+it may be useful for anybody who needs to deal with Web sites
+(with e.g. logins and cookies) in a non-interactive manner.
+
+twill is a reimplementation of Cory Dodt's PBP.
+
+A twill script looks like this:
+
+  # go to the /. login page
+  go http://slashdot.org/login.pl
+
+  # fill in the form
+  fv 1 unickname test
+  fv 1 upasswd test
+  submit
+
+  # ok, there's no such account ;). show error HTML.
+  show
+
+---
+
+This is the first public release of twill, version 0.7.
+
+(Tagline: "It seems usable to me, but then I'm its author.")
+
+With this release, I'm looking for general feedback on usability, as
+well as suggestions on additional use cases.
+
+Download directly here:
+
+    http://darcs.idyll.org/~t/projects/twill-0.7.tar.gz
+
+Documentation is online at
+
+    http://www.idyll.org/~t/www-tools/twill.html
+
+---
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill scripts can be recorded with maxq, although scripts may require
+some hand tweaking at the moment.  See the twill documentation for
+more information.
+
+twill does not understand JavaScript, I'm sorry to say.

doc/ANNOUNCE-0.8.1.txt

+ANNOUNCING twill v0.8.1.
+
+twill is a simple language for browsing the Web.  It's designed for
+automated testing of Web sites, but it can be used to interact with
+Web sites in a variety of ways.  In particular, twill supports form
+submission, cookies, redirects, and HTTP authentication.
+
+A twill script to use the "I'm feeling lucky" button on Google looks
+like this:
+
+    setlocal query "twill Python"
+
+    go http://www.google.com/
+
+    fv 1 q $query
+    submit btnI     # use the "I'm feeling lucky" button
+
+    show
+
+(Note that using this script abuses Google's Terms of Service.  So don't.)
+
+This is the seventh public release of twill, version 0.8.1.
+
+You can install twill with easy_install, or download this release at
+
+    http://darcs.idyll.org/~t/projects/twill-0.8.1.tar.gz
+
+Documentation is included in the .tar.gz and is also online at
+
+    http://www.idyll.org/~t/www-tools/twill/
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+New features:
+
+    * match_parse extension (sureshvv);
+
+    * formfile fix for uploading binary files (Tom Parker);
+
+    * several patches for checkbox/hidden problems (tv);
+
+    * Referer: headers now correctly added on form submissions (Tom Parker);
+
+    * documentation reorganization.

doc/ANNOUNCE-0.8.2.txt

+ANNOUNCING twill v0.8.2.
+
+twill is a simple language for browsing the Web.  It's designed for
+automated testing of Web sites, but it can be used to interact with
+Web sites in a variety of ways.  In particular, twill supports form
+submission, cookies, redirects, and HTTP authentication.
+
+A twill script to use the "I'm feeling lucky" button on Google looks
+like this:
+
+    setlocal query "twill Python"
+
+    go http://www.google.com/
+
+    fv 1 q $query
+    submit btnI     # use the "I'm feeling lucky" button
+
+    show
+
+(Note that using this script abuses Google's Terms of Service.  So don't.)
+
+This is the eighth public release of twill, version 0.8.2.
+
+You can install twill with easy_install, or download this release at
+
+    http://darcs.idyll.org/~t/projects/twill-0.8.2.tar.gz
+
+Documentation is included in the .tar.gz and is also online at
+
+    http://www.idyll.org/~t/www-tools/twill/
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+New features:
+
+  * added robust-ified form parsing code;
+
+  * updated to latest mechanize, ClientForm, ClientCookie code;
+
+  * updated to latest pyparsing code (1.4.1);
+
+  * updated to latest wsgi_intercept code;
+
+  * 'set_output' can now be used to redirect twill output specifically;
+
+  * added execute_script function;
+
+  * added return values to a number of the simple command-line functions;
+
+  * fixed bugs in 'showlinks', 'go';
+
+Backwards incompatibility issues:
+
+  * changed tidy config option names;
+
+  * wsgi_intercept code now wants a function that does its own app object
+    caching.

doc/ANNOUNCE-0.8.3.txt

+ANNOUNCING twill v0.8.3.
+
+twill is a simple language for browsing the Web.  It's designed for
+automated testing of Web sites, but it can be used to interact with
+Web sites in a variety of ways.  In particular, twill supports form
+submission, cookies, redirects, and HTTP authentication.
+
+A twill script to use the "I'm feeling lucky" button on Google looks
+like this:
+
+    setlocal query "twill Python"
+
+    go http://www.google.com/
+
+    fv 1 q $query
+    submit btnI     # use the "I'm feeling lucky" button
+
+    show
+
+(Note that using this script abuses Google's Terms of Service.  So don't.)
+
+This is the ninth public release of twill, version 0.8.3.
+
+You can install twill with easy_install, or download this release at
+
+    http://darcs.idyll.org/~t/projects/twill-0.8.3.tar.gz
+
+Documentation is included in the .tar.gz and is also online at
+
+    http://www.idyll.org/~t/www-tools/twill/
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+New features:
+
+  * fixed minor bug in links parsing;
+
+  * included BeautifulSoup.
+
+(This is basically a quick bug fix release for twill 0.8.2...)

doc/ANNOUNCE-0.8.4.txt

+ANNOUNCING twill v0.8.4.
+
+twill is a simple language for browsing the Web.  It's designed for
+automated testing of Web sites, but it can be used to interact with
+Web sites in a variety of ways.  In particular, twill supports form
+submission, cookies, redirects, and HTTP authentication.
+
+A twill script to use the "I'm feeling lucky" button on Google looks
+like this:
+
+    setlocal query "twill Python"
+
+    go http://www.google.com/
+
+    fv 1 q $query
+    submit btnI     # use the "I'm feeling lucky" button
+
+    show
+
+(Note that using this script abuses Google's Terms of Service.  So don't.)
+
+This is the ninth public release of twill, version 0.8.4.
+
+You can install twill with easy_install, or download this release at
+
+    http://darcs.idyll.org/~t/projects/twill-0.8.4.tar.gz
+
+Documentation is included in the .tar.gz and is also online at
+
+    http://www.idyll.org/~t/www-tools/twill/
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+Significant changes with 0.8.4:
+
+  * improved installation docs and simplified installation;
+
+  * added link checking, requirements processing, and arguments parsing
+    extension modules.
+
+  * improved extension module handling; added extension module documentation.
+
+  * fixed memory leaks.
+
+  * fixed tidy problem on Windows.
+
+  * line number of scripts printed on traceback.
+
+  * fixed file:// URLs.
+
+  * added option for debugging HTTP-EQUIV REFRESH code.

doc/ANNOUNCE-0.8.5.txt

+ANNOUNCING twill v0.8.5.
+
+twill is a simple language for browsing the Web.  It's designed for
+automated testing of Web sites, but it can be used to interact with
+Web sites in a variety of ways.  In particular, twill supports form
+submission, cookies, redirects, and HTTP authentication.
+
+A twill script to use the "I'm feeling lucky" button on Google looks
+like this:
+
+    setlocal query "twill Python"
+
+    go http://www.google.com/
+
+    fv 1 q $query
+    submit btnI     # use the "I'm feeling lucky" button
+
+    show
+
+(Note that using this script abuses Google's Terms of Service.  So don't.)
+
+This is the tenth public release of twill, version 0.8.5.
+
+You can install twill with easy_install, or download this release at
+
+    http://darcs.idyll.org/~t/projects/twill-0.8.5.tar.gz
+
+Documentation is included in the .tar.gz and is also online at
+
+    http://twill.idyll.org/
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+Significant changes with 0.8.5:
+
+  * Added 'formfill', 'dirstack', 'csv_iterate', 'dns_check' extension
+    modules;
+
+  * Fixed several https problems;
+
+And, of course, there were the usual major and minor bug fixes.
+This is a much more robust release than any of the previous ones!

doc/ANNOUNCE-0.8.txt

+ANNOUNCING twill v0.8.
+
+twill is a simple language for testing Web applications.  It's designed
+for automated testing of Web sites, but it can be used to interact with
+Web sites in a variety of ways.
+
+twill has an interactive shell, 'twill-sh', and can also run scripts.
+
+twill is a reimplementation of Cory Dodt's PBP.  It is built on top
+of Python and John J. Lee's mechanize.
+
+A twill script looks like this:
+
+  # go to the /. login page
+  go http://slashdot.org/login.pl
+
+  # fill in the form
+  fv 1 unickname test
+  fv 1 upasswd test
+  submit
+
+  # ok, there's no such account ;). show error HTML.
+  show
+
+---
+
+This is the sixth public release of twill, version 0.8.
+
+(Tagline: "85% unit tested.")
+
+You can install twill with easy_install via PyPi, or download
+the latest .tar.gz at:
+
+    http://darcs.idyll.org/~t/projects/twill-0.8.tar.gz
+
+Documentation is included in the .tar.gz and is also online at
+
+    http://www.idyll.org/~t/www-tools/twill.html
+
+---
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill scripts can be recorded with maxq, although scripts may require
+some hand tweaking at the moment.  See the twill documentation for
+more information.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+New features:
+
+ * test WSGI Python applications in-process;
+
+ * Updated to latest versions of mechanize, ClientCookie, ClientForm, and
+   pullparser;
+
+ * Significant increase in number of unit tests & their code coverage;
+
+ * Automatic 'tidy' preprocessing when available;
+
+ * easy_install/eggs now supported;
+
+ * http-equiv redirect now works;
+
+ * new commands:
+
+   - 'formaction' changes form URLs;
+   - 'tidy_ok' checks for 'tidy' correctness;
+   - 'showhistory' command;
+
+Special thanks to sureshvv and Simon Buenzli...

doc/ANNOUNCE-0.9.txt

+ANNOUNCING twill v0.9.
+
+twill is a simple language for browsing the Web.  It's designed for
+automated testing of Web sites, but it can be used to interact with
+Web sites in a variety of ways.  In particular, twill supports form
+submission, cookies, redirects, and HTTP authentication.
+
+This release of twill is officially "Pretty Dang Stable".
+
+A twill script to use the "I'm feeling lucky" button on Google looks
+like this:
+
+    setlocal query "twill Python"
+
+    go http://www.google.com/
+
+    fv 1 q $query
+    submit btnI     # use the "I'm feeling lucky" button
+
+    show
+
+(Note that using this script abuses Google's Terms of Service.  So don't.)
+
+You can install the latest release of twill with easy_install,
+
+    easy_install twill
+
+or download this release at
+
+    http://darcs.idyll.org/~t/projects/twill-0.9.tar.gz
+
+Documentation is included in the .tar.gz and is also online at
+
+    http://twill.idyll.org/
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+Note that twill does not understand JavaScript.
+
+---
+
+Significant changes with 0.9:
+
+ - many small bugs were fixed, of course!
+
+ - patched subprocess pipe problem (Chris Abraham).  This fixes problems
+   with long-running twill processes.
+
+ - twill now "plays nice" with other versions of mechanize and ClientForm
+   (good for including it in distributions).
+
+ - Corrected license information => MIT in all files.
+
+ - new 'info' command gives human-readable page summary.

doc/ANNOUNCE-0.9b1.txt

+ANNOUNCING twill v0.9b1.
+
+twill is a simple language for browsing the Web.  It's designed for
+automated testing of Web sites, but it can be used to interact with
+Web sites in a variety of ways.  In particular, twill supports form
+submission, cookies, redirects, and HTTP authentication.
+
+This release of twill is officially "Pretty Dang Stable".
+
+A twill script to use the "I'm feeling lucky" button on Google looks
+like this:
+
+    setlocal query "twill Python"
+
+    go http://www.google.com/
+
+    fv 1 q $query
+    submit btnI     # use the "I'm feeling lucky" button
+
+    show
+
+(Note that using this script abuses Google's Terms of Service.  So don't.)
+
+You can install the latest release of twill with easy_install,
+
+    easy_install twill
+
+or download this release at
+
+    http://darcs.idyll.org/~t/projects/twill-0.9b1.tar.gz
+
+Documentation is included in the .tar.gz and is also online at
+
+    http://twill.idyll.org/
+
+Miscellaneous details:
+
+twill is implemented in Python and uses pyparsing and mechanize.  In
+addition to the existing simple command language, twill can easily be
+extended with Python.  twill also provides a fairly simple and
+well-documented wrapper around mechanize.
+
+twill does not understand JavaScript, I'm sorry to say.
+
+---
+
+Significant changes with 0.9b1
+
+  * Switched to MIT license.
+
+  * twill tests now work under Windows and cygwin (switch to subprocess).
+    Fixed a variety of Windows-specific bugs in the process ;).
+
+  * Complete integration with latest mechanize, including global form
+    access.
+
+  * Added Seo Sanghyeon's patch to enable form element TAB completion on
+    'formvalue' command.
+
+  * twill-sh now gathers scripts from subdirectories.
+
+  * Added paste.lint test into wsgi_intercept test code.
+
+  * Cleared up confusing test output when test server didn't run.
+
+  * Started using the BeautifulSoup code included with mechanize.
+
+  * Added TWILL_TEST_PORT for running tests on something other than port 8080.
+
+  * Added Andy Chamber's patch to the formfill extension module.
+
+  * Fixed DNS tests to be reliant on name records I control.
+
+  * Removed ClientCookie dependencies.
+
+  * Defended my PhD.
+
+  * Added newline '\n' processing in arguments.
+2007-12-27  Titus Brown  <t@iorich.caltech.edu>
+
+	* Added better error message to 'url' (Matt Wilson).
+
+2007-12-23  Titus Brown  <t@iorich.caltech.edu>
+
+	* Updated version to 0.9.
+
+	* Updated license information => MIT in all files, along
+	  with Web link and copyright (Will Maier)
+
+	* Updated tests to work with nose > 0.9.x.
+
+2007-12-04  Titus Brown  <t@iorich.caltech.edu>
+
+	* Fixed iterator double call in wsgi_intercept (Antti Kaihola).
+
+2007-07-02  C. Titus Brown  <t@chreotha>
+
+	* Fixed small documentation error in commands (Bill Mill).
+
+	* Fixed another problem match_parse: made popmatch work properly
+	  (Sheryl).
+
+2007-07-01  C. Titus Brown  <t@chreotha>
+
+	* Moved 'mechanize' to '_mechanize_dist', 'ClientForm' to
+	'_mechanize_dist.ClientForm', as requested for Debian dists.
+
+	* Fixed a problem with __matchlist__ in match_parse extension
+  	  (Sheryl).
+
+	* All raised exceptions now inherit from TwillException (Kevin Turner).
+
+	* Eliminated FakeResponse and switched to using
+	  mechanize.make_response (Jacob Hallan, JJL).
+
+	* Updated mechanize to latest; includes my two patches to mechanize.
+
+2007-06-04  Titus Brown  <t@iorich.caltech.edu>
+
+	* Updated mechanize to latest.
+
+	* Patched subprocess pipe freeing problem (Chris Abraham).  (This
+	  is a moderately serious bug for long-running programs that use
+	  subprocess to try to run programs that don't exist.)
+
+	  My patch modifies run_tidy to remember if subprocess failed because
+	  tidy didn't exist.
+
+2007-05-28  Titus Brown  <t@iorich.caltech.edu>
+
+	* Added 'info' command, docs, and tests.
+
+	* Removed gopherlib references in mechanize; added test.
+
+2007-03-19  Titus Brown  <t@localhost.localdomain>
+
+	* Fixed bug in my patch to mechanize 'select_form'.
+
+	* Removed debug 'print' in wsgi_intercept.py.
+
+2007-03-06  Titus Brown  <t@localhost.localdomain>
+
+	* RELEASE 0.9b1.
+
+	* Changed version to 0.9b1.
+
+	* Fixed global_form selection on form set (Matt Singer).
+
+2007-02-18  Titus Brown  <t@localhost.localdomain>
+
+	* Added paste.lint tests into wsgi_intercept test code; fixed
+	  only problem noted.
+
+2007-02-15  Titus Brown  <t@localhost.localdomain>
+
+	* Fixed browser.get_form to only allow valid form numbers (Mariusz).
+
+	* Fixed showforms to properly display form numbers (Mariusz).
+
+2007-02-14  Titus Brown  <t@localhost.localdomain>
+
+	* Added a basic check for Web server to tests: tests no longer
+	  run if the test Web server isn't available.
+
+	* Added get_browser() to twill.commands exports.
+
+2007-02-08  Titus Brown  <t@localhost.localdomain>
+
+	* Global forms no longer show up IF EMPTY.
+
+2007-02-04  Titus Brown  <t@localhost.localdomain>
+
+	* Switched to MIT license.
+
+2007-01-29  Titus Brown  <t@localhost.localdomain>
+
+	* Removed BeautifulSoup.py in favor of the one included with
+	  mechanize.
+
+	* Added pages 'show_environ' and 'show_post' to twilltestserver.
+
+	* Added commands 'add_extra_header', 'show_extra_headers', and
+	  'clear_extra_headers', + tests & docs.  (Shaun Walbridge)
+
+	* Always display proper form number in showforms.
+
+2007-01-24  Titus Brown  <t@localhost.localdomain>
+
+	* Made twill tests work under Windows-cygwin too!
+
+2007-01-23  Titus Brown  <t@localhost.localdomain>
+
+	* Made twill tests work under Windows+cygwin by switching to
+	  subprocess.
+
+2007-01-16  Titus Brown  <t@localhost.localdomain>
+
+	* Fixed twill tests (!?)
+
+2007-01-14  Titus Brown  <t@localhost.localdomain>
+
+	* global_form is now form[0] if present.
+
+	* Deprecated allow_parse_errors config option; isn't needed for
+	  latest mechanize.
+
+	* Updated mechanize and ClientForm to latest svn; patched to pass
+	  twill tests.  Preserved originals in mechanize/_html.py.jjl,
+	  ClientForm.py.jjl.
+
+2007-01-09  Titus Brown  <t@localhost.localdomain>
+
+	* Added complete_fv to formvalue completion patch.
+
+	* Added formvalue completion patch (Seo Sanghyeon).
+
+2006-11-29  Titus Brown  <t@localhost.localdomain>
+
+	* Fixed test-form.twill to match new output format.
+
+	* Patched __init__.py to remove UNIX-specific '/' from the
+	  sys.path insert statement.  (Ramon Felciano)
+
+	* Patched wsgi_intercept: REMOTE_ADDRESS ==> REMOTE_ADDR.
+
+2006-11-01  Titus Brown  <t@localhost.localdomain>
+
+	* formvalue now returns an informative error message when
+	  a file upload field is touched (Matthew Singer)
+
+	* Added Andy Chamber's formfill patch.
+
+	* Added tests for Andy Chambers's formfill patch.
+
+	* Fixed bug in mechanize/_html.py links parsing.
+
+2006-10-26  Titus Brown  <t@localhost.localdomain>
+
+	* Added TWILL_TEST_PORT in for running tests on something other
+	  than port 8080.
+
+2006-10-19  Titus Brown  <t@localhost.localdomain>
+
+	* Updated mechanize & ClientForm to svn latest.
+
+2006-10-17  Titus Brown  <t@localhost.localdomain>
+
+	* Fix to BS parsing problem (?)
+
+2006-10-16  Titus Brown  <t@localhost.localdomain>
+
+	* Changed assertions in test-broken-html.py to refer to tidy.
+
+	* Put a pkg_resources.require('dnspython>=1.4') in for test-dns.py
+
+2006-10-15  Titus Brown  <t@vallista.idyll.org>
+
+	* Switched over to using pkg_resources.require for quixote version
+	  require/check.
+
+	* Fixed DNS tests with fake idyll.org hosts (Alex Martelli)
+
+2006-09-20  Titus Brown  <t@issola.caltech.edu>
+
+	* Bumped version to 0.9.
+
+	* Switched references to urllib2 over to mechanize, per JJL.
+
+2006-07-12  Titus Brown  <t@issola.caltech.edu>
+
+	* removed ClientCookie dependencies
+
+2006-07-09  Titus Brown  <t@issola.caltech.edu>
+
+	* Updated gather code to properly deal with lexical ordering in
+	  directory hierarchies.
+
+	* Finished fixing up the HTML processing code to the latest mechanize.
+
+2006-07-07  Titus Brown  <t@issola.caltech.edu>
+
+	* added newline '\n' processing in arguments.  still need to test.
+
+	* added utils.gather_files to gather script files from subdirectories.
+
+2006-06-19  Titus Brown  <t@issola.caltech.edu>
+
+	* Fixed name server change in test-dns.twill.
+
+	* Fixed __match__ info in docs.
+
+2006-06-04  Titus Brown  <t@issola.caltech.edu>
+
+	* RELEASE 0.8.5.
+
+2006-05-19  Titus Brown  <t@issola.caltech.edu>
+
+	* Added 'formfill' extension module, tests, & docs. (Ben Bangert)
+
+	* 'debug' now takes boolean (+/-) arguments, too.
+
+2006-05-17  Titus Brown  <t@issola.caltech.edu>
+
+	* Bumped version number.
+
+	* Explicitly str-ified form/field names.  (Sebastien Pierre)
+
+	* Added path mangling issue to 'known problems'.
+
+	* Modified 'extend_with' import command to also print out
+	  location of imported module.
+
+	* Fixed unnecessary path mangling that introduced the package
+	  directory into sys.path; associated check_links idiocy.
+	  (Herve Cauwelier)
+
+	* Fixed test breakage due to amazon.com DNS changes.
+
+2006-05-15  Titus Brown  <t@issola.caltech.edu>
+
+	* Bumped version number, fixed import order issue.
+
+2006-05-11  Titus Brown  <t@issola.caltech.edu>
+
+	* Added 'check_links' collecting behavior, 'report_bad_links' function.
+
+	* Added debug logging to csv_iterate.
+
+2006-05-08  Titus Brown  <t@issola.caltech.edu>
+
+	* Added dirstack extension module
+
+2006-05-07  Titus Brown  <t@issola.caltech.edu>
+
+	* Fixed general https problem ('back' didn't work because the
+	  response fp was 'close'd but not wrapped in addinfourl for
+	  HTTPS URLs).  (re ARINC)
+
+	* Fixed check_links problem with 'https:' URLs, refactored a tad.
+	  (re ARINC)
+
+	* Fixed wsgi_intercept generator problem, added test.
+
+	* Fixed a reference to an absolute URL in the tests.
+
+2006-04-29  Titus Brown  <t@issola.caltech.edu>
+
+	* Added (re-added!?) test-wsgi-intercept.py test.
+
+	* 'execute_string' no longer resets context, unlike 'execute_file'.
+
+	* Fixed a few miscellaneous problems with argparse.get_args; added
+	  optional 'require' argument to get_args.
+
+	* added 'interactive' flag to twill.shell; turned off verbose
+	  output for 'extend_with' command if not interactive.
+
+2006-04-24  Titus Brown  <t@issola.caltech.edu>
+
+	* Added csv_iterate module.
+
+	* Fixed argparse to use $arg1...$argN instead of $arg0.
+
+2006-04-23  Titus Brown  <t@issola.caltech.edu>
+
+	* Fixed argparse to listen to arguments after '--' only.
+
+	* Updated 'problems.txt' again with a Windows-specific 'tidy'
+	  problem.  (aledain)
+
+	* Refactored '_all_the_same...' code by moving it into utils.py.
+
+	* browser.get_form() now checks for exact match to form ID.
+	  (Uy Do)
+
+	* browser.get_form_field() now checks for exact match to control ID
+	  (Uy Do)
+
+	* Updated ClientCookie to latest svn.
+
+	* Added another weird form parsing error: </br> problems in forms.
+	  (David Hancock)
+
+	* Verified issue with ParseErrors caused by INPUTs in the wrong
+	  place.  Put in test-broken-html.  Cannot fix easily... <sigh>
+	  (Tomi Hautakoski)
+
+	* Fixed wsgi_intercept/write_fn issue.
+
+2006-04-13  Titus Brown  <t@issola.caltech.edu>
+
+	* Changed 'save_html' to default to deriving the filename from the
+	  URL (Tristan De Buysscher).
+
+2006-03-30  Titus Brown  <t@issola.caltech.edu>
+
+	* Added redirect_error, reset_error to commands.py, and
+	  added function 'twill.set_errout'.
+
+	* Added '-n', '--never-fail' option to 'twill-sh'.
+
+	* Fixed a problem with ClientForm.AmbiguityError being raised in
+	  bad places.
+
+	* Updated ClientForm to latest.
+
+2006-03-26  Titus Brown  <t@issola.caltech.edu>
+
+	* Updated dns_check with Bob Halley's suggestions.
+
+	* Added docs & (fragile) tests to the dns_check extension module.
+
+	* Added dns_check.py extension module.  No docs/tests yet.
+
+2006-03-25  Titus Brown  <t@issola.caltech.edu>
+
+	* Allowed failure to import setuptools in setup.py.
+
+2006-03-23  Titus Brown  <t@issola.caltech.edu>
+
+	* Major twill/shell.py patch to allow for dynamic addition of 
+	  methods to shell objects.
+
+	* RELEASE 0.8.4.
+
+	* Improved extension module docstrings.
+
+	* Added better printout when 'extend_with' is used.
+
+	* Added argparse extension module (Michele Simionato).
+
+2006-03-22  Titus Brown  <t@issola.caltech.edu>
+
+	* Changed __match__ to listen to subgroups. (Leonardo Santagada).
+
+	* Added Stephen Thorne's fix for multiple checkboxes with the same
+	  name/different values.
+
+2006-03-21  Titus Brown  <t@issola.caltech.edu>
+
+	* Added 'acknowledge_equiv_refresh' option & added helpful
+	  error message on infinite refresh detection (Leonardo Santagada).
+
+	* Added in Stephen Thorne's fix for readonly-controls printout.
+
+	* Added in Stephen Thorne's checkbox test & added 'on'/'off' for
+	  checkbox stuff.
+
+	* Added in Stephen Thorne's "with_default_realm" auth patch.
+
+2006-03-17  Titus Brown  <t@issola.caltech.edu>
+
+	* Added in Jeff Martin's ${variable} expansion patch.
+
+	* List values can now be selected/deselected with +/-.
+
+	* Checkboxes can now be set with True or a non-zero number, and
+	  cleared with a False or '0'.
+
+	* Switched over to using 'require success' instead of code 200
+	  on some scripts.
+
+	* Fixed a number of unknown options ;).
+
+	* 'config' now fails on unknown options.
+
+2006-03-15  Titus Brown  <t@issola.caltech.edu>
+
+	* Moved utils.journey() function into TwillBrowser class as
+	  _journey, refactored, simplified & eliminated _new_page()
+	  method.
+
+	* Added check_links extension module.
+
+	* Added simple extension module documentation.
+
+	* Added installation instructions.
+
+2006-03-14  Titus Brown  <t@issola.caltech.edu>
+
+	* Added list of known problems.
+
+	* Added Web testing programs for Perl & PHP to docs.
+
+2006-03-09  Titus Brown  <t@issola.caltech.edu>
+
+	* Switched mechanize default encodings over to utf-8 (Terry
+	  Peppers, many others!)
+
+2006-03-06  Titus Brown  <t@issola.caltech.edu>
+
+	* fixed twill.shell.main() so that -i flag makes interact run
+	  even on failure exit.  (Kieran Holland)
+
+	* Added setuptools entry_points magic for twill-sh script.
+
+2006-03-05  Titus Brown  <t@issola.caltech.edu>
+
+	* SystemExit problems in the twill shell, fixed.
+
+	* Added 'redirect_output' and 'reset_output'. (Norman Khine)
+
+	* Fixed memory leak in reset_browser(). (Alexander Shvedunov)
+
+	* Increased test coverage overall to 85%.
+
+	* Now test the shell code fairly well.
+
+	* Cleaned up some of the stdout issues with nose.
+
+	* fixed buggishness in shell code.
+
+	* Made sure to close fp in tidy code.
+
+2006-02-28  Titus Brown  <t@issola.caltech.edu>
+
+	* runfile now allows multiple filenames properly.
+
+2006-02-21  Titus Brown  <t@issola.caltech.edu>
+
+	* TwillAssertionError no longer subclasses AssertionError.
+
+	* execute_command now takes a cmdinfo argument so that line number
+	  of input can be traced in errors.
+
+2006-02-16  Titus Brown  <t@issola.caltech.edu>
+
+	* Fixed 'run_tidy' >& error on windows.
+
+	* Fixed "file:" URLs for which result.code doesn't exist.
+
+2006-02-09  Titus Brown  <t@issola.caltech.edu>
+
+	* Added 'equiv-refresh' debug option.
+
+2006-02-08  Titus Brown  <t@issola.caltech.edu>
+
+	* 0.8.3 RELEASE
+
+	* fixed minor links parsing bug (seek(0) prior to parsing!)
+
+	* renamed wwwsearch/ to other_packages/.
+
+	* added BeautifulSoup.
+
+2006-02-06  Titus Brown  <t@issola.caltech.edu>
+
+	* 0.8.2 RELEASE.
+
+	* Documented config options.
+
+	* Added in parse_errors stuff: config parse options now all work.
+
+	* Wedged in all of the mechanize parse Factory refactoring.
+
+	* Refactored a bit to use Factory() amalgamation.  In particular,
+	  removed title() override in PatchedMechanizeBrowser; built a
+	  Factory subclass in utils; and removed external references to
+	  TidyAware code.
+
+2006-02-05  Titus Brown  <t@issola.caltech.edu>
+
+	* Added 'set_output' command to redirect all output elsewhere.
+
+	* Updated pyparsing to 1.4.1.
+
+2006-02-04  Titus Brown  <t@issola.caltech.edu>
+
+	* added execute_string.
+
+	* Updated wsgi_intercept to latest (non-caching) version.
+
+	* Removed test-wsgi-intercept code.
+
+2006-02-01  Titus Brown  <t@issola.caltech.edu>
+
+	* Added ignore_errors functioning into wwwsearch code; now, when
+	  ignore_errors=True on form parsing, parse errors are ignored.
+
+	* Renamed 'do_run_tidy' to 'use_tidy', and 'tidy_should_exist' to
+	  'require_tidy'.
+
+	* Fixed redirect error once and for all by switching to using the
+	  *correct* Request class.
+
+2006-01-23  Titus Brown  <t@issola.caltech.edu>
+
+	* Added extensions/ __init__.py
+
+	* Removed special setup cmdclass.
+
+2006-01-22  Titus Brown  <t@issola.caltech.edu>
+
+	* Removed space mangling in favor of JJL's fix in mechanize.
+
+	* Fixed multiple 'showlinks' problem (in _mechanize.py).
+
+	* Catch all parsing exceptions. (Kieran Holland)
+
+	* Added return values to a number of functions in commands.py,
+	  documented appropriately.
+
+	* Added '?' behavior for 'go', so that 'go ?name=value' works.
+	  (Sebastjan Trepca)
+
+	* Updated pyparsing to 1.4p1 version.
+
+	* Updated mechanize/ClientCookie/ClientForm.
+
+	* Removed ez_setup dependency.
+
+2005-12-19  Titus Brown  <t@issola.caltech.edu>
+
+	* Added tv@debian.org's 'find' regexp flags patch.
+
+	* Added tv@debian.org's quoted patch.
+
+	* Added tv@debian.org's patch to widen showforms field names.
+
+	* Added tv@debian.org's patch to fix checkbox/submit multiplicity
+	  errors.
+
+	* Added Jason Pellerin's tests patch.
+
+2005-12-11  Titus Brown  <t@issola.caltech.edu>
+
+	* Added twill.get_browser(); deprecated twill.get_browser_state().
+
+	* Broke mechanize stuff out into _browser.py.
+
+	* Removed browser.url() in favor of get_url().
+
+2005-12-10  Titus Brown  <t@issola.caltech.edu>
+
+	* RELEASE 0.8.1.
+
+	* Added Tom Parker's patch for multiple identical submit buttons.
+
+2005-12-08  Titus Brown  <t@issola.caltech.edu>
+
+	* fixed wsgi_intercept start_response params: added exc_info.
+
+	* added 'sleep' argument to TestInfo init.
+
+2005-12-06  Titus Brown  <t@issola.caltech.edu>
+
+	* Added sureshvv's commands in as 'match_parse' extension.
+
+	* Moved extensions/ into twill/extensions; modified sys.path
+	  accordingly in package import.
+
+2005-12-05  Titus Brown  <t@issola.caltech.edu>
+
+	* Fixed a problem where tidy was occasionally mangling long titles
+	  with unnecessary newlines.
+
+	* Fixed a bug in PatchedMechanizeBrowser.title() where seek(0) was
+	  not getting called.
+
+2005-12-03  Titus Brown  <t@issola.caltech.edu>
+
+	* formfile now uses 'rb' to open files.  (Tom Parker)
+
+	* local namespace now automatically created if it doesn't exist.
+
+	* Applied tv's patches for checkbox/hidden problems and incorrect
+	  error messages.
+
+	* Fixed form submission to add referer headers; updated tests.
+	  (Tom Parker)
+
+	* Fixed tests: setup -> setup_module, teardown -> teardown_module.
+
+2005-11-29  Titus Brown  <t@issola.caltech.edu>
+
+	* RELEASE 0.8.
+
+	* Additional coverage and some miscellaneous fixes.
+
+2005-11-28  Titus Brown  <t@issola.caltech.edu>
+
+	* Made http-equiv=refresh stuff work by overriding it in utils.py.
+	  My fix is probably bad.  oh well, shouldn't make a difference...
+
+2005-11-27  Titus Brown  <t@issola.caltech.edu>
+
+	* Verified that eggs stuff now "just works".
+
+	* Put in a fix for an HTTP Basic Auth bug (that is fixed in Py 2.5!)
+
+	* Added in a test of 'formaction'.
+
+	* Added in a bunch of form tests to test-form, fixed bugs discovered
+	  thereby.
+
+	* Added in sureshvv's formaction/fa patch.
+
+	* Added in docs re 'tidy'.
+
+	* Put in a rough 'tidy' implementation by wrapping FormsFactory and
+	  LinksFactory.parser_class.
+
+	* Removed 'get_title' from RequestWrapper, moved to using
+	  MechanizeBrowser.title().
+
+	* Added 'utils.run_tidy' function & 'test-tidy.py' under tests/.
+
+	* Moved the journey-exception-wrapping into the mechanize mech_open
+	  function; this fixes a bug reported by sureshvv.  Augmented
+	  test-back.twill to test this, and added a 'plaintext' function
+	  to the twill test server.
+
+2005-11-20  Titus Brown  <t@issola.caltech.edu>
+
+	* Switched to using pullparser to extract title in utils.
+
+	* Increased code coverage of unit tests significantly.
+
+2005-11-19  Titus Brown  <t@issola.caltech.edu>
+
+	* Fixed 'code' command to display non-numeric codes from get_code()
+	  (which may return None).  'code' itself still requires an integer.
+
+	* Fixed test-wsgi-intercept.py to init global/local dictionaries.
+
+	* Added 'test-find.*'
+
+	* Set __match__ to matching string in find, url, and title.
+
+2005-11-18  Titus Brown  <t@issola.caltech.edu>
+
+	* Version upgraded to 0.8.
+
+	* Removed ez_setup hooks for the moment, because they interfered
+	  with build/install.
+
+	* Finished updating to latest mechanize code.  whew.
+
+	* Miscellaneous fixes to browser.py.
+
+	* Miscellaneous fixes to ClientCookie/_Util.py.
+
+	* Added 'showhistory' command.
+
+	* WSGI intercept stuff is now much cleaner.  Could be even cleaner,
+	  yes...
+
+	* Updated ClientForm/ClientCookie/pullparser.
+
+2005-11-17  Titus Brown  <t@issola.caltech.edu>
+
+	* substantially updated README with links to other tools.
+
+	* KeyboardInterrupts don't error out in twill-sh; they just force
+	  a silent exit.
+
+	* Added a code 500 test to 'test-http-codes'.
+
+2005-11-15  Titus Brown  <t@issola.caltech.edu>
+
+	* Fixed failure to seek(0) before parsing response; problem
+	  in _parse_html.  It broke 'back()' behavior for forms.
+	  Added test-back.{py,twill}.
+	
+	* Test cleanup: add try: finally: around __main__ stuff, and
+	  add 'initial_url' args.
+
+	* Added 'advanced docs' section.
+
+	* Added http_proxy documentation.
+
+	* Fixed problems caused by failure to construct a valid
+	  result object when HTTP errors (e.g. 404) happen.  Tested
+	  by test-http-codes.py.
+
+	* Added test-http-codes, cleaned up testlib a bit.
+
+	* Fixed a stupid bug in parse.py with 'local_dict' != 'locals_dict'.
+
+2005-11-14  Titus Brown  <t@issola.caltech.edu>
+
+	* Added small section to README about 'nose' unit tests.
+
+	* Cleaned up the 'myhttplib' WSGI intercept code & added a test.
+
+2005-11-11  Titus Brown  <t@issola.caltech.edu>
+
+	* Downgraded 0.8 version to 0.7.4.  RELEASE.
+
+2005-11-10  Titus Brown  <t@issola.caltech.edu>
+
+	* Moved 'test/' to 'tests/', added 'test-multisub.py',
+	  moved 'twillserver.py' to 'twilltestserver.py', and fixed
+	  it to run simple_server when executed from the command line.
+
+	* Fixed two form submission bugs, pointed out by Mike Rovner.
+
+2005-11-09  Titus Brown  <t@issola.caltech.edu>
+
+	* Added William Volkman's patch fixing 'agent'.
+
+2005-11-06  Titus Brown  <t@issola.caltech.edu>
+
+	* Updated 'formvalue' and 'submit' help docs.
+
+2005-11-05  Titus Brown  <t@issola.caltech.edu>
+
+	* Added 'config' command, 'readonly_controls_writeable' option.
+	  (James Cameron bug/fix)
+
+	* Updated version numbers to 0.8.
+
+	* Added command 'showlinks'.
+
+	* Changed 'state' variable to 'browser' in commands.py
+
+2005-11-04  Titus Brown  <t@issola.caltech.edu>
+
+	* Put test/ tests into a nosetest-compatible format.  Yay,
+	  unit tests!
+
+2005-10-30  Titus Brown  <t@issola.caltech.edu>
+
+	* Now catch errors from __ and $ eval failure (i.e. not in any
+	  namespace) and reset the evaluation to just be the original name.
+	  (bug reported by sureshvv).
+
+2005-10-29  Titus Brown  <t@issola.caltech.edu>
+
+	* Cleared content-type header in wwwsearch.zip, urllib2_support.py,
+	  class HTTPRedirectHandler, redirect_request.  This fixes a bug
+	  I noticed when testing collar: redirects inappropriately retain
+	  content-type, and this breaks Quixote, at the least, when
+	  enctype multipart/form-data is used in a POST prior to the
+	  redirect.  (CTB: this should be dealt with more generally.)
+
+	* Fixed back() behavior in _mechanize.  (I probably broke it in the
+	  first place, sigh.)  Now accords with latest trunk _mechanize.py.
+
+	* Fixed order of __url__ setting in parse.execute_command.
+
+	* Added 'url' and 'exit' commands.
+
+	* Added 'debug twill' to set printout of twill commands as they
+	  are executed.
+
+	* Attempted to add http_auth testing, but failed.  (non-functional
+	  code left in test/)
+
+	* Overrode 'view_html' bool function in PatchedMechanizeBrowser.
+	  It now assumes that no content-type means text/html, and also
+	  allows 'text/xml' to be used.  (James Cameron's issue.)
+
+	* moved _TwillBrowserState into browser.py, named it TwillBrowser().
+
+	* twill-sh now prints out the exception str when executing files,
+	  even when 'fail' flag is not set.
+
+2005-10-18  Titus Brown  <t@issola.caltech.edu>
+
+	* fixed bug in get_form_field that inverted the priorities of
+	  form/field searches.
+
+	* added documentation for add_auth, form/field identification.
+
+2005-10-09  Titus Brown  <t@issola.caltech.edu>
+
+	* Added tv@debian.org's patch: add 'title' assertion,
+	  and show error messages when TwillAssertions are caught.
+
+2005-10-07  Titus Brown  <t@issola.caltech.edu>
+
+	* Updated to version 0.7.3 in the code; RELEASE.
+
+	* Added 'twill-fork' script for stress-testing.
+
+2005-10-01  Titus Brown  <t@issola.caltech.edu>
+
+	* Increased code coverage of tests by adding in a few commands
+	  to test_twill.twill.
+
+	* Added Robert Leftwich's patch to allow the use of ImageControl
+	  for 'submit'.
+
+2005-09-20  Titus Brown  <t@issola.caltech.edu>
+
+	* Added Nic Ferrier's patch to request text/html first.
+
+2005-09-18  Titus Brown  <t@issola.caltech.edu>
+
+	* Switched to using eval for $variable substitution.
+
+	* Created namespaces.py, moved local/global dictionary stuff in
+	  there.  Created local namespace stack; namespaces now mean
+	  something ;).
+
+	* Added setglobal and setlocal, then agonized about local/global
+	  dictionaries.
+
+	* Added Ed Rahn's patch: run, runfile, and $variable substition.
+	  Documented appropriately.
+
+2005-09-10  Titus Brown  <t@issola.caltech.edu>
+
+	* Updated version to 0.7.2.  RELEASE.
+
+	* Updated setup.py to contain full Pypi info & Trove classification.
+
+	* Made sure current directory was in sys.path on load;
+	  useful for extend_with!
+
+	* Added debug http functionality.
+
+	* Added save_html <filename>.
+
+2005-09-03  Titus Brown  <t@issola.caltech.edu>
+
+	* Fixed extend_with to update the interactive shell.
+	
+2005-08-20  Titus Brown  <t@issola.caltech.edu>
+
+	* Updated pyparsing.py to 1.3.2.
+
+2005-06-08  Titus Brown  <t@issola.caltech.edu>
+
+	* Added 'add_auth' command for HTTP basic authentication.
+
+	* Added 'formfile' command for file uploads.
+
+	* Added 'test/README.txt' for testing docs.
+
+	* Applied Joeri van Ruth's patch to make '-' as a filename
+	  read from stdin.
+
+2005-06-06  Titus Brown  <t@issola.caltech.edu>
+
+	* Now checks for exact matches to fieldnames before trying out
+	  regexps.
+
+	* Submit w/o submit buttons now working.
+
+	* Fixed quoted handling of __stuff__.
+
+	* More intelligent pyparsing stuff from Paul McGuire; in particular,
+	  comments on the ends of lines are allowed, and '#' in arguments
+	  is disallowed.
+
+2005-06-04  Titus Brown  <t@issola.caltech.edu>
+
+	* added a couple of command line options using 'optparse'.
+
+	* added __url__ ==> current URL.
+
+	* added some of Paul McGuire's suggestions for cleaning up the
+	  pyparsing code.
+
+	* better error reporting on all exceptions while executing
+	  file.
+
+	*