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

Reply via email to