- update to 5.1:

* Add support for Python 3.12.
- drop python312.patch (upstream)
- add python312.patch to build with python 3.12
  * Fix copying of PersistentList and PersistentMapping using copy.copy
  * Fix the Python implementation of the PickleCache to be able to
    store objects that cannot be weakly referenced.
  * Packaging-only release: get manylinux wheel built
  * Avoid raising a SystemError: error return without exception
    set when loading an object with slots whose jar generates an
  * Fix the hashcode of Python TimeStamp objects on 64-bit
    Python on Windows. See
  * Stop calling gc.collect every time PickleCache.incrgc is
    called (every transaction boundary) in pure-Python mode (PyPy).
    This means that the reported size of the cache may be wrong
  * Stop clearing the dict and slots of objects added to
    PickleCache.new_ghost (typically these values are passed to
  * Fix __setstate__ interning when state parameter is not a
  * Drop use of ctypes for determining maximum integer size, to
    increase pure-Python compatibility. See
  * Ensure that __slots__ attributes are cleared when a
    override __new__. See
  * Fix the hashcode of C TimeStamp objects on 64-bit Python 3
  * Fixed the Python(/PYPY) implementation TimeStamp.timeTime
  * When testing PURE_PYTHON environments under tox, avoid
  * Fix manifest and re-upload to fix stray files included in
  * Make the Python implementation of Persistent and PickleCache
    behave more similarly to the C implementation. In particular,
    the Python version can now run the complete ZODB and ZEO test

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-persistent?expand=0&rev=34
This commit is contained in:
Dirk Mueller 2024-01-07 20:16:55 +00:00 committed by Git OBS Bridge
parent a0cf5fa7c0
commit cdc4316ee6
5 changed files with 38 additions and 128 deletions

BIN
persistent-5.0.tar.gz (Stored with Git LFS)

Binary file not shown.

3
persistent-5.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:97ccc2fa26cc9bdcc3be1fc65aa4f4f28afe5204c2d4fd24a67445908db7469b
size 132854

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Sun Jan 7 20:15:51 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 5.1:
* Add support for Python 3.12.
- drop python312.patch (upstream)
-------------------------------------------------------------------
Mon Aug 14 21:52:43 UTC 2023 - Dirk Müller <dmueller@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file for package python-persistent
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2013-2023 LISA GmbH, Bingen, Germany.
#
# All modifications and additions to the file contributed by third parties
@ -19,13 +19,12 @@
%{?sle15_python_module_pythons}
Name: python-persistent
Version: 5.0
Version: 5.1
Release: 0
Summary: Translucent persistent objects
License: ZPL-2.1
URL: https://github.com/zopefoundation/persistent
Source: https://files.pythonhosted.org/packages/source/p/persistent/persistent-%{version}.tar.gz
Patch1: python312.patch
BuildRequires: %{python_module cffi}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module manuel}

View File

@ -1,96 +0,0 @@
From 2195d2edd96ad209568cbaa8499eb87c2fb8fc4e Mon Sep 17 00:00:00 2001
From: Michael Howitz <mh@gocept.com>
Date: Thu, 30 Mar 2023 08:34:00 +0200
Subject: [PATCH] Add preliminary support for Python 3.12a6.
---
.github/workflows/tests.yml | 34 +++++++++++++++++++++---
.manylinux-install.sh | 11 ++++++--
.meta.toml | 4 +--
CHANGES.rst | 2 +-
appveyor.yml | 3 +++
setup.cfg | 2 +-
src/persistent/tests/test_persistence.py | 5 ----
src/persistent/tests/test_picklecache.py | 5 ----
tox.ini | 5 +++-
9 files changed, 50 insertions(+), 21 deletions(-)
Index: persistent-5.0/.manylinux-install.sh
===================================================================
--- persistent-5.0.orig/.manylinux-install.sh
+++ persistent-5.0/.manylinux-install.sh
@@ -28,6 +28,7 @@ yum -y install libffi-devel
tox_env_map() {
case $1 in
+ *"cp312"*) echo 'py312';;
*"cp37"*) echo 'py37';;
*"cp38"*) echo 'py38';;
*"cp39"*) echo 'py39';;
@@ -40,13 +41,19 @@ tox_env_map() {
# Compile wheels
for PYBIN in /opt/python/*/bin; do
if \
+ [[ "${PYBIN}" == *"cp312"* ]] || \
[[ "${PYBIN}" == *"cp311"* ]] || \
[[ "${PYBIN}" == *"cp37"* ]] || \
[[ "${PYBIN}" == *"cp38"* ]] || \
[[ "${PYBIN}" == *"cp39"* ]] || \
[[ "${PYBIN}" == *"cp310"* ]] ; then
- "${PYBIN}/pip" install -e /io/
- "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+ if [[ "${PYBIN}" == *"cp312"* ]] ; then
+ "${PYBIN}/pip" install --pre -e /io/
+ "${PYBIN}/pip" wheel /io/ --pre -w wheelhouse/
+ else
+ "${PYBIN}/pip" install -e /io/
+ "${PYBIN}/pip" wheel /io/ -w wheelhouse/
+ fi
if [ `uname -m` == 'aarch64' ]; then
cd /io/
${PYBIN}/pip install tox
Index: persistent-5.0/setup.cfg
===================================================================
--- persistent-5.0.orig/setup.cfg
+++ persistent-5.0/setup.cfg
@@ -19,7 +19,7 @@ ignore =
force_single_line = True
combine_as_imports = True
sections = FUTURE,STDLIB,THIRDPARTY,ZOPE,FIRSTPARTY,LOCALFOLDER
-known_third_party = six, docutils, pkg_resources
+known_third_party = six, docutils, pkg_resources, pytz
known_zope =
known_first_party =
default_section = ZOPE
Index: persistent-5.0/src/persistent/tests/test_persistence.py
===================================================================
--- persistent-5.0.orig/src/persistent/tests/test_persistence.py
+++ persistent-5.0/src/persistent/tests/test_persistence.py
@@ -29,11 +29,6 @@ from collections import UserDict as Iter
class _Persistent_Base:
- # py2/3 compat
- assertRaisesRegex = getattr(unittest.TestCase,
- 'assertRaisesRegex',
- unittest.TestCase.assertRaisesRegexp)
-
def _getTargetClass(self):
# concrete testcase classes must override
raise NotImplementedError()
Index: persistent-5.0/src/persistent/tests/test_picklecache.py
===================================================================
--- persistent-5.0.orig/src/persistent/tests/test_picklecache.py
+++ persistent-5.0/src/persistent/tests/test_picklecache.py
@@ -60,11 +60,6 @@ def _len(seq):
class PickleCacheTestMixin:
- # py2/3 compat
- assertRaisesRegex = getattr(unittest.TestCase,
- 'assertRaisesRegex',
- unittest.TestCase.assertRaisesRegexp)
-
def _getTargetClass(self):
from persistent.picklecache import PickleCachePy as BasePickleCache
class PickleCache(BasePickleCache):