Re: [Zope-dev] Segfault in zope.configuration
Martin Aspeli wrote: > At this point, something is printed to the console. collective.wtf is a > dependency of lw.portal, and its ZCML is being included from lw.portal. > > /home/osc/osc/eggs/collective.wtf-1.0b9-py2.6.egg/collective/wtf/exportimport.py:8: > DeprecationWarning: InitializeClass is deprecated. import from > App.class_init instead > from Globals import InitializeClass Okay, I found out what it does next: It now processes z3c.autoinclude's , which basically just goes through the dependencies in setup.py's install_requires and tries to load a configure.zcml for each. It successfully does that for a number of dependencies, up until it hits "collective.xdv" (same package I saw the problem with when I set up a minimal buildout that just had Plone and collective.xdv in it). The pdb log is: (Pdb) l 43 44def includeDependenciesDirective(_context, package): 45 46import pdb; pdb.set_trace() 47 48 ->if api.dependencies_disabled(): 49log.warn('z3c.autoinclude.dependency is disabled but is being invoked by %s' % _context.info) 50return 51 52dist = distributionForPackage(package) 53info = DependencyFinder(dist).includableInfo(['configure.zcml', 'meta.zcml']) (Pdb) n > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(52)includeDependenciesDirective() -> dist = distributionForPackage(package) (Pdb) n > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(53)includeDependenciesDirective() -> info = DependencyFinder(dist).includableInfo(['configure.zcml', 'meta.zcml']) (Pdb) n > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(55)includeDependenciesDirective() -> includeZCMLGroup(_context, info, 'meta.zcml') (Pdb) pp info {'configure.zcml': ['collective.xdv', 'five.grok', 'z3c.jbot'], 'meta.zcml': ['five.grok', 'z3c.jbot']} (Pdb) l 50return 51 52dist = distributionForPackage(package) 53info = DependencyFinder(dist).includableInfo(['configure.zcml', 'meta.zcml']) 54 55 ->includeZCMLGroup(_context, info, 'meta.zcml') 56includeZCMLGroup(_context, info, 'configure.zcml') 57 58def includeDependenciesOverridesDirective(_context, package): 59 60if api.dependencies_disabled(): (Pdb) n > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(56)includeDependenciesDirective() -> includeZCMLGroup(_context, info, 'configure.zcml') (Pdb) s --Call-- > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(15)includeZCMLGroup() -> def includeZCMLGroup(_context, info, filename, override=False): (Pdb) n > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(16)includeZCMLGroup() -> includable_zcml = info[filename] (Pdb) > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(20)includeZCMLGroup() -> zcml_context = repr(_context.info) (Pdb) > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(22)includeZCMLGroup() -> for dotted_name in includable_zcml: (Pdb) > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(23)includeZCMLGroup() -> log.debug('including file %s from package %s at %s', filename, dotted_name, zcml_context) (Pdb) > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(22)includeZCMLGroup() -> for dotted_name in includable_zcml: (Pdb) > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(23)includeZCMLGroup() -> log.debug('including file %s from package %s at %s', filename, dotted_name, zcml_context) (Pdb) > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(22)includeZCMLGroup() -> for dotted_name in includable_zcml: (Pdb) > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(23)includeZCMLGroup() -> log.debug('including file %s from package %s at %s', filename, dotted_name, zcml_context) (Pdb) > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(22)includeZCMLGroup() -> for dotted_name in includable_zcml: (Pdb) > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(25)includeZCMLGroup() -> for dotted_name in includable_zcml: (Pdb) > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(26)includeZCMLGroup() -> includable_package = resolve(dotted_name) (Pdb) l 21 22for dotted_name in includable_zcml: 23log.debug('including file %s from package %s at %s', filename, dotted_name, zcml_context) 24 25for dotted_name in includable_zcml: 26 ->includable_package = resolve(dotted_name) 27if override: 28includeOverrides(_context, filename, includable_package) 29else: 30include(_context,
Re: [Zope-dev] Segfault in zope.configuration
Martin Aspeli wrote: > Hi, > > I'm not sure if this is a Python issue or a zope issue. We're getting a > segfault on 64-bit SuSE Linux (SLES 11), originating from > z3c.autoinclude, which in turn called zope.configuration's > implementation. This calls expat, which then crashes (no error, log > message, or core file, but it has all the markings of a segfault) during > parsing of the file. > > The weird thing is that it's not parsing of any file: it happens during > a standard configure.zcml (for the collective.xdv package), but > z3c.autoinclude itself is invoked from another ZCML file, so it must've > been able to read that. I tried running it through gdb, and got: (gdb) run Starting program: /home/osc/python-env/bin/python2.6 ./bin/instance1 fg (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) 2010-04-07 09:38:22 INFO ZServer HTTP server started at Wed Apr 7 09:38:22 2010 Hostname: 0.0.0.0 Port: 8801 /home/osc/osc/eggs/collective.wtf-1.0b9-py2.6.egg/collective/wtf/exportimport.py:8: DeprecationWarning: InitializeClass is deprecated. import from App.class_init instead from Globals import InitializeClass Program exited normally. .. which is not very helpful. The status code is indeed zero. (python-env)o...@lwpn-osb-webback-2:~/osc> ./bin/instance1 fg2010-04-07 09:39:21 INFO ZServer HTTP server started at Wed Apr 7 09:39:21 2010 Hostname: 0.0.0.0 Port: 8801 /home/osc/osc/eggs/collective.wtf-1.0b9-py2.6.egg/collective/wtf/exportimport.py:8: DeprecationWarning: InitializeClass is deprecated. import from App.class_init instead from Globals import InitializeClass (python-env)o...@lwpn-osb-webback-2:~/osc> echo $? 0 Next, I tried to pdb from roughly where I know it dies. Sorry about the long text here. It's a bit weird, but I'll explain what's happening. (python-env)o...@lwpn-osb-webback-2:~/osc> ./bin/instance1 fg2010-04-07 09:47:37 INFO ZServer HTTP server started at Wed Apr 7 09:47:37 2010 Hostname: 0.0.0.0 Port: 8801 This is where the brekapoint was set, in z3c.autoinclude's handler. This looks for packages with a particular entry point and loads their meta.zcml, then configure.zcml. The problem happens during configure.zcml loading. > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(104)includePluginsDirective() -> for filename in zcml_to_look_for: We've now stepped into the function that does the real work: -> def includeZCMLGroup(_context, info, filename, override=False): (Pdb) l 10from z3c.autoinclude.plugin import PluginFinder 11 12import logging 13log = logging.getLogger("z3c.autoinclude") 14 15 ->def includeZCMLGroup(_context, info, filename, override=False): 16includable_zcml = info[filename] 17# ^^ a key error would mean that we are trying to include a group of ZCML 18#with a filename that wasn't ever searched for. that *should* be an error 19 20zcml_context = repr(_context.info) This quickly gets to here, where it's loading a package and calling zope.configuration's handler. (Pdb) l 22for dotted_name in includable_zcml: 23log.debug('including file %s from package %s at %s', filename, dotted_name, zcml_context) 24 25for dotted_name in includable_zcml: 26includable_package = resolve(dotted_name) 27 ->if override: 28includeOverrides(_context, filename, includable_package) 29else: 30include(_context, filename, includable_package) 31 32 (Pdb) n > /home/osc/osc/eggs/z3c.autoinclude-0.3.2-py2.6.egg/z3c/autoinclude/zcml.py(30)includeZCMLGroup() -> include(_context, filename, includable_package) It's not na override, so we end up in zope.configuration now. --Call-- > /home/osc/osc/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py(487)include() -> def include(_context, file=None, package=None, files=None): (Pdb) n > /home/osc/osc/eggs/zope.configuration-3.6.0-py2.6.egg/zope/configuration/xmlconfig.py(493)include() -> if files: (Pdb) l 488 """Include a zcml file 489 490 See examples in tests/text_xmlconfig.py 491 """ 492 493 -> if files: 494 if file: 495 raise ValueError("Must specify only one of file or files") 496 elif not file: 497 file = 'configure.zcml' 498 (Pdb) l 499 # BBB 2006/12/19 -- to be removed after 12 months 500 # This is a backward-compatibility support for old site.conf 501 502 if package and (package.__name__ == 'zope.app'): 503 try: 50
Re: [Zope-dev] NEO High Performance Distributed Fault Tolerant ZODB Storage
On Wed, Mar 31, 2010 at 4:32 AM, Vincent Pelletier wrote: > Hi, > > I would like to present you the NEOPPOD project, aiming at improving ZODB > Storage scalability. The implementation is in a rather good shape, although it > fails at a few ZODB tests at the moment (they are currently being worked on). > Scalability is achieved by distributing data over multiple servers > (replication and load balancing) with the ability to extend/reduce cluster > on-line. Is there a document you can point to that provide a description of the approach used? > Its code is available under the GPL, That's unfortunate. Why not a less restrictive license? > [1] http://www.neoppod.org/ ... > [3] http://www.myerp5.com/kb/enterprise-High.Performance.Zope/view These seem to be very high level. You provide a link to the source, which is rather low level. Anything in between? Jim -- Jim Fulton ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Summary of this week's IRC meeting (2010-04-06)
On Tue, Apr 06, 2010 at 12:15:41PM -0400, Tres Seaver wrote: > Some discussion of the general problem of doctests breaking due to exception > formatting led to a suggestion from Jim Fulton that we implement a testing > API similar the ``unittest.TestCase.assertRaises``, but with the additional > feature that it returns the exception value, to permit further assertions > about the state of that object. unittest.TestCase.assertRaises gives you access to the exception value afterwards, starting with Python 2.7. It's been backported to older versions of Python and placed on PyPI as unittest2: http://pypi.python.org/pypi/unittest2 Marius Gedminas -- http://pov.lt/ -- Zope 3 consulting and development signature.asc Description: Digital signature ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Summary of this week's IRC meeting (2010-04-06)
Am 06.04.2010, 18:15 Uhr, schrieb Tres Seaver : > I am attaching this week's summary. Thanks, Tres. I really like this "bite-size" approach. As Theuni mentioned last week we'll also need a way for handling the supersized issues. Charlie -- Charlie Clark Managing Director Clark Consulting & Research German Office Helmholtzstr. 20 Düsseldorf D- 40215 Tel: +49-211-600-3657 Mobile: +49-178-782-6226 ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] Summary of this week's IRC meeting (2010-04-06)
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 I am attaching this week's summary. Tres. - -- === Tres Seaver +1 540-429-0999 tsea...@palladion.com Palladion Software "Excellence by Design"http://palladion.com -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAku7XikACgkQ+gerLs4ltQ7dqgCgkbMWiQU3QVtidL19Vi+rkPnr /voAn2FL6c/mJPZGWW0Deq/pq5j42Jk7 =9P6u -END PGP SIGNATURE- = Weekly Zope developer meeting = This is the summary of the weekly Zope developer meeting which happened on Tuesday, 2010-04-06 on #z...@irc.freenode.org from 3pm to 3:30pm (UTC). The agenda for this meeting is available in the mailing list archives: https://mail.zope.org/pipermail/zope-dev/2010-April/039981.html The IRC logs are located here: http://zope3.pov.lt/irclogs-zope/%23zope.2010-04-06.log.html#t2010-04-06T18:00:01 Tres Seaver was filling in for Christian Theune as conventer due to illness. Zope2 release manager - The community welcomes Hanno Schlichting as the new release manager for Zope2. In addition to closing / responding to dozens of bugs in the past week, Hanno has also proposed a roadmap for Zope 2.13 and has made the release tag for Zope 2.12.4. Porting packages to Zope3 - Lennart Regebro reported that he has branches waiting for the first three "most depended-on" ZTK packages (``zope.event``, ``zope.interface``, and ``zope.testing``). After considering naming the new releases ``4.0``, the consensus was to just name them the next "normal" major release, as long as there are no backward-incompatible API changes. Some discussion of the general problem of doctests breaking due to exception formatting led to a suggestion from Jim Fulton that we implement a testing API similar the ``unittest.TestCase.assertRaises``, but with the additional feature that it returns the exception value, to permit further assertions about the state of that object. Buildbots - No one had new updates on the topic. Sidnei da Silva reported that he is close to reconstructing the script used to build ``win64`` images for Amazon EC. Tres Seaver reported that his request to Microsoft for dontaed VisualStudio licnese to support builds / tests of ``zope.*`` packages on Windows for Python 2.4 and 2.5 is still stalled. Baiju M noted that Rackspace can also support Windows in its cloud: http://www.rackspacecloud.com/ . Tracker status -- Charlie Clark reported that he had gotten his script for checking Launchpad for "languishing" bugs working. He posted that package to ``zope-...@zope.org`` during the meeting. Bug Days After some discussion, Adam Groszer and Baiju M agreed to widen their planned ``bluebream`` sprint to include more general ZTK issues. The sprint, originally set for Saturday, 2010-04-10, was rescheduled to Saturday, 2010-04-24. Charlie Clark asked for announcments, plus volunteers willing to help mentor new exterminators during the bug day. Adam and Baiju will organize a web page for coordinating the bug day activity, and send out the announcements. Carried Over - Resurrecting the "sprint schedule" page, http://wiki.zope.org/zope3/SprintSchedule - A more general calendar (e.g., for Zope / Python related conferences, symposia, sprints, etc.) ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] short svn.zope.org downtime
On 4/3/10 4:56 PM, Hanno Schlichting wrote: > 27059 simon 20 0 98664 6388 4360 R 100 0.2 43327:19 darcs Ack, my cunning plan to bog down all but the One True VCS is leaking. Must be more *careful*.. But seriously, ha ha ha, no, I have no idea what that process was doing there, sorry all. ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] Reminder, agenda for today's IRC meeting @ 15:00 UTC
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Carried over from 2010-03-30: - - Zope2 release manager: Hanno - - Issues related to porting zope.org packages to Python3 (Lennart) - - Buildbots - - Tracker status - - Bug days: when are we going to do them? Tres. - -- === Tres Seaver +1 540-429-0999 tsea...@palladion.com Palladion Software "Excellence by Design"http://palladion.com -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAku7SSQACgkQ+gerLs4ltQ44iACeIBnVuPibqMGrac+tDEDCCJX2 taoAn1gUWzwSPugH9c/lCYT1KvrjLWbl =vgLT -END PGP SIGNATURE- ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] IRC Meeting at 15:00 UTC
Hi, my calendar tells me we've got a meeting scheduled for 15:00 UTC. Charlie -- Charlie Clark Managing Director Clark Consulting & Research German Office Helmholtzstr. 20 Düsseldorf D- 40215 Tel: +49-211-600-3657 Mobile: +49-178-782-6226 ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] Zope Tests: 6 OK, 1 Failed
Summary of messages to the zope-tests list. Period Mon Apr 5 12:00:00 2010 UTC to Tue Apr 6 12:00:00 2010 UTC. There were 7 messages: 6 from Zope Tests, 1 from ct at gocept.com. Test failures - Subject: FAILED: Repository policy check found errors in 714 projects From: ct at gocept.com Date: Mon Apr 5 21:40:18 EDT 2010 URL: http://mail.zope.org/pipermail/zope-tests/2010-April/013869.html Tests passed OK --- Subject: OK : Zope-2.10 Python-2.4.6 : Linux From: Zope Tests Date: Mon Apr 5 21:29:12 EDT 2010 URL: http://mail.zope.org/pipermail/zope-tests/2010-April/013863.html Subject: OK : Zope-2.11 Python-2.4.6 : Linux From: Zope Tests Date: Mon Apr 5 21:31:13 EDT 2010 URL: http://mail.zope.org/pipermail/zope-tests/2010-April/013864.html Subject: OK : Zope-2.12 Python-2.6.4 : Linux From: Zope Tests Date: Mon Apr 5 21:33:13 EDT 2010 URL: http://mail.zope.org/pipermail/zope-tests/2010-April/013865.html Subject: OK : Zope-2.12-alltests Python-2.6.4 : Linux From: Zope Tests Date: Mon Apr 5 21:35:13 EDT 2010 URL: http://mail.zope.org/pipermail/zope-tests/2010-April/013866.html Subject: OK : Zope-trunk Python-2.6.4 : Linux From: Zope Tests Date: Mon Apr 5 21:37:13 EDT 2010 URL: http://mail.zope.org/pipermail/zope-tests/2010-April/013867.html Subject: OK : Zope-trunk-alltests Python-2.6.4 : Linux From: Zope Tests Date: Mon Apr 5 21:39:13 EDT 2010 URL: http://mail.zope.org/pipermail/zope-tests/2010-April/013868.html ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] RFC: 3.4.1 KGS?
Hello Marius, Just released zope.publisher 3.4.10. Seems to have a LOT of fixes vs. 3.4.6 Wednesday, March 31, 2010, 2:50:33 PM, you wrote: ... -- Best regards, Adam GROSZERmailto:agros...@gmail.com -- Quote of the day: Civilization is a movement, not a condition; it is a voyage, not a harbor. - Toynbee ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] zope.publisher
On Tue, Apr 6, 2010 at 1:22 PM, Adam GROSZER wrote: > Hello, > > Someone please grant PYPI perm to me (agroszer) or do a release from > svn://svn.zope.org/repos/main/zope.publisher/branches/3.4 Done. -- Baiju M ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
[Zope-dev] zope.publisher
Hello, Someone please grant PYPI perm to me (agroszer) or do a release from svn://svn.zope.org/repos/main/zope.publisher/branches/3.4 -- Best regards, Adam GROSZER mailto:agros...@gmail.com -- Quote of the day: Nature gives man corn but he must grind it; God gives man a will but he must make the right choices. - Bishop Fulton J. Sheen ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Segfault in zope.configuration
On Fri, 02 Apr 2010 11:29:06 +0800 Martin Aspeli wrote: Hello, > > >> The weird thing is that it's not parsing of any file: it happens > >> during a standard configure.zcml (for the collective.xdv package), > >> but z3c.autoinclude itself is invoked from another ZCML file, so > >> it must've been able to read that. > >> > >> Any tips on how to debug or similar experiences would be > >> appreciated! > > > > Can you reproduce this, reliably? > > Yes. > I already got segfaults myself with zope.component in Zope 2.11 when doing race conditions: two threads registering the same adapter at the same time. It corrupted Python memory leading to segfault few seconds after. Maybe somehow you have the same thing. I don't image writing a test for it, so I just adding a lock around all registration steps in the ZCA, and it worked fine. Best regards, Sylvain, -- Sylvain Viollon -- Infrae t +31 10 243 7051 -- http://infrae.com Hoevestraat 10 3033GC Rotterdam -- The Netherlands ___ Zope-Dev maillist - Zope-Dev@zope.org https://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope )