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

Jim Fulton jim at zope.com
Fri May 10 21:25:15 UTC 2013


On Fri, May 10, 2013 at 5:04 PM, Tres Seaver <tseaver at palladion.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 05/08/2013 12:34 PM, Tres Seaver wrote:
>> On 04/29/2013 08:37 PM, Stephan Richter wrote:
>>> Well, that's the py3 branch. As Tres mentioned, zodbpickle is ready
>>> for Py3 with noload() support. I totally agree that we do not need
>>> to solve any of the transition work now.
>>
>>> So for ZODB Py3 support we need to:
>>
>>> 1. Merge the py3 branch into trunk. 2. Simplify zodbpickle to just
>>> contain the cPickle code that is Py3 compatible.
>>
>>> I do not care whether this happens for ZODB 4.0 or 4.1 as long as I
>>> get some commitment that 4.1
>>
>> Chris and I chatted with Jim about this over beers last Friday.  I
>> explained that the current 'py3; branch does not require the
>> 'zodbpickle everywhere' stuff (the Python2 side doesn't use
>> 'zodbpickle').  Jim then agreed that we could merge that branch before
>> releasing 4.0.  We will need to add some caveats to the docs /
>> changelog (Python3 support is only for new applications, no forward- /
>> backward-compatibility for data, etc.)
>>
>> Given that ZODB won't import or use 'zodbpickle' under Python2, I
>> don't think we need to remove the current Python2 support (as released
>> in 0.4.1):  the Python3 version (with noload()) has been there all
>> along.
>
>
> I have merged the 'py3' branch to 'master':
>
> - -  All tests pass under all four platforms using buildout.
>
> - -  All unit tests pass on all four platforms using 'setup.py test'.
>
> I added the following note to the changelog:
>
>    ZODB 4.0.x is supported on Python 3.x for *new* applications only.
>    Due to changes in the standard library's pickle support, the Python3
>    support does **not** provide forward- or backward-compatibility
>    at the data level with Python2.  A future version of ZODB may add
>    such support.
>
>    Applications which need migrate data from Python2 to Python3 should
>    plan to script this migration using separte databases, e.g. via a
>    "dump-and-reload" approach, or by providing explicit fix-ups of the
>    pickled values as transactions are copied between storages.
>
> I pushed out a ZODB 4.0.0b1 release after the merge.  If the buildbots
> stay green over the weekend, I think we can release a 4.0.0 final early
> next week.

Great, thanks!

Jim

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


More information about the ZODB-Dev mailing list