=======
CHANGES
=======

3.9.0 (2009-08-28)
------------------

- Previous releases should be versioned 3.9.0 as they are not pure bugfix
  releases and worth a "feature" release, increasing feature version.
  
  Packages that depend on any changes introduced in version 3.8.2 or 3.8.3
  should depend on version 3.9 or greater.

3.8.3 (2009-08-27)
------------------

- Move IXMLRPCPublisher ZCML registrations for containers from
  zope.app.publisher.xmlrpc to zope.container for now.

3.8.2 (2009-05-17)
------------------

- Rid ourselves of ``IContained`` interface.  This interface was moved
  to ``zope.location.interfaces``.  A b/w compat import still exists
  to keep old code running.  Depend on ``zope.location``>=3.5.4.

- Rid ourselves of the implementations of ``IObjectMovedEvent``,
  ``IObjectAddedEvent``, ``IObjectRemovedEvent`` interfaces and
  ``ObjectMovedEvent``, ``ObjectAddedEvent`` and
  ``ObjectRemovedEvent`` classes.  B/w compat imports still exist.
  All of these were moved to ``zope.lifecycleevent``. Depend on
  ``zope.lifecycleevent``>=3.5.2.

- Fix a bug in OrderedContainer where trying to set the value for a
  key that already exists (duplication error) would actually delete the
  key from the order, leaving a dangling reference.

- Partially break dependency on ``zope.traversing`` by disusing
  zope.traversing.api.getPath in favor of using
  ILocationInfo(object).getPath().  The rest of the runtime
  dependencies on zope.traversing are currently interface
  dependencies.

- Break runtime dependency on ``zope.app.dependable`` by using a zcml
  condition on the qsubscriber ZCML directive that registers the
  CheckDependency handler for IObjectRemovedEvent.  If
  ``zope.app.dependable`` is not installed, this subscriber will never
  be registered.  ``zope.app.dependable`` is now a testing dependency
  only.

3.8.1 (2009-04-03)
------------------

- Fixed misspackaged 3.8.0


3.8.0 (2009-04-03)
------------------

- Change configure.zcml to not depend on zope.app.component.
  Fixes: https://bugs.launchpad.net/bugs/348329

- Moved the declaration of ``IOrderedContainer.updateOrder``  to a new, basic
  ``IOrdered`` interface and let ``IOrderedContainer`` inherit it. This allows
  easier reuse of the declaration.

3.7.2 (2009-03-12)
------------------

- Fix: added missing ComponentLookupError, missing since revision 95429 and 
  missing in last release.

- Adapt to the move of IDefaultViewName from zope.component.interfaces
  to zope.publisher.interfaces.

- Add support for reserved names for containers. To specify reserved
  names for some container, you need to provide an adapter from the
  container to the ``zope.container.interfaces.IReservedNames`` interface.
  The default NameChooser is now also aware of reserved names.

3.7.1 (2009-02-05)
------------------

- Raise more "Pythonic" errors from ``__setitem__``, losing the dependency
  on ``zope.exceptions``:

  o ``zope.exceptions.DuplicationError`` -> ``KeyError``

  o ``zope.exceptions.UserError`` -> ``ValueError``

- Moved import of ``IBroken`` interface to use new ``zope.broken``
  package, which has no dependencies beyond ``zope.interface``.

- Made ``test`` part pull in the extra test requirements of this package.

- Split the ``z3c.recipe.compattest`` configuration out into a new file,
  ``compat.cfg``, to reduce the burden of doing standard unit tests.

- Stripped out bogus develop eggs from ``buildout.cfg``.

3.7.0 (2009-01-31)
------------------

- Split this package off ``zope.app.container``. This package is
  intended to have far less dependencies than ``zope.app.container``.

- This package also contains the container implementation that
  used to be in ``zope.app.folder``.
