Skip to content

v3.12.5

Compare
Choose a tag to compare
@ermo ermo released this 15 Oct 18:31
b19d5ac

Bugfix release, which increases backwards compatibility with earlier eopkg.py2 versions and forwards compatibility with newer eopkg.py3 versions.

  • Previously, we used a long-out-of-date db5 (bsddb/dbhash) format database for the underlying FilesDB class backing shelve. However, support for db5 was dropped in Python 3.9, thus hampering compatibility.
  • Instead, we now go to great lengths to ensure that the underlying backing shelve is auto-upgraded to a versioned gdbm format database with Pickle Protocol Version 2 contents for the FilesDB class.
  • For eopkg.py2, the FilesDB version property is set to 3. This ensures that the FilesDB is only rewritten if the user switches back and forth between eopkg.py2 and eopkg.py3.
  • LazyDB pickle caches now use Pickle Protocol Version 2 as well, and each LazyDB instance will now have a version property, which is keyed to the release version of eopkg.py2, thus ensuring that LazyDB caches are automagically updated on version mismatches.
  • The internals and the output of eopkg.py2 rdb has been cleaned up significantly.

What's Changed

  • eopkg.py2: Add explicit LazyDB and FilesDB pickle_protocol_version defaults by @ermo in #88
  • py2 LazyDB/FilesDB: Use pickle protocol v2, write gdbm-backed shelve, set FILESDB_FORMAT_VERSION = 3 by @joebonrichie and @ermo in #86
  • py2: Bring filesdb code in line with py3 version by @ermo in #94

Full Changelog: v3.12.4...v3.12.5