[ZODB-Dev] RFC: Python2 - Py3k database compatibility

Jim Fulton jim at zope.com
Mon Apr 29 15:00:12 UTC 2013


On Mon, Apr 29, 2013 at 10:20 AM, Tres Seaver <tseaver at palladion.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 04/29/2013 09:48 AM, Jim Fulton wrote:
>> On Sun, Apr 28, 2013 at 8:34 PM, Stephan Richter
>> <stephan.richter at gmail.com> wrote:
>>> On Sunday, April 28, 2013 07:23:12 PM Jim Fulton wrote:
>>>> Can ZODB 4 be used now without zodbpickle?
>>>
>>> No, unfortunately for Py2 we need the custom cPickle and for Py3
>>> `noload()` support (as Tres mentioned).
>>
>> This is a problem.
>>
>> The only change in ZODB 4.0 was supposed to be the breakup.
>>
>> This was supposed to be a low-risk release.  The separation into
>> multiple packages was supposed to increase agility, but now it appears
>> we're stuck.
>
> The only reason we had delayed the 4.0 release (in my mind, anyway) was
> that it was a good way to signal the Py3k compatibliity changes.

That was a bad idea. Unless you want to reinforce the fact that
Python 3 is an agility killer. .5 ;)

There's release meta data to signal Python 3 compatibility.

> I'm not
> wedded to calling the Py3k-compatible release "4.0".

Cool.

>> I'd like there to a stable 4.0 release **soon** that doesn't use
>> zodbpickle for Python 2.
>>
>> For now, I suggest we focus on stability and the ability to make
>> progress on non-Python-3-related work.
>>
>> After that is achieved, I suggest we get to the point where people
>> can create new databases and use them with Python 3.  We need to do
>> this without hindering the ability to make new stable releases.
>
> The trunk of the 'ZODB' package does not have any of the Py3k /
> zodbpickle changes yet.  We could make a ZODB 4.0b1 release from the
> trunk today

+1.

> and create a '4.0' stable branch prior to any merge of the
> 'py3' work.

Let's keep master stable.  Maybe someone will want to
add features before the Python 3 support is stable.
I don't want to hold 4.1 hostage either.

I suggest breaking the Python 3 work into increments
that can each be introduced without sacrificing stability.

The first increment could provide Python 3 support
without any conversion or compatibility support. This is
something you could probably achieve pretty quickly and
would allow you meet your immediate goals.

>> As far as the grander vision for Python2/3 transition and
>> interoperability, we need to make progress incrementally and not
>> sacrifice stability of the master branch.
>>
>> I made the 3.11 release fully expecting a stable 4.0 release soon.
>
> That was of the 'ZODB3' meta-package, right?

Yes. It was predicated on a stable 4.0 release that had
very little in it beyond the split into separate packages.

It was intended to help people start transitioning
from ZODB3 to ZODB, but that can't happen until ZODB is
stable.

Jim

-- 
Jim Fulton
http://www.linkedin.com/in/jimfulton


More information about the ZODB-Dev mailing list