view CHANGES.txt @ 0:3673ed425f80

Vendor import of Five 1.2b+ (r20590)
author fguillaume
date Fri, 02 Dec 2005 20:25:42 +0000
line source
1 ============
2 Five Changes
3 ============
5 Five 1.3c (unreleased)
6 ======================
8 This version is also included in Zope 2.9b1.
10 Restructuring
11 -------------
13 * (b6) Added ``original`` parameter to ObjectCopiedEvent backported from
14 Zope 3.2
16 * (b4) Cleaned up security test.
18 * (b4) Made Five send a ContainerModifiedEvent when appropriate.
20 Bugfixes
21 --------
23 * (b6) Added backward compatibility for old _setObject and _delObject
24 implementations without suppress_events.
26 * (b3) Made the creation of custom skins work again. It was broken in
27 the port to Zope 3.2.
29 * (b2) Fixed bug that broke WebDAV access for five:defaultViewable
30 objects. The __browser_default__ now modifies only GET and POST
31 requests.
33 * (b2) Fixed some event recursion compatibility modes.
35 Five 1.3b2 (2005-11-10)
36 =======================
38 This version is also included in Zope 2.9b1.
40 Changes compared to Five 1.3b:
42 Bugfixes
43 --------
45 * Fixed bug that broke WebDAV access for five:defaultViewable objects. The
46 __browser_default__ now modifies only GET and POST requests.
48 * Fixed some event recursion compatibility modes.
50 Five 1.3b (2005-11-02)
51 ======================
53 Restructuring
54 -------------
56 * Support for Zope 3.2 was added. Five now requires Zope 2.9 (which
57 ships with Zope 3.2).
59 * As scheduled, the temporary fork of the new test runner
60 (``zope.testing``) at ``Five.testing`` was removed. So was the
61 ```` script. Use the regular Zope test runner
62 (```` or ``bin/zopectl test``) to run tests.
64 * To reflect the Component Architecture simplification in Zope 3 since
65 the X3 3.0 release, ``IFiveUtilityService`` was renamed to
66 ``IFiveUtilityRegistry`` and ``SimpleLocalUtilityService`` was
67 renamed to ``SimpleLocalUtilityRegistry``. The old names are still
68 available for a short period of time.
70 * Event support: ``<five:containerEvents/>`` is the default.
72 * Due to an incompatability with Zope 3.2's ObjectWidget and Zope 2's
73 Page Templates, Five now ships with its own ObjectWidget
74 implementation (which is just a thin wrapper around Zope's one to
75 make it work in Zope 2). If you use the ObjectWidget, please change
76 your imports to ``Products.Five.form.objectwidget.ObjectWidget``.
78 * Backwards compatability for Zope 3-style interfaces of Zope 2
79 components has been removed as that functionality is now in the Zope
80 2 core as of Zope 2.9.
82 Five 1.2 (unreleased)
83 =====================
85 Bugfixes
86 --------
88 * Fixed bug that broke WebDAV access for five:defaultViewable objects. The
89 __browser_default__ now modifies only GET and POST requests.
91 * Fixed some event recursion compatibility modes.
93 * Fixed loops in zcml loading due to events in some cases.
95 * Made Five send a ContainerModifiedEvent when appropriate.
97 Restructuring
98 -------------
100 * Cleaned up security test.
102 * Added monkey so that ++skin++ works with Zope <= 2.8.4.
104 Five 1.2b (2005-11-02)
105 ======================
107 Features
108 --------
110 * Added IMarkerInterfaces adapter: This adapter provides methods for
111 inspecting and assigning marker interfaces. 'edit-markers.html' (or
112 'manage_interfaces' in the ZMI) allows to change the behavior of specific
113 objects by adding or removing marker interfaces TTW.
115 * Added the five:registerClass directive: This does the necessary Zope 2
116 registration for Five-based content. It is no longer necessary to add an
117 ``initialize()`` function to the product's __init__ in order to register
118 a meta type to be addable through the ZMI. See doc/products/ViewsTutorial
119 for an example how to use the directive.
121 * Local site support: Five has now support for creating local sites
122 and thereby local utilities. This is mostly needed for allowing CMF
123 to convert it's portal tools into local utilities. See
124 doc/localsite.txt for more information
126 * Event support: When ``<five:containerEvents/>`` is specified, Five
127 makes the standard Zope 2 containers send events instead of using
128 manage_afterAdd, manage_beforeDelete and manage_afterClone. These
129 methods are still called for a class declared
130 ``<five:deprecatedManageAddDelete class=.../>``, and are called in
131 compatibility mode with a deprecation warning for classes that don't
132 use this directive.
134 Restructuring
135 -------------
137 * Removed backwards compatibility for Five 1.0 Zope core interfaces.
139 * Removed backwards compatibility for Zope 2.7 and 2.8.0.
141 * Added a (temporarily) forked copy of the "new-and-improved" test
142 runner and supporting ``zope.testing`` package, lifted from
143 This code should be removed for
144 Five 1.3, which will use the updated version of ``zope.testing`` in
145 the Zope 2.9 / Zope 3.2 tree.
147 There is a test runner invoking script in the ``Five`` package. For
148 example, to run the Five tests with the new test runner, simply
149 execute the following command line from your instance home::
151 $ bin/zopectl run Products/Five/ -v -s Products.Five
153 * Moved the ``Five.testing`` package down to ``Five.tests.testing``,
154 in order to make room for the 'zope.testing' code.
156 * Removed backwards compatibility for some moved classes (AddForm,
157 EditForm, ContentAdding)
159 Five 1.1 (2005-10-04)
160 =====================
162 Features
163 --------
165 * When Zope was not in debug mode, an error in a ZCML file would cause Five to
166 stop loading ZCML completely, making all subsequent products "dead". The
167 effect would typically be that objects appeared to have no views at all.
168 Now a ZCML error will only stop the ZCML loading for that product, but the
169 rest of the products will load as usual. A traceback will still be printed
170 in the event log.
172 In debug mode the behaviour has not changed; a ZCML error will stop Zope
173 startup completely, and print a traceback if running in foreground mode.
175 Restructuring
176 -------------
178 * The deprecated FivePageTemplateFile was removed, and the erroneous use of
179 this by EditView was changed.
181 Bugfixes
182 --------
184 * Repaired 'forms.txt' test which expected an error page when passing
185 'handle_errors' as False; it now expects an Unauthorized traceback.
186 Note that this test fails on Zope 2.8.1, which incorrectly ignored
187 'handle_errors'.
189 * FiveTraversable should only do a view lookup and not call the traverse
190 method of its superclass.
192 * Fixed manage_beforeDelete triggering for classes using five:sendEvents.
194 * The redefinePermission directive was falsely registered under the
195 ``zope`` namespace, not the ``meta`` namespace as it is in Zope 3.
197 * Some parts of and were not translated correctly or not
198 translated at all. The fix depends on TAL changes in Zope 2.8.1 and changes
199 in Zope X3-3.0.1 (shipped with 2.8.1). Form i18n is still broken with older
200 Zope versions.
202 * 'zope' domain translations are now set up by default. Form i18n needs them.
204 * Added backwards compatibility for some moved classes (AddForm, EditForm,
205 ContentAdding)
207 * The ZPT variable 'container' makes little sense in Zope3/Five, but is now
208 always set to be the same as 'here' which is normal Zope2 behaviour.
209 It is in Five 1.0.x set to be the same as 'view' which breaks some templates.
211 * In some hard to replicate cases, using the "modules" variable in ZPT cause
212 an AuthenticationError. Using the secure module importer fixes this.
214 * If you used some parts of Zope 3 (for example the mail delivery) Five 1.1
215 transaction backport would conflict with Zope 3s transaction module.
216 This is now solved.
218 Five 1.1b (2005-07-13)
219 ======================
221 Features
222 --------
224 * Zope 3-style i18n support has been provided. Apart from being able
225 to register translations through ZCML, Five now lets Zope 2 ZPTs
226 automatically use Zope 3 translation domains. Fallback to an
227 old-style translation service (e.g. Localizer or PTS) is supported.
228 This also includes the detection of preferred languages. See
229 ``doc/i18n.txt`` for more information.
231 * Added support for Zope 3 -> Zope 2 interface bridging. This
232 functionality will be part of Zope 2.9, with Five you can already
233 use it in Zope 2.7/2.8. Since Zope 2 interfaces are rarely used and
234 their Zope 3 equivalents are more meaningful (for the Component
235 Architecture), the preferred way of dealing with interface migration
236 is to write Zope 3 interfaces and bridge them to Zope 2 ones as
237 needed. To bridge, use the ``Interface.bridge.fromZ3Interface()``
238 function.
240 * Support for the standard <factory />, <modulealias /> and <hook />
241 ZCML directives was added.
243 * The default browser view name for all objects is now 'index.html',
244 just as it is in Zope 3. This means that a view by that name will
245 be looked up if no specific view name is given in the URL.
247 Restructuring
248 -------------
250 * Restructured the Five source code to be easier to navigate in.
251 Three subpackages were created, Five.browser, Five.form and
254 * The former test product, ``FiveTest``, was converted into separate
255 modules that provide the mock objects for the corresponding tests
256 and are located right next to them. Common test helpers have been
257 moved to the Five.testing package. Overall, the testing framework
258 was much simplified and the individual tests clean up after
259 themselves much like they do in Zope 3.
261 * Relocated Zope core interfaces. Future Zope versions will ship with their
262 own z3 interfaces. Five now patches the older Zope versions to make sure
263 you can always find the interfaces in 'AccessControl.interfaces',
264 'Acquisition.interfaces', 'App.interfaces', 'OFS.interfaces' and
265 'webdav.interfaces'. Please don't use the aliases in 'Five.interfaces' or
266 'Five.bbb.*interfaces' - they are only provided for backwards
267 compatibility.
269 * Zope 2.8 HTTPRequest is no longer patched. It has the required methods.
271 Bugfixes
272 --------
274 * The ZPT variable 'container' did not always contain the parent object
275 of the context.
277 * The deprecated get_transaction method is no longer used in Zope 2.8.
279 Five 1.0.2 (2005-07-12)
280 =======================
282 This version is also included in Zope 2.8.1
284 * Fixed some issues with bridged interfaces: Bases and Methods were not
285 bridged correctly. extends() was never True.
287 * now behaves exactly like
288 (in fact, the former now calls the
289 latter through the indirection of Zope 3 security policies).
291 * Fixed a bug with resource directories. Resources within those were
292 not rendering their absolute URL correctly.
294 Five 1.0.1 (2005-05-31)
295 =======================
297 This version is also included in Zope 2.8.0
299 * Changed license headers to the ones used in the repository.
300 This makes merging between the main development line of Five (hosted
301 on and the version integrated into Zope 2.8 much
302 easier. The actual copyright ownership isn't affected because Five
303 had been contributed to the Zope project anyway (which was blessed
304 by all Five contributors).
306 * Made automatically generated add and edit forms unicode-aware.
307 ZPublisher does not automatically decode incoming form values to
308 unicode, so AddView and EditView emulate this behaviour themselves
309 now. They also take care of setting the right charset on the
310 outgoing form so that ZPublisher will encode it accordingly when
311 sending the response to the client. (In Zope 3, all charset
312 negotation between the client and the server takes place in the
313 publisher.)
315 * Added ``IHTTPCharset`` adapter for ``IHTTPRequest`` so that
316 application can find out the preferred character set of the HTTP
317 client (Zope 2 applications needs to take care of their own charset
318 header). The adapter is used for the automatically-generated forms
319 when determining encodings for unicode field content.
321 * Modified to make sure editforms have only one body tag.
323 * Fixed the ``INameChooser`` adapter for ObjectManagers (e.g. Zope 2
324 folders) and added unit tests.
326 * Fixed small bug in BrowserDefault which caused an error if the class is
327 defaultViewable but the object's interfaces have no defaultView.
329 Five 1.0 (2005-04-27)
330 =====================
332 Features
333 --------
335 * Zope 3 style ``ISized`` adapters for objects are now exposed to the
336 ZMI and other Zope 2 frameworks via the known ``get_size`` method,
337 provided this is turned for the class in question via the
338 five:sizable ZCML directive.
340 * There is now a standard standard_macros. Five page templates can use
341 context/@@standard_macros/view to get the default site layout, and
342 people can register their own standard_macros in a skin.
344 * The addform and editform directive now supports the widget ZCML
345 subdirective, which previously was ignored.
347 * Five now supports the vocabulary ZCML directive.
349 Bugfixes
350 --------
352 * Add and edit forms are now protected properly.
354 * The checkbox widget did not work correctly in its off state, this
355 has been fixed.
357 Five 0.3 (2005-03-11)
358 =====================
360 * Five now uses the Zope 2 page template engine, not the Zope 3
361 engine. This allows better integration with Zope 2-based page
362 templates, such as macros.
364 It uses TrustedExecutables technology (thanks to Dieter Maurer) to
365 turn off Zope 2 security in page templates, so Five's security
366 behavior is very similar to what it was before.
368 * Five now supports the browser:menu, menuItem and menuItems
369 directives.
371 * A new Five-specific directive has been added:
372 five:pagesFromDirectory. This adds one page for each .pt file in a
373 directory to the specified interface. This is useful for Five
374 integration with CMF and other systems that have Page Templates
375 macros that need to be shared between Zope2 and Five.
377 * has been changed from a (unused)
378 method for checking the existence of permissions. Use
379 if you need that
380 functionality.
382 Instead is now a Five version of
383, which checks if the current user has
384 a permission on an object.
386 * Support for browser:editform. You can now use schemas for editing.
388 * Support for browser:addform; add forms using '+'. You can now browse
389 to 'container/+/addsomething.html' to get to a schema-driven add
390 form.
392 * Fixed a traversal bug which caused Zope to give the wrong error when
393 a page could not be found (missing docstring instead of not
394 found). Zope 2.7.4 (or higher) is required for this fix.
396 Five 0.2b (2004-09-24)
397 ======================
399 * Added utility module, 'bridge', allowing reuse of Zope 2 interfaces
400 (by introspecting them to create equivalent Zope 3 interfaces).
402 * five:viewable was renamed to five:traversable, five:viewable still
403 works but is deprecated; a deprecation warning is emitted when it is
404 used.
406 * like in Zope3, an ITraverser adapter is looked up to determine what
407 happens when traversing into a Five traversable object.
409 * added five:defaultViewable to make instances of a class directly
410 viewable using browser:defaultView. This is hookable by the use of a
411 IBrowserDefault adapter
413 * deprecated use of Products.Five.api as public API for other products
414 to use, instead import directly from Products.Five. Retired
415 Traversable and Viewable from the public API; use ZCML directives
416 (five:traversable, five:defaultView) instead of mixins to make
417 instances of classes work with Five.
419 * classes that Five monkeypatches now have a __five_method__
420 attribute, making it easier for Five not to stomp on existing methods.
422 * registered absolute_url view and IAbsoluteURL adapter for *
424 * is registered by default, to make special
425 namespaces available (eg: @@, ++resource++)
427 * we now have resources (FileResource, ImageResource,
428 PageTemplateResource) and directory resources.
430 * Zope 3 'StandardMacros' now works with Five as well.
432 * browser:page now correctly handles the allow_attributes and protects
433 the named attributes on the view with the same permission used for
434 the view.
436 * will try to find etc/zope.conf on INSTANCE_HOME. This
437 requires Zope 2.7.2, as earlier Zope versions have a bug in this
438 area which causes them to look in lib/python/Testing.
440 * Exposed the Zope 3 event system to Five. A class can be made to send
441 out event notifications using the five:sendEvents directive. Events can
442 be subscribed to using the subscriber directive.
444 * Change in findProducts so that non-filesystem products are skipped.
446 Five 0.1 (2004-07-30)
447 =====================
449 Initial public release (mainly Martijn's work)