Zodbverify: Porting Plone with ZopeDB to Python3

For zodbupdate you can define rename rules. These seem to work for me:

rename_dict = {
    'App.interfaces IPersistentExtra': 'zope.interface Interface',
    'App.interfaces IUndoSupport': 'zope.interface Interface',
    'Products.ResourceRegistries.interfaces.settings IResourceRegistriesSettings': 'zope.interface Interface',
    'webdav.EtagSupport EtagBaseInterface': 'zope.interface Interface',
    'webdav.interfaces IFTPAccess': 'zope.interface Interface',
    # Add extra renames that seem only needed to avoid warnings:
    'webdav.interfaces IDAVCollection': 'zope.interface Interface',
    'webdav.interfaces IDAVResource': 'zope.interface Interface',
    'webdav.interfaces IWriteLock': 'zope.interface Interface',
}

Without this, zodbupdate failed with:

ModuleNotFoundError: No module named 'webdav.interfaces'; 'webdav' is not a package

Maybe that was with an alias_module for webdav already in place. My notes are inconclusive there.

But this is with a small Plone Site that started in Plone 5.0, then 5.1, now 5.2. No Archetypes. I expect that these renames are needed for all sites. So I wonder why these rewrites are not somewhere in core Plone already? Apparently people have successfully migrated Plone Sites without these. Haven't others run into the same?

2 Likes