v4.1.5
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 theeopkg.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 betweeneopkg.py2
andeopkg.py3
. This avoids the previous situation of separate FilesDB instances going out of sync, since we now use the same file as theeopkg.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 fromeopkg.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