Zope 2.10 Changes

このファイルには現在の Zope リリースでの変更点を記載しています。 これ以前の変更については HISTORY.txt を参照してください。

Zope 2.10.12 (2010/09/01)

バグ修正

  • 補足されない例外が発生するとZServerのワーカースレッドが停止していた問題を修正。 https://bugs.launchpad.net/zope2/+bug/627988
  • リポジトリで外部参照している ‘pytz’ を ‘2010b’ バージョンに更新 (Zope3経由ではありません)。
  • ZCTextIndexのclearメソッドが獲得(Acquisition)ラッパーでラップされないようにした。
  • LP #195761: ZMIでXMLインポート/エクスポートの機能を修正しUIに表示を戻した。

Zope 2.10.11 (2010/01/12)

バグ修正

  • LP #491224: エラーメッセージの表示を正しくエスケープするよう修正
  • ZEXP のインポート用のファイルはクライアントのホームディレクトリ からもインポート出来るようにしました。これによって buildout で作成されたZopeインスタンスの場合でもインポート出来るように なりました。
  • LP #143444: インポート / エクスポート フォーム上のチェックボックス とラジオボタンにラベルを追加しました。
  • IF_MODIFIED_SINCE ヘッダーに行儀の悪い記述をしていたコード Five/browser/resource.py (Five 1.5.9 に更新) を修正しました。

Zope 2.10.10 (2009/12/22)

機能追加

  • Testing/custom_zodb.py: DemoStrage 以外のストレージを使用できるように しました。 FileStorage は環境変数 $TEST_FILESTORAGE の値から任意の Data.fs をマウントすることが出来ます。 ZEO サーバーについても、 $TEST_ZEO_HOST と $TEST_ZEO_PORT 環境変数で指定できます。 この新しい機能によって、標準の Zope テストランナーを使って既存の Zope インストールをテスト出来ます。

バグ修正

  • LP #490514: DTML が ZPT から呼び出された場合の脆弱性汚染から保護する ようにしました。
  • LP #360761 (Acquisition trunk からのバックポート): iteration proxy が __iter____getitem__ にAcquisionでくるまれた self を渡すようにしました。
  • LP #414757 (Zope trunk からのバックポート): 複製したリクエストをクリアするときに IEndRequestEvent を出力しないようにした。

Zope 2.10.9 (2009/08/06)

再構築

  • MountedStorageError 例外の定義を ZODB.POSExceptions から Products.TemporaryFolder.mount へ移動した(他では使われていないため)。
  • LP #177513: Zope 2 特有のモジュールである ZODB/Mount.py を Products/TemporaryFolder/mount.py に移動した (Products/TemporaryFolder/TemporaryFolder.py が唯一使用しているため).
  • Products/ZODBMountPoint/MountedObject.py が持っていた import 時の てきとうな依存を削除した。

バグ修正

  • ZEO脆弱性: ZEOストレージサーバーに影響するZEOのネットワークプロトコルの脆弱性を修正。

Zope 2.10.8 (2009/05/04)

機能追加

  • SiteErrorLog はエントリの ID をイベントログにも書き出すようになりました。 これにより、ユーザーからのエラー報告とイベントログとを、 Zope の再起動後 にも対応づけて見たり、イベントログの traceback と対応づけて SiteErrorLog の REQUEST 情報を見る事が出来るようになります。

再構築

  • ‘App.class_init’ に ‘InitializeClass’ エイリアスを追加しました。 これは今後のマイグレーションを簡単にするためのものです。 Zope 2.12 では ‘InitializeClass’ は ‘Globals’ からではなく、 ‘App.class_init’ からimportするようにしてください。
  • ‘ApplicationDefaultPermissions’ を ‘App.class_init’ から ‘AccessControl.Permissions’ に移動しました。 ‘Globals’ からimportすることを避けることにより、 サードパーティー製コードによるimportサイクルを断つためです。 以前の場所からもdeprecation警告無しでimportすることも出来ます。

バグ修正

  • Launchpad #373299: OFS.CopySupport で String で例外を投げていた問題を修正。
  • ZPublisher response.setBody: すでに header にある場合、 Accept-Encoding を破棄しないように修正。 この問題はキャッシュ設定を難しくしていた。 (r99493 からマージ)
  • Launchpad #267834: CRLF を使って HTTP ヘッダフィールドを正しく分割するように修正。 RFC 2616 でリクエストされている。 (merged 90980, 92625)
  • Launchpad #348223: catalog クエリを最適化: クエリ結果が空の状態になったら、 短時間で index 検索を抜けるようにした。
  • Launchpad #332168, Shared/DC/RDBMS/Connection.py: DB接続文字列を例外発生時に表示しないようにした。
  • Launchpad #143873: HTTP_ACCEPT_CHARSET が request に含まれていない場合の処理の問題を 修正。この修正のために zope.publisher を 3.3.3 にアップデートした。 (訳注: IE や Safari で HTTP_ACCEPT_CHARSET が無い場合に iso-8859-1 で request されていると認識してしまう問題を修正し、 utf-8 で認識 するようになりました: #160968, #8185)
  • Launchpad #324876: meta-equiv ヘッダの charset 認識のために厳密な regex に修正
  • Acquisition wrapper: Acquisition ラッパーが __iter__ を正しく proxy するように修正
  • Products.PluginIndexes.PathIndex: trunk から、 doc の修正と、最適化の修正をバックポート (ExtendedPathIndex も).
  • Launchpad #174705: エラー情報オブジェクトが、’tal:on_error’ ハンドラーに制限コード (restricted code) を表示してしまう問題を修正。

Zope 2.10.7 (2008/10/24)

バグ修正

  • fix RFC2616: HTTP レスポンスヘッダに HTTP 仕様 (RFC2616) 違反となる CRLF ペアを入れないことを保証するようにした。
  • Launchpad #282677: guarded_map と guarded_zip (RestrictedPython) の実装とテストを修正。
  • Launchpad #143736, #271395: TempStorage の _ltid が AttributeError となっていた問題を修正。
  • fix gurded_import: AccessControl.ZopeGuards.guarded_import 関数は多くの Unauthorized 例外を ImportError に置き換えていた。そんなことをするな! また、ミュータブルなデフォルト引数を削除し、テストを強化した。
  • Launchpad #281156: AccessControl.SecurityInfo.secureModule がインポートに失敗した モジュールの ModuleSecurity を除くため、後で同じモジュールのインポート を試みた際に不明瞭なエラーとなる問題を修正。
  • Launchpad #142667: プロダクト自動リフレッシュ問題の修正のため、 ZODB-3.4.5 に更新。
  • Five を 1.5.8 にアップデート
  • Launchpad #245649: Products パッケージは setuptools の正則な “namespace package” ルールの下、 配置されるようになりました。
  • fix: ZODBMountPoint.SimpleTrailblazer の古い transaction.commit(1) という呼び出しを行っていたのを修正。
  • Launchpad #239636: HEAD リクエストが NotFound エラー時には空の body を返さないようにした。 (訳注: RFC では NotFound 時に body を返してはいけない)
  • Launchpad #229549: Don’t ignore ‘debug’ flag when rendering page templates (thanks to Eric Steele for the patch).
  • Hotfix-2008-08-12 を組み込んだ。
  • Launchpad #267545: DateTime (DateTime()) は正しい時刻 (hour) を保持するようになった。
  • Launchpad #262313: ZMI のページテンプレート編集画面における “Expand macros” 設定に配慮。

Zope 2.10.6 (2008/05/10)

バグ修正

  • Launchpad #142350: 概要が提供されている場合に、各プロパティーの行のタイトルとして 表示するようにした。
  • Launchpad #200007: DateTime (anotherDateTime) がタイムゾーンを保持するようになった。
  • Launchpad #213311: ページ発行時のURLトラバース中に unsubscriptable object エラーを ハンドリングする様にした。
  • Launchpad #143813: zopectl は子プロセスが失敗したときに非ゼロ終了するようになった。
  • Launchpad #173658: 使用されていないコード OFS.Traversable の unrestrictedTraverse を取り除いた。 (NameErrorとなっていた).
  • Launchpad #198274: 空の ZopePageTemplate をunpickleすることが出来ない問題を修正。
  • zope.security: zope.securityパッケージをスタンドアローン版のバージョン3.3.3に切り替えた。 このバージョンは大きなパフォーマンスのバグ修正を3.4からバックポート している。
  • Launchpad #164783: 最初の ZODB 作成 (Zope 初回起動時) に catalog の index がマイグレーション されていた問題を修正。

Zope 2.10.5 (2007/10/30)

その他の変更

  • メソッド manage_afterAdd, manage_beforeDelete, manage_afterClone の deprecation 警告 を discouraged 警告に変更した。これらのメソッドは Zope 2.11 では削除されないことになったが、近い将来無くなるだろう。 イベントの仕組みを使うことを強く推奨する。

バグ修正

  • Launchpad #147201: zope.conf に文字列で書かれたコンテナクラスを、追加した products ディレクティブからも型として扱うように修正した。
  • Collector #2358: Products パッケージが本当の名前空間を必要としてしまう問題の修正を trunk からバックポートした。(SymLink パスに Products があると Path の処理に失敗する問題)
  • Collector #2287: フォームの :record オブジェクトに十分な辞書インターフェースが implement されていない問題。
  • Collector #2352: OFS.Traversable の問題を修正。
  • Collector #2346: FCGI サーバーの、ユーザー名をログ記録する仕組みがクラッシュを引き起こす問題。
  • fix: ZopePageTemplate の pt_edit 関数が charset 情報を含むコンテンツタイプ引数 を認識しない問題。
  • Collector #2332: SessionDataManger: ConflictError を飲み込む問題。 (代わりに “External session data container ‘%s’ not found.” という エラーが表示される)
  • Collector #2339: ZPT: structure ディレクティブ使用時の Unicode の問題を修正。 (“structure python: ‘日本語’” 等を使うと UnicodeDecodeError が発生する)
  • Launchpad #151020: HTTP_CHAR_SET ヘッダーが x-user-defined を含む場合に LookupError 例外を引き起こす問題を修正。今後不明なエンコーディングは警告無く破棄される。

Zope 2.10.4 (2007/06/23)

その他の変更

  • ZODB 3.7.1 に更新
  • Zope 3.3.2 に更新
  • Five 1.5.5 に更新

バグ修正

  • Collector #1306: ローカルロールを使用している画面で獲得に失敗する問題。
  • Collector #2153: クォートされていないスペースを含むクッキーに対応。 The REQUEST no longer accepts holds after it has been closed.
  • Collector #1441: WebDAV の互換性: Windows の Web フォルダで、標準的でない MS-Author-Via と Public ヘッダーを送信する問題に対応。ありがとう PatrickD 。 苦労して作ってくれたパッチが役に立ったよ。 (http://zope.org/Collectors/Zope/1441)
  • Fixed: ZPublisher.BaseRequest の永続サイトマネージャー (persistent site managers) に関するバグを修正。 EndRequestEvent が ZODB 接続が閉じられた後に発生し、 このときサイトマネージャーは無くなっている。
  • Collector #2295: PythonScripts 内のコメントがシンタックスエラーを起こす問題。
  • Collector #2307: ObjectCopiedEvent が sublocations に配信されない問題。
  • Collector #2304: ptEdit.zpt のマークアップ記述の問題を修正。
  • Collector #2260: Examples.zexp の問題を修正。
  • Collector #2320: HTTPResponse setHeader はキーを小文字に変換して設定するが、 getHeader はそうしない。このため Content-Type が見つからない問題が発生する。
  • Collector #2321: クライアントの IP アドレスを Request から展開する際に、信頼している Proxy をスキップする問題。
  • Collector #2318: zopectl が使用しているコントロール用ソケットを zope.conf で設定 できるようにした。
  • Collector #2316: index をブラウズするときに DateTimeIndex dates を正しく Unpack されるようにした。
  • Collector #1866: 304 HTTP ステータスの時、コンテンツ長を持つべきではない。
  • Collector #2300: 全ての HTTP Response headers のデリミタは CRLF とする。

Zope 2.10.3 (2007/03/25)

バグ修正

  • Collector #2298: webdav.Resource.COPY と webdav.Resource.MOVE が期待されている copy/move イベントを送信していなかった。
  • Collector #2296: ZClass プロダクトの import を修正。 meta_type 情報がパーミッションを 持たないオブジェクト貼り付け時の BBB サポートの削除により動作しなく なっていた。
  • Collector #2294: Protected DOS-able ControlPanel methods with the same ‘requestmethod’ wrapper.
  • Collector #2294: 様々なセキュリティー上リスクのあるアクセスを、新しく追加したデコレータで 防御した。デコレータは POST リクエストでのみアクセスを許可する。これは Zope 2.11 の requestmethod decorator factory をバックポートした。
  • Collector #2289: PTProfiler の互換性を復元した
  • ZODB: ProductDispatcher を見るときに毎回 ZODB 接続を開く問題を修正。
  • Collector #2288: BaseRequest と HTTPRequest で要求されたURLについて、 @+ はクォートしないようにした。
  • Undeprecated: zLOG の Deprecate を解除した。これは Python の logging module の後方互換性のため今後も残ろうだろう。
  • fix: PageTemplate/ZRPythonExpr.py において、 unicode 文字列を記述すると UnicodeDecodeError が発生する問題を修正。

Zope 2.10.2 (2007/01/26)

バグ修正

  • Zope 3 をバグ修正版の 3.3.1 リリースにアップデート。

  • Collector #2261:

    Webdav 経由でオブジェクトを作成したときの獲得の問題を修正。

  • Collector #2269:

    ZPT を FTP で操作ができなくなっていた問題を修正。

Zope 2.10.2 beta 1 (2007/01/14)

バグ修正

  • Fixed Collector #2190:

    zope.security.management.checkPermission 呼び出しが Zope 2 のセキュリティーポリシーに迂回されていなかった。

    注意: もしあなたがすでに Zope 2.10 のインスタンスを使用しているなら、 インスタンスを作り直すか、以下の数行を etc/site.zcml ファイルに追加する必要がある:

    <securityPolicy
          component="Products.Five.security.FiveSecurityPolicy" />
  • Fixed Collector #2223:

    TALES における boolean 評価時の default の扱いについて。

  • Collector #2191:

    DateTime について、後方互換性が無くなっていた変更を元に戻した。

  • version.txt:

    lib/python/Zope2/version.txt が同梱されていなかった問題を修正

  • added Python 2.4.4:

    最適な Python のバージョンとして Python-2.4.4 を configure に追加。

  • ZopePageTemplate implementation:

    ZopePageTemplate の実装は、文字列を内部で unicode で保持するようになった。 非 unicode の instance は自動的に on-the-fly で unicode に変換される。 しかしながら、この変換は utf-8 と ISO-8859-15 でエンコードされた ZPT インスタンスでのみ正しく働くだろう。あなたは他のエンコーディングを 扱うために環境変数 ZPT_REFERRED_ENCODING に他のエンコーディングを utf-8 や ISO-8859-15 よりも先に設定することができる。さらに、新しい output_encodings プロパティーは WebDAV/FTP 経由の入出力の unicode 変換をコントロールしてくれる効果がある。

  • ZPT implementation:

    ZPT の実装は UnicodeDecodeError の発生時の挙動を設定可能となった。 カスタム UnicodeEncodingConflictResolver は ZCML で設定することが出来る。 (参照: Products/PageTemplates/(configure.zcml, unicodeconflictresolver.py, interfaces.py)

Zope 2.10.1 (2006-11-22)

バグ修正

  • Collector #2191: 拡張した DateTime パーサーが ISO8601 規格に対応。
  • Shared.DC.ZRDB.DA.DA の _cached_result を動作するように修正:
    • Collector #2212 で報告されたKeyErrorを修正
    • 高負荷時に発生する2つのメモリリークを修正
    • あいまいな Shared.DC.ZRDB.DA.DA.connection_hook 使用によるキャッシュ Key の破損を修正。
    • キャッシュが非常に大きい場合の不正なキャッシュのソートを修正。 (resulting in newer results being dumped)
  • Collector #2232: ページテンプレートから DTML テンプレートを呼び出せない問題を修正。
  • Collector #2213: 古い ZopePageTemplate を編集できない問題を修正。
  • Collector #2237: make のメッセージで、 make instance する前に make inplace するように表示していなかった問題を修正。
  • Collector #2235: いくつかの ZCatalog メソッドがオブジェクトのブール評価行っていたため、 None ではなく __len__ で評価されていた。いくつかの if not objif obj is None に置き換えた。
  • Collector #2208: HTTP ヘッダの content-type が text/* の場合のみ charset を書き換え/設定するように変更。
  • Collector #2209: ZPT から ZTUtils モジュールを使用できなっかった問題を修正。
  • Collector #2206: skel/bin/zopectl.in と skel/bin/runzope.in で、PYTHONPATH を既存の PYTHONPATH も含めて設定するように変更。

Zope 2.10.0 (2006/10/04)

バグ修正

Zope 2.10.0 RC 1 (2006/09/25)

バグ修正

  • Call setDefaultSkin on new requests created as the result of ConflictError retries.
  • Collector #2187: PUT_factory broken

Zope 2.10.0 beta 2 (2006/09/17)

バグ修正

  • Collector #2117: Don’t choke in ‘unrestrictedTraverse’ for ‘+’ path elements.
  • Collector #2185: Log username for FCGI requests.
  • Collector #2152: Fixed MailHost documentation; simple_send does not process or validate its arguments in any way.
  • Collector #2175: ZTUtils.make_hidden_input did not escape double-quotes.
  • Collector #2176: Fixed bad logging call.
  • Collector #1907: Moved ‘alt’ property from File to Image.
  • Collector #1983: Specifying session-resolution-seconds >= 1200 caused Zope startup to fail.
  • Collector #2169: webdav.Resource.COPY did not send ObjectClonedEvent.
  • Collector #2178: Fix ZopeTestCase doctest support for layers

Zope 2.10.0 beta 2 (2006/08/20)

バグ修正

  • Collector #2155: Fix wrong parameter being passed to logger’s error() method, with tests.

  • Updated Five to stable 1.5 release.

  • Traversal order changes were causing WebDAV requests which used acquisition to fail.

  • Collector #2157: Expose name of broken class in SystemError raised from ‘__getstate__’ of a broken instance.

  • Usage of ‘urljoin’ in ‘webdav.davcmds’ could lead to wrongly constructed urls.

  • Fix #2141: TALES doesn’t traverse correctly over ‘repeat’ variable

  • reStructuredText/ZReST: setting raw_enabled to 0 for security reasons

  • Collector #2113: ‘zopectl test’ masked Ctrl-C.

  • OFS Image: Image and File updated to use isinstance(data, str) and raises TypeError upon encountering unicode objects.

  • OFS Application: Updated deprecation warnings. Support for ‘__ac_permissions__’ and ‘meta_types’ will be removed in Zope 2.11, ‘methods’ support might remain longer.

  • Collector #2136: Map ResourceLockedError to the correct response code.

  • Collector #2016: DemoStorage couldn’t wrap base storages without

    an ‘_oid’ attribute.

  • Collector #2118: Empty TALES path expressions are allowed in Zope 2.

  • Acquisition wrappers now correctly proxy __contains__.

  • Collector #2116: sequence.sort() did not work properly locale related comparison methods

  • Collector #2122: fixed missing is_proxying_match definition in ZServer/HTTPServer

  • Collector 2077: fixed problem with ACTUAL_URL and SiteRoot

  • Collector #2073: fixed misbehaviour of OFS.Owned.changeOwnership

  • Collector #2063: cleaned up some mess in MailHost.sendTemplate()

  • View and attribute lookup order was changed to the following:

    1. Unacquired attributes
    2. Views
    3. Acquired attributes

    According to consensus in z3-five mailing list:

    http://codespeak.net/pipermail/z3-five/2006q2/001474.html

  • The defaultView directive now only looks up views, not attributes.

  • Collector #2178: Fix ZopeTestCase doctest support for layers

その他の変更

  • Disabled docutils file inclusion completely, rather than trying to jigger it via configuration settings.
  • Returned to the “classic” ‘./configure && make && make install’ recipe, dropping the use of ‘zpkg’ for building Zope2 releases.

Zope 2.10.0 beta 1 (2006/05/30)

再構築

  • Zope 2.10+ now includes site.zcml as part of its instance creation skel directory. As a consequence Five now requires this file to exist in every instance. If upgrading a site from Zope 2.9 to 2.10, you will need to copy site.zcml and package-includes/ from your installed Zope installation location (skel/etc/) into the etc/ directory of your upgraded instance.

    The rationale for requiring this new file is to bring Zope 2 instances closer in consistency to Zope 3 instances. It also eases use of Zope 3 coding techniques in Zope 2 and removes some confusion when trying to run pure Zope 3 applications on Zope 2.

  • Products.PageTemplates now uses the Zope 3 ZPT implementation in zope.pagetemplate.

  • The TAL package has been deprecated in favour of the TAL engine from zope.tal.

  • Products.PageTemplates.TALES has been deprecated in favour of the TALES engine from zope.tales.

  • ZTUtils.Iterator has been deprecated in favour of the TALES iterator implementation in zope.tales.tales.

  • ZCatalog: removed manage_deleteIndex(), manage_delColumns() which were deprecated since Zope 2.4

  • deprecated the zLOG module. Use Pythons ‘logging’ module instead.

  • replaced all zLOG occurences (expect the zLOG module itself) with the ‘logging’ module

  • PluginIndexes/TextIndex is deprecated. Use ZCTextIndex instead

  • the ‘StructuredText’ module is deprecated. Use zope.structuredtext instead

  • removed ZopeTutorial (Elvis is now really dead)

  • ZClasses are deprecated and should no longer be used. In addition any code related to the ZClasses (re)distribution mechanism is removed.

  • ZGadyFlyDA/Gadfly is deprecated

  • deprecated OFS.content_types (to be removed in Zope 2.11) and replaced all occurences with zope.app.content_types

  • OFS.content_types: moved code to zope.app.content_types and added method aliases

  • Using FastCGI is offically deprecated.

機能追加

  • Included Zope 3.3 and corresponding Five 1.5 release.

  • There is now a default favicon.ico.

  • Experimental WSGI and Twisted support for http. Zope now has a WSGI interface for integration with other web-servers than ZServer. Most notably Twisted is supported. The WSGI application is ZPublisher.WSGIPublisher.publish_module

    You can make ZServer use the twisted interface with the “use-wsgi on” keyword in the http-server section in zope.conf.

    You can run Twisted by installing Twisted (2.1 recommended) and replacing the http-server section with a server section in zope.conf. It is not possible to run a Twisted server together with a ZServer at the same time:

    <server>
      address 8080
      type Zope2-HTTP
    </server>

    WSGI: http://www.python.org/dev/peps/pep-0333/ Twisted: http://twistedmatrix.com/

  • The traversal has been refactored to take heed of Zope3s IPublishTraverse adapter interfaces. The ZCML directives five:traversable and five:defaultViewable are therefore no longer needed, as everything now is five:traversable and five:defaultViewable.

    There was a bug in earlier versions of Five that allowed you to do custom publishing traversal with ITraversable adapters. This bug has been corrected. Anybody using ITraversable adapters need to convert them to IPublishTraversal adapters.

  • Testing.makerequest: Added an ‘environ’ argument so clients can use mappings other than os.environ.

  • Updated to Docutils 0.4.0

  • reStructuredText: The default value for the ‘stylesheet’ property has been changed from ‘default.css’ to None because there is no ‘default.css’ file by default.

  • ZReST: rewritten render() method to integrate it smoothly with Docutils 0.4.0. The default value for the ‘stylesheet’ property has been changed from ‘default.css’ to None because there is no ‘default.css’ file by default.

  • Added a “clock server” servertype which allows users to configure methods that should be called periodically as if they were being called by a remote user agent on one of Zope’s HTTP ports. This is meant to replace wget+cron for some class of periodic callables.

    To use, create a “clock-server” directive section anywhere in your zope.conf file, like so:

    <clock-server>
       method /do_stuff
       period 60
       user admin
       password 123
       host localhost
    </clock-server>

    Any number of clock-server sections may be defined within a single zope.conf. Note that you must specify a username/password combination with the appropriate level of access to call the method you’ve defined. You can omit the username and password if the method is anonymously callable. Obviously the password is stored in the clear in the config file, so you need to protect the config file with filesystem security if the Zope account is privileged and those who have filesystem access should not see the password.

    Descriptions of the values within the clock-server section follow:

    method -- the traversal path (from the Zope root) to an
    executable Zope method (Python Script, external method,
    product method, etc).  The method must take no arguments or
    must obtain its arguments from a query string.
    
    period -- the number of seconds between each clock "tick" (and
    thus each call to the above "method").  The lowest number
    providable here is typically 30 (this is the asyncore mainloop
    "timeout" value).
    
    user -- a zope username.
    
    password -- the password for the zope username provided above.
    
    host -- the hostname passed in via the "Host:" header in the
    faux request.  Could be useful if you have virtual host rules
    set up inside Zope itself.

    To make sure the clock is working, examine your Z2.log file. It should show requests incoming via a “Zope Clock Server” useragent.

  • Added a ‘conflict-error-log-level’ directive to zope.conf, to set the level at which conflict errors (which are normally retried automatically) are logged. The default is ‘info’.

  • The SiteErrorLog now copies exceptions to the event log by default.

  • ObjectManager now has an hasObject method to test presence. This brings it in line with BTreeFolder.

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

  • Use new-style security declarations everywhere possible. This means remove the use of __ac_permissions__, foo__roles__ and default__class_init__. A few corner cases can’t be converted because of circular imports.

  • Fixed unclear security declarations. Warn when an attempt is made to have a security declaration on a nonexistent method.

  • updated to ZPL 2.1

  • interfaces: Added ‘Interfaces’ tab to basic core objects. This is a Five feature and only available if the classes are made five:traversable. It allows to inspect interfaces and to assign marker interfaces through the ZMI.

  • webdav: Added support for the z3 WriteLock interface. It is no longer necessary to have the WriteLockInterface in the __implements__ list of lockable objects. All classes inheriting from LockableItem inherit also the IWriteLock interface. Note that this enables webdav locking for all subclasses by default even if they don’t specify the WriteLockInterface explicitly.

  • App ProductContext: Made registerClass aware of z3 interfaces. Z2 and z3 interfaces are registered side by side in the same tuple in Products.meta_types. IFAwareObjectManagers like the ZCatalog work now with z3 interfaces as well.

  • Zope now sends Zope 3 events when objects are added or removed from standard containers. manage_afterAdd, manage_beforeDelete and manage_afterClone are now deprecated. See lib/python/Products/Five/tests/event.txt for details.

  • Zope now utilizes ZODB 3.6. It had previously used ZODB 3.4. As a result, the DBTab package was removed, as ZODB 3.6 has multidatabase support that makes DBTab unnecessary.

  • Added a ‘product-config’ section type to zope.conf, allowing arbitrary key-value mappings. Products can look for such confgiurations to set product-specific options. Products mwy also register their own section types, extending the ‘zope.product.base’ type. (see the example ‘<product-config>’ section in skel/etc/zope.conf.in for sample usage).

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

  • AccessControl, Acquisition, App, OFS, webdav, PluginIndexes, ZCatalog and ZCTextIndex: Added some Zope 3 style interfaces. This makes the bridged interfaces shipped with Five obsolete.

  • ZConfig extension, address now also accepts symbolic port names from etc/services (unix) or etcservices (win32)

  • ZPublisher.HTTPRequest.FileUpload now supports full file object interface. This means Iterator support was added. (for line in fileobject: ..., as well as fileobject.next() and fileobject.xreadlines() ) Collector #1837

  • Switched the bundled Zope 3 to release 3.2 and upgraded the Five product to version 1.3 (see Products/Five/CHANGES.txt).

  • The PageTemplate implementation now uses Zope 3 message catalogs by default for translation. Old-style translation services such as Localizer or PlacelessTranslationService are still supported as fall-backs. See Products/Five/doc/i18n.txt for more information.

  • Switched to the new improved test runner from Zope 3. Run test.py with -h to find out more.

  • lib/python/docutils is now a reference to docutils package from the Zope 3 source tree (to get rid of redundant packages)

バグ修正

  • Collector #1447: When editing content on a virtual-hosted zope, AcceleratedHTTPCacheManager now purges the correct URL.

  • When you add roles in manage_access, roles are now stripped of any leading or trailing spaces.

  • Collector #2062: Fix manage_historyCopy, which was broken, and write tests for it.

  • Collector #2061: Fix problems where windows line endings are passed to restricted code compilers.

  • Collector #2051: Applied patch by Yoshinori Okuji to fix some XML export/import problems, including tests for that feature.

  • Collector #2037: fixed broken ACTUAL_URL for ‘/’

  • Missing import of NotFound in webdav.Resource

  • Collector #1819: fixed method signature of MountedObject.SimpleTrailblazer._construct()

  • Collector #2019: removed validateValue() from cAccessControl (already removed in former Zope versions from the AccessControl Python implementation)

  • Collector #1991: ZPublisher did not deal properly with a trailing %20 in the URL

  • zope.app.introspector was not included with the source archive

  • Collector #2013: improved XHTML conformance of error messages, some of which did not close ‘<p>’ tags.

  • Collector #2002: fixed broken ‘ls -R’ functionality (didn’t recurse properly subclasses of OFS.Folder)

  • Collector #1992: unified the visible hostnames of the FTP and HTTP servers

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

  • HTTPResponse: for XML content the encoding specified within the XML preamble is adjusted to the real encoding of the content as specified through the ‘charset’ within the content-type property.

  • Collector #1939: When running as a service, Zope could potentially collect too much log output filling the NT Event Log. When that happened, a ‘print’ during exception handling would cause an IOError in the restart code causing the service not to restart automatically.

    Problem is that a service/pythonw.exe process always has an invalid sys.stdout. But due to the magic of buffering, small “print” statements would not fail - but once the file actually got written to, the error happened. Never a problem when debugging, as the process has a console, and hence a valid stdout.

  • For content-type HTTP headers starting with ‘text/’ or ‘application/’ the ‘charset’ field is automatically if not specified by the application. The ‘charset’ is determined by the content-type header specified by the application (if available) or from the zpublisher_default_encoding value as configured in etc/zope.conf

  • Collector #1976: FTP STOR command would load the file being uploaded in memory. Changed to use a TemporaryFile.

  • OFS ObjectManager: Fixed list_imports() to tolerate missing import directories.

  • Collector #1621, 1894: Removed support for use of long-deprecated ‘whrandom’ module.

  • OFS PropertySheets / webdav: Fixed dav__resourcetype. __dav_collection__ with a false value was overridden by isAnObjectManager.

  • added missing Zope 3 imports: zope.app.intid, zope.app.keyreference, zope.app.session, zope.contentprovider, zope.viewlet

その他の変更

  • AccessControl.User: Use a better __repr__.
  • 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.
  • The ImageFile module has finally been deprecated for good and will be removed in Zope 2.11. Use App.ImageFile instead.

after Zope 2.8.1

  • The ‘@’ character is now allowed in object ids (RFC 1738 allows it).

バグ修正

  • 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.
  • Collector #1895: testrunner: omitting the ‘var’ from recursive directory walking
  • 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().
  • Collector #1863: Prevent possibly sensitive information to leak via the TransientObject’s __repr__ method.
  • Repaired ‘handle_errors’ usage for doctests, along with the supporting ‘debug’ argument passed to ‘ZPublisher.Test.publish_module’.
  • Collector #1879: applied patch by Dieter Maurer to fix a bug in ac_aquire() ignoring the default argument
  • Collector #1864, #1906: fixed header normalization in appendHeader()
  • Collector #1899: fixed migration issue when using export/import for ZCatalog instances
  • Collector #1871: Applied patch to support lists with records using ZTUtils.make_query()
  • AccessControl: creating a new user through “zpasswd inituser” did not work properly with a top-level user folder with enabled password encryption.
  • ZCatalog: refreshCatalog() could not be called safely from a ZEO client script
  • Catalog.clear(): fixed handling of _length attribute (caused import problems for some .zexp files e.g. Squishdot instances)
  • DateIndex now properly removes documents from both indexes if the value is None
  • 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 the message was not translated.

Zope 2.8.1 (2005/08/11)

機能追加

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

バグ修正

  • Zope2.Startup.zopectl: fork before execv when running unit tests (don’t exit the shell, if run from there).
  • 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.
  • 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.
  • Collector #1807: fixed memory leak in cAccessControl.guarded_getattr()

Zope 2.8.1 b1 (2005/07/28)

機能追加

  • PluginIndexes, ZCTextIndex and ZCatalog: Added some z3 interfaces.
  • 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.
  • “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.

バグ修正

  • Collector #1852: fixed wrong URL construction in webdav.davcmds
  • Collector #1844: fixed whitespace handling in the ZMI “Find” tab
  • 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).
  • Replaced all transaction.commit(1) calls by transaction.savepoint()
  • Collector #1832: UnIndex swallowed ConflictErrors.
  • Collector #1815: ZCTextIndex accepts (again) sequences of strings to be indexed.
  • Collector #1812: Fixed key error in ZSQL ZMI/Test
  • Fixed CMFBTreeFolder for CMF 1.5+
  • 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.
  • Collector #1548: Fix ‘httplib’ usage in ZPublisher.Client.
  • Collector #1808: manage_convertIndexes no longer tries to change the index types causing some trouble with CMF.
  • manage_convertIndexes did not treat DateRangeIndexes and PathIndexes properly.
  • Updated Zope X3 to bugfix release 3.0.1
  • Updated Five to bugfix release 1.0.2 (see Products/Five/CHANGES.txt)

Zope 2.8.0 (2005/06/11)

バグ修正

  • Collector #1792: applied patch for broken ZClasses
  • 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.)
  • Collector #1770: Fixed RestructuredText subtitle
  • Collector #1803: Fixed InitializeClass for some corner case.
  • Collector #1798, issue 1: ZopeTestCase no longer tries to install products that were installed by Zope during startup.
  • Collector #1799: Avoid lying about parent’s refcount when calling back into Python code.
  • Collector #889: made ‘and’ operator for KeywordIndexes actually restrict results as expected (thanks to ‘aroda’ for the patch!).
  • Collector #1323: applied patch to fix umask problem in zdctl
  • Updated Five to bugfix release 1.0.1 (see Products/Five/CHANGES.txt)

Zope 2.8.0 b2 (2005/05/22)

機能追加

  • Made WebDAV server distinguishable from the default HTTP server both in the ZMI and in event.log.
  • Included BTreeFolder2

バグ修正

  • Collector #1507/1728: Server addresses are now handled the same way on all platforms. This fixes the default binding on Windows.
  • Collector #1781: made ‘create_mount_points’ ZConfig option actually work (thanks to Dieter Maurer for the patch).
  • Collector #1780: DateTime.strftime() now handles dates <= 1900 or >= 2038
  • Collector #1775: turning off debug mode by default
  • Collector #1784: fixed handling of multiple attributes in ZCTextIndex
  • Don’t copy ‘.svn’ directories from skeleton into an instance (thanks to Dale Hirt for the patch).
  • 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.
  • Collector #1751: Improved error reporting reporting during the startup phase
  • Collector #1745: Fixed ZSQL error KeyError ‘query’
  • Collector #1735: fixed UnicodeDecodeError in Loader.py

Zope 2.8b1 (2005/04/24)

機能追加

  • Added lazy: TAL expression and fixed defer: expression for python expression
  • ZCatalog.CatalogBrains: An _unrestrictedGetObject method has been added.
  • ZODB transactions now support savepoints. See transaction/savepoint.txt. These will replace subtransactions.

バグ修正

  • Collector #1754: Fixed import of ‘transaction’ in ‘zopectl adduser’ (which wasy dying with a NameError).
  • Collector #1750: StructuredText: fixed handling of image URLs with query string
  • Collector #1748: Fixed SIGSEGV in Acquisition
  • Hotfix_20050405: classes defined in untrusted code could shadow the roles of methods defined as protected by their bases.
  • Collector #1656: Fixed enumeration within untrusted code (forward-port from 2.7 branch).
  • Collector #1721: Fixed handling of an empty indexed_attrs parameter

Zope 2.8a2 (2005/04/02)

機能追加

  • ZCatalog.CatalogBrains: ‘getObject’ now raises errors, rather than returning None, in cases where the path points either to a nonexistent object (in which case it raises NotFound) or to one which the user cannot access (raising Unauthorized). Sites which rely on the old behavior can restore setting a new zope.conf option, ‘catalog-getObject-raises’, to “off”.

    This compatibility option will be removed in Zope 2.10.

  • PluginIndexes: the ZCatalog’s “Indexes” tab now show the number of distinct values indexed by each index instead of a mixture of indexed objects versus number of distinct values. Indexes derived from UnIndex show both values within their own ZMI screen. In addition most indexes have now a “Browse” tab to browse through the list of indexed values and their occurrences.

  • FTPServer: a RNFR (rename from) request is now being responded with a 550 error code if the source file does not exist

  • Fixed ObjectManager to not swallow exceptions during object deletion (in debug mode and if the user is not Manager). This allows for better debugging, while still keeping the possibility for a Manager to delete buggy objects.

  • Added a ZConfig directive ‘large-file-threshold’ to control the request content-size threshold at which a temporary file gets created. Use the same value for deciding between reading the whole request in memory or just a chunk inside webdav.NullResource.PUT().

  • RAMCacheManager: Allow invalidation of a cache entry from the Statistics view in the ZMI

  • Collector #1454/OFS.File: Accept content types ending with “javascript” as editable through the File edit form, just like text/<foo> types

  • Zope X3 3.0.0’s ‘src/zope’ package is included now.

  • Five (Zope 3 integration technology for Zope 2) is included now in Products/Five.

バグ修正

  • Collector #1460: guarded_apply was too restrictive.
  • OFS.Traversable still used a string ‘NotFound’ exception.
  • ZPublisher would fail to recognize a XML-RPC request if the content-type header included a ‘charset’ parameter.
  • Forward-ported ‘aq_acquire’-related fix and associated tests from Zope 2.7.4.
  • Collector #1730: XML page templates couldn’t call aq_parent in path expressions.
  • 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.
  • Forward ported fix for OFS.CopySupport tests which corrected signature of a faux security policy’s ‘validate’ method.
  • ‘setup.py’ did not install the ‘Zope’ compatibility module (the old ‘Zope’ package has been renamed to ‘Zope2’).
  • Fixed Shared.DC.ZRDB.Results to behave with the new-style ExtensionClass. Added a test.
  • ‘setup.py’ did not install the new ‘Zope’ compatibility module (the ‘Zope’ package has been renamedd to ‘Zope2’).
  • Collector #1507: Zope now binds again to all available IP addresses if ip-address is unset
  • 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.
  • Collector #1628: FTP server has been broken (directory listings did not work)
  • Collector #1705: CopySource._postCopy is never called
  • Collector #1617: Fixed crash in ZPT code (caused by improper checks in cAccessControl)
  • Collector #1683: fixing batching in the DA “Test” tab
  • Collector #1648: Fix bug in Medusa FTP
  • 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).
  • Collector: #1651: removed compiler warning
  • 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.
  • Collector #1657: Don’t break host-based virtual hosting when purging an HTTP accelerator.
  • DTML Methods were not interoperable with the new filestream_iterator and caches based on it (FileCacheManager).
  • Collector #1655: fixed severe memory leak in TemporaryStorage
  • Collector #1407: fixed XML escaping problem introduced in 2.7.4 b1
  • Collector #1151: HTTP compression was broken on error pages
  • 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 the browser. The key has been added to provide a single key that is available for vhosted and non-vhosted installations.
  • Collector #1605: VHM did not quote URLs
  • 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.
  • 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)
  • Collector #631: Image URLs in StructuredText containing port numbers were not rendered correctly
  • 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.)
  • 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.
  • Collector #1219: Make XML export sane again.
  • Collector #945: Allow adding empty PythonScript instances programmatically.
  • Updated doc/UNITTEST.txt and lib/python/Testing/README.txt to reflect progress made since UNITTEST.txt was originally written.
  • 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.
  • 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).
  • Collector #1599: made sqltest work with unicode strings (thanks to Peter Sabaini for the patch).
  • zopectl: fixed handling of child processes (patch by Dieter Maurer)
  • Collector #1593: fixed dumb _get_id() implementation in OFS.CopySupport that produced copy_of_copy_of....files (thanks to Alexandre Boeglin for the patch).
  • Collector #1450: files in utilities/ZODBTools are now installed during the installation process in the ‘bin’ directory
  • 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.
  • Collector #1371: added new ‘cgi-maxlen’ directive to zope.conf to limit the amount of form data being processed by Zope to prevent DoS attacks
  • Collector #1407: changed WebDAV display name for objects to title_or_id()
  • the ‘trusted-proxy’ directive in zope.conf now also accepts hostnames instead of IP addresses only (patch by Dieter Maurer)
  • Fixed test.py to not over-resolve symbolic links. Needed to run tests when the Products directory and a product are symlinks.
  • Collector #1583/ZReST: Fixed handling of the title attribute for non-ascii characters.
  • Collector #1577: Fixed cryptic error message in ZPublisher if a non-ASCII string is passed to a date, int, long or float property.
  • Collector #1576: Fixed Z Search Interface to use proper HTML.
  • Collector #1127: strftime did not take timezone into account.
  • 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.
  • ZPublisher: changed some hardcoded ‘latin1’ arguments to ‘iso-8859-15’ since latin1 is obsolete.
  • Collector #1566: Installation of Zope on some older Solaris versions could fail due to a broken “echo” implementation causing the creation of a borked version.txt file.
  • Collector #934: Image and File objects are now always internally split into small chunks even when initialized from a string.
  • 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 with the Zope distribution due to license constraints on svn.zope.org.
  • docutils: moved from lib/python/docutils to lib/python/third_party/docutils
  • Collector #1557/OFS.Image: Introducing new ‘alt’ property. The ‘alt’ attribute is no longer taken from the ‘title’ property but from the new ‘alt’ property. The border=”0” attribute is no longer part of the HTML output except specified otherwise.
  • 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 “Network Services”
  • Collector #1443: Applied patch by Simon Eisenmann that reimplements the XML parser used in WebDAV fixing a memory leak.
  • 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;
  • 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.
  • 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.
  • Collector #1523: replace the text field for importing .zexp/.xml files with a selection list
  • 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.

Zope 2.8a1 (2004/10/17)

機能追加

  • Included Stefan Holek’s ZopeTestCase 0.9

  • The SiteErrorLog allows you to acknowledge (or delete) exceptions, so you can reduce or clear the list without restarting your Zope server. Additionally the SiteErrorLog is covered by unit tests now.

  • Unit tests added for the SiteErrorLog.

  • UI improvement for the ZCatalog. The “catalog contents” allow you to filter the cataloged objects by path now.

  • Made test.py follow symbolic links on POSIX systems.

  • added utilities/reindex_catalog.py to perform ZCatalog maintenance operations from the command line (through zopectl)

  • RESPONSE.setBody and RESPONSE.setStatus now accept lock parameters in the same way as RESPONSE.redirect. These prevent further calls to the methods from overwriting the previous value. This is useful when writing http proxies.

  • DateTime: new DateTime instance can be constructed from a given DateTime instance: d_new = DateTime(d_old)

  • The DateTime parser now throws a SyntaxError upon any parsing errors.

  • ZCatalog: added a new configuration option in the “Advanced” tab to provide optional logging of the progress of long running reindexing or recataloging operations.

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

  • Improved Unicode handling in Page Templates. Template contents and title will now be saved as a Unicode string if the management_page_charset variable can be acquired and is true. The character set of an uploaded file can now be specified.

  • zopectl now accepts the -m argument to set a umask for files created by the managed process (e.g. -m 002 or –umask 002).

  • AccessControl/permission_settings() now has a new optional parameter ‘permission’ to retrieve the permission settings for a particular permission.

  • The obsolete ‘SearchIndex’ package has been removed

  • Traversal now supports a “post traversal hook” that get’s run after traversal finished and the security context is established.

  • Using “_usage” parameters in a ZCatalog query is deprecated and logged as DeprecationWarning.

  • MailHost now has two additional properties, a user id and a password. These are used to attempt ESMTP authentication before sending a mail.

  • Folder listings in FTP now include ”.” as well as ”..”.

  • When a VHM is activated, it adds the mapping ‘VIRTUAL_URL_PARTS’: (SERVER_URL, BASEPATH1, virtual_url_path) to the request’s ‘other’ dictionary. If BASEPATH1 is empty, it is omitted from the tuple. The joined parts are also added under the key ‘VIRTUAL_URL’. Since the parts are evaluated before traversal continues, they will not reflect modifications to the path during traversal or by the addition of a default method such as ‘index_html’.

  • Extension Classes, a key Zope foundation, have been totally rewritten based on Python new-style classes.

    This change provides a number of advantages:

    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

    Python read descriptors.

    If an extension classes is used to implement a descriptor, indirectly by implementing __of__ or directly by implementing __get__, the behavior of the descriptor will differ from ordinary descriptors in an important way. The descriptors __get__ method will be called even if the descriptor is stored on an instance of an extension class. Normally descritor __get__ methods are called only of the descriptor is stored in a class.

  • ZODB 3.3

    This is the first version of ZODB that does not require ExtensionClass.

  • Add ‘parity’ method to ZTUtils Iterators.

  • Allow untrusted code to mutate ZPublisher record objects.

  • Added a “mime-types” configuration value which names a file giving additional MIME type to filename extension mappings. The “mime-types” setting may be given more than once in the configuration file; the files have the same format at the mime.types file distributed with Apache.

  • Changed the ZEO server and control process to work with a single configuration file; this is now the default way to configure these processes. (It’s still possible to use separate configuration files.) The ZEO configuration file can now include a “runner” section used by the control process and ignored by the ZEO server process itself. If present, the control process can use the same configuration file.

  • ZConfig was updated to version 2.0. The new version includes two new ways to perform schema extension; of particular interest in Zope is the ability for a configuration file to “import” new schema components to allow 3rd-party components (such as storages, databases, or logging handlers) to be used.

  • The testrunner.py script has been replaced with test.py which is now installed into the ‘bin’ folder.

バグ修正

  • Removed Python 2.3.3 as valid option. ZODB 3.3 requires Python 2.3.4 or later.
  • Collector #1332: Added in-place migration of the Catalog.__len__ 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__() 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).
  • Collector #1595: same as in Collector #1132 for indexes derived from UnIndex. Exisiting ZCatalog instances must be converted manually by calling the “manage_convertIndexes” method through-the-web for every single ZCatalog instance. See also doc/FAQ.txt (Installation, question #4)
  • Collector #1457: ZCTextIndex’s QueryError and ParseError are now available for import from untrusted code.
  • Collector #1473: zpasswd.py can now accept –username without –password
  • Collector #1491: talgettext.py did not create a proper header for the generated .pot file if multiple pagetemplate files were processed.
  • Collector #1477: TaintedString.strip() now implements the same signature as str.strip()
  • TAL: tal:on-error does not trap ConflictError anymore.
  • OFS.CopySupport: Enforced “Delete objects” permission during move (CMF Collector #259).
  • Removed DWIM’y attempt to filter acquired-but-not-aceessible results from ‘guarded_getattr’.
  • Collector #1267: applied patch to fix segmentation faults on x86_64 systems
  • ZReST: the charset used in the rendered HTML was not set to the corresponding output_encoding property of the ZReST instance. In addition changing the encodings through the Properties tab did not re-render the HTML.
  • Collector #1234: an exception triple passed to LOG() was not propagated properly to the logging module of Python
  • 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.
  • 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.
  • 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.
  • Collector #1370: Fixed html generated by Z Search interface.
  • Collector #1295: Fixed minor niglet with the Elvis tutorial.
  • added “version.txt” to setup.py to avoid untrue “unreleased version” messages within the control panel
  • Collector #1436: applied patch to fix a memory leak in cAccessControl.
  • Collector #1431: fixed NetBSD support in initgroups.c
  • Collector #1406: fixed segmentation fault by acquisition
  • Collector #1392: ExternalMethod ignored management_page_charset
  • unrestrictedTraverse() refactored to remove hasattr calls (which mask conflict errors) and for greater readability and maintainability.
  • Zope can now be embedded in C/C++ without exceptions being raised in zdoptions.
  • Collector #1213: Fixed wrong labels of cache parameters
  • Collector #1265: Fixed handling of orphans in ZTUtil.Batch
  • Collector #1293: missing ‘address’ parameters within one of the server sections raise an exception.
  • Collector #1345: AcceleratedHTTPCacheManager now sends the Last-Modified header.
  • Collector #1126: ZPublisher.Converters.field2lines now using splitlines() instead of split(‘n’).
  • Collector #1322: fixed HTML quoting problem with ZSQL methods in DA.py
  • Collector #1124: The ZReST product now uses the same reST encoding parameters from zope.conf as the low-level reStructuredText implementation.
  • Collector #1259: removed the “uninstall” target from the Makefile since the uninstall routine could also remove non-Zope files. Because this was to dangerous it has been removed completely.
  • Collector #1299: Fixed bug in sequence.sort()
  • Collector #1159: Added test for __MACH__ to initgroups.c so the initgroups method becomes available on Mac OS X.
  • Collector #1004: text,token properties were missing in PropertyManager management page.
  • 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.
  • Collector #1160: HTTPResponse.expireCookie() potentially didn’t when an ‘expires’ keyword argument was passed.
  • Collector #1289: Allow ZSQL methods to be edited via WebDAV.
  • 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.
  • reStructuredText ignored the encoding settings in zope.conf
  • ObjectManager no longer raises string exceptions
  • Collector #1260: Testing/__init__.py no longer changes the INSTANCE_HOME.
  • App.config.setConfiguration() did not update the legacy source for debug_mode, Globals.DevelopmentMode.
  • 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.
  • Minor usability tweaks:
    • Increased FindSupport meta type selection widgets height to 8 lines
  • The DateTime module did not recognize the settings for “datetime-format”.
  • Stop testrunner.py from recursing into the ‘build-base’ directory created by setup.py.
  • Collector #1074: Change Scripts’ __name__ to None
  • Range searches with KeywordIndexes did not work with record-style query parameters
  • Item_w__name__ now

(Translated by Shimizukawa, r104364)

目次

前のトピックへ

Zope 2.11 Changes

次のトピックへ

Zope 2.9 Changes

このページ

お問い合わせ

日本語訳についてのご意見などは zope.jp の連絡フォーム からお願いします。