Zope changes This file contains change information for the current Zope release. Change information for previous versions of Zope can be found in the file HISTORY.txt. Zope 2.2.1 Bugs Fixed - Correction of ZClass-in-ZClass bugfix which prevented import of .zexp's containing Factories. - Made acquisition in the URL and XML-RPC work together. - A bug in FTP downloading was fixed. - A bug in the "views" screen for ZClasses could cause strange IndexErrors depending upon whether help topics were created. - Improved behavior when non-persistent objects are added to an ObjectManager. - Fixed an obscure bug that could cause Zope to crash when there were errors in computed attributes that depended on acquisition. - Fixed very obscure bug in database invalidation when committing from one version to another. This could cause source version data to fail to get updated. - Fixed a condition that prevented error messages from being displayed when performing a redirect. This means that standard_error_message documents that redirect now need to add a "lock=1" argument to the redirect call. - A bug in the stupid file logger consumed exception info for certain types of errors (such as failed product import). - A bug in integration with the new security machinery caused copy / paste operations to fail in certain cases. - Changed permission assignments for 'manage_editForm', 'manage', 'manage_main', 'manage_uploadForm', 'manage_historyCopy', 'manage_beforeHistoryCopy' and 'manage_afterHistoryCopy' to 'Change DTML Documents' (for DTML Documents) and 'Change DTML Methods' (for DTML Methods) which is more correct and makes view filtering work properly. - The medusa code that produced the server log file was writing the formatting the date in GMT but adding a local timezone identifier (+0100, etc.) It has been fixed to format the date using localtime. - The DTML "tree" tag did not understand the common shorthand spellings for name= and expr=. - The HTML4 formatting method on DateTime objects did not return the datetime in UTC as it was supposed to. - A bug in cgi.py caused an entire extra copy of large file uploads and input data to be kept in memory, defeating the work the module does to avoid doing exactly that ;^) - A bug in the cgi module could cause memory to spike on large inputs, as it kept a complete copy of the input in memory that was never used :( - A packing bug could cause data written by saved versions to be inaccessible. This is actually a bug that was fixed in Zope 2.1, but the fix never got applied to the main code tree. :( - The behavior of the tag and __str__ methods of images has changed slightly; if no 'alt' argument is given, it will use the title of the image (if defined) for the alt attribute. Otherwise it will generate 'alt=""'. Also, it now generates 'border="0"' unless a different value for border is given as a keyword argument. - The database control screen in the control panel did not work with storages that returned string "sizes". Some storages return strings to indicate units other than bytes. - Fixed the broken Product Help icon. - Fixed ZClass view help setting, thanks to Jeff Sasmor. Zope 2.2.1 beta 1 Bugs Fixed - FileStorage-based databases became corrupted when their size grew beyond 2GB. - FileStorage-based databases could be corrupted if transaction descriptions or transaction extended meta-data exceeded 64KB in size. - Some relational database adapters use an older version of a results class in Shared.DC.ZRDB. The RDB-format based results class was missing a needed security assertion to allow access to result data. - Missing security assertions in the ZDOM module caused unauthorized errors for things trying to use ZDOM (such as XMLDocument). - A bug in the registration of help content caused unnecessary transactions to be written at startup. - The machinery for guessing content types ignored default values passed in explicitly. - A problem in the Find machinery removed the acquisition context from subobjects, causing permission checking to fail. - There was a hard-coded unix path separator in the logic for initializing special dtml objects from files. - The ordering of tabs on some management screens was changed inadvertantly during the 2.2 development cycle. The ordering has been tweaked to conform more closely to earlier releases. - The strftime() method of DateTime objects was changed so that it formats based on the current timezone representation of a given DateTime object. This is now also the case when formatting DateTimes from DTML using the fmt="..." construct (which uses the strftime method under the hood). Previously, strftime converted to GMT, which was inconsistent with other formatting methods and caused problems for people. Those who actually do want the date to be formatted in GMT can use: myDate.toZone('GMT') to get a version of the object represented in GMT and then call the formatting methods on that object. - Permissions were not properly defined for the new history vew in DTMLMethods and DTMLDocuments. This caused many useful features to be available only to managers and others to be available only to those with undo priveledges. A new permission, "View History" has been added for viewing historical changes and you can copy historical versions to the present if yo can edit DTMLDocuments or DTMLMethods. - The new traversal method, restrictedTraverse was private, but should have been public. It also didn't check access to the root object when an absolute path was used. - The roles (and only the roles) "Manager" and "Anonymous" had the "Access contents information" permission on the root application object regardless of permission settings made through the management interface. - A ZCatalog bug which was symptomized by a "KeyError" during a searchResults query was squished by changing some exception handling in the cataloging machinery. - Version's chose their names based on absolute_url, which depends on access method, rather than physical path. - A fix for socket.connect() calls in preparation for Python 2.0 was accidentally applied to a wrong part of Client.py in ZPublisher. - The "distribution" tab for ZClass-based products has been changed to allow creation of redistributable products. - DAV property sheets were not correctly associated with permissions, which cause Unauthorized errors when iterating over propertysheets under the new security model. - Some patches to PCGI added in the 2.2 development cycle to support things like syslog connectivity were backed out due to problems on certain platforms. The patches may make it back in the future after the issues are resolved and broader platform testing can be done. - The new security machinery did not allow REQUEST to be accessed when it was acquired. This didn't prevent access to REQUEST, but made the access eccessively expensive. - Fixed the display order of the Zope tutorial topics. - Fixed the help system menu frame to not use standard html header and footer. - Products that have not been updated to define an 'initialize' method to do product initialization were not filtered correctly by permission in the filtered object add list. - Exception logging was added to catalog to catch "shouldnt happen" sorts of events. - Text indexes did not recognize boolean connectives (and, not) if they were mixed-case. - Fixed Tutorial bug that caused win98 to crash with adding a tutorial. - Fixed ZService.py to avoid overwriting existing service start parameters at install time on win32. - The deprecated alias getSize() was added back to Image and DTML objects (existing products still depend on it). - Cleaned up a DocumentTemplate namespace issue. Fixed QuickStart. - Removed old validation code in cDocumentTemplate. - In ZCatalog, it was possible for stemming on single-word search queries to be handled incorrectly and produce no results. - A problem in the url traversal machinery caused strange errors in cases where the root of the site was requested but had no index_html instead of the expected Not Found error. - ZCatalog objects did not implement the searchable object interface correctly. - XML (database) import sometimes failed, especially with ZClass instances. - XML (database) export didn't properly handle strings that contained the string "\n". - The tag insertion machinery failed if the request result had content-type with a charset attribute (thanks to Dieter Maurer). - A long-standing bug that caused a "resource not found" error when trying to instantiate a ZClass inside of another ZClass was fixed. Hooray for Chris McDonough :^) - In certain circumstances it was possible for the manage_afterAdd and other manage_after* methods to get into an infinite loop by essentially acquiring themselves in cases where subobjects did not implement those protocols. - The sqlvar tag produced misleading error messages when an expression caused an exception during rendering. - RFC1123 dates were not formatted correctly in the webdav.client implementation. - Made the ObjectManager class inherit from Traversable (which exposes unrestrictedTraverse). ObjectManager-type items which didn't inherit from SimpleItem.Item had problems with Management.Tabs producing the right views for manage_options before this was in there. - FileStorage-based databases got into an unusable state if available disk space was exceeded. This problem could lead to database corruption.