Five Changes
============

* There is now a standard standard_macros. Five page templates can use
  context/@@standard_macros/view to get the default site layout.

* The addform and editform directive now supports the widget zcml subdirective,
  that previously was ignored.

* Five now supports the vocabulary zcml directive.

Five 0.3 (2005-03-11)
---------------------

* Five now uses the Zope 2 page template engine, not the Zope 3
  engine. This allows better integration with Zope 2-based page
  templates, such as macros.

  It uses TrustedExecutables technology (thanks to Dieter Maurer) to
  turn off Zope 2 security in page templates, so Five's security
  behavior is very similar to what it was before.

* Five now supports the browser:menu, menuItem and menuItems
  directives.

* A new Five-specific directive has been added:
  five:pagesFromDirectory.  This adds one page for each .pt file in a
  directory to the specified interface. This is useful for Five
  integration with CMF and other systems that have Page Templates
  macros that need to be shared between Zope2 and Five.

* Five.security.checkPermission has been changed from a (unused)
  method for checking the existence of permissions. Use
  zope.app.security.permission.checkPermission if you need that
  functionality.

  Instead Five.security.checkPermission is now a Five version of
  zope.security.checkPermission, which checks if the current user has
  a permission on an object.

* Support for browser:editform. You can now use schemas for editing.

* Support for browser:addform; add forms using '+'. You can now browse
  to 'container/+/addsomething.html' to get to a schema-driven add
  form.

* Fixed a traversal bug which caused Zope to give the wrong error when
  a page could not be found (missing docstring instead of not
  found). Zope 2.7.4 (or higher) is required for this fix.

Five 0.2b (2004-09-24)
----------------------

* Added utility module, 'bridge', allowing reuse of Zope 2 interfaces
  (by introspecting them to create equivalent Zope 3 interfaces).

* five:viewable was renamed to five:traversable, five:viewable still
  works but is deprecated; a deprecation warning is emitted when it is
  used.

* like in Zope3, an ITraverser adapter is looked up to determine what
  happens when traversing into a Five traversable object.

* added five:defaultViewable to make instances of a class directly
  viewable using browser:defaultView. This is hookable by the use of a
  IBrowserDefault adapter

* deprecated use of Products.Five.api as public API for other products
  to use, instead import directly from Products.Five. Retired
  Traversable and Viewable from the public API; use ZCML directives
  (five:traversable, five:defaultView) instead of mixins to make
  instances of classes work with Five.

* classes that Five monkeypatches now have a __five_method__
  attribute, making it easier for Five not to stomp on existing methods.

* registered absolute_url view and IAbsoluteURL adapter for *

* zope.app.traversing is registered by default, to make special
  namespaces available (eg: @@, ++resource++)

* we now have resources (FileResource, ImageResource,
  PageTemplateResource) and directory resources.

* Zope 3 'StandardMacros' now works with Five as well.

* browser:page now correctly handles the allow_attributes and protects
  the named attributes on the view with the same permission used for
  the view.

* zopeconf.py will try to find etc/zope.conf on INSTANCE_HOME. This
  requires Zope 2.7.2, as earlier Zope versions have a bug in this
  area which causes them to look in lib/python/Testing.

* Exposed the Zope 3 event system to Five. A class can be made to send
  out event notifications using the five:sendEvents directive. Events can
  be subscribed to using the subscriber directive.

* Change in findProducts so that non-filesystem products are skipped.

Five 0.1 (2004-07-30)
---------------------

Initial public release (mainly Martijn's work)
