CHANGES.txt 43.1 KB
Newer Older
1
Zope Changes
Jim Fulton's avatar
Jim Fulton committed
2

3
  This file contains change information for the current Zope release.
's avatar
committed
4 5
  Change information for previous versions of Zope can be found in the
  file HISTORY.txt.
Jim Fulton's avatar
Jim Fulton committed
6

Andreas Jung's avatar
Andreas Jung committed
7
  To-do
Chris McDonough's avatar
Chris McDonough committed
8

9
   - Reenable C permission roles by implementing recent Python
Andreas Jung's avatar
Andreas Jung committed
10 11
     changes in C, brining the Python and C implementations back in
     sync.  See lib/python/AccessControl/PermissionRole.py.
Jim Fulton's avatar
Jim Fulton committed
12

Andreas Jung's avatar
Andreas Jung committed
13 14
   - Add cyclic-garbage collection support to C extension classes,
     especially to acquisition wrappers.
Jim Fulton's avatar
Jim Fulton committed
15

16
   - Reenable C Zope security policy by implementing recent Python
Andreas Jung's avatar
typo  
Andreas Jung committed
17
     changes in C, bringing the Python and C implementations back in
Andreas Jung's avatar
Andreas Jung committed
18
     sync.  See lib/python/AccessControl/ZopeSecurityPolicy.py.
Jim Fulton's avatar
Jim Fulton committed
19

Andreas Jung's avatar
Andreas Jung committed
20
   - Change acquisition wrappers to implement the descr get slot
Sidnei da Silva's avatar
 
Sidnei da Silva committed
21
     directly, thus speeding the use of the slot.
Jim Fulton's avatar
Jim Fulton committed
22

23 24
   - Collector #1233: port ZOPE_CONFIG patch from Zope 2.7 to Zope 2.8

25 26 27 28 29

  after Zope 2.8.5 

    Bugs Fixed

Andreas Jung's avatar
 
Andreas Jung committed
30 31 32
      - Collector #1991: ZPublisher did not deal properly with a trailing
        %20 in the URL

33 34 35
      - Collector #2013: improved XHTML conformance of error messages,
        some of which did not close '<p>' tags.

36 37 38
      - Collector #1999: fixed broken FTP rename functionality
        (RNFR now returns 350 as status code instead 250)

Sidnei da Silva's avatar
 
Sidnei da Silva committed
39 40
      - Collector #2002: fixed broken 'ls -R' functionality (didn't
        recurse properly subclasses of OFS.Folder)
41

Andreas Jung's avatar
Andreas Jung committed
42
  Zope 2.8.5 (2005/12/19)
43 44 45

    Bugs Fixed

Andreas Jung's avatar
 
Andreas Jung committed
46

Sidnei da Silva's avatar
 
Sidnei da Silva committed
47 48 49
      - 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
Sidnei da Silva's avatar
 
Sidnei da Silva committed
50 51 52 53 54 55 56 57 58
        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.
Sidnei da Silva's avatar
 
Sidnei da Silva committed
59

Sidnei da Silva's avatar
 
Sidnei da Silva committed
60 61 62
      - Collector #1976: FTP STOR command would load the file being
        uploaded in memory. Changed to use a TemporaryFile.

63 64 65
      - Collector #1904: On Mac OS X avoid a spurious OSError when
        zopectl exits.

66 67 68 69 70
      - 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.

Andreas Jung's avatar
typo  
Andreas Jung committed
71
      - Collector #1774:  Harmonize the implementation of
72 73 74 75
        AccessControl.ZopeSecurityPolicy.checkPermission
        with 'validate', checking ownership and proxy roles if an
        executable object is on the stack.

76 77 78 79
      - AccessControl.SecurityInfo: Fixed problem with
        setPermissionDefault when the permission wasn't used anywhere
        else in the class to protect methods.

80 81 82
      - Collector #1957:  Made ZPublisher.HTTPResponse._error_html
        return conformant XHTML.

83 84 85
      - Collector #1891:  Backported changes to ZCatalog regression
        tests, removing use of 'whrandom' (and its 'seed' function).

86 87 88 89
      - 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.

90 91 92
      - Collector #1954: DocumentTemplate.DT_String:  remove non-XHTML
        wart from error message.

93 94 95
      - Fixed unclear security declarations. Warn when an attempt is
        made to have a security declaration on a nonexistent method.

96 97 98 99
      - 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.
100

101 102
    Other

103 104
      - The SiteErrorLog now copies exceptions to the event log by default.

105 106 107
      - ObjectManager now has an hasObject method to test presence. This
        brings it in line with BTreeFolder.

108 109 110 111
      - Made 'zopectl test' work for software homes which do not have
        an "inplace" build (it used to require that test.py be in
        $ZOPE_HOME/bin/;  now it will use $ZOPE_HOME as a fallback).

112 113 114 115 116 117 118
      - Improved logging of ConflictErrors. All conflict errors are
        logged at INFO, with counts of how many occurred and how many
        were resolved. Tracebacks for all conflicts are logged a DEBUG
        level, although these won't help anyone much. If a conflict
        error is unresolved, it will now bubble up to error_log and
        standard_error_message.

119 120 121
      - Suppressed output of deprecation warning in 'filepath' test
        for PythonScripts.

Andreas Jung's avatar
Andreas Jung committed
122
  Zope 2.8.4 (2005/10/26)
123 124 125

    Bugs Fixed

126 127 128 129
      - Collector #1927:  Modified ZReST not to store rendered / warnings
        as persistent attributes, using volatile attributes instead as
        a cache.

130 131 132
      - Collector #1926: fixed a typo in _doAddUser when password
        encryption is enabled.

133 134 135 136 137 138 139
      - If a content object implemented any in-place numeric operators, 
        untrusted code could call them, thus modifying the content.

      - If Python 2.4 is used, despite the fact that Python 2.4 is
        unsupported, untrusted code could use generator expressions to
        gain access to container items.

Andreas Jung's avatar
Andreas Jung committed
140
  Zope 2.8.3 (2005/10/18)
141 142 143 144 145 146 147

    Other

      - ZSQLMethod.manage_main: Moved the error message that warns of a 
        non-existing or closed database connection next to the Connection ID
        dropdown and present it using red to increase its visibility.

Andreas Jung's avatar
Andreas Jung committed
148 149
      - Update to Docutils 0.3.9 (forgotten in Zope 2.8.2)

Andreas Jung's avatar
Andreas Jung committed
150
  Zope 2.8.2 (2005/10/13)
Andreas Jung's avatar
Andreas Jung committed
151

152 153 154 155 156
    Features added

      - Collector #1118: Added syntax to dtml-sqlgroup to support flexible
        generation of 'UPDATE' statements (bounty sponsored by Logicalware).

157 158
      - The '@' character is now allowed in object ids (RFC 1738 allows it).

Andreas Jung's avatar
Andreas Jung committed
159 160
    Bugs Fixed

Sidnei da Silva's avatar
 
Sidnei da Silva committed
161 162 163 164 165
      - OFS.Image.manage_FTPget() would str() it's .data attribute,
        potentially loading the whole file in memory as a
        string. Changed to use RESPONSE.write() iterating through the
        Pdata chain, just like index_html().

Chris McDonough's avatar
Chris McDonough committed
166 167 168
      - When PageTemplates have a syntax error, show the traceback output
        in the rendered error message.

169 170 171 172
      - Collector #1914: Hardened 'call_with_ns' (in
        'Products.PageTemplates.ZRPythonExpr') against namespaces from other
        callers than page templates.

173 174 175 176
      - Collector #1490: Added a new zope.conf option to control the
        character set used to encode unicode data that reaches
        ZPublisher without any specified encoding.

177 178 179
      - Collector #1895: omit 'var' folder from recursive traversal causing
        trouble with DirectoryStorage.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
180
      - disabled ".. include" directive for all the ZReST product and the
Andreas Jung's avatar
 
Andreas Jung committed
181 182
        reStructuredText package

183 184 185
      - Collector #1888: Adjust call to 'engine.translate' to accomodate
        change in its signature.

186 187 188
      - Collector #1863: Prevent possibly sensitive information to leak via
        the TransientObject's __repr__ method.

189 190 191 192
      - Repaired 'handle_errors' usage for doctests, along with the
        supporting 'debug' argument passed to
        'ZPublisher.Test.publish_module'.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
193
      - Collector #1879: applied patch by Dieter Maurer to fix a bug in
194 195
        ac_aquire() ignoring the default argument

Andreas Jung's avatar
 
Andreas Jung committed
196 197
      - Collector #1864, #1906: fixed header normalization in appendHeader()

198 199 200
      - Collector #1899: fixed migration issue when using export/import for
        ZCatalog instances

201 202 203 204
      - 'ZPublisher.Test.publish' now takes a 'done_string' argument, which
        is written to standard error when the request completes (forward
        ported from Zope 2.7 branch).

205 206 207 208
      - Collector #556:  <dtml-sqlvar> now returns 'null' instead of 'None'
        for values which are None in Python (sponsored by a bounty from
        Logicalware).

209 210 211 212 213 214 215
      - Collector #1182: BBB Forward port fix from 2.7 branch (19 months
        ago!), reverting 'guarded_getitem' to pass the 'index' argument as
        the name to 'validate'.  This change is *not* propagated to the
        trunk, because the resolution of #1182 specifies that the reverted
        behavior (i.e., passing None for item accces) is to become the
        standard implementation as of 2.9.

216 217 218
      - Collector #1877: skel/Products/README.txt inappropriately copied
        from CMF.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
219
      - Collector #1871: Applied patch to support lists with records using
Andreas Jung's avatar
 
Andreas Jung committed
220 221
        ZTUtils.make_query()

222 223 224 225
      - AccessControl: creating a new user through "zpasswd inituser" did not
        work properly with a top-level user folder with enabled password
        encryption.

226 227 228
      - ZCatalog: refreshCatalog() could not be called safely from a ZEO
        client script

229 230 231
      - Catalog.clear(): fixed handling of _length attribute (caused import
        problems for some .zexp files e.g. Squishdot instances)

Zachery Bir's avatar
Zachery Bir committed
232 233 234
      - DateIndex now properly removes documents from both indexes if
        the value is None

Sidnei da Silva's avatar
 
Sidnei da Silva committed
235 236 237
      - Collector #1888: Some parts of the TALInterpreter would not pass a
        default when  translating, yet expect a string back. This would cause
        an error (usually "NoneType has no attribute 'replace'") in the case
238
        the message was not translated.
Sidnei da Silva's avatar
 
Sidnei da Silva committed
239

Andreas Jung's avatar
Andreas Jung committed
240
  Zope 2.8.1 (2005/08/11)
Andreas Jung's avatar
 
Andreas Jung committed
241

's avatar
committed
242 243 244 245 246
    Features added

      - Interface: Added Z3 -> Z2 bridge utilities.
        This allows to migrate interfaces to Zope 3 style interfaces and
        bridge them back to oldstyle interfaces for backwards compatibility.
Andreas Jung's avatar
Andreas Jung committed
247

Andreas Jung's avatar
 
Andreas Jung committed
248 249
    Bugs Fixed

250 251 252
      - Zope2.Startup.zopectl: fork before execv when running unit tests
        (don't exit the shell, if run from there).

's avatar
committed
253 254 255 256 257
      - TAL: MassageIDs are now handled the same way as in zope.tal.

      - DocumentTemplate: ustr no longer mangles MassageIDs.
        Custom string types are now returned unchanged.

258 259 260 261 262 263 264 265 266
      -  As developed in a long thread starting at
         http://mail.zope.org/pipermail/zope/2005-July/160433.html
         there appears to be a race bug in the Microsoft Windows socket
         implementation, rarely visible in ZEO and/or in
         ZServer/medusa/thread/select_trigger.py when multiple processes try
         to create an "asyncore trigger" simultaneously, most often (in
         stress tests) manifesting as a hung process.  Windows-specific
         trigger code in both changed to work around this bug when it occurs.

Andreas Jung's avatar
 
Andreas Jung committed
267 268 269
      - Collector #1807: fixed memory leak in cAccessControl.guarded_getattr()


Andreas Jung's avatar
2.8.1b1  
Andreas Jung committed
270
  Zope 2.8.1 b1 (2005/07/28)
271

272 273
    Features Added

274 275
      - PluginIndexes, ZCTextIndex and ZCatalog: Added some z3 interfaces.

276 277 278 279
      - Verbose security exception reporting has been folded into Zope,
        removing the need for the VerboseSecurity product.  See the
        documentation for the "verbose-security" option in zope.conf.

Chris McDonough's avatar
Chris McDonough committed
280 281 282 283
      - "TemporaryStorage" (the storage that is used mainly to back the
        default sessioning database) is now MVCC capable, which essentially
        means that its usage will no longer generate ZODB ReadConflictErrors.

284 285
    Bugs Fixed

286 287
      - Collector #1852: fixed wrong URL construction in webdav.davcmds

288 289
      - Collector #1844: fixed whitespace handling in the ZMI "Find" tab

290 291 292 293
      - Collector #1813: removed spurious inclusion of CMFBTreeFolder.
        in Products/BTreeFolder2 (CMFCore will include it after 1.5, with
        an appropriate module alias for backward compatibility).

Sidnei da Silva's avatar
 
Sidnei da Silva committed
294
      - Replaced all transaction.commit(1) calls by  transaction.savepoint()
295

296 297
      - Collector #1832: UnIndex swallowed ConflictErrors.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
298
      - Collector #1815: ZCTextIndex accepts (again) sequences of strings to
's avatar
committed
299 300
        be indexed.

Andreas Jung's avatar
 
Andreas Jung committed
301 302
      - Collector #1812: Fixed key error in ZSQL ZMI/Test

303 304
      - Fixed CMFBTreeFolder for CMF 1.5+

305 306 307 308
      - WebDAV COPY and MOVE did not call '_notifyOfCopyTo' and '_postCopy'
        hooks like it was done in OFS.CopySupport. Additionally added
        'manage_changeOwnershipType' to make MOVE behave even closer to
        OFS.CopySupport.
Sidnei da Silva's avatar
 
Sidnei da Silva committed
309

310 311
      - Collector #1548: Fix 'httplib' usage in ZPublisher.Client.

312 313 314
      - Collector #1808: manage_convertIndexes no longer tries to change the
        index types causing some trouble with CMF.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
315
      - manage_convertIndexes did not treat DateRangeIndexes and PathIndexes
316
        properly.
317

318 319
      - Updated Zope X3 to bugfix release 3.0.1

Philipp von Weitershausen's avatar
Philipp von Weitershausen committed
320 321
      - Updated Five to bugfix release 1.0.2 (see Products/Five/CHANGES.txt)

322
  Zope 2.8.0 (2005/06/11)
323 324 325

    Bugs Fixed

326 327
      - Collector #1792: applied patch for broken ZClasses

328 329 330 331
      - doc/FAQ.txt updated: should bear some resemblance to reality now.
        (PCGI stuff removed; error information updated; PID information
        updated; upgrade procedure added; some common version questions added.)

332 333
      - Collector #1770: Fixed RestructuredText subtitle

334 335
      - Collector #1803: Fixed InitializeClass for some corner case.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
336
      - Collector #1798, issue 1: ZopeTestCase no longer tries to
337
        install products that were installed by Zope during startup.
338

339 340 341
      - Collector #1799: Avoid lying about parent's refcount when
        calling back into Python code.

342 343
      - Collector #889:  made 'and' operator for KeywordIndexes actually
        restrict results as expected (thanks to 'aroda' for the patch!).
Andreas Jung's avatar
Andreas Jung committed
344

Andreas Jung's avatar
 
Andreas Jung committed
345 346
      - Collector #1323: applied patch to fix umask problem in zdctl

347 348
      - Updated Five to bugfix release 1.0.1 (see Products/Five/CHANGES.txt)

Andreas Jung's avatar
2.8.0b2  
Andreas Jung committed
349
  Zope 2.8.0 b2 (2005/05/22)
Andreas Jung's avatar
Andreas Jung committed
350 351 352

    Features added

353 354 355
      - Made WebDAV server distinguishable from the default HTTP
        server both in the ZMI and in event.log.

Andreas Jung's avatar
Andreas Jung committed
356 357 358
      - Included BTreeFolder2

    Bugs fixed
359

's avatar
committed
360 361 362
      - Collector #1507/1728: Server addresses are now handled the same way on
        all platforms. This fixes the default binding on Windows.

363 364
      - Collector #1781: made 'create_mount_points' ZConfig option actually
        work (thanks to Dieter Maurer for the patch).
Sidnei da Silva's avatar
 
Sidnei da Silva committed
365

Andreas Jung's avatar
 
Andreas Jung committed
366 367 368 369 370
      - Collector #1780: DateTime.strftime() now handles dates <= 1900 or
        >= 2038

      - Collector #1775: turning off debug mode by default

371 372
      - Collector #1784: fixed handling of multiple attributes in ZCTextIndex

373 374 375
      - Don't copy '.svn' directories from skeleton into an instance
        (thanks to Dale Hirt for the patch).

376 377 378 379 380 381
      - Collector #1776: Improved setup.py.
        The Finder class is now used for the complete lib/python tree and has
        a blacklist instead of a whitelist for file extensions. So there
        should no longer be a need to update setup.py if modules or files are
        added or removed in lib/python.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
382
      - Collector #1751: Improved error reporting reporting during the
383 384
        startup phase

Andreas Jung's avatar
 
Andreas Jung committed
385 386
      - Collector #1745: Fixed ZSQL error KeyError 'query'

Andreas Jung's avatar
 
Andreas Jung committed
387
      - Collector #1735: fixed UnicodeDecodeError in Loader.py
Andreas Jung's avatar
 
Andreas Jung committed
388

Andreas Jung's avatar
Andreas Jung committed
389
  Zope 2.8b1 (2005/04/24)
Andreas Jung's avatar
 
Andreas Jung committed
390 391 392

    Features added

393 394 395
      - Added lazy: TAL expression and fixed defer: expression for python
        expression

396 397 398
      - ZCatalog.CatalogBrains: An _unrestrictedGetObject method has
        been added.

399 400 401 402
      - ZODB transactions now support savepoints. See
        transaction/savepoint.txt.  These will replace
        subtransactions.

Andreas Jung's avatar
 
Andreas Jung committed
403
    Bugs fixed
Sidnei da Silva's avatar
 
Sidnei da Silva committed
404

405 406 407
      - Collector #1754: Fixed import of 'transaction' in
        'zopectl adduser' (which wasy dying with a NameError).

Andreas Jung's avatar
 
Andreas Jung committed
408 409 410
      - Collector #1750: StructuredText: fixed handling of image URLs
        with query string

Andreas Jung's avatar
typo  
Andreas Jung committed
411 412
      - Collector #1748: Fixed SIGSEGV in Acquisition

413 414
      - Hotfix_20050405:  classes defined in untrusted code could shadow
        the roles of methods defined as protected by their bases.
Andreas Jung's avatar
 
Andreas Jung committed
415

416 417 418
      - Collector #1656: Fixed enumeration within untrusted code
        (forward-port from 2.7 branch).

Andreas Jung's avatar
 
Andreas Jung committed
419 420 421
      - Collector #1721: Fixed handling of an empty indexed_attrs parameter


Andreas Jung's avatar
Andreas Jung committed
422
  Zope 2.8a2 (2005/04/02)
Andreas Jung's avatar
Andreas Jung committed
423

Sidnei da Silva's avatar
 
Sidnei da Silva committed
424 425
    Features added

426 427 428 429 430 431
      - 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".
432

433 434
        This compatibility option will be removed in Zope 2.10.

Andreas Jung's avatar
Andreas Jung committed
435 436
      - PluginIndexes: the ZCatalog's "Indexes" tab now show the number of
        distinct values indexed by each index instead of a mixture of indexed
Sidnei da Silva's avatar
 
Sidnei da Silva committed
437 438 439
        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
Andreas Jung's avatar
Andreas Jung committed
440 441
        values and their occurrences.

Andreas Jung's avatar
Andreas Jung committed
442 443 444
      - FTPServer: a RNFR (rename from) request is now being responded
        with a 550 error code if the source file does not exist

445 446 447 448 449
      - 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.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
450 451 452 453 454 455
      - 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().

456 457 458
      - RAMCacheManager: Allow invalidation of a cache entry from the
        Statistics view in the ZMI

459 460 461 462
      - Collector #1454/OFS.File: Accept content types ending with
        "javascript" as editable through the File edit form, just like
        text/<foo> types

463 464 465 466 467
      - 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.

Andreas Jung's avatar
Andreas Jung committed
468
    Bugs fixed
469

470 471
      - Collector #1460: guarded_apply was too restrictive.

472 473
      - OFS.Traversable still used a string 'NotFound' exception.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
474 475 476
      - ZPublisher would fail to recognize a XML-RPC request if the
        content-type header included a 'charset' parameter.

477 478 479
      - Forward-ported 'aq_acquire'-related fix and associated tests
        from Zope 2.7.4.

480 481 482
      - Collector #1730: XML page templates couldn't call aq_parent in
        path expressions.

483 484 485 486
      - Fixed brain.getObject() to correctly traverse to an object even
        if one of its parents is not accessible, to be close to what the
        Publisher does.

487 488
      - Forward ported fix for OFS.CopySupport tests which corrected
        signature of a faux security policy's 'validate' method.
489

490 491 492
      - 'setup.py' did not install the 'Zope' compatibility module
        (the old 'Zope' package has been renamed to 'Zope2').

Sidnei da Silva's avatar
 
Sidnei da Silva committed
493 494 495
      - Fixed Shared.DC.ZRDB.Results to behave with the new-style
        ExtensionClass. Added a test.

496 497 498
      - 'setup.py' did not install the new 'Zope' compatibility module
        (the 'Zope' package has been renamedd to 'Zope2').

Andreas Jung's avatar
 
Andreas Jung committed
499 500
      - Collector #1507: Zope now binds again to all available IP addresses if
        ip-address is unset
Andreas Jung's avatar
 
Andreas Jung committed
501

Sidnei da Silva's avatar
 
Sidnei da Silva committed
502 503 504 505 506 507 508 509
      - Use 'del' instead of 'list.remove()' in
        Catalog.delColumn(). There can be only one column with the
        same name, and it could potentially break catalog metadata as
        remove() may remove more than one element from the list if
        they have the same value. Also, we already have the list index
        we are interested in deleting so it doesn't make sense to look
        up the value and call 'list.remove()' on it.

510 511 512
      - Collector #1628: FTP server has been broken (directory
        listings did not work)

513 514
      - Collector #1705: CopySource._postCopy is never called

515 516
      - Collector #1617: Fixed crash in ZPT code (caused by improper
        checks in cAccessControl)
517 518 519

      - Collector #1683: fixing batching in the DA "Test" tab

Andreas Jung's avatar
 
Andreas Jung committed
520 521
      - Collector #1648: Fix bug in Medusa FTP

522 523 524 525 526
      - Collector #1667: allow 'max-number-of-session-objects 0' to have
        the same effect as setting the value via the web interface (i.e.,
        make the number of session objects unlimited, rather than falling
        back to the default).

Sidnei da Silva's avatar
 
Sidnei da Silva committed
527
      - Collector: #1651: removed compiler warning
528

529 530 531 532
      - Collector #1661: make 'python-check-interval' setting in zope.conf
        actually work as documented.  This setting allows for important
        tuning opportunities for production Zope servers.

533 534 535
      - Collector #1657:  Don't break host-based virtual hosting when
        purging an HTTP accelerator.

536 537 538
      - DTML Methods were not interoperable with the new filestream_iterator
        and caches based on it (FileCacheManager).

Andreas Jung's avatar
 
Andreas Jung committed
539 540
      - Collector #1655: fixed severe memory leak in TemporaryStorage

541 542
      - Collector #1407: fixed XML escaping problem introduced in 2.7.4 b1

543 544
      - Collector #1151: HTTP compression was broken on error pages

545 546
      - The REQUEST now contains a new entry ACTUAL_URL which contains the
        full URL without query string as it appears within the location bar of
Sidnei da Silva's avatar
 
Sidnei da Silva committed
547
        the browser. The key has been added to provide a single key that is
548 549 550 551
        available for vhosted and non-vhosted installations.

      - Collector #1605: VHM did not quote URLs

Sidnei da Silva's avatar
 
Sidnei da Silva committed
552 553 554 555 556
      - webdav.Resource: during COPY, manage_afterClone was called way
        too early, thus the object wasn't bound to the database and
        couldn't find a context. Changed to behave the same way as
        CopySupport.

Andreas Jung's avatar
 
Andreas Jung committed
557 558 559
      - RAMCacheManager: opimized performance by using cPickle instead
        of pickle and by using the highest pickle protocol available
        instead of using ASCII pickles (patch by Dieter Maurer)
Sidnei da Silva's avatar
 
Sidnei da Silva committed
560

561 562
      - Collector #631: Image URLs in StructuredText containing port
        numbers were not rendered correctly
563 564 565 566 567 568

      - Collector #1498: Don't choke on malformed cookies. Cookies of
        the form "foo=bar; hmm; baz=gee" will give an empty value for
        'hmm' instead of silently discarding it and the rest of the
        string. (Thanks to 'sirilyan' for the patch.)

569 570 571
      - bin/zopectl test now uses os.execv, instead os os.system,
        so that options with characters that needs shell quoting
        doesn't break the command.
572

573 574
      - Collector #1219:  Make XML export sane again.

Tres Seaver's avatar
Tres Seaver committed
575 576 577
      - Collector #945:  Allow adding empty PythonScript instances
        programmatically.

578 579
      - Updated doc/UNITTEST.txt and lib/python/Testing/README.txt to
        reflect progress made since UNITTEST.txt was originally written.
580

581 582 583 584
      - Removed Version objects from the add menu. Versions are agreed to be a
        feature that should not be used as it is not well implemented and
        allows for data loss.

Florent Guillaume's avatar
update  
Florent Guillaume committed
585 586 587 588
      - Collector #1510: Allow encoding of application/xhtml+xml pages
        according to the charset specified in the Content-Type header
        (thanks to Jacek Konieczny for the patch).

Florent Guillaume's avatar
update  
Florent Guillaume committed
589 590 591
      - Collector #1599: made sqltest work with unicode strings (thanks
        to Peter Sabaini for the patch).

592 593
      - zopectl: fixed handling of child processes (patch by Dieter Maurer)

Andreas Jung's avatar
 
Andreas Jung committed
594
      - Collector #1593: fixed dumb _get_id() implementation in
Florent Guillaume's avatar
update  
Florent Guillaume committed
595 596
        OFS.CopySupport that produced copy_of_copy_of....files (thanks
        to Alexandre Boeglin for the patch).
Andreas Jung's avatar
 
Andreas Jung committed
597

Andreas Jung's avatar
 
Andreas Jung committed
598 599 600
      - Collector #1450: files in utilities/ZODBTools are now installed
        during the installation process in the 'bin' directory

601 602 603 604 605
      - Collector #1003: added new 'http-header-max-length' directive
        to zope.conf to specific the maximum length of a HTTP request
        header before it is considered as a possible DoS attack and
        discarded.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
606 607
      - Collector #1371: added new 'cgi-maxlen' directive to zope.conf
        to limit the amount of form data being processed by Zope
Andreas Jung's avatar
 
Andreas Jung committed
608 609
        to prevent DoS attacks

Andreas Jung's avatar
 
Andreas Jung committed
610
      - Collector #1407: changed WebDAV display name for objects
Sidnei da Silva's avatar
 
Sidnei da Silva committed
611
        to title_or_id()
Andreas Jung's avatar
 
Andreas Jung committed
612

613 614 615
      - the 'trusted-proxy' directive in zope.conf now also accepts
        hostnames instead of IP addresses only (patch by Dieter Maurer)

Florent Guillaume's avatar
update  
Florent Guillaume committed
616 617 618
      - Fixed test.py to not over-resolve symbolic links. Needed to run
        tests when the Products directory and a product are symlinks.

619 620 621
      - Collector #1583/ZReST: Fixed handling of the title attribute
        for non-ascii characters.

622 623 624
      - Collector #1577: Fixed cryptic error message in ZPublisher if a
        non-ASCII string is passed to a date, int, long or float property.

625 626
      - Collector #1576: Fixed Z Search Interface to use proper HTML.

627
      - Collector #1127: strftime did not take timezone into account.
Andreas Jung's avatar
Andreas Jung committed
628

629 630 631 632
      - Collector #1569/DateTime: Added a new ISO8601-method that will
        return correctly formatted ISO 8601-representations to augment
        the ISO method which isn't compliant with ISO 8601.

Andreas Jung's avatar
Andreas Jung committed
633 634 635
      - ZPublisher: changed some hardcoded 'latin1' arguments to 'iso-8859-15'
        since latin1 is obsolete.

636
      - Collector #1566: Installation of Zope on some older Solaris versions
Sidnei da Silva's avatar
 
Sidnei da Silva committed
637 638
        could fail due to a broken "echo" implementation causing the
        creation of a borked version.txt file.
639

640 641 642
      - Collector #934: Image and File objects are now always internally
        split into small chunks even when initialized from a string.

Andreas Jung's avatar
 
Andreas Jung committed
643 644
      - docutils: updated to V 0.3.5. The Zope core now contains a full copy of
        the docutils package except some GPLed files which can not be included
Andreas Jung's avatar
Andreas Jung committed
645
        with the Zope distribution due to license constraints on svn.zope.org.
Andreas Jung's avatar
Andreas Jung committed
646

Sidnei da Silva's avatar
 
Sidnei da Silva committed
647 648
      - docutils: moved from lib/python/docutils to
        lib/python/third_party/docutils
Andreas Jung's avatar
Andreas Jung committed
649

Andreas Jung's avatar
 
Andreas Jung committed
650 651
      - Collector #1557/OFS.Image: Introducing new 'alt' property. The 'alt'
        attribute is no longer taken from the 'title' property but from the new
Sidnei da Silva's avatar
 
Sidnei da Silva committed
652
        'alt' property.  The border="0" attribute is no longer part of the HTML
Andreas Jung's avatar
 
Andreas Jung committed
653
        output except specified otherwise.
Sidnei da Silva's avatar
 
Sidnei da Silva committed
654 655 656 657 658

      - Set a default value of '' for the new 'alt' property as not to
        break existing content.

      - Collector #1511: made IPCServer show up in the Control Panel under
Andreas Jung's avatar
 
Andreas Jung committed
659 660
        "Network Services"

Sidnei da Silva's avatar
 
Sidnei da Silva committed
661
      - Collector #1443: Applied patch by Simon Eisenmann that reimplements
Andreas Jung's avatar
 
Andreas Jung committed
662
        the XML parser used in WebDAV fixing a memory leak.
663

Sidnei da Silva's avatar
 
Sidnei da Silva committed
664 665 666 667 668 669 670 671 672 673
      - Always unescape element contents on webdav.xmltools

      - Use saxutils to escape/unescape values for/from
        PROPFIND/PROPPATCH.

      - Make OFS.PropertySheet use the escaping function from
        webdav.xmltools.

      - Escape/unescape &quot; and &apos;

Sidnei da Silva's avatar
 
Sidnei da Silva committed
674 675 676 677 678 679 680
      - Don't escape properties stored as XML (ie: having a
        __xml_attrs__ metadata set by PROPPATCH) when building a
        PROPFIND response.

      - If a PROPPATCH element value contains only a CDATA section,
        store the CDATA contents only.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
681 682 683 684 685
      - Catch AttributeErrors and KeyErrors raised from
        __bobo_traverse__ and convert them to NotFound. In debug mode
        a more verbose error message is issued, the same way it's done
        on attribute/item traversal.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
686
      - Collector #1523: replace the text field for importing .zexp/.xml
687 688
        files with a selection list

689 690 691 692 693 694 695 696 697
      - Stitch newly-created object into it's container *before*
        calling it's PUT() method. This fixes an issue with
        OFS.File/OFS.Image that would result into reading the whole
        file in memory and wrapping it into a *single* Pdata object.

      - Import ZServer.CONNECTION_LIMIT variable *inside* the method
        that uses it. Before this, the variable was imported at the
        module level, thus binding it too early which would cause the
        ZConfig handler to have no real effect.
Sidnei da Silva's avatar
 
Sidnei da Silva committed
698

699
  Zope 2.8a1 (2004/10/17)
Andreas Jung's avatar
Andreas Jung committed
700

701
    Features added
Christian Theune's avatar
Christian Theune committed
702

Andreas Jung's avatar
Andreas Jung committed
703 704
     - Included Stefan Holek's ZopeTestCase 0.9

705 706 707 708 709
     - 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.

710 711
     - Unit tests added for the SiteErrorLog.

712 713 714
     - UI improvement for the ZCatalog. The "catalog contents" allow
       you to filter the cataloged objects by path now.

715 716
     - Made test.py follow symbolic links on POSIX systems.

717 718 719
     - added utilities/reindex_catalog.py to perform ZCatalog maintenance
       operations from the command line (through zopectl)

720 721 722 723 724
     - 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.

725 726 727
     - DateTime: new DateTime instance can be constructed from a given
       DateTime instance: d_new = DateTime(d_old)

Andreas Jung's avatar
Andreas Jung committed
728 729
     - The DateTime parser now throws a SyntaxError upon any parsing errors.

Andreas Jung's avatar
Andreas Jung committed
730
     - ZCatalog: added a new configuration option in the "Advanced" tab
Sidnei da Silva's avatar
 
Sidnei da Silva committed
731
       to provide optional logging of the progress of long running
Andreas Jung's avatar
Andreas Jung committed
732 733
       reindexing or recataloging operations.

734 735 736
     - made Zope.configure return the starter instance to enable other
       methods to be called, such as starter.setupConfiguredLoggers()

737
     - Improved Unicode handling in Page Templates. Template contents
Sidnei da Silva's avatar
 
Sidnei da Silva committed
738
       and title will now be saved as a Unicode string if
739 740 741
       the management_page_charset variable can be acquired and is true.
       The character set of an uploaded file can now be specified.

Chris McDonough's avatar
Chris McDonough committed
742 743 744
     - zopectl now accepts the -m argument to set a umask for files created
       by the managed process (e.g. -m 002 or --umask 002).

745 746 747 748
     - AccessControl/permission_settings() now has a new optional parameter
       'permission' to retrieve the permission settings for a particular
       permission.

Andreas Jung's avatar
typo  
Andreas Jung committed
749
     - The obsolete 'SearchIndex' package has been removed
Andreas Jung's avatar
Andreas Jung committed
750

Christian Theune's avatar
Christian Theune committed
751 752
     - Traversal now supports a "post traversal hook" that get's run
       after traversal finished and the security context is established.
753

754 755 756
     - Using "_usage" parameters in a ZCatalog query is deprecated and
       logged as DeprecationWarning.

757
     - MailHost now has two additional properties, a user id and a
758
       password. These are used to attempt ESMTP authentication
759
       before sending a mail.
760

761 762
     - Folder listings in FTP now include "." as well as "..".

763 764 765 766 767 768 769 770 771
     - 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'.

Jim Fulton's avatar
Jim Fulton committed
772
     - Extension Classes, a key Zope foundation, have been totally
773
       rewritten based on Python new-style classes.
Jim Fulton's avatar
Jim Fulton committed
774 775 776 777 778 779 780 781 782 783 784 785 786 787

       This change provides a number of advantages:

       o Use of new-style class features (e.g. slots, descriptors,
         etc.) in Zope objects. Support for object protocols (special
         __ methods) added since Python 1.4.

       o Support for cyclic garbage collection.

       o Ability to use new-style classes as base classes of Zope objects.

       o Pave the way for sharing code between Zope 2 and Zope 3.

       Note -- Extension classes with __of__ methods are made into
788
         Python read descriptors.
Jim Fulton's avatar
Jim Fulton committed
789 790 791 792 793 794 795 796 797 798 799 800 801 802 803

         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.

804 805
     - Add 'parity' method to ZTUtils Iterators.

806 807
     - Allow untrusted code to mutate ZPublisher record objects.

808 809 810 811 812 813
     - 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.

814 815 816 817 818 819 820 821
     - 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.

822 823 824 825 826 827
     - 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.

Andreas Jung's avatar
Andreas Jung committed
828 829
     - The testrunner.py script has been replaced with test.py which
       is now installed into the 'bin' folder.
830

Chris McDonough's avatar
Chris McDonough committed
831
    Bugs fixed
832

833 834 835
     - Removed Python 2.3.3 as valid option. ZODB 3.3 requires Python
       2.3.4 or later.

836
     - Collector #1332: Added in-place migration of the Catalog.__len__
837 838 839 840
       attribute to avoid new-style class caching problems. Instances of
       ZCatalog or instances of classes with ZCatalog as base class will be
       migrated automatically. Instances of Catalog or classes with Catalog
       as base class must be migrated manually by calling the migrate__len__()
Andreas Jung's avatar
Andreas Jung committed
841 842 843 844
       method on the every instance. In addition old BTree migration code
       (for pre-Zope 2.5 instances) has been removed. If you want to migrate
       from such an old version to Zope 2.8, you need to clear and reindex
       your ZCatalog).
Sidnei da Silva's avatar
 
Sidnei da Silva committed
845

846 847
     - Collector #1595: same as in Collector #1132 for indexes derived from
       UnIndex. Exisiting ZCatalog instances must be converted manually
Sidnei da Silva's avatar
 
Sidnei da Silva committed
848
       by calling the "manage_convertIndexes" method through-the-web for
849 850
       every single ZCatalog instance. See also doc/FAQ.txt (Installation,
       question #4)
851

Sidnei da Silva's avatar
 
Sidnei da Silva committed
852
     - Collector #1457: ZCTextIndex's QueryError and ParseError
853 854
       are now available for import from untrusted code.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
855
     - Collector #1473: zpasswd.py can now accept --username
856
       without --password
857

Andreas Jung's avatar
 
Andreas Jung committed
858 859 860 861
     - Collector #1491: talgettext.py did not create a proper header
       for the generated .pot file if multiple pagetemplate files
       were processed.

862 863 864
     - Collector #1477: TaintedString.strip() now implements the
       same signature as str.strip()

865 866
     - TAL: tal:on-error does not trap ConflictError anymore.

867 868 869
     - OFS.CopySupport: Enforced "Delete objects" permission during
       move (CMF Collector #259).

870 871 872
     - Removed DWIM'y attempt to filter acquired-but-not-aceessible
       results from 'guarded_getattr'.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
873
     - Collector #1267: applied patch to fix segmentation faults on
Andreas Jung's avatar
 
Andreas Jung committed
874 875
       x86_64 systems

Sidnei da Silva's avatar
 
Sidnei da Silva committed
876
     - ZReST: the charset used in the rendered HTML was not set to the
877
       corresponding output_encoding property of the ZReST instance. In addition
Sidnei da Silva's avatar
 
Sidnei da Silva committed
878
       changing the encodings through the Properties tab did not re-render
879 880
       the HTML.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
881
     - Collector #1234: an exception triple passed to LOG() was not
882 883
       propagated properly to the logging module of Python

884 885 886 887 888 889 890
     - Collector #1441: Removed headers introduced to make Microsoft
       webfolders and office apps happy, since they make a lot of
       standards-compliant things unhappy AND they trick MS Office
       into trying to edit office files stored in Zope via WebDAV even
       when the user isn't allowed to edit them and is only trying to
       download them.

891 892 893 894
     - Collector #1445: Fixed bad interaction between -p and -v(v)
       options to test.py that resulted in exceptions being printed
       when they shouldn't have been.

Christian Theune's avatar
Christian Theune committed
895 896 897 898
     - Collector #729: manage_main doesn't display the correct page title
       most of the time. It is not completely fixed but using title_or_id
       makes folders display the correct id as a fallback.

899 900
     - Collector #1370: Fixed html generated by Z Search interface.

901 902
     - Collector #1295: Fixed minor niglet with the Elvis tutorial.

Andreas Jung's avatar
 
Andreas Jung committed
903 904 905
     - added "version.txt" to setup.py to avoid untrue "unreleased version"
       messages within the control panel

Sidnei da Silva's avatar
 
Sidnei da Silva committed
906 907
     - Collector #1436: applied patch to fix a memory leak in
       cAccessControl.
Andreas Jung's avatar
 
Andreas Jung committed
908

909 910
     - Collector #1431: fixed NetBSD support in initgroups.c

Andreas Jung's avatar
 
Andreas Jung committed
911 912
     - Collector #1406: fixed segmentation fault by acquisition

913 914
     - Collector #1392: ExternalMethod ignored management_page_charset

Casey Duncan's avatar
Casey Duncan committed
915 916
     - unrestrictedTraverse() refactored to remove hasattr calls (which mask
       conflict errors) and for greater readability and maintainability.
917

918 919 920
     - Zope can now be embedded in C/C++ without exceptions being raised
       in zdoptions.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
921
     - Collector #1213: Fixed wrong labels of cache parameters
Andreas Jung's avatar
 
Andreas Jung committed
922

Andreas Jung's avatar
 
Andreas Jung committed
923 924
     - Collector #1265: Fixed handling of orphans in ZTUtil.Batch

925
     - Collector #1293: missing 'address' parameters within one of the server
Sidnei da Silva's avatar
 
Sidnei da Silva committed
926
       sections raise an exception.
Andreas Jung's avatar
 
Andreas Jung committed
927

Andreas Jung's avatar
 
Andreas Jung committed
928 929 930
     - Collector #1345: AcceleratedHTTPCacheManager now sends the
       Last-Modified header.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
931
     - Collector #1126: ZPublisher.Converters.field2lines now using
932 933
       splitlines() instead of split('\n').

934 935 936
     - Collector #1322: fixed HTML quoting problem with ZSQL methods
       in DA.py

937 938 939 940
     - Collector #1124: The ZReST product now uses the same reST encoding
       parameters from zope.conf as the low-level reStructuredText
       implementation.

941 942
     - Collector #1259: removed the "uninstall" target from the Makefile
       since the uninstall routine could also remove non-Zope files. Because
Sidnei da Silva's avatar
 
Sidnei da Silva committed
943
       this was to dangerous it has been removed completely.
944

945 946
     - Collector #1299: Fixed bug in sequence.sort()

947 948 949
     - Collector #1159: Added test for __MACH__ to initgroups.c so the
       initgroups method becomes available on Mac OS X.

Sidnei da Silva's avatar
 
Sidnei da Silva committed
950
     - Collector #1004: text,token properties were missing in
Andreas Jung's avatar
 
Andreas Jung committed
951 952
       PropertyManager management page.

953 954 955 956 957 958 959
     - Display index name on error message when index can't be used as
       'sort_on'.

     - PUT would fail if the created object had a __len__ = 0 (eg:
       BTreeFolder2) and fallback to _default_put_factory. Fix by
       checking if the returned object is None instead.

960 961 962
     - Collector #1160: HTTPResponse.expireCookie() potentially didn't
       when an 'expires' keyword argument was passed.

Chris Withers's avatar
Chris Withers committed
963 964
     - Collector #1289: Allow ZSQL methods to be edited via WebDAV.

965 966 967 968 969 970 971
     - WebDAV property values were not being properly escaped on
       'propstat'.

     - WebDAV 'supportedlock' was not checking if the object did
       implement the WriteLockInterface before returning it's
       value.

972 973
     - reStructuredText ignored the encoding settings in zope.conf

974 975
     - ObjectManager no longer raises string exceptions

976 977
     - Collector #1260: Testing/__init__.py no longer changes the
       INSTANCE_HOME.
978

979 980
     - App.config.setConfiguration() did not update the legacy source
       for debug_mode, Globals.DevelopmentMode.
Tres Seaver's avatar
 
Tres Seaver committed
981

982 983 984 985
     - Script (Python) objects now have a _filepath attribute, also
       used as the '__file__' global at runtime.  This prevents an
       import problem caused by the fix to #1074.

Christian Theune's avatar
Christian Theune committed
986 987 988 989 990
     - Minor usability tweaks:

       * Increased FindSupport meta type selection widgets
         height to 8 lines

Andreas Jung's avatar
 
Andreas Jung committed
991 992 993
     - The DateTime module did not recognize the settings for
       "datetime-format".

994 995 996
     - Stop testrunner.py from recursing into the 'build-base' directory
       created by setup.py.

997 998
     - Collector #1074: Change Scripts' __name__ to None

Andreas Jung's avatar
 
Andreas Jung committed
999 1000 1001
     - Range searches with KeywordIndexes did not work with record-style
       query parameters

Stuart Bishop's avatar
Stuart Bishop committed
1002 1003 1004 1005 1006
     - Item_w__name__ now has a working getId() method

     - PageTemplateFile now using Item_w__name__ mixin, fixing
       its getId() and absolute_url() methods.

1007 1008
     - Only one VirtualHostMonster is allowed per container.

1009 1010
     - Collector #1133: TreeTag choked on Ids of type long.

1011 1012 1013
     - Collector #1012: A carefully crafted compressed tree state
       could violate size limit.  Limit is no longer hardcoded.

1014 1015
     - Collector #1139: tal:attributes didn't escape double quotes.

Andreas Jung's avatar
Andreas Jung committed
1016 1017
     - Management interface of TopicIndexes has been completely broken

1018 1019
     - Collector #1129: Improper parsing of ISO8601 in DateTime.

1020 1021 1022 1023
     - Removed pervasive use of string exceptions (some may still be
       hiding in the woodwork, but all raise's with string literals are
       gone).

Tres Seaver's avatar
 
Tres Seaver committed
1024 1025 1026
     - AccessControl.User used a misleading string exeception,
       'NotImplemented', which shadowed the Python builtin.

1027 1028
     - Collector #426: Inconsistent, undocumented error() method.

1029 1030
     - Collector #799: Eliminate improper uses of SCRIPT_NAME.

1031 1032
     - Collector #445: Add internal global declaration for Script bindings.

1033 1034
     - Collector #616: Make CONTEXTS available to TALES Python expressions.

1035 1036
     - Collector #1074: Give Script execution context a __name__

1037 1038 1039
     - Collector #1095: Allow TAL paths starting with '/varname' as a
       preferred spelling for 'CONTEXTS/varname'.

1040
     - Collector #391: Cut and paste now requires delete permissions.
1041

1042 1043 1044
     - Collector #331: Referenses to URL in manage_tabs was changed
       to REQUEST.URL to prevent accidental overriding.

Fred Drake's avatar
Fred Drake committed
1045 1046 1047
     - Made the control panel properly reflect the cache-size setting
       of ZODB's object cache once again.

1048 1049 1050 1051
     - ConflictError was swallowed in ObjectManager by
       manage_beforeDelete and _delObject. This could break code
       expecting to do cleanups before deletion.

1052 1053 1054
     - Python 2.3 BooleanType wasn't handled properly by ZTUtils
       marshalling and ZPublisher's converters.

1055 1056
     - Collector #1065: bin/ scripts didn't export HOME envars.

1057 1058 1059 1060 1061
     - Collector #572: WebDAV GET protected by 'FTP Access' permission.
       Two new methods have been added to WebDAV resources, "manage_DAVget"
       and "listDAVObjects". These are now used by WebDAV instead of the
       earlier "manage_FTPget" and "objectValues". This separates the
       permissions, and allows WebDAV specific overriding of these methods.
Chris McDonough's avatar
Chris McDonough committed
1062

1063 1064 1065
     - Collector #904: Platform specific signals in zdaemon/Daemon.py
       (fixed by removing the "fossil" module from 2.7 branch and head).

Andreas Jung's avatar
 
Andreas Jung committed
1066
     - Workaround for Collector #1081: The 'title' property for objects
1067
       derived from OFS.Folder or PropertyManager can now be
Andreas Jung's avatar
 
Andreas Jung committed
1068 1069 1070
       removed and replaced with a ustring property. This allows the usage
       of non-ISO-8859-1 or ASCII charsets

Andreas Jung's avatar
Andreas Jung committed
1071
     - Collector #951: DateTime(None) is now equal to DateTime()
Andreas Jung's avatar
 
Andreas Jung committed
1072

1073 1074
     - Collector #1056: aq_acquire() ignored the default argument

1075 1076 1077
     - Collector #1087: ZPT: "repeat/item/length" did not work as documented
       in the Zope Book.

1078 1079 1080
     - Collector #721: Entities in tal:attribute values weren't
       properly escaped.

Andreas Jung's avatar
 
Andreas Jung committed
1081 1082 1083
     - Collector #851: Traversable.py: A bare try..except shadowed
       conflict errors

1084 1085 1086
     - Collector #1058: Several fixes for PropertySheets when used
       outside ZClasses

1087 1088 1089
     - Collector #1053: parseIndexRequest turned empty sequence of search
       terms into unrestricted search.

1090 1091 1092 1093
     - manage_tabs had a namespace problem with the acquisition of names from
       the manage_options variable resulting to acquire "target" and "action"
       from objects above in the hierachy.

Chris McDonough's avatar
Chris McDonough committed
1094 1095
     - PathIndex and TopicIndex are now using a counter for the number
       of indexed objects instead of using a very expensive calculation
1096
       based on the keys of their indexes.
Chris McDonough's avatar
Chris McDonough committed
1097

Andreas Jung's avatar
Andreas Jung committed
1098 1099
     - Collector #1039: Whitespace problem in Z2.log fixed

1100 1101 1102
     - changed some bare try: except:'s in Shared.DC.ZRDB.Connection
       so that they now log exceptions that occur.

1103 1104
     - ObjectManager will now attempt to set Owner local role keyed
       to the user's id, rather than username.