0.9.2 (2005/06/24)

  Several XML fixes, including bug #65


0.9.1 (2005/06/16)

  Bugs fixed
  - Fix xhtml serialization.
  - Fix gettext and the PO handler.


0.9.0 (2005/06/07)

  Type marshalers
  - New package "itools.types", includes the old module "itools.handlers.IO".
  - Add marshaler for filenames.

  Resources
  - Replace "get_data" by "read", and "set_data" by "write".

  Handlers
  - Split new class "Node" from the "Handler" class.
  - Now virtual handlers are distinct from the real handler (#22).
  - Now folder's skeleton is a dictionary instead of a list, by Herv
    Cauwelier.
  - Rename "load" and "save" to "load_state" and "save_state" respectively.
  - Move handler's state to instance variable "state".
  - Add "class_extension" to keep the default file type extension.
  - Now file handlers have too the "get_handler" method.
  - Add "set_data" to file handlers.
  - New handler for images.
  - New handler for Python resources.

  Gettext
  - New package "itools.gettext" contains the PO and MO handlers before found
    in "itools.handlers".
  - Add support for fuzzy entries to PO files, by Nicolas Oyez.
  - Now "igettext" does not takes into account fuzzy messages, by Nicolas
    Oyez.
  - Add module "itools.gettext.domains", provides an API to internationalize
    software.

  XML
  - Move "XHTML.Document.to_text" to "XML.Document".
  - Add "Element.get_content"
  - Change naming style for some methods: "get_start_tag" and "get_end_tag".

  XHTML
  - Now XHTML elements can be serialized as HTML.

  Simple Template Language
  - Now "stl:content" accepts long integer values.

  Catalog
  - Use built-in set type (Python 2.4)
  - Keep document positions, index format changed.
  - Add phrase search.
  - Index common and one letter words.

  Documentation
  - Update the introduction chapter.
  - Document the handler's state.
  - Add a chapter about "itools.types".
  - Re-work the internationalization chapter.
  - Fix the examples.


0.8.1 (2005/05/25)

  Resources
  - Improve "get_mimetype".
  - Implement "get_mtime" for http resources.

  Handlers
  - Improve CSV parser, more robust now.
  - Fix "set_handler".

  XML
  - Fix header serialization.

  XHTML
  - Fix "get_messages".

  HTML
  - Improve parser, more robust now.

  Internationalization
  - Fix igettext.


0.8.0 (2005/04/18)

  URI
  - Correctly deal with empty references: "".

  Resources
  - Move to new style classes.
  - Add lock/unlock API. Implemented only by the Zope 2 resources for now.

  XML
  - New module "itools.xml.parser", is a wrapper around "expat" that
    provides a nicer programming interface.
  - New module "itools.xml.namespaces", provides the new improved namespace
    registry, a base class for namespace handlers, and some basic namespace
    handlers.
  - Now XML Documents have a root element, instead of a list of children.
    The XML declaration and the document type are stored in the instance
    variables 'xml_version', 'source_encoding', 'standalone' and
    'document_type'.
  - New API to work with attributes. Now the methods 'set_attribute',
    'get_attribute' and 'has_attribute' expect the namespace uri to be
    passed first, and the local name to be passed after. There is a new
    method, 'get_attribute_qname', that returns the qualified name (i.e.
    'dc:title') from the namespace uri.
    and the local name.
  - Now the node tree is lighter. The reference from a node to its parent
    has been removed. The 'NodeList' has been removed, now the children
    is just a list of nodes. The class "Raw" has been removed, now text
    nodes are unicode strings. Now attribute values are loaded as byte
    strings, for attributes not attached to an XML namespace.
  - STL, remove obsolete "stl:ifnot".
  - Start Dublin Core implementation.

  Handlers
  - New module "itools.handlers.transactions" provides a better and more
    robust API.

  Code Organization
  - New sub-packages "itools.xhtml" and "itools.html".
  - Now the module 'uri' has become a package.

  Documentation
  - Update XML chapter.


0.7.4 (2005/03/21)

  Handlers
  - Now "get_abspath" returns "/" instead of "" for the root handler.

  Catalog
  - Speed-up the index load, by implementing lazy load.
  - Optimize indexing (around 40% for filesystem resources).


0.7.3 (2005/03/13)

  Catalog
  - Fix unindexing of two or more documents in the same transaction.


0.7.2 (2005/03/11)

  Resources
  - Fix modification time for Zope 2 resources.

  Handlers
  - Add "traverse2" to folder handlers.
  - Add boolean variable "is_virtual".
  - Fix folder save, use the given resource.

  XML
  - Ignore unknown entity references, emit a warning instead of failing.
  - Remove obsolete "walk" method.

  Catalog
  - Fix profile and benchmark script.
  - Speed up the load of an index.

  Packaging
  - Fix setup, use relative paths. By Herv Cauwelier.


0.7.1 (2005/03/03)

  URI
  - Don't fail with malformed email addresses ("mailto" scheme).

  Resources
  - Finish Zope 2 resources.

  Catalog
  - Now the method "search" is a generator.
  - Search performance optimizations.


0.7.0 (2005/02/23)

  Resources
  - New layer for Zope 2 (resources.zope2)
  - Add file like interface (just the read method).

  Handlers
  - Now folders follow the load/save model.
  - Initialize timestamp with resource's modification time (instead of
    current time).
  - Implement transactions (set_changed, commit_transaction, etc.)
  - New handler class "MO", to manage gettext binary files.
  - Add method 'copy_handler' to the API.
  - New event methods: 'on_del_handler' and 'after_commit'.

  Catalog
  - Fix "IO.decode_vint" and "IO.encode_byte".
  - Optimize search.

  Documentation
  - Update example for the STL chapter.

  Packaging
  - Include the changelog file on source distributions, clean 'setup.py'
    (by Luis Belmar-Letelier).
  - Add 'itools.__arch_revision__' variable (by Luis Belmar-Letelier).


0.6.4 (2005/02/16)

  Handlers
  - Now the encoding default is UTF-8 (for "Text.to_unicode").

  XML
  - Load the "lang" attribute (Schema) as an string.
  - Fix XHTML and HTML serialization, correctly set the encoding.

  Catalog
  - Search by keywords checks if the field exists.

  Windows
  - Fix paths in "get_abspath" and "resources.get_resource".


0.6.3 (2005/02/03)

  XML
  - Now "ComplexType.encode" returns string instead of unicode.

  Zope
  - Fix "checkid", be sure it always returns a byte string (or None),
  instead of a unicode string.


0.6.2 (2005/01/31)

  Resources
  - Add 'set_mtime' to the API.

  XML
  - Load attributes as unicode.

  Catalog
  - Keyword fields accepts lists.
  - Use at least 8 characters to name document resources.
  - Fix the save operation.
  - Add new method 'how_many'.

  Documentation
  - Re-write the chapter about writing custom handlers.


0.6.1 (2005/01/18)

  URI
  - Now the references "" and "." are interpreted as "." (instead of ""),
    while "#" is interpreted as "#" (instead of ""). This is more correct,
    but the game is not over yet (see "uri.py" for details).

  Handlers
  - Minor performance improvement of "Folder.get_handler".

  Internationalization
  - Now accept objects provide support for the "del" operation.

  Packaging
  - Fix setup.py informational metadata (home site).


0.6.0 (2005/01/07)

  Resources
  - Now "get_resources" is an iterator that returns a resource (not a name)
    at a time.
  - Memory folders provide "get_atime".

  Handlers
  - Add the methods "get_handler_names", "get_handlers" and "has_handler".
  - The methods "get_resource", "has_resource", "set_resource", etc. have
    been removed. Access them throug the "resource" attribute, or use the
    equivalent handler methods ("get_handler_names", etc).
  - Now text handlers only must define the method "to_unicode", which now
    accepts the optional parameter encoding.
  - The methods "__str__" and "__unicode__" have been removed. Use instead
    "to_str" and "to_unicode".
  - Serialization and de-serialization code has been moved from "xml.Schema"
    to "handlers.IO". Now the code serializes and de-serializes to and from
    byte strings.

  XML
  - The architecture has been cleaned and simplified, specially for attributes,
    whose API has changed.
  - The new method "traverse2" makes "walk" obsolete.

  Simple Template Language
  - The "stl:if" and "stl:attributes" expressions accept the new "not"
    operator. This change makes the "stl:ifnot" statement obsolete.

  Catalog
  - Now the catalog follows the load/save logic. As a side effect the index
    and unindex operation has been speeded up but a factor of 2, aproximately.

  Workflow
  - Remove the "__init__" method from the "WorkflowAware" class to avoid
    conflicts with handler classes. Now the method "enter_workflow" must
    be called explicitly.

  Documentation
  - Re-write part of the introduction.
  - Re-organize the handler chapters. Explain some things for the first time,
    explain other things better.


0.5.1 (2004/12/17)

  XML
  - Make the Schema more robust.

  Documentation
  - Several fixes, by Herv Cauwelier.


0.5.0 (2004/11/28)

  URI
  - Add the method 'resolve2' to the path API.
  - Don't support the add operation on paths anymore.
  - Serialize an empty path to '.' instead of ''.

  Resources
  - Now resources provide the attribute 'uri'.
  - Add 'get_mimetype' to the API.

  Handlers
  - New model to find the right handler for a resource.

  XML
  - Start support for schema.

  Simple Template Language
  - Improve performance.

  Index & Search
  - Implement boolean queries.

  Documentation
  - Improve the chapter "Resource Handlers".
  - Start chapter about internationalization.
  - Start appendix about the coding style.
  - Improve the GNU arch appendix.


0.4.6 (2004/09/24)

  Handlers
  - Fix folders timestamp.

  Index & Search
  - Fix unindexing.
  - Remove obsolete itools.lucene.


0.4.5 (2004/09/12)

  Resources
  - Speed up memory resources by storing the resource's data with cStringIO
  instead of normal strings.

  Handlers
  - Speed up by correctly setting the timestamp to folders when they are
  changed.

  XML
  - Miscellaneous fixes.

  Simple Template Language
  - Improve error messages.

  Index & Search
  - Miscellaneus fixes.

  Documentation
  - Improve the appendix about GNU Arch.


0.4.4 (2004/08/30)

  Index & Search
  - Fix unindexing.


0.4.3 (2004/08/24)

  Index & Search
  - Fix search. Rename "Document.Document to IDocument.IDocument"
    and add "Catalog.Document".


0.4.2 (2004/08/18)

  Resources
  - Allow direct write through a list like interface (e.g. r[a:b] = 'xxx'),
    and the new method "append".
  - Remove versioning from memory resources.
  - Add the method "Folder.traverse".

  Handlers
  - The "__str__" and "__unicode__" methods from file handlers have been
    obsoleted in favor of "to_str" and "to_unicode".
  - The method "Folder.get_handler" accepts paths that start with "..".
  - Add the concept of virtual handlers, include the new method
    "Folder._get_virtual_handler". Virtual handlers are not cached.
  - Add the method "traverse" to folders.
  - The CSV handler works now, it uses the Python's "csv" module.
  - The PO handler now accepts non ASCII character on the message id.

  XML
  - Consider the XML doctype to choose the right handler class.
  - Fix "XHTML.get_messages", don't consider empty attributes.
  - Remove "XHTML.set_uriprefix".
  - Fix the HTML handler, use "HTML.Element" instead of "XML.Element".

  Simple Template Language
  - Fix "stl:attributes" for boolean attributes (e.g. checked).
  - Improve error messages.
  - Coerce integers to strings for "stl:attributes" and "stl:content".

  Internationalization
  - Add the modules "i18n.fuzzy", calculates the distance between two
    sentences.
  - Add "i18n.oracle", guesses the language of a text language.
  - Rename "i18n.parsers" to "i18n.igettext" and install it as an script.

  Index & Search
  - Obsolete itools.lucene in favor of the new engine, itools.catalog

  Documentation
  - Revise docuementation.
  - Start a chapter about building new handler classes.

  Packaging
  - Add the Changelog file, generated automatically by tla.


0.4.1 (2004/06/05)

  - Moved from CVS to GNU arch

  - First documentation release

  - Minor fixes


0.4.0 (2004/06/01)

  - Added itools.lucene (index and search).
  
  - Split itools.xml from itools.handlers

  - Added 'traverse' (a generator method) to XML documents.

  - Changed the message extraction algorithm of XHTML.Document

  - Added itools.i18n.segment (text segmentation).

  - Updated documentation (itools.doc)


0.3.0 (2004/05/03)

  Added itools.uri, itools.resources and itools.handlers


0.2.0 (2003/09/14)

  STL. Added the repeat keyword and stack.


0.1.0 (2003/06/24)

  Initial release.
