CHANGES
*******

==================
3.5.1 (2009-10-13)
==================

- verifyObject: use getattr instead of hasattr to test for object attributes
  in order to let exceptions other than AttributeError raised by properties
  propagate to the caller

- Add Sphinx-based documentation building to the package buildout
  configuration. Use the ``bin/docs`` command after buildout.

- Improve package description a bit. Unify changelog entries formatting.

- Change package's mailing list address to zope-dev at zope.org as
  zope3-dev at zope.org is now retired.


==================
3.5.0 (2008-10-26)
==================

- Fixed declaration of _zope_interface_coptimizations, it's not a top level
  package.

- Add a DocTestSuite for odd.py module, so their tests are run.

- Allow to bootstrap on Jython.

- Fix https://bugs.launchpad.net/zope3/3.3/+bug/98388: ISpecification
  was missing a declaration for __iro__.

- Added optional code optimizations support, which allows the building
  of C code optimizations to fail (Jython).

- Replaced `_flatten` with a non-recursive implementation, effectively making
  it 3x faster.


==================
3.4.1 (2007-10-02)
==================

- Fixed a setup bug that prevented installation from source on systems
  without setuptools.


==================
3.4.0 (2007-07-19)
==================

- Final release for 3.4.0.


====================
3.4.0b3 (2007-05-22)
====================


- Objects with picky custom comparison methods couldn't be added to
  component registries.  Now, when checking whether an object is
  already registered, identity comparison is used.


====================
3.3.0.1 (2007-01-03)
====================

- Made a reference to OverflowWarning, which disappeared in Python
  2.5, conditional.


==================
3.3.0 (2007/01/03)
==================

New Features
============

- The adapter-lookup algorithim was refactored to make it
  much simpler and faster.  

  Also, more of the adapter-lookup logic is implemented in C, making
  debugging of application code easier, since there is less
  infrastructre code to step through.

- We now treat objects without interface declarations as if they
  declared that they provide zope.interface.Interface.

- There are a number of richer new adapter-registration interfaces
  that provide greater control and introspection.

- Added a new interface decorator to zope.interface that allows the
  setting of tagged values on an interface at definition time (see
  zope.interface.taggedValue).

Bug Fixes
=========

- A bug in multi-adapter lookup sometimes caused incorrect adapters to
  be returned.


====================
3.2.0.2 (2006-04-15)
====================

- Fix packaging bug:  'package_dir' must be a *relative* path.


====================
3.2.0.1 (2006-04-14)
====================

- Packaging change:  suppress inclusion of 'setup.cfg' in 'sdist' builds.


==================
3.2.0 (2006-01-05)
==================

- Corresponds to the verison of the zope.interface package shipped as part of
  the Zope 3.2.0 release.


==================
3.1.0 (2005-10-03)
==================

- Corresponds to the verison of the zope.interface package shipped as part of
  the Zope 3.1.0 release.

- Made attribute resolution order consistent with component lookup order,
  i.e. new-style class MRO semantics.

- Deprecated 'isImplementedBy' and 'isImplementedByInstancesOf' APIs in
  favor of 'implementedBy' and 'providedBy'.


==================
3.0.1 (2005-07-27)
==================

- Corresponds to the verison of the zope.interface package shipped as part of
  the Zope X3.0.1 release.

- Fixed a bug reported by James Knight, which caused adapter registries
  to fail occasionally to reflect declaration changes.


==================
3.0.0 (2004-11-07)
==================

- Corresponds to the verison of the zope.interface package shipped as part of
  the Zope X3.0.0 release.
