*************************************************************************
itools 0.62.0
*************************************************************************

These upgrade notes may not be complete. Thanks to report any problem you
find.

New Dependencies
================

The itools.web package now requires pytz [1].  The required version of
Git [2] has been raised from 1.6 to 1.7 (used by itools.git).


[1] http://pytz.sourceforge.net/
[2] http://git-scm.com/


Imports
=======

See the table below for the imports to update.

  Before (alphabetical order)         Now
  ---------------------------------   ---------------------------------
  itools.handlers.GitDatabase         itools.database.GitDatabase
  itools.handlers.make_git_database   itools.database.make_git_database
  itools.handlers.ROGitDatabase       itools.database.ROGitDatabase
  itools.ical.get_grid_data           ** MOVED TO IKAARO **
  itools.ical.icalendarTable          ** MOVED TO IKAARO **
  itools.soup.SoupMessage             itools.http.SoupMessage
  itools.soup.SoupServer              ** NOT EXPORTED **
  itools.xapian                       itools.database [1]

[1] The package itools.xapian has been merged into the new itools.database
package.


itools.csv
==========

(1) The table file handler has been much simplified:

- do not support incremental save
- do not support indexing (with xapian)
- now records are not a list of one dict, but just a dict

This basically means that the table file handler is suitable only to store
little data (e.g. small vocabularies).

(2) Multilingual fields in tables must be defined explicitely:

  # Before
  record_properties = {
      'title': Unicode(multiple=True),
      ...}

  # Now
  record_properties = {
      'title': Unicode(multilingual=True),
      ...}

(3) The CSV file handler does not support indexing anymore.


itools.http
===========

(1) Use the 'add_handler' method instead of just defining 'path_callback':

  # Before
  class MyServer(HTTPServer):
      ....
      def path_callback(self, soup_message, path):
          ...

  # Now
  class MyServer(HTTPServer):
      ....
      def listen(self, address, port):
          super(MyServer, self).listen(address, port)
          self.add_handler('/', self.path_callback)

      def path_callback(self, soup_message, path):
          ...

(2) The init/listen protocol has changed:

  # Before
  s = HTTPServer(address, port)
  s.listen()

  # Now
  s = HTTPServer()
  s.listen(address, port)


itools.ical
===========

The icalendarTable file handler has been removed (moved to ikaaro actually,
but its usage is discouraged).

The ical file handler does not support indexing (with xapian) anymore.
Its internal data structure has been much changed, to improve support
for timezones.


itools.xapian
=============

The itools.xapian package does not exist anymore, it has been merged into
the new itools.database package.

Besides...

(1) The 'is_key_field' parameter has been removed, now the key field is
hardcoded to be 'abspath'.

(2) The 'is_' prefix has ben drop from the fields definition:

  Before        Now
  ------------  ------------
  is_indexed    indexed
  is_stored     stored

(3) Do not support catalogs in memory.

(4) The 'split_unicode' function has been removed, use TextQuery instead.
