The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
1.0a
======
  - Added better example files in examples/.
  - Wrote Transport.pm, it too uses Protocol.pm through delegates.
  - Client.pm now uses delegates to pull in the functiosn from Protocol.pm.
  - Moved high-level functions out of Client.pm into Protocol.pm.
  - Added support for jabber:iq:agent, jabber:iq:agents, and jabber:x:roster.
  - Updated example.pl.
  - If you have Time::Timezone installed in the Query/Time.pm automagically
    uses the timezone functions to figure out your timezone when you call
    SetTZ().
  - If you have Digest::SHA1 installed then Client.pm automagically uses the 
    SHA-1 digest to encrypt the password for Authorization.
  - RosterGet returns a complex data structure that contains the roster from
    the server.
  - <iq/> modules now use the AUTOLOAD and delegates same as the <x/> modules 
    do.
  - Bumped version to 1.0a.
  - Changed method of handling timeouts.
  - Added code to better handle errors on the Stream.  It now actually returns
    undef, or "", when the server or connection dies.
  - Added code to test a Connect without crashing.  Connect returns undef, or
    "", if the Connect failed.

0.8.1b
======
  - Added IgnoreIDs() and WatchIDs() in Client.pm.
  - Added support for delegates in the X/pm module.
  - Added X.pm alpha code to handle reading and setting <x/> tags in various
    top-level tags.
  - Added PresenceSend to send a presence tag.
  - Added RegisterSend to send a registration packet.
  - Fixed SetError and SetErrorType in Message.pm.
  - Added SetError and SetErrorType to IQ.pm.
  - Added support for "value" and "tree" on the root tag in the GetXMLData
    function in Jabber.pm.
  - Moved Disconnect functionality into XML::Stream.  That's really where we
    should have been sending the closing tag...

0.8.1a
======
  - Supports Jabber v0.8.1.
  - Fixed support for IQ tags.  Changed to distributed modules for each
    namespace.
  - Created IQ/Auth.pm to give authentication support.
  - Created IQ/Roster.pm and IQ/Roster/Item.pm to provide Roster support.
  - Created IQ/Reegister.pm to give registration support.  (Still experimental)
  - Created Presence.pm to provide support for presence tags.
  - Changed internal data structure to XML::Parser::Tree.  This made
    integration with XML::Stream a snap.
  - Created helper functions to access an XML::Parser::Tree easily.
  - Changed Client.pm to use XML::Stream instead of doing it manually.

0.7.1
=====
  - Added support for the new IQ, and Presence tags from Jabber-0.7.
  - Removed support for Status and Roster since those were removed from
    Jabber-0.7 in favor of IQ, and Presence.

0.6.2
=====
  - Added Set* functions to Message.pm, Status.pm, and Roster.pm.
  - Moved Simply, BuildXML, and EscapeXML into Jabber.pm to avoid redundant
    functions.
  - Redesigned internal data structures to better handle <ext> structures
    and multiple copies of the same tag.
  - Added better documentation in the perldocs for each.
  - Changed the perldocs in each file from use Net::Jabber::xxxxx to just
    use Net::Jabber.
  - Removed <ext> support from Status since it isn't designed to handle it.
  - Changed the names of the Roster Set* functions.  Get()->SetGet(),
    Add()->SetAdd(), and Delete()->SetDelete().
  - Added support to Message.pm to send to multiple people using the SetTo
    command.

0.6.1
=====
  - First version.