v4.1.5
Bugfix release, which increases backwards compatibility with earlier eopkg.py2 and eopkg.py3 versions.
- Previously,
eopkg.py3used an unversioned gdbm (dbm.gnu) format database for the underlying FilesDB class backing shelve, which was saved to a different file than theeopkg.py2FilesDB 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.py2andeopkg.py3. This avoids the previous situation of separate FilesDB instances going out of sync, since we now use the same file as theeopkg.py2FilesDB 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 rdbhas 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