Conversation
|
I have made a PR to copy the Once approved and merged, the same can be done for the 3.x branch that we use on Plone 6.0 and 6.1. That would fix the problem here. |
|
@jenkins-plone-org please run jobs |
|
Still other problems with zeoserver, now with ModuleNotFound error for zc.locking. Has to do with namespaces and how the |
|
Why are we trying to use a Zope version that requires switching to native namespaces with a version of Plone that does not support it? I thought making the switch at one time was the point of the 6.2 release. |
|
@davisagli During the lifetime of 6.1 we have already switched to native namespaces for the The danger if we don't upgrade to Zope 5.14, is that a security fix may come out in for example Zope 5.14.2, and Plone would either need to suddenly make the upgrade then, or remain vulnerable (or have some hotfix package again) Or hope that the Zope 5.14.2 package works correctly with the package versions that are pinned by 5.13. Then again: the same is already true for Plone 6.0: this uses Zope 5.13. We are not going to upgrade it, as it is out of maintenance support. But it still has security support, so we would need a backport of a theoretical security fix for 6.0. I need to write down the problem that I see. But the tests in this PR are green, so mostly it is fine. |
|
I have written the problem down at length in a Zope issue: |
|
Translated to Plone, the problem can be seen when using the branch of this PR. Create a Run buildout. Using the latest And repozo: The same |
Note that all `zope.*` packages that are pinned by Zope now use native namespaces.
So we had to do the same for the few `zope.*` pins that we have ourselves.
Note though that in our `versions-extra.cfg` we have `zope.mkzeoinstance = 6.0` which still uses the old-style `pkg_resources` namespace.
But the repo is archived, and the package is only used by `plone.recipe.zeoserver`. So should be okay.
Actually, no it is NOT okay. If I add a zeoserver part in `buildout.coredev` I get an error when running buildout:
```
Installing zeoserver.
While:
Installing zeoserver.
An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
File "/Users/maurits/community/plone-coredev/6.1/lib/python3.13/site-packages/zc/buildout/buildout.py", line 2330, in main
getattr(buildout, command)(args)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/Users/maurits/community/plone-coredev/6.1/lib/python3.13/site-packages/zc/buildout/buildout.py", line 869, in install
installed_files = self[part]._call(recipe.install)
File "/Users/maurits/community/plone-coredev/6.1/lib/python3.13/site-packages/zc/buildout/buildout.py", line 1689, in _call
return f()
File "/Users/maurits/shared-eggs/cp313/plone.recipe.zeoserver-3.0.5-py3.13.egg/plone/recipe/zeoserver/recipe.py", line 86, in install
from zope.mkzeoinstance import ZEOInstanceBuilder
File "/Users/maurits/shared-eggs/cp313/zope.mkzeoinstance-6.0-py3.13.egg/zope/mkzeoinstance/__init__.py", line 46, in <module>
import ZODB
File "/Users/maurits/shared-eggs/cp313/ZODB-6.2-py3.13.egg/ZODB/__init__.py", line 17, in <module>
from persistent import TimeStamp
File "/Users/maurits/shared-eggs/cp313/persistent-6.5-py3.13-macosx-15.4-arm64.egg/persistent/__init__.py", line 34, in <module>
from persistent import interfaces as _interfaces
File "/Users/maurits/shared-eggs/cp313/persistent-6.5-py3.13-macosx-15.4-arm64.egg/persistent/interfaces.py", line 17, in <module>
from zope.interface import Attribute
ModuleNotFoundError: No module named 'zope.interface'
```
So at the moment we cannot use this new Zope version.
Possible solutions I see:
1. Ask to unarchive the `zope.mkzeoinstance` repo and switch it to using native namespaces.
2. Copy the relevant part of `zope.mkzeoinstance` to `plone.recipe.zeoserver`. This should be done on branches for both 6.1 and 6.2.
Why did I not notice this on Plone 6.2? Ah, because there we are using `zc.buildout` 5, which basically installs every package as if it had native namespaces.
Plus latest compatible packaging, pip, setuptools.
78d2eeb to
991be23
Compare
|
I updated the PR to Zope 5.14.2, and zc.buildout 4.2.0. With that, the ModuleNotFoundErrors that I saw, are gone. For me this can be merged when green. @jenkins-plone-org please run jobs |
Note that all
zope.*packages that are pinned by Zope now use native namespaces. So we had to do the same for the fewzope.*pins that we have ourselves.Note though that in our
versions-extra.cfgwe havezope.mkzeoinstance = 6.0which still uses the old-stylepkg_resourcesnamespace. But the repo is archived, and the package is only used byplone.recipe.zeoserver. So should be okay.Actually, no it is NOT okay. If I add a zeoserver part in
buildout.coredevI get an error when running buildout:So at the moment we cannot use this new Zope version. So I open this as a draft PR.
Possible solutions I see:
zope.mkzeoinstancerepo and switch it to using native namespaces.zope.mkzeoinstancetoplone.recipe.zeoserver. This should be done on branches for both 6.1 and 6.2.Why did I not notice this on Plone 6.2? Ah, because there we are using
zc.buildout5, which basically installs every package as if it had native namespaces.