Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-persistent for
openSUSE:Factory checked in at 2026-08-22 21:35:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-persistent (Old)
and /work/SRC/openSUSE:Factory/.python-persistent.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-persistent"
Sat Aug 22 21:35:39 2026 rev:23 rq:1373026 version:6.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-persistent/python-persistent.changes
2026-06-28 21:11:50.300819815 +0200
+++
/work/SRC/openSUSE:Factory/.python-persistent.new.1258/python-persistent.changes
2026-08-22 21:37:47.601758426 +0200
@@ -1,0 +2,8 @@
+Sat Aug 22 09:18:31 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 6.8:
+ * Add support for Python 3.15.
+ * Fix DeprecationWarning on Python 3.14+ about returning non-
+ None values from test methods in test_picklecache.py.
+
+-------------------------------------------------------------------
Old:
----
persistent-6.7.tar.gz
New:
----
persistent-6.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-persistent.spec ++++++
--- /var/tmp/diff_new_pack.IfdGXw/_old 2026-08-22 21:37:48.191779517 +0200
+++ /var/tmp/diff_new_pack.IfdGXw/_new 2026-08-22 21:37:48.192779553 +0200
@@ -19,7 +19,7 @@
%{?sle15_python_module_pythons}
Name: python-persistent
-Version: 6.7
+Version: 6.8
Release: 0
Summary: Translucent persistent objects
License: ZPL-2.1
++++++ persistent-6.7.tar.gz -> persistent-6.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/persistent-6.7/.manylinux-install.sh
new/persistent-6.8/.manylinux-install.sh
--- old/persistent-6.7/.manylinux-install.sh 2026-05-26 08:32:05.000000000
+0200
+++ new/persistent-6.8/.manylinux-install.sh 2026-08-20 12:57:49.000000000
+0200
@@ -32,7 +32,9 @@
*"cp311"*) echo 'py311';;
*"cp312"*) echo 'py312';;
*"cp313"*) echo 'py313';;
+ *"cp314t"*) echo 'py314t';;
*"cp314"*) echo 'py314';;
+ *"cp315t"*) echo 'py315t';;
*"cp315"*) echo 'py315';;
*) echo 'py';;
esac
@@ -46,8 +48,10 @@
[[ "${PYBIN}" == *"cp312/"* ]] || \
[[ "${PYBIN}" == *"cp313/"* ]] || \
[[ "${PYBIN}" == *"cp314/"* ]] || \
- [[ "${PYBIN}" == *"cp315/"* ]] ; then
- if [[ "${PYBIN}" == *"cp315/"* ]] ; then
+ [[ "${PYBIN}" == *"cp314t/"* ]] || \
+ [[ "${PYBIN}" == *"cp315/"* ]] || \
+ [[ "${PYBIN}" == *"cp315t/"* ]] ; then
+ if [[ "${PYBIN}" == *"cp315/"* ]] || [[ "${PYBIN}" == *"cp315t/"* ]] ;
then
"${PYBIN}/pip" install --pre -e /io/
"${PYBIN}/pip" wheel /io/ --pre -w wheelhouse/
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/persistent-6.7/CHANGES.rst
new/persistent-6.8/CHANGES.rst
--- old/persistent-6.7/CHANGES.rst 2026-05-26 08:32:05.000000000 +0200
+++ new/persistent-6.8/CHANGES.rst 2026-08-20 12:57:49.000000000 +0200
@@ -1,6 +1,16 @@
Change log
==========
+6.8 (2026-08-20)
+----------------
+
+- Add support for Python 3.15.
+
+- Fix ``DeprecationWarning`` on Python 3.14+ about returning non-``None``
+ values from test methods in ``test_picklecache.py``.
+ (`#235 <https://github.com/zopefoundation/persistent/issues/235>`_)
+
+
6.7 (2026-05-26)
----------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/persistent-6.7/PKG-INFO new/persistent-6.8/PKG-INFO
--- old/persistent-6.7/PKG-INFO 2026-05-26 08:32:22.670232000 +0200
+++ new/persistent-6.8/PKG-INFO 2026-08-20 12:58:05.256973300 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: persistent
-Version: 6.7
+Version: 6.8
Summary: Translucent persistent objects
Author-email: Zope Foundation and contributors <[email protected]>
Maintainer-email: Plone Foundation and contributors <[email protected]>
@@ -21,6 +21,7 @@
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
+Classifier: Programming Language :: Python :: 3.15
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Database
@@ -80,6 +81,16 @@
Change log
==========
+6.8 (2026-08-20)
+----------------
+
+- Add support for Python 3.15.
+
+- Fix ``DeprecationWarning`` on Python 3.14+ about returning non-``None``
+ values from test methods in ``test_picklecache.py``.
+ (`#235 <https://github.com/zopefoundation/persistent/issues/235>`_)
+
+
6.7 (2026-05-26)
----------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/persistent-6.7/pyproject.toml
new/persistent-6.8/pyproject.toml
--- old/persistent-6.7/pyproject.toml 2026-05-26 08:32:05.000000000 +0200
+++ new/persistent-6.8/pyproject.toml 2026-08-20 12:57:49.000000000 +0200
@@ -11,7 +11,7 @@
[project]
name = "persistent"
-version = "6.7"
+version = "6.8"
description = "Translucent persistent objects"
dynamic = ["readme"]
requires-python = ">=3.10"
@@ -35,6 +35,7 @@
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
+ "Programming Language :: Python :: 3.15",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Database",
@@ -99,6 +100,8 @@
readme = {file = ["README.rst", "CHANGES.rst"]}
+
[tool.zest-releaser]
create-wheel = false
+extra-message = ""
upload-pypi = false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/persistent-6.7/src/persistent/tests/test_picklecache.py
new/persistent-6.8/src/persistent/tests/test_picklecache.py
--- old/persistent-6.7/src/persistent/tests/test_picklecache.py 2026-05-26
08:32:05.000000000 +0200
+++ new/persistent-6.8/src/persistent/tests/test_picklecache.py 2026-08-20
12:57:49.000000000 +0200
@@ -163,7 +163,7 @@
with self.assertRaises(ValueError):
cache[KEY] = duplicate
- def test___setitem___ghost(self):
+ def _check___setitem___ghost(self):
from persistent.interfaces import GHOST
KEY = b'ghost'
@@ -181,6 +181,9 @@
self.assertIs(cache[KEY], ghost)
return cache
+ def test___setitem___ghost(self):
+ self._check___setitem___ghost()
+
def test___setitem___mismatch_key_oid(self):
KEY = b'uptodate'
cache = self._makeOne()
@@ -206,7 +209,7 @@
self.assertIs(cache[KEY], uptodate)
self.assertIs(cache.get(KEY), uptodate)
- def test___setitem___persistent_class(self):
+ def _check___setitem___persistent_class(self):
KEY = b'pclass'
@@ -226,6 +229,9 @@
self.assertIs(cache.get(KEY), pclass)
return cache
+ def test___setitem___persistent_class(self):
+ self._check___setitem___persistent_class()
+
def test___delitem___non_string_oid_raises_TypeError(self):
cache = self._makeOne()
@@ -239,7 +245,7 @@
with self.assertRaises(KeyError):
del cache[b'nonesuch']
- def test___delitem___w_persistent_class(self):
+ def _check___delitem___w_persistent_class(self):
KEY = b'pclass'
cache = self._makeOne()
@@ -255,6 +261,9 @@
self.assertEqual(cache.ringlen(), 0)
return cache, KEY
+ def test___delitem___w_persistent_class(self):
+ self._check___delitem___w_persistent_class()
+
def test___delitem___w_normal_object(self):
KEY = b'uptodate'
cache = self._makeOne()
@@ -514,7 +523,7 @@
with self.assertRaises(ValueError):
cache.new_ghost(b'123', candidate)
- def test_new_ghost_obj_already_in_cache(self):
+ def _check_new_ghost_obj_already_in_cache(self):
KEY = b'123'
cache = self._makeOne()
candidate = self._makePersist(oid=KEY)
@@ -525,6 +534,9 @@
self.assertRaises(ValueError, cache.new_ghost, KEY, candidate)
return cache, KEY, candidate
+ def test_new_ghost_obj_already_in_cache(self):
+ self._check_new_ghost_obj_already_in_cache()
+
def test_new_ghost_success_already_ghost(self):
from persistent.interfaces import GHOST
@@ -551,7 +563,7 @@
self.assertEqual(candidate._p_jar, jar)
self.assertEqual(candidate._p_state, GHOST)
- def test_new_ghost_w_pclass_non_ghost(self):
+ def _check_new_ghost_w_pclass_non_ghost(self):
KEY = b'123'
class Pclass:
@@ -563,7 +575,10 @@
self.assertEqual(Pclass._p_oid, KEY)
return cache, Pclass, KEY
- def test_new_ghost_w_pclass_ghost(self):
+ def test_new_ghost_w_pclass_non_ghost(self):
+ self._check_new_ghost_w_pclass_non_ghost()
+
+ def _check_new_ghost_w_pclass_ghost(self):
KEY = b'123'
class Pclass:
@@ -575,6 +590,9 @@
self.assertEqual(Pclass._p_oid, KEY)
return cache, Pclass, KEY
+ def test_new_ghost_w_pclass_ghost(self):
+ self._check_new_ghost_w_pclass_ghost()
+
def test_invalidate_miss_single(self):
KEY = b'123'
cache = self._makeOne()
@@ -618,7 +636,7 @@
self.assertEqual(c1._p_state, GHOST)
self.assertEqual(c2._p_state, GHOST)
- def test_debug_info_w_persistent_class(self):
+ def _check_debug_info_w_persistent_class(self):
KEY = b'pclass'
class pclass:
@@ -642,7 +660,10 @@
return pclass, info[0]
- def test_debug_info_w_normal_object(self):
+ def test_debug_info_w_persistent_class(self):
+ self._check_debug_info_w_persistent_class()
+
+ def _check_debug_info_w_normal_object(self):
KEY = b'uptodate'
cache = self._makeOne()
uptodate = self._makePersist(state=UPTODATE, oid=KEY)
@@ -660,7 +681,10 @@
self.assertEqual(typ, type(uptodate).__name__)
return uptodate, info[0]
- def test_debug_info_w_ghost(self):
+ def test_debug_info_w_normal_object(self):
+ self._check_debug_info_w_normal_object()
+
+ def _check_debug_info_w_ghost(self):
from persistent.interfaces import GHOST
KEY = b'ghost'
@@ -680,6 +704,9 @@
self.assertEqual(state, ghost._p_state)
return ghost, info[0]
+ def test_debug_info_w_ghost(self):
+ self._check_debug_info_w_ghost()
+
def test_setting_non_persistent_item(self):
cache = self._makeOne()
with self.assertRaisesRegex(
@@ -829,24 +856,24 @@
self.assertFalse(updated)
def test___delitem___w_persistent_class(self):
- cache, key = super().test___delitem___w_persistent_class()
+ cache, key = self._check___delitem___w_persistent_class()
self.assertNotIn(key, cache.persistent_classes)
def test___setitem___ghost(self):
- cache = super().test___setitem___ghost()
+ cache = self._check___setitem___ghost()
self.assertEqual(cache.ringlen(), 0)
def test___setitem___persistent_class(self):
- cache = super().test___setitem___persistent_class()
+ cache = self._check___setitem___persistent_class()
self.assertEqual(_len(cache.items()), 0)
def test_new_ghost_w_pclass_non_ghost(self):
- cache, Pclass, key = super().test_new_ghost_w_pclass_non_ghost()
+ cache, Pclass, key = self._check_new_ghost_w_pclass_non_ghost()
self.assertEqual(Pclass._p_jar, cache.jar)
self.assertIs(cache.persistent_classes[key], Pclass)
def test_new_ghost_w_pclass_ghost(self):
- cache, Pclass, key = super().test_new_ghost_w_pclass_ghost()
+ cache, Pclass, key = self._check_new_ghost_w_pclass_ghost()
self.assertEqual(Pclass._p_jar, cache.jar)
self.assertIs(cache.persistent_classes[key], Pclass)
@@ -964,16 +991,16 @@
self.assertNotIn(KEY, cache.persistent_classes)
def test_debug_info_w_normal_object(self):
- obj, info = super().test_debug_info_w_normal_object()
+ obj, info = self._check_debug_info_w_normal_object()
self.assertEqual(info[1], len(gc.get_referents(obj)))
self.assertEqual(info[3], UPTODATE)
def test_debug_info_w_ghost(self):
- ghost, info = super().test_debug_info_w_ghost()
+ ghost, info = self._check_debug_info_w_ghost()
self.assertEqual(info[1], len(gc.get_referents(ghost)))
def test_debug_info_w_persistent_class(self):
- pclass, info = super().test_debug_info_w_persistent_class()
+ pclass, info = self._check_debug_info_w_persistent_class()
self.assertEqual(info[3], UPTODATE)
self.assertEqual(info[1], len(gc.get_referents(pclass)))
@@ -1138,8 +1165,7 @@
self.assertEqual(len(cache), 1)
def test_new_ghost_obj_already_in_cache(self):
- base_result = super().test_new_ghost_obj_already_in_cache()
- cache, key, candidate = base_result
+ cache, key, candidate = self._check_new_ghost_obj_already_in_cache()
# If we're sneaky and remove the OID and jar, then we get the duplicate
# key error. Removing them only works because we're not using a real
# persistent object.
@@ -1264,7 +1290,7 @@
verifyObject(IExtendedPickleCache, self._makeOne(), tentative=True)
def test___setitem___persistent_class(self):
- cache = super().test___setitem___persistent_class()
+ cache = self._check___setitem___persistent_class()
self.assertEqual(_len(cache.items()), 1)
def test_cache_garbage_collection_bytes_with_cache_size_0(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/persistent-6.7/src/persistent.egg-info/PKG-INFO
new/persistent-6.8/src/persistent.egg-info/PKG-INFO
--- old/persistent-6.7/src/persistent.egg-info/PKG-INFO 2026-05-26
08:32:22.000000000 +0200
+++ new/persistent-6.8/src/persistent.egg-info/PKG-INFO 2026-08-20
12:58:05.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: persistent
-Version: 6.7
+Version: 6.8
Summary: Translucent persistent objects
Author-email: Zope Foundation and contributors <[email protected]>
Maintainer-email: Plone Foundation and contributors <[email protected]>
@@ -21,6 +21,7 @@
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
+Classifier: Programming Language :: Python :: 3.15
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Database
@@ -80,6 +81,16 @@
Change log
==========
+6.8 (2026-08-20)
+----------------
+
+- Add support for Python 3.15.
+
+- Fix ``DeprecationWarning`` on Python 3.14+ about returning non-``None``
+ values from test methods in ``test_picklecache.py``.
+ (`#235 <https://github.com/zopefoundation/persistent/issues/235>`_)
+
+
6.7 (2026-05-26)
----------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/persistent-6.7/tox.ini new/persistent-6.8/tox.ini
--- old/persistent-6.7/tox.ini 2026-05-26 08:32:05.000000000 +0200
+++ new/persistent-6.8/tox.ini 2026-08-20 12:57:49.000000000 +0200
@@ -12,15 +12,17 @@
py314,py314-pure
py315,py315-pure
py314t,py314t-pure
+ py315t,py315t-pure
pypy3
docs
coverage
[testenv]
-pip_pre = py315: true
+pip_pre =
+ py315: true
+ py315t: true
deps =
setuptools >= 78.1.1,< 82
- Sphinx
setenv =
pure: PURE_PYTHON=1
!pure-!pypy3: PURE_PYTHON=0