* 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. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-berkeleydb?expand=0&rev=7
236 lines
13 KiB
Plaintext
236 lines
13 KiB
Plaintext
-------------------------------------------------------------------
|
|
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
|