このファイルには現在の Zope リリースでの変更点を記載しています。 これ以前の変更については HISTORY.txt を参照してください。
Collector #1939: When running as a service, Zope could potentially collect too much log output filling the NT Event Log. When that happened, a ‘print’ during exception handling would cause an IOError in the restart code causing the service not to restart automatically.
Problem is that a service/pythonw.exe process always has an invalid sys.stdout. But due to the magic of buffering, small “print” statements would not fail - but once the file actually got written to, the error happened. Never a problem when debugging, as the process has a console, and hence a valid stdout.
Collector #1976: FTP STOR command would load the file being uploaded in memory. Changed to use a TemporaryFile.
Collector #1904: On Mac OS X avoid a spurious OSError when zopectl exits.
CopySupport: Reverted workaround in ‘_verifyObjectPaste’. ‘checkPermission’ now respects proxy roles, so the warkaround introduced to fix http://www.zope.org/Collectors/Zope/78 is no longer needed. Meta types listed in all_meta_types need a ‘permission’ key.
Collector #1774: Harmonize the implementation of AccessControl.ZopeSecurityPolicy.checkPermission with ‘validate’, checking ownership and proxy roles if an executable object is on the stack.
AccessControl.SecurityInfo: Fixed problem with setPermissionDefault when the permission wasn’t used anywhere else in the class to protect methods.
Collector #1957: Made ZPublisher.HTTPResponse._error_html return conformant XHTML.
Collector #1891: Backported changes to ZCatalog regression tests, removing use of ‘whrandom’ (and its ‘seed’ function).
Collector #1621, #1894: Added BBB alias for ‘whrandom’ in AccessControl/DTML.py and RestrictedPython/Utilities.py. The alias will be removed in Zope 2.10.
Collector #1954: DocumentTemplate.DT_String: remove non-XHTML wart from error message.
Fixed unclear security declarations. Warn when an attempt is made to have a security declaration on a nonexistent method.
OFS Application: While deprecated since years, old-style product metadata in the __init__.py did not show deprecation warnings. Added warnings and converted ZGadflyDA/__init__.py and ZSQLMethods/__init__.py to use registerClass instead.
ZCatalog.CatalogBrains: ‘getObject’ now raises errors, rather than returning None, in cases where the path points either to a nonexistent object (in which case it raises NotFound) or to one which the user cannot access (raising Unauthorized). Sites which rely on the old behavior can restore setting a new zope.conf option, ‘catalog-getObject-raises’, to “off”.
This compatibility option will be removed in Zope 2.10.
PluginIndexes: the ZCatalog’s “Indexes” tab now show the number of distinct values indexed by each index instead of a mixture of indexed objects versus number of distinct values. Indexes derived from UnIndex show both values within their own ZMI screen. In addition most indexes have now a “Browse” tab to browse through the list of indexed values and their occurrences.
FTPServer: a RNFR (rename from) request is now being responded with a 550 error code if the source file does not exist
Fixed ObjectManager to not swallow exceptions during object deletion (in debug mode and if the user is not Manager). This allows for better debugging, while still keeping the possibility for a Manager to delete buggy objects.
Added a ZConfig directive ‘large-file-threshold’ to control the request content-size threshold at which a temporary file gets created. Use the same value for deciding between reading the whole request in memory or just a chunk inside webdav.NullResource.PUT().
RAMCacheManager: Allow invalidation of a cache entry from the Statistics view in the ZMI
Collector #1454/OFS.File: Accept content types ending with “javascript” as editable through the File edit form, just like text/<foo> types
Zope X3 3.0.0’s ‘src/zope’ package is included now.
Five (Zope 3 integration technology for Zope 2) is included now in Products/Five.
Included Stefan Holek’s ZopeTestCase 0.9
The SiteErrorLog allows you to acknowledge (or delete) exceptions, so you can reduce or clear the list without restarting your Zope server. Additionally the SiteErrorLog is covered by unit tests now.
Unit tests added for the SiteErrorLog.
UI improvement for the ZCatalog. The “catalog contents” allow you to filter the cataloged objects by path now.
Made test.py follow symbolic links on POSIX systems.
added utilities/reindex_catalog.py to perform ZCatalog maintenance operations from the command line (through zopectl)
RESPONSE.setBody and RESPONSE.setStatus now accept lock parameters in the same way as RESPONSE.redirect. These prevent further calls to the methods from overwriting the previous value. This is useful when writing http proxies.
DateTime: new DateTime instance can be constructed from a given DateTime instance: d_new = DateTime(d_old)
The DateTime parser now throws a SyntaxError upon any parsing errors.
ZCatalog: added a new configuration option in the “Advanced” tab to provide optional logging of the progress of long running reindexing or recataloging operations.
made Zope.configure return the starter instance to enable other methods to be called, such as starter.setupConfiguredLoggers()
Improved Unicode handling in Page Templates. Template contents and title will now be saved as a Unicode string if the management_page_charset variable can be acquired and is true. The character set of an uploaded file can now be specified.
zopectl now accepts the -m argument to set a umask for files created by the managed process (e.g. -m 002 or –umask 002).
AccessControl/permission_settings() now has a new optional parameter ‘permission’ to retrieve the permission settings for a particular permission.
The obsolete ‘SearchIndex’ package has been removed
Traversal now supports a “post traversal hook” that get’s run after traversal finished and the security context is established.
Using “_usage” parameters in a ZCatalog query is deprecated and logged as DeprecationWarning.
MailHost now has two additional properties, a user id and a password. These are used to attempt ESMTP authentication before sending a mail.
Folder listings in FTP now include ”.” as well as ”..”.
When a VHM is activated, it adds the mapping ‘VIRTUAL_URL_PARTS’: (SERVER_URL, BASEPATH1, virtual_url_path) to the request’s ‘other’ dictionary. If BASEPATH1 is empty, it is omitted from the tuple. The joined parts are also added under the key ‘VIRTUAL_URL’. Since the parts are evaluated before traversal continues, they will not reflect modifications to the path during traversal or by the addition of a default method such as ‘index_html’.
Extension Classes, a key Zope foundation, have been totally rewritten based on Python new-style classes.
This change provides a number of advantages:
Note – Extension classes with __of__ methods are made into Python read descriptors.
If an extension classes is used to implement a descriptor, indirectly by implementing __of__ or directly by implementing __get__, the behavior of the descriptor will differ from ordinary descriptors in an important way. The descriptors __get__ method will be called even if the descriptor is stored on an instance of an extension class. Normally descritor __get__ methods are called only of the descriptor is stored in a class.
ZODB 3.3
This is the first version of ZODB that does not require ExtensionClass.
Add ‘parity’ method to ZTUtils Iterators.
Allow untrusted code to mutate ZPublisher record objects.
Added a “mime-types” configuration value which names a file giving additional MIME type to filename extension mappings. The “mime-types” setting may be given more than once in the configuration file; the files have the same format at the mime.types file distributed with Apache.
Changed the ZEO server and control process to work with a single configuration file; this is now the default way to configure these processes. (It’s still possible to use separate configuration files.) The ZEO configuration file can now include a “runner” section used by the control process and ignored by the ZEO server process itself. If present, the control process can use the same configuration file.
ZConfig was updated to version 2.0. The new version includes two new ways to perform schema extension; of particular interest in Zope is the ability for a configuration file to “import” new schema components to allow 3rd-party components (such as storages, databases, or logging handlers) to be used.
The testrunner.py script has been replaced with test.py which is now installed into the ‘bin’ folder.
(Translated by Shimizukawa, r102506)