Skip to content

v4.1.5

Compare
Choose a tag to compare
@ermo ermo released this 15 Oct 19:09
· 14 commits to main since this release
149da48

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

  • Previously, eopkg.py3 used an unversioned gdbm (dbm.gnu) format database for the underlying FilesDB class backing shelve, which was saved to a different file than the eopkg.py2 FilesDB backing shelve, making the two go out of sync.
  • 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.py3, the FilesDB version property is set to 4. This ensures that the FilesDB is only rewritten if the user switches back and forth between eopkg.py2 and eopkg.py3. This avoids the previous situation of separate FilesDB instances going out of sync, since we now use the same file as the eopkg.py2 FilesDB backing shelve and rewrite it as appropriate.
  • 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.py3, thus ensuring that LazyDB caches are automagically updated on version mismatches.
  • The internals and the output of eopkg.py3 rdb has been cleaned up significantly, and now matches the new output from eopkg.py2 rdb.

What's Changed

  • package.py: Ensure the file list is always valid by @silkeh in #82
  • Revert "Merge pull request #41 from getsolus/filesdbornotdb" by @joebonrichie in #87
  • Fix exception when building certain pspec.xml files (python3) by @silkeh in #84
  • eopkg.py3: eopkg.py2 LazyDB and FilesDB compat tweaks by @ermo in #89
  • README: CPython dropped bsddb support in 3.9 by @ermo in #93

Full Changelog: v4.1.4...v4.1.5