CHANGES.rst 14.7 KB
Newer Older
1
Changelog
2
=========
Jim Fulton's avatar
Jim Fulton committed
3

4
This file contains change information for the current Zope release.
5 6
Change information for previous versions of Zope can be found at
http://docs.zope.org/zope2/releases/.
Jim Fulton's avatar
Jim Fulton committed
7

Hanno Schlichting's avatar
Hanno Schlichting committed
8 9 10 11 12 13 14
2.13.0a4 (unreleased)
---------------------

Bugs Fixed
++++++++++


15 16 17
Features Added
++++++++++++++

18
- LP #193122: New method getVirtualRoot added to the Request class.
19

20 21
- Updated test assertions to use unittest's ``assert*`` methods in favor of
  their deprecated `fail*` aliases.
Hanno Schlichting's avatar
Hanno Schlichting committed
22

23 24
- Update to Zope Toolkit 1.0a3.

Hanno Schlichting's avatar
Hanno Schlichting committed
25
2.13.0a3 (2010-08-04)
Hanno Schlichting's avatar
Hanno Schlichting committed
26 27 28 29 30
---------------------

Bugs Fixed
++++++++++

31 32 33
- Adjusted overflow logic in DateIndex and DateRangeIndex to work with latest
  ZODB 3.10.0b4.

34 35 36
- Made sure to exclude a number of meta ZCML handlers from ``zope.*`` packages
  where Zope2 provides its own implementations.

37 38
- LP #599378: Fixed accumulated_headers not appending to headers correctly.

39 40 41 42 43 44
- Fix support for non-public permission attributes in the
  browser:view directive so that attributes which are not included in
  allowed_interface or allowed_attributes but which have declarations from a
  base class's security info don't get their security overwritten to be
  private.

45 46 47
- LP #143755: Also catch TypeError when trying to determine an 
  indexable value for an object in PluginIndexes.common.UnIndex

48 49 50 51
- LP #143533: Instead of showing "0.0.0.0" as the SERVER_NAME 
  request variable when no specific listening IP is configured for 
  the HTTP server, do a socket lookup to show the current server's 
  fully qualified name.
52

53 54 55
- LP #143722: Added missing permission to ObjectManager.manage_hasId,
  which prevented renaming files and folders via FTP.

56 57 58
- LP #143564: Request.resolve_url did not correctly re-raise
  exceptions encountered during path traversal.

Hanno Schlichting's avatar
Hanno Schlichting committed
59 60 61
Restructuring
+++++++++++++

62 63 64 65
- Removed catalog length migration code. You can no longer directly upgrade a
  Zope 2.7 or earlier database to Zope 2.13. Please upgrade to an earlier
  release first.

66 67
- Deprecated the ``Products.ZCatalog.CatalogAwareness`` and
  ``CatalogPathAwareness`` modules.
68

69 70
- Removed deprecated ``catalog-getObject-raises`` zope.conf option.

71 72 73
- Removed unmaintained HelpSys documents from ZCatalog and PluginIndexes.
  Useful explanations are given inside the form templates.

74 75 76 77
- Deprecate Products.ZCatalog's current behavior of returning the entire
  catalog content if no query restriction applied. In Zope 2.14 this will
  result in an empty LazyCat to be returned instead.

78 79 80
- Deprecate acquiring the request inside Products.ZCatalog's searchResults
  method if no explicit query argument is given.

81 82 83 84 85 86 87
- Cleaned up the Products.ZCatalog search API's. The deprecated support for
  using `<index id>_usage` arguments in the request has been removed. Support
  for overriding operators via the `<index id>_operator` syntax has been
  limited to the query value for each index and no longer works directly on
  the request. The query is now brought into a canonical form before being
  passed into the `_apply_index` method of each index.

Hanno Schlichting's avatar
Hanno Schlichting committed
88 89 90
- Factored out the `Products.MailHost` package into its own distributions. It
  will no longer be included by default in Zope 2.14 but live on as an
  independent add-on.
Hanno Schlichting's avatar
Hanno Schlichting committed
91 92 93 94

Features Added
++++++++++++++

95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
- Merged the query plan support from both ``unimr.catalogqueryplan`` and
  ``experimental.catalogqueryplan`` into ZCatalog. On sites with large number of
  objects in a catalog (in the 100000+ range) this can significantly speed up
  catalog queries. A query plan monitors catalog queries and keeps detailed
  statistics about their execution. Currently the plan keeps track of execution
  time, result set length and support for the ILimitedResultIndex per index for
  each query. It uses this information to devise a better query execution plan
  the next time the same query is run. Statistics and the resulting plan are
  continuously updated. The plan is per running Zope process and not persisted.
  You can inspect the plan using the ``Query Plan`` ZMI tab on each catalog
  instance. The representation can be put into a Python module and the Zope
  process be instructed to load this query plan on startup. The location of the
  query plan is specified by providing the dotted name to the query plan
  dictionary in an environment variable called ``ZCATALOGQUERYPLAN``.

110 111 112 113 114 115 116 117 118 119 120
- Various optimizations to indexes _apply_index and the catalog's search
  method inspired by experimental.catalogqueryplan.

- Added a new ILimitedResultIndex to Products.PluginIndexes and made most
  built-in indexes compatible with it. This allows indexes to consider the
  already calculated result set inside their own calculations.

- Changed the internals of the DateRangeIndex to always use IITreeSet and do
  an inline migration from IISet. Some datum tend to have large number of
  documents, for example when using default floor or ceiling dates.

Hanno Schlichting's avatar
Hanno Schlichting committed
121 122
- Added a new reporting tab to `Products.ZCatalog` instances. You can use this
  to get an overview of slow catalog queries, as specified by a configurable
123
  threshold value.
Hanno Schlichting's avatar
Hanno Schlichting committed
124

125 126 127 128
- Warn when App.ImageFile.ImageFile receives a relative path with no prefix,
  and then has to assume the path to be relative to "software home". This
  behaviour is deprecated as packages can be factored out to their own
  distribution, making the "software home" relative path meaningless.
129

130 131
- Updated packages:

132
  - AccessControl = 2.13.2
Jens Vagelpohl's avatar
Jens Vagelpohl committed
133
  - DateTime = 2.12.5
134
  - DocumentTemplate = 2.13.1
Hanno Schlichting's avatar
Hanno Schlichting committed
135
  - Products.BTreeFolder2 = 2.13.1
Hanno Schlichting's avatar
Hanno Schlichting committed
136
  - Products.OFSP = 2.13.2
Hanno Schlichting's avatar
Hanno Schlichting committed
137
  - ZODB3 = 3.10.0b4
Hanno Schlichting's avatar
Hanno Schlichting committed
138

Hanno Schlichting's avatar
Hanno Schlichting committed
139
2.13.0a2 (2010-07-13)
Godefroid Chapelle's avatar
Godefroid Chapelle committed
140
---------------------
Hanno Schlichting's avatar
Hanno Schlichting committed
141 142 143 144

Bugs Fixed
++++++++++

145 146
- Made ZPublisher tests compatible with Python 2.7.

147 148
- LP #143531: Fix broken object so they give access to their state.

Hanno Schlichting's avatar
Hanno Schlichting committed
149 150
- LP #578326: Add support for non-public permission attributes in the
  browser:view directive.
Hanno Schlichting's avatar
Hanno Schlichting committed
151

152 153 154
Restructuring
+++++++++++++

155 156
- No longer use HelpSys pages from ``Products.OFSP`` in core Zope 2.

157 158 159
- No longer create an `Extensions` folder in the standard instance skeleton.
  External methods will become entirely optional in Zope 2.14.

160 161 162
- Avoid using the ``Products.PythonScripts.standard`` module inside the
  database manager ZMI.

163
- Factored out the `Products.BTreeFolder2`, `Products.ExternalMethod`,
164 165 166 167
  `Products.MIMETools`, `Products.OFSP`, `Products.PythonScripts` and
  `Products.StandardCacheManagers` packages into their own distributions. They
  will no longer be included by default in Zope 2.14 but live on as independent
  add-ons.
168

Hanno Schlichting's avatar
Hanno Schlichting committed
169
- Factored out the `Products.ZSQLMethods` into its own distribution. The
170 171 172 173 174 175
  distribution also includes the `Shared.DC.ZRDB` code. The Zope2 distribution
  no longer includes the code automatically. Please depend on the new
  distribution yourself, if you use the functionality. To make the transition
  easier this change has been backported to Zope 2.12.9, so you can depend on
  the new distribution already in packages requiring at least that version of
  Zope 2.
176

177 178
- Made both `Shared` and `Shared.DC` namespace packages.

179 180 181
- Removed fallback code for old Python versions from
  `ZServer.FTPServer.zope_ftp_channel.push`.

182 183 184
- Removed fallback code for old `ZCatalog.catalog_object` function signatures
  from `Products.ZCatalog.ZCatalog.reindexIndex`.

Hanno Schlichting's avatar
Hanno Schlichting committed
185 186 187
Features Added
++++++++++++++

188 189
- Added official support for Python 2.7.

190 191 192 193 194
- Added a new API ``get_packages_to_initialize`` to ``OFS.metaconfigure``.
  This replaces any direct access to ``Products._packages_to_initialize``.
  The OFS.Application.install_package function takes care of removing entries
  from this list now.

Godefroid Chapelle's avatar
Godefroid Chapelle committed
195
- Added notification of ``IDatabaseOpenedWithRoot``.
196

197 198 199
- Added a new API's ``get_registered_packages, set_registered_packages`` to
  ``OFS.metaconfigure`` which replace any direct access to
  ``Products._registered_packages``.
200

201 202 203 204 205
- Changed product install so it won't write persistent changes only to abort
  them. Instead we don't make any database changes in the first place.

- Disabled persistent product installation in the default test configuration.

Hanno Schlichting's avatar
Hanno Schlichting committed
206
- Directly extend and use the Zope Toolkit KGS release 1.0a2 from
207
  http://download.zope.org/zopetoolkit/index/.
Hanno Schlichting's avatar
Hanno Schlichting committed
208

209 210
- Updated packages:

211
  - DateTime = 2.12.4
212
  - nt_svcutils = 2.13.0
Hanno Schlichting's avatar
Hanno Schlichting committed
213

Hanno Schlichting's avatar
Hanno Schlichting committed
214
2.13.0a1 (2010-06-25)
Hanno Schlichting's avatar
Hanno Schlichting committed
215
---------------------
Andreas Jung's avatar
Andreas Jung committed
216

217 218 219
This release includes all bug fixes and features of the
`Zope 2.12.8 <http://pypi.python.org/pypi/Zope2/2.12.8>`_ release.

220
Distribution changes
221
++++++++++++++++++++
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236

- Moved AccessControl, DocumentTemplate (incl. TreeDisplay) and
  Products.ZCTextIndex to their own distributions. This removes the last direct
  C extensions from the Zope2 distribution.

- Moved the ``zExceptions`` package into its own distribution.

- Drop the dependency on the ThreadLock distribution, by using Python's thread
  module instead.

- Integrated the Products.signalstack / z3c.deadlockdebugger packages. You can
  now send a SIGUSR1 signal to a Zope process and get a stack trace of all
  threads printed out on the console. This works even if all threads are stuck.

Instance skeleton
237
+++++++++++++++++
238

239 240
- Changed the default for ``enable-product-installation`` to off. This matches
  the default behavior of buildout installs via plone.recipe.zope2instance.
241 242
  Disabling the persistent product installation also disabled the ZMI help
  system.
243

244 245
- Removed Zope2's own mkzeoinstance script. If you want to set up ZEO instances
  please install the zope.mkzeoinstance and use its script.
246

247
- Removed deprecated ``read-only-database`` option from zope.conf.
248

249 250 251
- LP #143232: Added option to 'zope.conf' to specify an additional directory to
  be searched for 'App.Extensions' lookups. Thanks to Rodrigo Senra for the
  patch.
252

253 254 255 256 257 258 259 260 261 262 263 264 265
- LP #143604: Removed top-level database-quota-size from zope.conf, some
  storages support a quota option instead.

- LP #143089: Removed the top-level zeo-client-name option from zope.conf, as it
  had no effect since ZODB 3.2.

- Removed no longer maintained ``configure, make, make install`` related
  installation files. Zope2 can only be installed via its setup.py.

- Removed the unmaintained and no longer functioning ZopeTutorialExamples from
  the instance skeleton.

Deprecated and Removed
266
++++++++++++++++++++++
267 268 269 270 271 272 273 274

- Finished the move of five.formlib to an extra package and removed it from Zope
  2 itself. Upgrade notes have been added to the news section of the release
  notes.

- ZPublisher: Removed 'Main' and 'Zope' wrappers for Test.publish. If anybody
  really used them, he can easily use ZPublisher.test instead. In the long run
  ZPublisher.test and ZPublisher.Test might also be removed.
275

276
- ZPublisherExceptionHook: Removed ancient backwards compatibility code.
277 278
  Customized raise_standardErrorMessage methods have to implement the signature
  introduced in Zope 2.6.
279

280
- Removed ancient App.HotFixes module.
's avatar
committed
281

282 283
- Removed the deprecated ``hasRole`` method from user objects.

284 285 286
- Removed deprecated support for specifying ``__ac_permissions__``,
  ``meta_types`` and ``methods`` in a product's ``__init__``.

287 288
- Remove remaining support classes for defining permissions TTW.

289 290
- Removed the deprecated ``five:containerEvents`` directive, which had been a
  no-op for quite a while.
291

292 293 294 295 296 297 298
- Removed Products.Five.fivedirectives.IBridgeDirective - a leftover from the
  Interface to zope.interface bridging code.

- Marked the ``<five:implements />`` as officially deprecated. The standard
  ``<class />`` directive allows the same.

Refactoring
299
+++++++++++
300

Tres Seaver's avatar
Tres Seaver committed
301 302 303 304 305 306
- Completely refactored ``ZPublisher.WSGIResponse`` in order to provide
  non-broken support for running Zope under arbitrary WSGI servers. In this
  (alternate) scenario, transaction handling, request retry, error handling,
  etc. are removed from the publisher, and become the responsibility of
  middleware.

307 308 309 310 311
- Moved the code handling ZCML loading into the ``Zope2.App`` package. The
  component architecture is now setup before the application object is created
  or any database connections are opened. So far the CA was setup somewhat
  randomly in the startup process, when the ``Five`` product was initialized.

312 313
- Moved Products.Sessions APIs from ``SessionInterfaces`` to ``interfaces``,
  leaving behind the old module / names for backward compatibility.
314

315 316 317
- Centralize interfaces defined in Products.ZCTextIndex, leaving BBB imports
  behind in old locations.

318
- Moved ``cmf.*`` permissions into Products.CMFCore.
319

320
- Moved ``TaintedString`` into the new AccessControl.tainted module.
321

322 323 324
- Testing: Functional.publish now uses the real publish_module function instead
  of that from ZPublisher.Test. The 'extra' argument of the publish method is no
  longer supported.
325

326
- Moved ``testbrowser`` module into the Testing package.
327

328 329
- Moved general OFS related ZCML directives from Products.Five into the OFS
  package.
330

331 332 333
- Moved the ``absoluteurl`` views into the OFS package.

- Moved ``Products/Five/event.zcml`` into the OFS package.
334

335 336
- Moved ``Products/Five/security.py`` and security related ZCML configuration
  into the AccessControl package.
337

338
- Moved ``Products/Five/traversing.zcml`` directly into the configure.zcml.
339

340
- Moved ``Products/Five/i18n.zcml`` into the ZPublisher package.
341

342
- Moved ``Products/Five/publisher.zcml`` into the ZPublisher package.
343

344
- Ported the lazy expression into zope.tales and require a new version of it.
345

346
General
347
+++++++
348

349
- Updated copyright and license information to conform with repository policy.
350

351
- LP #143410: Removed unnecessary color definition in ZMI CSS.
352

353 354 355 356 357
- LP #374810: ``__bobo_traverse__`` implementation can raise
  ``ZPublisher.interfaces.UseTraversalDefault`` to indicate that there is no
  special casing for the given name and that standard traversal logic should
  be applied.

358 359
- LP #142464: Make undo log easier to read. Thanks to Toby Dickinson for the
  patch.
Tres Seaver's avatar
Tres Seaver committed
360

361 362
- LP #142401: Added a link in the ZMI tree pane to make the tree state
  persistent. Thanks to Lalo Martins for the patch.
363

364 365
- LP #142502: Added a knob to the Debug control panel for resetting profile
  data. Thanks to Vladimir Patukhov for the patch.
366

367 368
- ZCTextIndex query parser treats fullwidth space characters defined in Unicode
  as valid white space.
369

370
Updated packages
371
++++++++++++++++
372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397

- Jinja2 = 2.5.0
- RestrictedPython = 3.6.0a1
- Sphinx = 1.0b2
- transaction = 1.1.0
- ZConfig = 2.8.0
- ZODB3 = 3.10.0b1
- zope.annotation = 3.5.0
- zope.broken = 3.6.0
- zope.browsermenu = 3.9.0
- zope.browserpage = 3.12.2
- zope.browserresource = 3.10.3
- zope.component = 3.9.4
- zope.configuration = 3.7.2
- zope.container = 3.11.1
- zope.contentprovider = 3.7.2
- zope.contenttype = 3.5.1
- zope.event = 3.5.0-1
- zope.exceptions = 3.6.0
- zope.filerepresentation = 3.6.0
- zope.i18nmessageid = 3.5.0
- zope.interface = 3.6.1
- zope.location = 3.9.0
- zope.lifecycleevent = 3.6.0
- zope.ptresource = 3.9.0
- zope.publisher = 3.12.3
Hanno Schlichting's avatar
Hanno Schlichting committed
398
- zope.schema = 3.6.4
399 400 401 402 403 404 405 406
- zope.sendmail = 3.7.2
- zope.site = 3.9.1
- zope.structuredtext = 3.5.0
- zope.tales = 3.5.1
- zope.testbrowser = 3.9.0
- zope.testing = 3.9.3
- zope.traversing = 3.12.1
- zope.viewlet = 3.7.2
407

408 409
Bugs Fixed
++++++++++
410

411
- LP #143391: Protect against missing acl_users.hasUsers on quick start page.