ZODB3.11 code creeping into Plone5


I had an interesting afternoon yesterday, debugging test failures that happened while setting up the first layers. The error was not very helpful:

ValueError: _p_serial must be an 8-character bytes array

It turned out that due to a mistake, one package declared a dependency on persistent. Persistent is a package that has been extracted from ZODB3 3.10 to make living on its own. On its way there have been backward incompatible changes, that have haunted me here. I haunted me, because the way a tid is constructed changed slightly, and my tid was double quoted and causes this _p_serial error above.
I mention it as plone5 relevant because we have a version pinning for persistent in the coredev. Removing this is trivial, but then we use z3c.form 3.2.1 which has a test dependency on persistent. I am not sure what to make of that.
Should we pin an older version of z3c.form?
Should we try to remove this dependency on z3c.form upstream?

What is your opinion?

oh, creepy... the 'persistent' dependency also hit me once. but it's only a test-dependency in z3c.form. if we don't depend on the z3c.form [test], it shouldn't be pulled in.

I've just tried to use ZODB3 3.11 with Plone 4.3.4 and it seems to work fine. AFAIK it's not officially supported, so i would be interested in others using it.

3.11 is a meta package installing ZODB 4 and a bunch of other packages. I hope the backward incompatible changes in Persistent 4 which 3.11 depends on do not haunt you