Version 0.40 | 2008-12-01 23:25:26 -0500 (Mon, 01 Dec 2008)

 API changes:
  - See the Notes section
  - Torrents can now be paused, stopped, and started (alpha code)
  - Torrent objects can now be created without a parent client for
      informational use (See perldoc Net::BitTorrent::Torrent)

 Compatibility Information:
  - See the Notes section
  - Net::BitTorrent::Session::* is now Net::BitTorrent::Torrent::* thanks to
      one very squeaky wheel.
  - PeerID spec has changed (stability marker is now 'U'nstable/'S'table
      instead of the less obvious and misleading 'S'VN/'C'PAN)
  - Torrents aren't automatically checked when loaded.

 Internal changes:
  - See the Notes section
  - UDP trackers are now supported
  - DHT actually works
  - Fast Ext. is back
  - PeerID, DHT node ID, ExtProtocol name, and dist version are all generated
      in Net::BitTorrent::Version

 Issues resolved:
  - No longer floods the system with CLOSE_WAIT sockets which eventually block
      the allocation of new sockets

 Notes:
  - Since the previous stable release, Net::BitTorrent has been rewritten from
      scratch, so yeah, 90% of everything internal has changed, the API was
      redesigned as well.  I've been pushing dev builds for more than three
      months so... yeah.

Version 0.027_001 | Fall 2008

 Internal changes:
  - Net::BitTorrent is going through a rewrite.  Idle hands...

 Notes:
  - Don't use this.  I'm serious.  I'm only uploading it to get some CPAN
      testers data.

Version 0.025 | 2008-07-01 23:07:52 -0400 (Tue, 01 Jul 2008)

 Internal changes:
  - Fix crash bug by re-enabling N::B::S::Peer::_parse_packet_allowed_fast and
      N::B::S::Peer::_parse_packet_reject in the packet dispatch table
  - Fixed crash bug in Data::Dumper usage in N::B::S::Peer and N::B::DHT
  - Fixed non-critical bug in N::B::S::Peer when a connected peer goes
      ((poof)) in the middle of something.

 Notes:
  - Please see the Compatibility Information section from the previous version
  - Gah, what a waste of a great version number (0.025)... That's what I get
      for not eating my own dog food before shipping it.
  - I knew I was forgetting something.

Version 0.024 | 2008-07-01 19:52:15 -0400 (Tue, 01 Jul 2008)

 API changes:
   - Entire API has changed.  See the Compatibility Information below.
   - New DHT-related callback: peer_outgoing_port

 Internal changes:
  - DHT is included with this release.  It's really raw code so don't expect
      too much.

 Compatibility Information:
  - I've changed the API to pretty much everything in the distribution with a
      depreciation cycle.  Bold, yes? So, with so much having changed, putting
      a full list of what's changed will be a horrific waste of space.  These
      are the highlights:
      Old Mutator/Accessor         New Getter               New Setter
    --------------------------------------------------------------------------
    N::B
     maximum_buffer_size       get_max_buffer_per_conn  set_max_buffer_per_conn
     kbps_down                 get_max_dl_rate          set_max_dl_rate
     kbps_up                   get_max_ul_rate          set_max_ul_rate
     maximum_peers_per_client  get_conns_per_client     set_conns_per_client
     maximum_peers_per_session get_conns_per_session    set_conns_per_session
     maximum_peers_half_open   get_max_halfopen         set_max_halfopen
     debug_level               get_debug_level          set_debug_level
     maximum_requests_per_peer get_ul_slots_per_session set_ul_slots_per_session
     maximum_requests_size     get_ul_slot_size         get_ul_slot_size
     peer_id                   get_peer_id              --NA--
     sockport                  get_sockport             --NA--
     sockaddr                  get_sockaddr             --NA--
     sessions                  get_sessions             --NA--
    N::B::S::Piece
     check                     get_cached_integrity
     verify                    get_verified_integrity
  - The arguments Net::BitTorrent's constructor expects have been changed to
      stay in step with the new get/set methods:
             Old                           New
      ------------------------------------------------------------------------
      maximum_peers_per_client      conns_per_client
      maximum_peers_per_session     conns_per_session
      kbps_down                     max_dl_rate
      kbps_up                       max_ul_rate
      maximum_peers_half_open       max_halfopen
      maximum_buffer_size           max_buffer_per_conn
      maximum_requests_size         ul_slot_size
      maximum_requests_per_peer     ul_slots_per_session
  - Removed accessors:
        - N::B->timeout( [NEWVAL] )
          This was the select timeout used in N::B::do_one_loop().  It has
          been removed completely in favor of a new optional parameter passed
          to N::B::do_one_loop( [TIMEOUT] ) itself.
 Notes:
  - I'm sure I'm forgetting something... several somethings, in fact...
  - This is an UNSTABLE stable release.  There may be calls to old methods
    hiding out in a dark corner...
    data on the extended test suite, the rewritten API, and the alpha DHT
    code.  DO NOT INSTALL!  Stick with the 0.022 release!  As soon as I have a
    few reports, I will mark this distribution for deletion from PAUSE.

Version 0.022 | 2008-05-24 10:31:26 -0400 (Sat, 24 May 2008)

 API changes:
  - Callback system is complete.
    + N::B::S::Tracker was the holdup...

 Issues resolved:
  - None

 Internal changes:
  - None

 Notes:
  - Upgrade is not required in general but recommended for heavy callback users.
  - More POD tweaks.
  - Very few changes to scripts/web-gui.pl.  These are untested changes, btw.

---
Version 0.020 | 2008-05-22 19:09:05 -0400 (Thu, 22 May 2008)

 API changes:
  - Experimental N::B::use_unicode() has been removed as wide char filenames
      are now handled transparently on Win32.
  - New accessor: N::B::Session::name() - see N::B::Session docs
  - New methods for alternative event processing:
    + N::B::process_connections() - implement your own select() statement
    + N::B::process_timers() - easily keep internal timers up to date
  - Experimental kbps_up and kbps_down methods and N::B::new() parameters have
      been renamed properly: kBps_up, kBps_down.  Bits.  Bytes.  It happens.

 Issues resolved:
  - #1: Line 231 Piece.pm - Check existence of $self->session->files->[$f]->size
    + New .torrent metadata integrity checks during add_session() and piece
        read/write.
    + Log warning and undef returned when N::B::add_session() is handed a
        .torrent that does not contain files. (eh, it's a start)

 Internal changes:
  - Plenty of layout and ideology changes.  None of which immediately affect
      usability or behavior.
  - Extended charset filenames are now handled properly on Win32.
    + Depends on properly encoded utf8 metadata (and the J-Pop fans rejoice)
  - (The piece containing) Outgoing blocks are verified for integrity before
      being sent to remote peers.  Just in case.

 Notes:
  - Upgrade is recommended in general.
  - Upgrade is strongly recommended for Win32 systems.
  - New sample code: scripts/web-gui.pl
    + µTorrent WebUI-like demo of alternative event processing.
  - To keep N::B from growing too messy and to make co-development attractive,
      I'm imposing some coding standards, defining what should be internal,
      and deciding how N::B should behave.  Between that and the nice weather,
      the addition of new features (DHT, UDP trackers, etc.) will be pushed
      back a bit.  The next few releases will probably be bugfix, API, and
      base protocol-behavioral changes.
  - Documentation rework in progress.
  - What's the cutoff for apologizing for things you said in high school?

---
Version 0.018 | 2008-04-24 21:14:52 -0400 (Thu, 24 Apr 2008)

 API changes:
  - Old style set_callback_* syntax is depreciated.
  - New methods: kbps_up, kbps_down
  - New optional parameters for N::B::new(): kbps_up, kbps_down

 Internal changes:
  - Fixed crash bug in N::B::S::Peer during endgame

 Notes:
  - Upgrade is strongly recommended.
  - New feature: Transfer limits to control how much bandwidth N::B is
      allowed to use.
  - No longer causes taint warnings.
  - perl 5.8.1 required.  This is based solely on available CPAN
      Reporter PASS/FAIL tests and may not be a true representative
      value.

---
Version 0.015 | 2008-04-11 20:00:26 -0400 (Fri, 11 Apr 2008)

 Notes:
  - Dup of 0.013 to fix bad M::B dist.  Something fishy going on with
    the gzip'd file.  Some systems (like PAUSE) properly extract
    directories and some (like the cpan shell) extract it all into the
    base directory causing build failures.

---
Version 0.013 | 2008-04-11 13:30:36 -0400 (Fri, 11 Apr 2008)

 API changes:
  - log callbacks now include a message level.  See
     N::B::Util/"LOG LEVELS".
  - removed peer_outgoing_packet callback in favor of more specific,
     per-packet-type callbacks.

 Internal changes:
  - Fixed a bug causing files to be re-opened every time they are read.
  - Tons of N::B::S::Peer refactoring.  (and much more to do)
  - Early Fast Peers and Ext. Protocol testing. (disabled by default)

 Notes:
  - Upgrade is recommended.
  - This is a documentation update.  100% coverage.

---
Version 0.008 | 2008-04-01 19:46:20 -0400 (Tue, 01 Apr 2008)

 API changes:
  - It actually exists

 Internal changes:
  - See above

_ -.-. .... .- -. --. . ... _________________________________________
For more information, see the commit log:
    http://code.google.com/p/net-bittorrent/source/list

$Rev: 40 $ from public svn
$Date: 2008-12-01 23:25:26 -0500 (Mon, 01 Dec 2008) $
$URL: https://net-bittorrent.googlecode.com/svn/trunk/Changes $
