[pybsddb] berkeleydb 18.1.10 released

Jesus Cea jcea at jcea.es
Mon Jun 24 20:39:53 CEST 2024


This release hits an important landmark. It uses Stable ABI under all 
supported Python versions, so you can compile the module once and use 
that binary under any supported python version.



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

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

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

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

Changelog:

18.1.10 - 2024-06-24
--------------------

   - Since MS Windows is unsupported without community help, I
     deleted some legacy code. It could be restored if there is
     demand and some help to improve MS Windows support.

   - New URL for Oracle documentation.

   - Now we also use Python Stable ABI under Python 3.8 and 3.9.

     Under Python 3.10 and up we can define types that users can
     not instantiate as ``Py_TPFLAGS_DISALLOW_INSTANTIATION``, but
     that flag is not available under previous Python versions.

     In Python 3.8 and 3.9 we used to do ``type->tp_new = NULL;``
     for that, but this approach is not available under Python
     Stable ABI. That is the reason this module could use Python
     Stable ABI only when compiled under Python 3.10 and superior.

     In this release we define the slot ``Py_tp_new`` as ``NULL``
     in Python 3.8 and 3.9 to achieve the same effect, and that is
     available under Python Stable ABI.

   - Since this module can now use Python Stable ABI under all
     supported Python releases, that is exactly what we do. From
     now on this module always uses Python Stable ABI.

   - **WARNING - BREAKING CHANGE:** Change return value of
     ``berkeleydb.py_limited_api()``.

     This function was introduced in 18.1.9 and it is used to
     indicate if the module was using the Python Stable ABI or not,
     and the version Python Stable ABI used.

     Now that the module has been improved to use Python Stable ABI
     always, the function returns a tuple of integers. First tuple
     element tells us what Python Stable ABI version are we
     supporting. Second element tells us what Python release was
     this module compiled under, although it should work in any
     more recent Python release.

     Since this function was introduced in release 18.1.9, we
     consider this breaking change a minor infraction affecting
     most probably nobody.

   - Delete some unneeded ancient Python 2.x code.

   - Delete more unneeded code to check threading support since
     Python 3.7 and up always guarantee threads.

-- 
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