[pybsddb] Berkeley DB 18.1.12

Jesus Cea jcea at jcea.es
Mon Dec 16 01:36:35 CET 2024


Webpage
https://www.jcea.es/programacion/pybsddb.htm

Documentation
https://docs.jcea.es/berkeleydb/latest/

PyPI:
https://pypi.org/project/berkeleydb/

Changelog:
https://www.jcea.es/programacion/pybsddb.htm#berkeleydb-18.1.12

18.1.12 - 2024-12-15
--------------------

   - **WARNING - BREAKING CHANGE:** ``berkeleydb._db`` is now
     ``berkeleydb.db``.

     This breaking change should usually require a major and/or minor
     number update. Since ``berkeleydb`` traditional numbering is
     related to the higher Oracle Berkeley DB supported, I would
     usually wait until Oracle releases a new version to upgrade my
     own version and deprecate old Python support at the same time.
     Given that Oracle has not released a new Oracle Berkeley DB in
     almost five years, I must break this practice for now.

     The new name has been available for ages and the change is
     trivial...

   - Solved ``DBEnv.memp_stat()`` crash when no database was opened
     yet. Triaged and reported by Rishin Goswami.

   - Added a new ``DBError`` subclass exception:
     ``DBNotSupportedError``.

   - Add tests for environment and database encryption.

   - Document what you should know about your key when using
     database encryption. Check the docs!

   - Python 3.14 added to the full test matrix.

   - Experimental Python 3.14 support. Tested under 3.14.0a2.

   - Export more error codes from Oracle Berkeley DB (which ones
     depends of what Oracle Berkeley DB version you use):
     DB_FOREIGN_CONFLICT, DB_LOG_BUFFER_FULL, DB_LOG_VERIFY_BAD,
     DB_REP_HANDLE_DEAD, DB_REP_LOCKOUT, DB_REP_UNAVAIL,
     DB_REP_WOULDROLLBACK, DB_SLICE_CORRUPT, DB_VERSION_MISMATCH,
     DB_REP_INELECT, DB_SYSTEM_MEM_MISSING. Some of those are not
     actually returned ever, but a generic BerkeleyDB exception is
     raised. The error codes are available for completion.

     If you need some specific exception to be raised, let me know.

   - We export more values from Oracle Berkeley DB (which ones
     depends of what Oracle Berkeley DB version you use):

     - DB_LOCK_GET_TIMEOUT, DB_LOCK_PUT_READ, DB_LOCK_TIMEOUT,
       DB_LOCK_TRADE.

     - DB_EID_MASTER.

     - DB_REP_WRITE_FORWARD_TIMEOUT.

     - DB_EVENT_REP_AUTOTAKEOVER, DB_EVENT_REP_INQUEUE_FULL,
       DB_EVENT_REP_JOIN_FAILURE, DB_EVENT_REP_WOULD_ROLLBACK,
       DB_EVENT_MUTEX_DIED, DB_EVENT_FAILCHK_PANIC.

     - DB_REPMGR_ISELECTABLE, DB_REPMGR_ISPEER,
       DB_REPMGR_CONF_DISABLE_POLL, DB_REPMGR_CONF_ENABLE_EPOLL,
       DB_REPMGR_CONF_FORWARD_WRITES,
       DB_REPMGR_CONF_PREFMAS_CLIENT,
       DB_REPMGR_CONF_PREFMAS_MASTER, DB_REPMGR_NEED_RESPONSE.

     - DB_MEM_DATABASE, DB_MEM_DATABASE_LENGTH,
       DB_MEM_EXTFILE_DATABASE, DB_MEM_REP_SITE.

     - DB_LOG_EXT_FILE.

     - DB_SET_MUTEX_FAILCHK_TIMEOUT.

     - DB_SLICED.

     - DB_VERB_BACKUP, DB_VERB_REPMGR_SSL_ALL,
       DB_VERB_REPMGR_SSL_CONN, DB_VERB_REPMGR_SSL_IO,
       DB_VERB_SLICE.

     - DB_XA_CREATE.

   - Oracle Berkeley DB>=5.3: Beside ``db.DB_VERSION_STRING`` we
     now have ``db.DB_VERSION_FULL_STRING``.

   - Oracle Berkeley DB>=6.2: Beside ``db.DB_DBT_BLOB`` we now have
     ``db.DB_DBT_EXT_FILE``.

   - Being able to test against an especific Oracle Berkeley DB
     release.

   - Code cleanup:

     - Remove unnecessary semicolons in Python code.
     - Remove unused imports.
     - Split multiple imports in a single line.
     - Split multiple statements in multiple lines.
     - Delete dead assignments.
     - Delete ancient code for ``verbose`` and ``silent`` in test
       code. I never used it, and it is maintenance load.
     - Simplify some ``assertTrue()`` and ``assertFalse()``.
     - Imports directly from ``berkeleydb`` instead of ``test_all``.
     - Copyright and license texts should be in comments, not
       docstrings.
     - Be more verbose and clear in the comparison test code.
     - Use ``isinstance()`` for type comparison.
     - Tight some tests.
     - Change some ambiguous variables.
     - Solve or silence ``ruff`` warnings.
     - Delete legacy ``pychecker`` support.
     - Delete legacy ``PyUnit GUI`` support.

-- 
Jesús Cea Avión                         _/_/      _/_/_/        _/_/_/
jcea at jcea.es - https://www.jcea.es/    _/_/    _/_/  _/_/    _/_/  _/_/
Twitter: @jcea                        _/_/    _/_/          _/_/_/_/_/
jabber / xmpp:jcea at jabber.org  _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz


More information about the pybsddb mailing list