-
Notifications
You must be signed in to change notification settings - Fork 96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Python 3 compatibility #39
Comments
I updated the list with correct capitalizations and links. |
Updated the list with four dependencies that were missing. |
initgroups turned out to be available in Python's os module in Python 2.7, so I dropped the dependency and made a new initgroups release that is merely a shim for For nt_svcutils, I removed the code from zopectl that used this. This was only needed to install and manage a Windows system service. For daemonizing someone can use supervisor or any other tool that provides that. I also made some progress on ZCTextIndex, by removing its C code and replacing it with pure Python. The speed advantage shouldn't matter that much anymore, and if someone really cares about full text indexing, they'll likely use Solr or Elasticsearch these days. Finally for DocumentTemplate, I have a branch to replace the C code with pure Python as well, but am not quite finished with that yet (zopefoundation/DocumentTemplate#2). |
I merged the code from Products.OFSP got back into Zope2, as there wasn't much left there. So it'll be done as part of Zope2 itself. |
I've also started to try and break out ZServer and make it an optional dependency. I think it should be possible to create a new ZServer distribution and move the ZServer, Lifetime and webdav packages into it. That new distribution should depend on Zope2, but not the other way around. There's still quite some work to do for that, but it should be possible. With that split, we could make Zope2 Python 3 compatible while using the WSGI publisher, without having to port ZServer at first or ever. |
It should be possible to cut out ZServer from Zope2 without making ZServer depend on Zope2 at all, by moving all the parts that import from ZPublisher into ZPublisher itself, turning ZPublisher into a pure WSGI app and turning ZServer into a pure WSGI HTTP Server. I expand on this subject here. |
I propose linking the respective tracking bugs for python3 compatibility in each project instead of just the projects. Anybody against this? |
@dwt +1 |
As a current status, we have a couple of issues / branches / PR's in progress and some of those can be worked on in parallel:
Once all of these are done, work can begin on Zope2 itself. It might be possible to use all the WIP branches to start, but it might not. Once Zope2 is done, work can start on the various |
Hi @hannosch Just FYI, I try to let Pyston support Zope. But they didn't support the I start it by reading the source code of RestrictedPython. And then compare the ast before and after the It just a prototype, but in theory, it could work both Python 2/3 and Pyston. I think it's better to let you and other guys to know there already have some efforts to let RestrictedPython to support Python 3. Where to go on next is depend on you. (Just in case, I will resend this message to Zope dev mailist again). Thanks all! |
@Daetalus Can you put this pointer into the RestrictedPython issue at zopefoundation/RestrictedPython#12. There's a group of people who have been working on a branch there for the past 12 months using the same approach you took. |
Most recent status and some tips for getting an instance / debug it over at #129. |
New Zope2 4.0a5 release is up on PyPi. This still has 2 test errors related to the There's also three more errors related to There are also one or two test failures related to And finally |
I think I fixed the
I got those tests passing today in #137.
One of those is fixed in #138.
That one is ugly: the |
I've been working on MailHost, and like Tres says, it's another big string compatibility mess. |
There's still a test failure:
I took that to mean the way |
Final test failure is fixed and the master branch is green on Py{27,34,35,36}.
And of course lots of untested code in Zope is likely still wrong ;) |
untested code ? really ? :) |
#148 is the biggest unresolved blocker I know of for "core" Zope: I set up an instance yesterday on Python 3.6 and was able to exercise all the default ZMI options except those involving file uploads. |
All the dependencies are done (MailHost is now entirely optional). Closing this in favor of the b1 milestone, which tracks general issues - not only those about Python 3 compatibility. |
According to caniusepython3 the following packages need some love to get Python 3 support:
Optional dependencies:
Zope itself:
The text was updated successfully, but these errors were encountered: