Release Notes/History

 Note: Zope 2.3.2 is required for this and any subsequent releases of PlugIns.

 Changes in 0.4.3 patch 1 release

  * Removed "__replaceable__" support code that isn't needed since Zope now
    has that feature built-in

 Changes in 0.4.3 release

  * Management UI updated to Zope 2.3.x standards

 Bug Fixes in 0.4.3b2

  * There's now a 'help' directory, which prevents those nasty initialization
    errors...

 New Features in 0.4.3b1

  * ZClass support for PlugIns!  Now you can create ZClass subclasses of PlugIns
    and PlugInContainers, if their Python base classes are properly declared.

  * The PlugIns is package is now a seperate product and can be used independently
    of the rest of ZPatterns.


 Bug fixes in 0.4.2a2

  - In general, adding a PlugInContainer to another PlugInContainer did not work.

  - PlugIns had a missing import in its new implementation of the ObjectManager
    "__replaceable__" protocol.

 Bug Fixes in 0.4.0alpha5

  - _constructPlugIn() was broken with latest 2.2 version that binds constructors
    to their factories

 New Features in 0.4.0

  - The constructor protocols for PlugIns have been further simplified, to
    the point that plugins whose add forms only ask for id and title can now
    have their constructors generated automatically.  See any of the places
    where PlugIns (other than Racks) are registered for examples.

 API/Structural Changes in 0.3.0

  - PlugIns and PlugInContainers now have a _setup() hook that gets called by
    manage_afterAdd.  This is intended to allow an opportunity to configure
    default sub-objects such as attribute and sheet providers.  If using the
    _setup() hook, you should make sure it only executes once.  (The Rack
    _setup() method sets a self._initialized flag to keep track.)

  - The PlugIn base class now subclasses SimpleItem.Item, Persistent, and
    Acquisition.Implicit for you.  If you need the old pure mixin class, it's
    now PlugInBase.

  - Many other internal structure changes occurred which we won't document
    because they're things you probably shouldn't have been messing with.  :)
    And if you did know enough to be *able* to mess with them, you probably
    won't have much trouble figuring out what we changed anyway.  :)

