Skip to content
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

Add preliminary support for Python 3.9a4. #784

Merged
merged 15 commits into from
Mar 6, 2020
Merged

Add preliminary support for Python 3.9a4. #784

merged 15 commits into from
Mar 6, 2020

Conversation

icemac
Copy link
Member

@icemac icemac commented Feb 11, 2020

No description provided.

@icemac icemac requested a review from dataflake February 11, 2020 19:44
@icemac icemac self-assigned this Feb 11, 2020
@dataflake
Copy link
Member

Great idea. I was thinking of that this morning, too. Travis may be the biggest problem, as always...

Michael Howitz added 2 commits February 11, 2020 21:31
Without these changes even pip --version fails because it cannot import pip. 😞
@icemac
Copy link
Member Author

icemac commented Feb 11, 2020

After fixing pip the current error is:

Traceback (most recent call last):
1007  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/AccessControl-4.1-py3.9-linux-x86_64.egg/AccessControl/__init__.py", line 18, in <module>
1008    from AccessControl.Implementation import setImplementation
1009  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/AccessControl-4.1-py3.9-linux-x86_64.egg/AccessControl/Implementation.py", line 99, in <module>
1010    setImplementation(_default_implementation)
1011  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/AccessControl-4.1-py3.9-linux-x86_64.egg/AccessControl/Implementation.py", line 53, in setImplementation
1012    from AccessControl import ImplC as impl  # NOQA
1013  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/AccessControl-4.1-py3.9-linux-x86_64.egg/AccessControl/ImplC.py", line 26, in <module>
1014    from AccessControl.ImplPython import SecurityManager
1015  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/AccessControl-4.1-py3.9-linux-x86_64.egg/AccessControl/ImplPython.py", line 44, in <module>
1016    from AccessControl.ZopeGuards import guarded_getitem  # NOQA
1017  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/AccessControl-4.1-py3.9-linux-x86_64.egg/AccessControl/ZopeGuards.py", line 33, in <module>
1018    from AccessControl.SecurityInfo import secureModule
1019  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/AccessControl-4.1-py3.9-linux-x86_64.egg/AccessControl/SecurityInfo.py", line 45, in <module>
1020    from Persistence import Persistent
1021  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/Persistence-3.0-py3.9-linux-x86_64.egg/Persistence/__init__.py", line 60, in <module>
1022    from Persistence.mapping import PersistentMapping  # NOQA
1023  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/Persistence-3.0-py3.9-linux-x86_64.egg/Persistence/mapping.py", line 74, in <module>
1024    class PersistentMapping(with_metaclass(
1025  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/Persistence-3.0-py3.9-linux-x86_64.egg/Persistence/mapping.py", line 70, in __new__
1026    return meta(name, bases, d)
1027  File "/home/travis/build/zopefoundation/Zope/.tox/py39/eggs/Persistence-3.0-py3.9-linux-x86_64.egg/Persistence/mapping.py", line 31, in __new__
1028    return ExtensionClass.__new__(cls, *args, **kw)
1029TypeError: multiple bases have instance lay-out conflict

It does not happen locally with the same Python version.
I am out for now.

@dataflake
Copy link
Member

For what it's worth, I can confirm the tests on Python 3.9 run fine in my macOS sandbox.

@icemac
Copy link
Member Author

icemac commented Feb 12, 2020

@dataflake Same here. My next steps will be to try AccessControl, ExtensionClass, Persistence, persistent on TravisCI for 3.9 to see if it breaks there, too.

@dataflake
Copy link
Member

On a CentOS 7 install the tests run through without issue. The Python interpreter was compiled with --enable-optimizations, nothing else.

@icemac
Copy link
Member Author

icemac commented Feb 14, 2020

This has to do with zopefoundation/persistent#124 and zopefoundation/Persistence#22. These issues seem to have been fixed before we can use Python 3.9. So moving the issue to future after Zope 5.0. Preliminary Python 3.9 support should not prevent the Zope 5 release.

@icemac icemac modified the milestone: 5.1 Feb 14, 2020
@dataflake
Copy link
Member

I fully agree.

@icemac icemac changed the title Add preliminary support for Python 3.9a3. Add preliminary support for Python 3.9a4. Mar 6, 2020
@icemac icemac marked this pull request as ready for review March 6, 2020 14:53
Copy link
Member

@dataflake dataflake left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tests run through without issue now.

@icemac icemac merged commit 81081e9 into master Mar 6, 2020
@icemac icemac deleted the py39 branch March 6, 2020 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants