After reanimation we started defibrillation of Zope and … it kinda worked:
On our sprint we got the following things done to help Zope in the Python 3 wonderland:
- Release zope.testbrowser 5.0 which is compatible with Python 3 and no longer uses mechanize.
- PullRequest for ExtensionClass with the Python 3 port of the C extension.
- five.globalrequest is now compatible with Python 3.
- PullRequest for zope.globalrequest to make it compatible with Python 3.
- Clean-up of the documentation of the ZopeToolKit (ZTK).
As grok builds on the ZTK, it is a beneficiary of the reanimation. The following steps have been undertaken to lead it to the Python 3 wonderland:
- At 16 packages work has started to reach Python 3 compatibility.
- The general testsuite of grok in groktoolkit is already running under Python 3.
- The testsuites of grokcore.annotation, grokcore.catalog, grokcore.chameleon, gorkcore.component, grokcore.content, grokcore.view, grokcore.traverser in groktoolkit show a green bar under Python 3.
- An additional optionflag for doctests has been introduced in zope.testing to help with the rewrite of assertions of Exceptions in tracebacks, which is also valuable for porting other projects with a strong focus on doctests.
We have had a discussion about the broader future of Zope:
- There could be more optional dependencies like ZServer in Zope 4.
- The ZMI could be removed altogether because it was not maintained any more for years. It should not be used by applications built on top of Zope anyway. Plone even suggests to block public access to the ZMI.
- There is a road map needed for Zope 4 so the Plone community can pick it up as decided in the Zope 4 PLIP.
- Further discussions should be held on the zope-dev list and in the issue trackers of the Zope foundation on Github. This seems to be the way to get most people involved who are interested in the future of Zope.
Conclusion: Zope is not dead. On the sprint there were nearly 20 people who use Zope for their daily work. Some of them even joined the sprint without the backup of a company in their spare time. Yes, it will need time and effort to keep Zope alive and make it prosper in the Python 3 wonderland, but Zope is still needed and has its place in the audience of web frameworks.
We at gocept will keep Zope as part of our supported technology stack in the projects it fits the purpose and will offer help to others who need to migrate a long term project into the future. We will be at the PyConDE in Munich at the end of October and will be open for questions and further discussions. Do not hesitate to talk to us.