CHANGES.txt
CMF 2.1.0 (2007/08/08)
New Features
- PortalFolder: Enabled 
ComponentsZMI tab. This GenericSetup tab allows to inspect and edit component registrations. 
Bug Fixes
- Fixed all componentregistry.xml files to use plain object paths and strip and slashes. GenericSetup does only support registering objects which are in the site root.
 - Allow email addresses with all-numeric domain names. The RFCs do not support them but they do exist. (http://dev.plone.org/plone/ticket/6773)
 
CMF 2.1.0-beta2 (2007/07/12)
New Features
- CMFCore.exportimport.skins: Added the ability to remove whole skin selections using a GS profile. (http://www.zope.org/Collectors/CMF/479)
 - Workflow definition instances now have a description field (http://www.zope.org/Collectors/CMF/480)
 
Bug Fixes
- UndoTool: Fixed 
listUndoableTransactionsFor. The requiredobjectargument is now respected. This doesn't change the behavior as long asobjectis the site root object. - CMFCore.TypesTool: Corrected method signature of all_meta_types to have an interface keyword argument, as per the underlying OFS.ObjectManager interface declaration.
 - SkinnableObjectManager: Changed the way skins are set up.
      Acquisition wrapping no longer triggers 
setupCurrentSkin. This is now done on publishing traversal after the BeforeTraverseEvent triggerssetSite. This fix replaces a temporary hack introduced in 2.1.0-beta, making sure ISkinsTool is looked up after setting the site. - CMFCore.CMFBTreeFolder: CMFBTreeFolders could not be used as the toplevel /Members container. (http://www.zope.org/Collectors/CMF/441)
 - Pass 
objectthrough to TypeInformation objects'listActions. (http://www.zope.org/Collectors/CMF/482) - Removed extraneous "Cache" tab from FS-based skin objects. (http://www.zope.org/Collectors/CMF/343)
 - CMFCore.WorkflowTool: Using the 
(Default)keyword for a type's workflow chain will now reset any custom workflow chains for the type. (http://www.zope.org/Collectors/CMF/475) - Use the property API to get the member specific skin, because direct attribute access won't work with PAS based membership. (http://dev.plone.org/plone/ticket/5904)
 - Add POST-only protections to security critical methods. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0240)
 - Allow customization from DirectoryViews to be redirected into alternate folders, and use manually-built clones. (http://www.zope.org/Collectors/CMF/382)
 - Use a utility, registered for
      
Products.CMFDefault.interfaces.IHTMLScrubber, to perform scrubbing of HTML; fall back to the old, hard-wired behavior. (http://www.zope.org/Collectors/CMF/452) - Remove antique usage of marker attributes in favor of interfaces, leaving BBB behind for places potentially affecting third-party code. (http://www.zope.org/Collectors/CMF/440)
 - Fixed DST-driven test breakage in CMFCalendar by adding an optional
      
zoneargument to the DublineCore methods which return string rednitions of date metadata. (http://www.zope.org/Collectors/CMF/476) - Favorite: Fixed UID handling broken in 2.1.0-beta.
 - CMFDefault: Removed CMFUid dependency inadvertently added in 2.1.0-beta.
 - CMFActionIcons: Fixed interface declarations added in 2.1.0-beta.
 
Other
- The CMF now depends on Zope 2.10.4 or higher.
 - CMFDefault: Adjusted factory.py to new GenericSetup version.
 - CMFUid.UniqueIdAnnotationTool: Annotation handling has been switched from triggering it through old-style manage_*-methods to using events. UID assigning behavior has been made more flexible. Please review CMFUid/README.txt for information about the current behavior and the new features. (http://www.zope.org/Collectors/CMF/474)
 
CMF 2.1.0-beta (2007/03/09)
IMPORTANT NOTE:
If you upgrade an existing CMF instance to CMF 2.1, please see INSTALL.txt for instructions on how to run a separate upgrade script.
New Features
- CMFCalendar: Zope3 style browser views are now used by default. An additional setup profile allows you to hook up the oldstyle skins and to make customizations TTW.
 - DirectoryView: Added 
registerDirectoryZCML directive. Using the old registerDirectory method in __init__.py is now deprecated. See zcml.IRegisterDirectoryDirective for details. - DirectoryView: Added support for non-product packages. This introduces new registry keys. Old registry keys stored in persistent DirectoryView objects are updated on the fly. (http://www.zope.org/Collectors/CMF/467)
 - Document: Added two new methods for safety belt handling.
 - setup handlers: Improved properties handler. It now works with properties using a default_charset other than UTF-8.
 - Merged patches from Martin Aspeli to enable generating events before
      and after DCWorkflow transitions, and in the 
notifymethods of the workflow tool (http://www.zope.org/Collectors/CMF/461). 
Bug Fixes
- CMFUid.UniqueIdHandlerTool: Touching the internal UID value on a content item will not cause reindexing all indices anymore, only the specific UID index will be touched. (http://www.zope.org/Collectors/CMF/469)
 - CMFCore.MembershipTool: Fixed inconsistent behavior where member lookup would take all user folders up to the Zope root into account whereas member area creation would not.
 - CMFCore.MembershipTool/CMFDefault.MembershipTool: when using an object without a __nonzero__ but with a __len__ (ala CMFBTreeFolder) as a member folder, the createMemberArea method would believe there was no members folder if the folder was empty, and so would fail (change "not membersfolder" to "membersfolder is not None") .
 - CMFDefault.File and CMFDefault.Image: Restored ZMI Cache tab which was lost in CMF 1.6.
 - CMFCore.DynamicType: Fixed behaviour regarding default view. DynamicType was making it impossible to use a Zope3-style default view for CMF content types. (http://www.zope.org/Collectors/CMF/459)
 
Others
- Tool lookup and registration is now done "the Zope 3 way" as utilities. Please see docs/ToolsAreUtilities.txt for some developer notes.
 - CMFCore utils: Marked 
minimalpathandexpandpathas deprecated. - The CMF now depends on Zope 2.10.2 or higher.
 
CMF 2.1.0-alpha2 (2006/11/23)
New Features
- WorkflowTool: Added the IConfigurableWorkflowTool interface.
      This change includes the new 
getDefaultChainandlistChainOverridesmethods and an improvedsetChainForPortalTypesmethod. The import handler now supports theremoveattribute for removing overrides. (http://www.zope.org/Collectors/CMF/457) - CMFCore.CachingPolicyManager: Implemented the old OFS.Cache.CacheManager API. Now objects other than CMF content or CMF templates can have their caching headers set by the caching policy manager with the same fine-grained control. (http://www.zope.org/Collectors/CMF/408)
 - testing: Added test layers for setting up ZCML.
 - CMFDefault formlib: Added zope.formlib support.
      This includes some CMF specific base classes and an 
EmailLinefield. - browser views: Added some zope.formlib based forms.
 - CMFDefault utils: Added 
checkEmailAddressfunction. - Added CMFCore.FSRestMethod: ReST equivalent of FSSTXMethod.
 - CMFCore.FSSTXMethod:  Modernized, added tests, made customization
      possible (now renders via ZPT by default, using 
main_template). - Portal: Added 
email_charsetproperty. - CMFDefault utils: Added 
makeEmailfunction. - CMFDefault.Image and CMFDefault.File: Overridden index_html methods add Cache Policy Manager-awareness and thus bring these implementations in line with CMFCore.FSFile and CMFCore.FSImage (http://www.zope.org/Collectors/CMF/454)
 
Bug Fixes
- CMFCore.CachingPolicyManager: Prevent firing of caching policies for templates (DTML or ZPT) that are rendered in-line (without a separate request) while rendering the requested content item's view. (http://www.zope.org/Collectors/CMF/456)
 - CMFDefault RegistrationTool: Fixed too restrictive email checking.
      The new 
checkEmailAddressfunction is now used. - Fixed test breakage induced by use of Z3 pagetemplates in Zope 2.10+.
 - CMFDefault skins: Fixed encoding issues in welcome and reminder emails.
      
password_emailandregistered_emailnow encode their return value correctly, usingemail_charsetand the newmakeEmailfunction. 
Others
- The CMF now depends on Zope 2.10.1
 
CMF 2.1.0-alpha (2006/10/09)
New Features
- CMFDefault utils: Added getBrowserCharset function. Returns the charset preferred by the browser. Strings encoded with this charset are decoded correctly by Five.browser.decode.processInputs.
 - Content: Added IFactory utilities for all content classes. They are now used by default instead of the old constructor methods.
 - FactoryTypeInformation: Added support for Zope3 style factories.
      If the 
productproperty of a type info instance is empty thefactoryproperty is interpreted as an IFactory name. 
Bug Fixes
- CMFCore.ActionInformation: don't use a fixed set of properties for ActionInformation. (http://www.zope.org/Collectors/CMF/232/)
 - CMFCore.CatalogTool: Use current executable's proxy roles, if any,
      in place of user's roles when computing 
allowedRolesAndUsersfor a query. (http://www.zope.org/Collectors/CMF/380) 
Others
- skins: Changed encoding of translated portal_status_messages. Now getBrowserCharset is used to play nice with Five forms. Customized setRedirect and getMainGlobals scripts have to be updated.
 - FSFile: Added registration for 
txtextension. - Profiles: All profiles are now registered by ZCML.
 - ZClasses: Removed unmaintained support for ZClasses.
      Marked the 
initializeBases*methods as deprecated. - Content: All content classes are now registered by ZCML. ContentInit is still used to register oldstyle constructors.
 - Favorite: Added 
handleFavoriteAddedEventsubscriber. This replaces themanage_afterAddhook and some code inaddFavorite. - CMFCatalogAware: Added 
handleObjectEventsubscriber. This replaces the deprecatedmanage_afterAdd,manage_afterCloneandmanage_beforeDeletehooks. - setup handlers: Removed support for CMF 1.5 CMFSetup profiles.
 
CMF 2.0.x and earlier
For a complete list of changes see HISTORY.txt.