[Zope-dev] Porting Zope to Python 3 Update

Stephan Richter stephan.richter at gmail.com
Sat Mar 2 00:34:04 UTC 2013


Hi everyone,

as the week ends, I thought I might give a brief update on the Python 3 
porting effort.

According to the "Unofficial Zope on Python 3 status page"[1], about 110 
packages are ported to Python 3.3.

Hanno and I worked this week on updating the ZTK configuration files and I am 
happy to announce that the ZTK passes all tests on Python 3.3! So once the 
ZODB is ported, we can start on finalizing all releases, which would pave the 
way for a ZTK 2.0 release.

Marius has made great efforts on finishing the port of ZODB. All the tests pass 
now on the py3 branch for Python 2.6, 2.7 and 3.3. He has also removed all 
resource warnings (he started at 400+). The final task will be to integrate 
zodbpickle. zodbpickle needs some changes to properly enable the "noload()" 
method. Luckily this work will entail rewriting the dump/load of persistent 
ids to be more efficient and compatible with cPickle 2.7 pickles. (We are 
working hard on making Python 2 pickles load on Python 3!)

On Wednesday, I was able to run a first Zope 3 (or should I say Bluebream?) app 
on Python 3.3. Thanks to Andrey and Albertas for porting some of the complex 
application packages. The sample application can be found in 
``zope.paste``[2]. Note the short ZCML[3] and Paster[4] files. Thanks goes to 
everyone who helped breaking unnecessary and circular dependencies to make 
this work so well!

In the process of all of the above, we have also started moving all packages 
that we are ported to Python 3 over to GitHub. I have also ported the core 
packages for Zope 2/4 and Grok already.

So what's next? I am in the process of trying to port a rather large demo 
application[5] to Python 3. We are about 20 packages (that we control) away 
from that goal. Andrey is currently working on porting zope.testbrowser to 
Python 3 by changing its internal implementation from mechanize to WebTest 
(since it is too hard to deal with mechanize). Also, we will have a serious 
look at ZEO.

I hope I got some of you interested in thinking about porting applications to 
Python 3.

[1] http://zope3.pov.lt/py3/

[2] https://github.com/zopefoundation/zope.paste

[3] 
https://github.com/zopefoundation/zope.paste/blob/master/src/zope/paste/test_app/app.zcml

[4] 
https://github.com/zopefoundation/zope.paste/blob/master/src/zope/paste/test_app/app.ini

[5] https://github.com/CipherHealth/cipher.uibuilderdemo

Regards,
Stephan
-- 
Entrepreneur and Software Geek
Google me. "Zope Stephan Richter"


More information about the Zope-Dev mailing list