Changelog
=========

This file contains change information for the current Zope release.
Change information for previous versions of Zope can be found at
http://docs.zope.org/zope2/releases/.

Trunk (unreleased)
------------------

Restructuring
+++++++++++++

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

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

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

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

- Moved the ``absoluteurl`` views into the OFS package.

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

- 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.

- 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.

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

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

- Moved general OFS related ZCML directives from Products.Five into the OFS
  package itself.

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

- Updated Five documentation to clarify its role in regard to Zope packages.

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

- 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.

- Reuse IInclude from zope.configuration.xmlconfig.

- Reuse IMenuItemType from zope.browsermenu.

- Moved TaintedString from ZPublisher to Shared.
  This resolves a circular import issue.

- We no longer depend on the ``zope-functional-testing`` extra of
  zope.testbrowser.

- Removed the dependency on zope.app.publication in favor of new versions of
  zope.publisher and zope.traversing.

- Changed startup server tests in Zope2 to use a randomized port number, to
  allow the nightly buildbot to run the tests at the same time for multiple
  configurations without the port being already in use.

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

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

- Moved zope.security-style permission registrations from Products.Five into
  the AccessControl package.

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

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

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

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

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

- Integrated zLOG package back into this distribution.

- Updated documentation to new version number.

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

- LP #142464:  Make undo log easier to read.  Thanks to Toby Dickinson
  for the patch.

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

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

- 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.

- 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.

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

- Updated packages:

  - ZConfig = 2.8.0
  - zope.annotation = 3.5.0
  - zope.app.form = 3.12.1
  - zope.broken = 3.6.0
  - zope.browsermenu = 3.9.0
  - zope.browserpage = 3.12.1
  - zope.browserresource = 3.10.3
  - zope.component = 3.9.4
  - zope.configuration = 3.7.2
  - zope.container = 3.11.1
  - zope.contentprovider = 3.7.1
  - zope.contenttype = 3.5.1
  - zope.copypastemove = 3.6.0
  - zope.dublincore = 3.6.0
  - zope.exceptions = 3.6.0
  - zope.filerepresentation = 3.6.0
  - zope.formlib = 3.10.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
  - zope.schema = 3.6.3
  - zope.securitypolicy = 3.6.1
  - zope.sendmail = 3.7.2
  - zope.site = 3.9.1
  - zope.structuredtext = 3.5.0
  - zope.tales = 3.5.1
  - zope.testbrowser = 3.8.1
  - zope.testing = 3.9.3
  - zope.traversing = 3.12.1
  - zope.viewlet = 3.7.1

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

- LP #142563:  Fix ``AccessControl.User.NullUnrestrictedUserTests.__str__``.

- LP #267820:  Fix bad except clause in the ``sequence_sort`` method of
  the ``<dtml-in>`` tag.

- LP #351006:  Don't nest block tags inside HTML ``<p>`` tags in
  ``zExceptions.ExceptionFormatter``.

- LP #411837:  Handle resource files with ``.htm`` extention properly,
  as page template resources.

- LP #435729:  Fix indentation of OFSP/help/sequence.py docstring.

- LP #574286:  Ensure that mailhosts which share a queue directory do not
  double-deliver mails, by sharing the thread which processes emails for
  that directory.

- 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.

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

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

- Fixed issue with sending text containing ':' from MailHost.

- MailHost will now ensure the headers it sets are 7bit.

- MailHost no longer generates garbage when given unicode input.

- Unfutzed test failures due to use of naive timezones with ``datetime``
  instances.
