File python-berkeleydb.changes of Package python-berkeleydb

-------------------------------------------------------------------
Mon Feb  3 14:02:53 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>

- Update to 18.1.13
  * WARNING: Being able to compile the bindings on non x86/x86_64 Linux
    systems (ARM, RISC-V, etc). This improvement required to change the
    way compilation on Linux worked. If you find any issue with this,
    please report.
  * Compile the C module with extra static analysis and be more strict.
  * Some functions have unused parameters that we would like to preserve.
  * Different types in different python subinterpreters are tricky under
    Py_LIMITED_API < Python 3.10. We will delete the workarounds when
    Python 3.10 be the minimal supported version.
  * Delete some unused parameters thru all the source code.
  * Be explicit and complete in the sentinel values.
  * Be explicit initializing (missing) docstrings.
  * Rewrite some function prototypes to avoid warning when being strict
    and to avoid unneeded function castings.
    + Functions METH_NOARGS require two parameters, although one of them
      will be ignored.
  * Be sure we don't wrap an unsigned int operation, bypassing an assertion.
  * Update copyright to 2025.
  * 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.
- from versiom 18.1.12
  * 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.
- Use Python 3.11 on SLE-15 by default

-------------------------------------------------------------------
Tue Nov 19 12:52:51 UTC 2024 - Dirk Müller <dmueller@suse.com>

- update to 18.1.11:
  * WARNING - BREAKING CHANGE: Drop support for Python 3.8. 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. I am sorry if this update breaks your Python 3.8
    environment. In that case, please pin your berkeleydb
    installation to

-------------------------------------------------------------------
Wed Oct  9 06:33:55 UTC 2024 - Dirk Müller <dmueller@suse.com>

- update to 18.1.10:
  * 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:`Oracle documentation <index.html>`.
  * 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.
  * pkg_resources is deprecated, so migrate to packaging. This is
    already provided by modern setuptools. This change only
    affects you if you run the test suite.
  * If compiled under Python 3.10 or higher, we use the Python
    Stable ABI, as defined in PEP 384 and related PEPs. That is,
    you can use the same compiled module with any Python release
    if Python version >= 3.10. In order to achieve this, we have
    made these changes:  Some fast Python API (not error
    checking) have been replaced by somewhat slower functions
    (functions that do error checking), because the former are
    not available in the Stable ABI: PyBytes_GET_SIZE(),
    PyBytes_AS_STRING(), PyTuple_SET_ITEM(). We replaced
    PyErr_Warn() by PyErr_WarnEx() because it is not available in
    the Stable ABI. When an exception is raised because an
    incompatible type, we need to write complicated code because
    Py_TYPE(keyobj)->tp_name is not available in the Stable ABI.
    Code generated for Python < 3.11 is "ugly", we will clean it
    up when the minimum supported Python version is 3.11.
    TYPE->tp_alloc is not available under the Stable ABI. We
    replace it with PyType_GenericNew(). Internal types that
    should NOT be instanciated by the user has type->tp_new =
    NULL. This can not be done under the Stable ABI, so we use
    Py_TPFLAGS_DISALLOW_INSTANTIATION flag. This is the reason we
    only create Stable ABI modules under Python >= 3.10, because
    that flag is defined in that Python release. The new function
    berkeleydb.py_limited_api() returns an integer describing the
    minimum supported Stable ABI or None. If None, the module is
    not compiled with Stable ABI and can not be used with a
    different Python version. When not None, the value of
    berkeleydb.py_limited_api() can be easily interpreted using
    something like hex(berkeleydb.py_limited_api()).
  * Some fast Python API (not error checking) have been replaced
    by somewhat slower functions (functions that do error
    checking), because the former are not available in the Stable
    ABI: PyBytes_GET_SIZE(), PyBytes_AS_STRING(),
    PyTuple_SET_ITEM().
  * We replaced PyErr_Warn() by PyErr_WarnEx() because it is not
    available in the Stable ABI.
  * When an exception is raised because an incompatible type, we
    need to write complicated code because
    Py_TYPE(keyobj)->tp_name is not available in the Stable ABI.
    Code generated for Python < 3.11 is "ugly", we will clean it
    up when the minimum supported Python version is 3.11.
  * TYPE->tp_alloc is not available under the Stable ABI. We
    replace it with PyType_GenericNew().
  * Internal types that should NOT be instanciated by the user
    has type->tp_new = NULL. This can not be done under the
    Stable ABI, so we use Py_TPFLAGS_DISALLOW_INSTANTIATION flag.
    This is the reason we only create Stable ABI modules under
    Python >= 3.10, because that flag is defined in that Python
    release.
  * The new function berkeleydb.py_limited_api() returns an
    integer describing the minimum supported Stable ABI or None.
    If None, the module is not compiled with Stable ABI and can
    not be used with a different Python version. When not None,
    the value of berkeleydb.py_limited_api() can be easily
    interpreted using something like
    hex(berkeleydb.py_limited_api()).
  * Python 3.13 added to the full test matrix.
  * Experimental Python 3.13 support. Tested under 3.13.0b2.
  * This code can be compiled under MS Windows, but I am unable
    to provide support for it and it is far from trivial. Because
    of this and some complains about it, I change the
    "Classifiers" for this project from  'Operating System :: OS
    Independent'  to  'Operating System :: Unix'  I would restore
    MS Windows support if there is some kind of community support
    for it. I can not do it by myself alone. Sorry about that.

-------------------------------------------------------------------
Mon Feb  5 03:28:49 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>

- Initial release of 18.1.8 
openSUSE Build Service is sponsored by