Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-zodbpickle for
openSUSE:Factory checked in at 2025-12-10 15:33:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zodbpickle (Old)
and /work/SRC/openSUSE:Factory/.python-zodbpickle.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-zodbpickle"
Wed Dec 10 15:33:36 2025 rev:19 rq:1321877 version:4.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-zodbpickle/python-zodbpickle.changes
2025-03-06 14:50:58.535093235 +0100
+++
/work/SRC/openSUSE:Factory/.python-zodbpickle.new.1939/python-zodbpickle.changes
2025-12-10 15:34:25.180100006 +0100
@@ -1,0 +2,9 @@
+Wed Dec 10 04:43:44 UTC 2025 - Steve Kowalik <[email protected]>
+
+- Update to 4.3:
+ * Added support for pickling the types of built-in singletons.
+ * Move all supported package metadata into pyproject.toml.
+ * Drop support for Python 3.9.
+ * Add support for Python 3.14.
+
+-------------------------------------------------------------------
Old:
----
zodbpickle-4.2.tar.gz
New:
----
zodbpickle-4.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-zodbpickle.spec ++++++
--- /var/tmp/diff_new_pack.ugqNmK/_old 2025-12-10 15:34:25.848128268 +0100
+++ /var/tmp/diff_new_pack.ugqNmK/_new 2025-12-10 15:34:25.856128606 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-zodbpickle
#
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,17 +16,16 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%{?sle15_python_module_pythons}
Name: python-zodbpickle
-Version: 4.2
+Version: 4.3
Release: 0
Summary: Fork of Python 3 pickle module
License: Python-2.0 AND ZPL-2.1
-Group: Development/Libraries/Python
URL: https://pypi.python.org/pypi/zodbpickle
Source:
https://files.pythonhosted.org/packages/source/z/zodbpickle/zodbpickle-%{version}.tar.gz
BuildRequires: %{python_module Cython}
+BuildRequires: %{python_module base >= 3.10}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module testsuite}
++++++ zodbpickle-4.2.tar.gz -> zodbpickle-4.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/.manylinux-install.sh
new/zodbpickle-4.3/.manylinux-install.sh
--- old/zodbpickle-4.2/.manylinux-install.sh 2025-02-12 11:10:10.000000000
+0100
+++ new/zodbpickle-4.3/.manylinux-install.sh 2025-11-20 07:03:46.000000000
+0100
@@ -28,12 +28,12 @@
tox_env_map() {
case $1 in
- *"cp39"*) echo 'py39';;
*"cp310"*) echo 'py310';;
*"cp311"*) echo 'py311';;
*"cp312"*) echo 'py312';;
*"cp313"*) echo 'py313';;
*"cp314"*) echo 'py314';;
+ *"cp315"*) echo 'py315';;
*) echo 'py';;
esac
}
@@ -41,13 +41,13 @@
# Compile wheels
for PYBIN in /opt/python/*/bin; do
if \
- [[ "${PYBIN}" == *"cp39/"* ]] || \
[[ "${PYBIN}" == *"cp310/"* ]] || \
[[ "${PYBIN}" == *"cp311/"* ]] || \
[[ "${PYBIN}" == *"cp312/"* ]] || \
[[ "${PYBIN}" == *"cp313/"* ]] || \
- [[ "${PYBIN}" == *"cp314/"* ]] ; then
- if [[ "${PYBIN}" == *"cp314/"* ]] ; then
+ [[ "${PYBIN}" == *"cp314/"* ]] || \
+ [[ "${PYBIN}" == *"cp315/"* ]] ; then
+ if [[ "${PYBIN}" == *"cp315/"* ]] ; then
"${PYBIN}/pip" install --pre -e /io/
"${PYBIN}/pip" wheel /io/ --pre -w wheelhouse/
else
@@ -65,6 +65,9 @@
fi
done
+# Show what wheels we have
+echo "Fixing up the following wheels:"
+ls -l wheelhouse/zodbpickle*.whl
# Bundle external shared libraries into the wheels
for whl in wheelhouse/zodbpickle*.whl; do
auditwheel repair "$whl" -w /io/wheelhouse/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/.pre-commit-config.yaml
new/zodbpickle-4.3/.pre-commit-config.yaml
--- old/zodbpickle-4.2/.pre-commit-config.yaml 2025-02-12 11:10:10.000000000
+0100
+++ new/zodbpickle-4.3/.pre-commit-config.yaml 2025-11-20 07:03:46.000000000
+0100
@@ -3,7 +3,7 @@
minimum_pre_commit_version: '3.6'
repos:
- repo: https://github.com/pycqa/isort
- rev: "6.0.0"
+ rev: "7.0.0"
hooks:
- id: isort
- repo: https://github.com/hhatto/autopep8
@@ -12,16 +12,16 @@
- id: autopep8
args: [--in-place, --aggressive, --aggressive]
- repo: https://github.com/asottile/pyupgrade
- rev: v3.19.1
+ rev: v3.21.0
hooks:
- id: pyupgrade
- args: [--py39-plus]
+ args: [--py310-plus]
- repo: https://github.com/isidentical/teyit
rev: 0.4.3
hooks:
- id: teyit
- repo: https://github.com/PyCQA/flake8
- rev: "7.1.1"
+ rev: "7.3.0"
hooks:
- id: flake8
additional_dependencies:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/CHANGES.rst
new/zodbpickle-4.3/CHANGES.rst
--- old/zodbpickle-4.2/CHANGES.rst 2025-02-12 11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/CHANGES.rst 2025-11-20 07:30:23.000000000 +0100
@@ -1,9 +1,21 @@
-===========
- Changelog
-===========
+Change log
+==========
+
+4.3 (2025-11-20)
+----------------
+
+- Added support for pickling the types of built-in singletons.
+ Fixes `#103 <https://github.com/zopefoundation/zodbpickle/issues/103>`_.
+
+- Move all supported package metadata into ``pyproject.toml``.
+
+- Drop support for Python 3.9.
+
+- Add support for Python 3.14.
+
4.2 (2025-02-12)
-================
+----------------
- Drop support for Python 3.8.
@@ -13,24 +25,25 @@
4.1.1 (2024-10-02)
-==================
+------------------
- Fix ``NameError`` which occurred when importing ``zodbpickle.fastpickle``.
+
4.1 (2024-09-17)
-================
+----------------
- Add final support for Python 3.13.
4.0 (2024-05-30)
-================
+----------------
- Drop support for Python 3.7.
3.3 (2024-04-16)
-================
+----------------
- Build Windows wheels on GHA.
@@ -38,25 +51,25 @@
3.2 (2024-02-16)
-================
+----------------
- Add preliminary support for Python 3.13 as of 3.13a3.
3.1 (2023-10-05)
-================
+----------------
- Add support for Python 3.12.
3.0.1 (2023-03-28)
-==================
+------------------
- Fix ``NameError`` in ``.fastpickle`` and ``.slowpickle``.
3.0 (2023-03-24)
-================
+----------------
- Build Linux binary wheels for Python 3.11.
@@ -68,19 +81,19 @@
2.6 (2022-11-17)
-================
+----------------
- Add support for building arm64 wheels on macOS.
2.5 (2022-11-03)
-================
+----------------
- Add support for the final Python 3.11 release.
2.4 (2022-09-15)
-================
+----------------
- Add support for Python 3.11 (as of 3.11.0b3).
@@ -89,25 +102,25 @@
2.3 (2022-04-22)
-================
+----------------
- Add support for Python 3.11 (as of 3.11.0a7).
2.2.0 (2021-09-29)
-==================
+------------------
- Add support for Python 3.10.
2.1.0 (2021-09-24)
-==================
+------------------
- Add support for Python 3.9.
2.0.0 (2019-11-13)
-==================
+------------------
- CPython 2: Make ``zodbpickle.binary`` objects smaller and untracked
by the garbage collector. Now they behave more like the native bytes
@@ -115,8 +128,9 @@
arbitrary attributes or be weakly referenced. See `issue 53
<https://github.com/zopefoundation/zodbpickle/issues/53>`_.
+
1.1 (2019-11-09)
-================
+----------------
- Add support for Python 3.8.
@@ -124,33 +138,33 @@
1.0.4 (2019-06-12)
-==================
+------------------
- Fix pickle corruption under certain conditions. See `pull request 47
<https://github.com/zopefoundation/zodbpickle/pull/47>`_.
1.0.3 (2018-12-18)
-==================
+------------------
- Fix a bug: zodbpickle.slowpickle assigned `_Pickler` to `Unpickler`.
1.0.2 (2018-08-10)
-==================
+------------------
- Add support for Python 3.7.
1.0.1 (2018-05-16)
-==================
+------------------
- Fix a memory leak in pickle protocol 3 under Python 2. See `issue 36
<https://github.com/zopefoundation/zodbpickle/issues/36>`_.
1.0 (2018-02-09)
-================
+----------------
- Add a warning to the readme not to use untrusted pickles.
@@ -158,7 +172,7 @@
0.7.0 (2017-09-22)
-==================
+------------------
- Drop support for Python 2.6 and 3.2.
@@ -166,8 +180,9 @@
- Add support for Python 3.5 and 3.6.
+
0.6.0 (2015-04-02)
-==================
+------------------
- Restore the ``noload`` behaviour from Python 2.6 and provide the
``noload`` method on the non-C-accelerated unpicklers under PyPy and
@@ -175,8 +190,9 @@
- Add support for PyPy, PyPy3, and Python 3.4.
+
0.5.2 (2013-08-17)
-==================
+------------------
- Import accelerator from *our* extension module under Py3k.
See https://github.com/zopefoundation/zodbpickle/issues/6,
@@ -184,8 +200,9 @@
- Fix unpickler's ``load_short_binstring`` across supported platforms.
+
0.5.1 (2013-07-06)
-==================
+------------------
- Update all code and tests to Python 2.6.8, 2.7.5, 3.2.5, 3.3.2 .
@@ -195,38 +212,44 @@
- Fix a minor bug on OS X
+
0.5.0 (2013-06-14)
-==================
+------------------
- Removed support for the ``bytes_as_strings`` arguments to pickling APIs:
the pickles created when that argument was true might not be unpickled
without passing ``encoding='bytes'``, which ZODB couldn't reliably enforce.
On Py3k, ZODB will be using ``protocol=3`` pickles anyway.
+
0.4.4 (2013-06-07)
-==================
+------------------
- Add protocol 3 opcodes to the C version of the ``noload()`` dispatcher.
+
0.4.3 (2013-06-07)
-==================
+------------------
- Packaging error: remove spurious ``-ASIDE`` file from sdist.
+
0.4.2 (2013-06-07)
-==================
+------------------
- Fix NameError in pure-Python version of ``Unpickler.noload_appends``.
- Fix NameError in pure-Python version of ``Unpickler.noload_setitems``.
+
0.4.1 (2013-04-29)
-==================
+------------------
- Fix typo in Python2 version of ``zodbpickle.pickle`` module.
+
0.4 (2013-04-28)
-================
+----------------
- Support the common pickle module interface for Python 2.6, 2.7, 3.2, and 3.3.
@@ -241,8 +264,9 @@
binary data using opcodes which will cause it to be unpickled as ``bytes``
on Py3k. Under Py3k, the ``binary`` type is just an alias for ``bytes``.
+
0.3 (2013-03-18)
-================
+----------------
- Added ``noload`` code to Python 3.2 version of ``Unpickler``. As with
the Python 3.3 version, this code remains untested.
@@ -250,8 +274,9 @@
- Added ``bytes_as_strings`` option to the Python 3.2 version of
``Pickler``, ``dump``, and ``dumps``.
+
0.2 (2013-03-05)
-================
+----------------
- Added ``bytes_as_strings`` option to ``Pickler``, ``dump``, and ``dumps``.
@@ -272,7 +297,7 @@
0.1.0 (2013-02-27)
-==================
+------------------
- Initial release of Python 3.3's pickle with the patches of Python
`issue 6784`__ applied.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/MANIFEST.in
new/zodbpickle-4.3/MANIFEST.in
--- old/zodbpickle-4.2/MANIFEST.in 2025-02-12 11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/MANIFEST.in 2025-11-20 07:03:46.000000000 +0100
@@ -9,7 +9,6 @@
recursive-include docs *.py
recursive-include docs *.rst
-recursive-include docs *.txt
recursive-include docs Makefile
recursive-include src *.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/PKG-INFO new/zodbpickle-4.3/PKG-INFO
--- old/zodbpickle-4.2/PKG-INFO 2025-02-12 11:10:10.896010600 +0100
+++ new/zodbpickle-4.3/PKG-INFO 2025-11-20 07:37:17.761184000 +0100
@@ -1,37 +1,39 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
Name: zodbpickle
-Version: 4.2
-Summary: Fork of Python 3 pickle module.
-Home-page: https://github.com/zopefoundation/zodbpickle
-Author: Python and Zope Foundation
-Author-email: [email protected]
-License: PSFL 2 and ZPL-2.1
-Keywords: zodb pickle
-Platform: any
+Version: 4.3
+Summary: Fork of Python 3 pickle module
+Author-email: Python and Zope Foundation and contributors <[email protected]>
+Maintainer-email: Plone Foundation and contributors <[email protected]>
+License-Expression: ZPL-2.1
+Project-URL: Issues, https://github.com/zopefoundation/zodbpickle/issues
+Project-URL: Source, https://github.com/zopefoundation/zodbpickle
+Project-URL: Changelog,
https://github.com/zopefoundation/zodbpickle/blob/master/CHANGES.rst
+Keywords: zodb,pickle
Classifier: Development Status :: 5 - Production/Stable
-Classifier: License :: OSI Approved :: Zope Public License
-Classifier: License :: OSI Approved :: Python Software Foundation License
+Classifier: Framework :: ZODB
+Classifier: Intended Audience :: Developers
+Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
-Classifier: Framework :: ZODB
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Operating System :: Microsoft :: Windows
-Classifier: Operating System :: Unix
-Classifier: Operating System :: MacOS :: MacOS X
-Requires-Python: >=3.9
+Requires-Python: >=3.10
+Description-Content-Type: text/x-rst
License-File: LICENSE.txt
-Provides-Extra: test
-Requires-Dist: zope.testrunner; extra == "test"
Provides-Extra: docs
Requires-Dist: Sphinx; extra == "docs"
+Requires-Dist: furo; extra == "docs"
+Provides-Extra: test
+Requires-Dist: zope.testrunner>=6.4; extra == "test"
+Dynamic: license-file
``zodbpickle`` README
=====================
@@ -198,287 +200,3 @@
cache.
This module provides a ``noload()`` method again.
-
-
-===========
- Changelog
-===========
-
-4.2 (2025-02-12)
-================
-
-- Drop support for Python 3.8.
-
-- Add preliminary support for Python 3.14 as of 3.14a4.
-
-- Remove unused ``setuptools`` install requirement.
-
-
-4.1.1 (2024-10-02)
-==================
-
-- Fix ``NameError`` which occurred when importing ``zodbpickle.fastpickle``.
-
-4.1 (2024-09-17)
-================
-
-- Add final support for Python 3.13.
-
-
-4.0 (2024-05-30)
-================
-
-- Drop support for Python 3.7.
-
-
-3.3 (2024-04-16)
-================
-
-- Build Windows wheels on GHA.
-
-- Add preliminary support for Python 3.13 as of 3.13a5.
-
-
-3.2 (2024-02-16)
-================
-
-- Add preliminary support for Python 3.13 as of 3.13a3.
-
-
-3.1 (2023-10-05)
-================
-
-- Add support for Python 3.12.
-
-
-3.0.1 (2023-03-28)
-==================
-
-- Fix ``NameError`` in ``.fastpickle`` and ``.slowpickle``.
-
-
-3.0 (2023-03-24)
-================
-
-- Build Linux binary wheels for Python 3.11.
-
-- Add preliminary support for Python 3.12a5.
-
-- Drop support for Python 2.7, 3.5, 3.6.
-
-- Drop support for deprecated ``python setup.py test``.
-
-
-2.6 (2022-11-17)
-================
-
-- Add support for building arm64 wheels on macOS.
-
-
-2.5 (2022-11-03)
-================
-
-- Add support for the final Python 3.11 release.
-
-
-2.4 (2022-09-15)
-================
-
-- Add support for Python 3.11 (as of 3.11.0b3).
-
-- Disable unsafe math optimizations in C code. See `pull request 73
- <https://github.com/zopefoundation/zodbpickle/pull/73>`_.
-
-
-2.3 (2022-04-22)
-================
-
-- Add support for Python 3.11 (as of 3.11.0a7).
-
-
-2.2.0 (2021-09-29)
-==================
-
-- Add support for Python 3.10.
-
-
-2.1.0 (2021-09-24)
-==================
-
-- Add support for Python 3.9.
-
-
-2.0.0 (2019-11-13)
-==================
-
-- CPython 2: Make ``zodbpickle.binary`` objects smaller and untracked
- by the garbage collector. Now they behave more like the native bytes
- object. Just like it, and just like on Python 3, they cannot have
- arbitrary attributes or be weakly referenced. See `issue 53
- <https://github.com/zopefoundation/zodbpickle/issues/53>`_.
-
-1.1 (2019-11-09)
-================
-
-- Add support for Python 3.8.
-
-- Drop support for Python 3.4.
-
-
-1.0.4 (2019-06-12)
-==================
-
-- Fix pickle corruption under certain conditions. See `pull request 47
- <https://github.com/zopefoundation/zodbpickle/pull/47>`_.
-
-
-1.0.3 (2018-12-18)
-==================
-
-- Fix a bug: zodbpickle.slowpickle assigned `_Pickler` to `Unpickler`.
-
-
-1.0.2 (2018-08-10)
-==================
-
-- Add support for Python 3.7.
-
-
-1.0.1 (2018-05-16)
-==================
-
-- Fix a memory leak in pickle protocol 3 under Python 2. See `issue 36
- <https://github.com/zopefoundation/zodbpickle/issues/36>`_.
-
-
-1.0 (2018-02-09)
-================
-
-- Add a warning to the readme not to use untrusted pickles.
-
-- Drop support for Python 3.3.
-
-
-0.7.0 (2017-09-22)
-==================
-
-- Drop support for Python 2.6 and 3.2.
-
-- Add support for Jython 2.7.
-
-- Add support for Python 3.5 and 3.6.
-
-0.6.0 (2015-04-02)
-==================
-
-- Restore the ``noload`` behaviour from Python 2.6 and provide the
- ``noload`` method on the non-C-accelerated unpicklers under PyPy and
- Python 2.
-
-- Add support for PyPy, PyPy3, and Python 3.4.
-
-0.5.2 (2013-08-17)
-==================
-
-- Import accelerator from *our* extension module under Py3k.
- See https://github.com/zopefoundation/zodbpickle/issues/6,
- https://github.com/zopefoundation/zodbpickle/issues/7.
-
-- Fix unpickler's ``load_short_binstring`` across supported platforms.
-
-0.5.1 (2013-07-06)
-==================
-
-- Update all code and tests to Python 2.6.8, 2.7.5, 3.2.5, 3.3.2 .
-
-- Add the modules ``zodbpickle.fastpickle`` and ``zodbpickle.slowpickle``.
- This provides a version-independent choice of the C or Python
- implementation.
-
-- Fix a minor bug on OS X
-
-0.5.0 (2013-06-14)
-==================
-
-- Removed support for the ``bytes_as_strings`` arguments to pickling APIs:
- the pickles created when that argument was true might not be unpickled
- without passing ``encoding='bytes'``, which ZODB couldn't reliably enforce.
- On Py3k, ZODB will be using ``protocol=3`` pickles anyway.
-
-0.4.4 (2013-06-07)
-==================
-
-- Add protocol 3 opcodes to the C version of the ``noload()`` dispatcher.
-
-0.4.3 (2013-06-07)
-==================
-
-- Packaging error: remove spurious ``-ASIDE`` file from sdist.
-
-0.4.2 (2013-06-07)
-==================
-
-- Fix NameError in pure-Python version of ``Unpickler.noload_appends``.
-
-- Fix NameError in pure-Python version of ``Unpickler.noload_setitems``.
-
-0.4.1 (2013-04-29)
-==================
-
-- Fix typo in Python2 version of ``zodbpickle.pickle`` module.
-
-0.4 (2013-04-28)
-================
-
-- Support the common pickle module interface for Python 2.6, 2.7, 3.2, and 3.3.
-
-- Split the Python implementations / tests into Python2- and Py3k-specific
- variants.
-
-- Added a fork of the Python 2.7 ``_pickle.c``, for use under Python2.
- The fork adds support for the Py3k ``protocol 3`` opcodes.
-
-- Added a custom ``binary`` type for use in Python2 apps.
- Derived from ``bytes``, the ``binary`` type allows Python2 apps to pickle
- binary data using opcodes which will cause it to be unpickled as ``bytes``
- on Py3k. Under Py3k, the ``binary`` type is just an alias for ``bytes``.
-
-0.3 (2013-03-18)
-================
-
-- Added ``noload`` code to Python 3.2 version of ``Unpickler``. As with
- the Python 3.3 version, this code remains untested.
-
-- Added ``bytes_as_strings`` option to the Python 3.2 version of
- ``Pickler``, ``dump``, and ``dumps``.
-
-0.2 (2013-03-05)
-================
-
-- Added ``bytes_as_strings`` option to ``Pickler``, ``dump``, and ``dumps``.
-
-- Incomplete support for Python 3.2:
-
- - Move ``_pickle.c`` -> ``_pickle_33.c``.
-
- - Clone Python 3.2.3's ``_pickle.c`` -> ``_pickle_32.c`` and apply the
- same patch.
-
- - Choose between them at build time based on ``sys.version_info``.
-
- - Disable some tests of 3.3-only features.
-
- - Missing: implementation of ``noload()`` in ``_pickle_32.c``.
-
- - Missing: implementation of ``bytes_as_strings=True`` in ``_pickle_32.c``.
-
-
-0.1.0 (2013-02-27)
-==================
-
-- Initial release of Python 3.3's pickle with the patches of Python
- `issue 6784`__ applied.
-
-.. __: http://bugs.python.org/issue6784#msg156166
-
-- Added support for ``errors="bytes"``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/docs/conf.py
new/zodbpickle-4.3/docs/conf.py
--- old/zodbpickle-4.2/docs/conf.py 2025-02-12 11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/docs/conf.py 2025-11-20 07:03:46.000000000 +0100
@@ -3,15 +3,24 @@
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
+import datetime
+import os
+import sys
+from importlib.metadata import distribution
+
+
# -- Project information -----------------------------------------------------
#
https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
+year = datetime.datetime.now().year
+sys.path.append(os.path.abspath('../src'))
+rqmt = distribution('zodbpickle')
project = 'zodbpickle'
-copyright = '2013-2024, ZODB Developers <[email protected]>'
+copyright = f'2013-{year}, ZODB Developers <[email protected]>'
author = 'ZODB Developers'
-version = '4.0'
-release = '4.0'
+version = '%s.%s' % tuple(map(int, rqmt.version.split('.')[:2]))
+release = rqmt.version
# -- General configuration ---------------------------------------------------
#
https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@@ -27,8 +36,8 @@
# -- Options for HTML output -------------------------------------------------
#
https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
-html_theme = 'alabaster'
-html_static_path = ['_static']
+html_theme = 'furo'
+# html_static_path = ['_static']
# -- Options for intersphinx extension ---------------------------------------
#
https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#configuration
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/pyproject.toml
new/zodbpickle-4.3/pyproject.toml
--- old/zodbpickle-4.2/pyproject.toml 2025-02-12 11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/pyproject.toml 2025-11-20 07:30:37.000000000 +0100
@@ -3,9 +3,60 @@
# https://github.com/zopefoundation/meta/tree/master/config/c-code
[build-system]
-requires = ["setuptools <= 75.6.0"]
+requires = [
+ "setuptools",
+ "wheel",
+]
build-backend = "setuptools.build_meta"
+[project]
+name = "zodbpickle"
+version = "4.3"
+description = "Fork of Python 3 pickle module"
+keywords = ["zodb", "pickle"]
+readme = "README.rst"
+requires-python = ">=3.10"
+license = "ZPL-2.1"
+authors = [
+ { name = "Python and Zope Foundation and contributors", email =
"[email protected]" },
+]
+maintainers = [
+ { name = "Plone Foundation and contributors", email = "[email protected]" },
+]
+classifiers = [
+ "Development Status :: 5 - Production/Stable",
+ "Framework :: ZODB",
+ "Intended Audience :: Developers",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3 :: Only",
+ "Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
+ "Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
+ "Programming Language :: Python :: Implementation :: CPython",
+ "Programming Language :: Python :: Implementation :: PyPy",
+ "Topic :: Database",
+ "Topic :: Software Development :: Libraries :: Python Modules",
+]
+dependencies = []
+
+[project.optional-dependencies]
+docs = [
+ "Sphinx",
+ "furo",
+]
+test = [
+ "zope.testrunner >= 6.4",
+]
+
+[project.urls]
+Issues = "https://github.com/zopefoundation/zodbpickle/issues"
+Source = "https://github.com/zopefoundation/zodbpickle"
+Changelog =
"https://github.com/zopefoundation/zodbpickle/blob/master/CHANGES.rst"
+
[tool.coverage.run]
branch = true
source = ["zodbpickle"]
@@ -16,10 +67,23 @@
precision = 2
ignore_errors = true
show_missing = true
-exclude_lines = ["pragma: no cover", "pragma: nocover", "except ImportError:",
"raise NotImplementedError", "if __name__ == '__main__':", "self.fail", "raise
AssertionError", "raise unittest.Skip"]
+exclude_lines = [
+ "pragma: no cover",
+ "pragma: nocover",
+ "except ImportError:",
+ "raise NotImplementedError",
+ "if __name__ == '__main__':",
+ "self.fail",
+ "raise AssertionError",
+ "raise unittest.Skip",
+]
[tool.coverage.html]
directory = "parts/htmlcov"
[tool.coverage.paths]
-source = ["src/", ".tox/*/lib/python*/site-packages/",
".tox/pypy*/site-packages/"]
+source = [
+ "src/",
+ ".tox/*/lib/python*/site-packages/",
+ ".tox/pypy*/site-packages/",
+]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/setup.py new/zodbpickle-4.3/setup.py
--- old/zodbpickle-4.2/setup.py 2025-02-12 11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/setup.py 2025-11-20 07:03:46.000000000 +0100
@@ -16,21 +16,9 @@
import platform
from setuptools import Extension
-from setuptools import find_packages
from setuptools import setup
-here = os.path.abspath(os.path.dirname(__file__))
-
-
-def read(fname):
- with open(os.path.join(here, fname)) as f:
- return f.read()
-
-
-README = read('README.rst') + '\n\n' + read('CHANGES.rst')
-EXT = 'src/zodbpickle/_pickle_33.c'
-
# PyPy and jython won't build the extension.
py_impl = getattr(platform, 'python_implementation', lambda: None)
is_pypy = py_impl() == 'PyPy'
@@ -40,48 +28,7 @@
ext_modules = []
else:
ext_modules = [Extension(name='zodbpickle._pickle',
- sources=[EXT])]
+ sources=['src/zodbpickle/_pickle_33.c'])]
-setup(
- name='zodbpickle',
- version='4.2',
- description='Fork of Python 3 pickle module.',
- author='Python and Zope Foundation',
- author_email='[email protected]',
- url='https://github.com/zopefoundation/zodbpickle',
- license='PSFL 2 and ZPL-2.1',
- long_description=README,
- classifiers=[
- 'Development Status :: 5 - Production/Stable',
- 'License :: OSI Approved :: Zope Public License',
- 'License :: OSI Approved :: Python Software Foundation License',
- 'Programming Language :: Python',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.9',
- 'Programming Language :: Python :: 3.10',
- 'Programming Language :: Python :: 3.11',
- 'Programming Language :: Python :: 3.12',
- 'Programming Language :: Python :: 3.13',
- 'Programming Language :: Python :: Implementation :: CPython',
- 'Programming Language :: Python :: Implementation :: PyPy',
- 'Framework :: ZODB',
- 'Topic :: Database',
- 'Topic :: Software Development :: Libraries :: Python Modules',
- 'Operating System :: Microsoft :: Windows',
- 'Operating System :: Unix',
- 'Operating System :: MacOS :: MacOS X',
- ],
- keywords='zodb pickle',
- platforms=['any'],
- packages=find_packages('src'),
- package_dir={'': 'src'},
- ext_modules=ext_modules,
- python_requires='>=3.9',
- extras_require={
- 'test': ['zope.testrunner'],
- 'docs': ['Sphinx'],
- },
- include_package_data=True,
- zip_safe=False,
-)
+setup(ext_modules=ext_modules)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/src/zodbpickle/_pickle_33.c
new/zodbpickle-4.3/src/zodbpickle/_pickle_33.c
--- old/zodbpickle-4.2/src/zodbpickle/_pickle_33.c 2025-02-12
11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/src/zodbpickle/_pickle_33.c 2025-11-20
07:29:54.000000000 +0100
@@ -229,8 +229,6 @@
/* XXX: Are these really nescessary? */
/* As the name says, an empty tuple. */
static PyObject *empty_tuple = NULL;
-/* For looking up name pairs in copyreg._extension_registry. */
-static PyObject *two_tuple = NULL;
static int
stack_underflow(void)
@@ -2793,14 +2791,18 @@
/* See whether this is in the extension registry, and if
* so generate an EXT opcode.
*/
+ PyObject *extension_key;
PyObject *code_obj; /* extension code as Python object */
long code; /* extension code as C value */
char pdata[5];
Py_ssize_t n;
- PyTuple_SET_ITEM(two_tuple, 0, module_name);
- PyTuple_SET_ITEM(two_tuple, 1, global_name);
- code_obj = PyDict_GetItem(extension_registry, two_tuple);
+ extension_key = PyTuple_Pack(2, module_name, global_name);
+ if (extension_key == NULL) {
+ goto error;
+ }
+ code_obj = PyDict_GetItem(extension_registry, extension_key);
+ Py_DECREF(extension_key);
/* The object is not registered in the extension registry.
This is the most likely code path. */
if (code_obj == NULL)
@@ -3006,6 +3008,36 @@
}
static int
+save_singleton_type(PicklerObject *self, PyObject *obj, PyObject *singleton)
+{
+ PyObject *reduce_value;
+ int status;
+
+ reduce_value = Py_BuildValue("O(O)", &PyType_Type, singleton);
+ if (reduce_value == NULL) {
+ return -1;
+ }
+ status = save_reduce(self, reduce_value, obj);
+ Py_DECREF(reduce_value);
+ return status;
+}
+
+static int
+save_type(PicklerObject *self, PyObject *obj)
+{
+ if (obj == (PyObject *)Py_TYPE(Py_None)) {
+ return save_singleton_type(self, obj, Py_None);
+ }
+ else if (obj == (PyObject *)&PyEllipsis_Type) {
+ return save_singleton_type(self, obj, Py_Ellipsis);
+ }
+ else if (obj == (PyObject *)Py_TYPE(Py_NotImplemented)) {
+ return save_singleton_type(self, obj, Py_NotImplemented);
+ }
+ return save_global(self, obj, NULL);
+}
+
+static int
save_pers(PicklerObject *self, PyObject *obj, PyObject *func)
{
PyObject *pid = NULL;
@@ -3359,7 +3391,7 @@
goto done;
}
else if (type == &PyType_Type) {
- status = save_global(self, obj, NULL);
+ status = save_type(self, obj);
goto done;
}
else if (type == &PyFunction_Type) {
@@ -7069,14 +7101,6 @@
empty_tuple = PyTuple_New(0);
if (empty_tuple == NULL)
goto error;
- two_tuple = PyTuple_New(2);
- if (two_tuple == NULL)
- goto error;
- /* We use this temp container with no regard to refcounts, or to
- * keeping containees alive. Exempt from GC, because we don't
- * want anything looking at two_tuple() by magic.
- */
- PyObject_GC_UnTrack(two_tuple);
return 0;
@@ -7092,7 +7116,6 @@
Py_CLEAR(name_mapping_3to2);
Py_CLEAR(import_mapping_3to2);
Py_CLEAR(empty_tuple);
- Py_CLEAR(two_tuple);
return -1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/src/zodbpickle/pickle_3.py
new/zodbpickle-4.3/src/zodbpickle/pickle_3.py
--- old/zodbpickle-4.2/src/zodbpickle/pickle_3.py 2025-02-12
11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/src/zodbpickle/pickle_3.py 2025-11-20
07:29:54.000000000 +0100
@@ -747,9 +747,18 @@
self.memoize(obj)
+ def save_type(self, obj):
+ if obj is type(None):
+ return self.save_reduce(type, (None,), obj=obj)
+ elif obj is type(NotImplemented):
+ return self.save_reduce(type, (NotImplemented,), obj=obj)
+ elif obj is type(...):
+ return self.save_reduce(type, (...,), obj=obj)
+ return self.save_global(obj)
+
dispatch[FunctionType] = save_global
dispatch[BuiltinFunctionType] = save_global
- dispatch[type] = save_global
+ dispatch[type] = save_type
# Pickling helpers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/zodbpickle-4.2/src/zodbpickle/tests/pickletester_3.py
new/zodbpickle-4.3/src/zodbpickle/tests/pickletester_3.py
--- old/zodbpickle-4.2/src/zodbpickle/tests/pickletester_3.py 2025-02-12
11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/src/zodbpickle/tests/pickletester_3.py 2025-11-20
07:29:54.000000000 +0100
@@ -815,6 +815,15 @@
u = self.loads(s)
self.assertEqual(NotImplemented, u)
+ def test_singleton_types(self):
+ # Issue #6477: Test that types of built-in singletons can be pickled.
+ singletons = [None, ..., NotImplemented]
+ for singleton in singletons:
+ for proto in protocols:
+ s = self.dumps(type(singleton), proto)
+ u = self.loads(s)
+ self.assertIs(type(singleton), u)
+
# Tests for protocol 2
def test_proto(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/src/zodbpickle.egg-info/PKG-INFO
new/zodbpickle-4.3/src/zodbpickle.egg-info/PKG-INFO
--- old/zodbpickle-4.2/src/zodbpickle.egg-info/PKG-INFO 2025-02-12
11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/src/zodbpickle.egg-info/PKG-INFO 2025-11-20
07:37:17.000000000 +0100
@@ -1,37 +1,39 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
Name: zodbpickle
-Version: 4.2
-Summary: Fork of Python 3 pickle module.
-Home-page: https://github.com/zopefoundation/zodbpickle
-Author: Python and Zope Foundation
-Author-email: [email protected]
-License: PSFL 2 and ZPL-2.1
-Keywords: zodb pickle
-Platform: any
+Version: 4.3
+Summary: Fork of Python 3 pickle module
+Author-email: Python and Zope Foundation and contributors <[email protected]>
+Maintainer-email: Plone Foundation and contributors <[email protected]>
+License-Expression: ZPL-2.1
+Project-URL: Issues, https://github.com/zopefoundation/zodbpickle/issues
+Project-URL: Source, https://github.com/zopefoundation/zodbpickle
+Project-URL: Changelog,
https://github.com/zopefoundation/zodbpickle/blob/master/CHANGES.rst
+Keywords: zodb,pickle
Classifier: Development Status :: 5 - Production/Stable
-Classifier: License :: OSI Approved :: Zope Public License
-Classifier: License :: OSI Approved :: Python Software Foundation License
+Classifier: Framework :: ZODB
+Classifier: Intended Audience :: Developers
+Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
-Classifier: Framework :: ZODB
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
-Classifier: Operating System :: Microsoft :: Windows
-Classifier: Operating System :: Unix
-Classifier: Operating System :: MacOS :: MacOS X
-Requires-Python: >=3.9
+Requires-Python: >=3.10
+Description-Content-Type: text/x-rst
License-File: LICENSE.txt
-Provides-Extra: test
-Requires-Dist: zope.testrunner; extra == "test"
Provides-Extra: docs
Requires-Dist: Sphinx; extra == "docs"
+Requires-Dist: furo; extra == "docs"
+Provides-Extra: test
+Requires-Dist: zope.testrunner>=6.4; extra == "test"
+Dynamic: license-file
``zodbpickle`` README
=====================
@@ -198,287 +200,3 @@
cache.
This module provides a ``noload()`` method again.
-
-
-===========
- Changelog
-===========
-
-4.2 (2025-02-12)
-================
-
-- Drop support for Python 3.8.
-
-- Add preliminary support for Python 3.14 as of 3.14a4.
-
-- Remove unused ``setuptools`` install requirement.
-
-
-4.1.1 (2024-10-02)
-==================
-
-- Fix ``NameError`` which occurred when importing ``zodbpickle.fastpickle``.
-
-4.1 (2024-09-17)
-================
-
-- Add final support for Python 3.13.
-
-
-4.0 (2024-05-30)
-================
-
-- Drop support for Python 3.7.
-
-
-3.3 (2024-04-16)
-================
-
-- Build Windows wheels on GHA.
-
-- Add preliminary support for Python 3.13 as of 3.13a5.
-
-
-3.2 (2024-02-16)
-================
-
-- Add preliminary support for Python 3.13 as of 3.13a3.
-
-
-3.1 (2023-10-05)
-================
-
-- Add support for Python 3.12.
-
-
-3.0.1 (2023-03-28)
-==================
-
-- Fix ``NameError`` in ``.fastpickle`` and ``.slowpickle``.
-
-
-3.0 (2023-03-24)
-================
-
-- Build Linux binary wheels for Python 3.11.
-
-- Add preliminary support for Python 3.12a5.
-
-- Drop support for Python 2.7, 3.5, 3.6.
-
-- Drop support for deprecated ``python setup.py test``.
-
-
-2.6 (2022-11-17)
-================
-
-- Add support for building arm64 wheels on macOS.
-
-
-2.5 (2022-11-03)
-================
-
-- Add support for the final Python 3.11 release.
-
-
-2.4 (2022-09-15)
-================
-
-- Add support for Python 3.11 (as of 3.11.0b3).
-
-- Disable unsafe math optimizations in C code. See `pull request 73
- <https://github.com/zopefoundation/zodbpickle/pull/73>`_.
-
-
-2.3 (2022-04-22)
-================
-
-- Add support for Python 3.11 (as of 3.11.0a7).
-
-
-2.2.0 (2021-09-29)
-==================
-
-- Add support for Python 3.10.
-
-
-2.1.0 (2021-09-24)
-==================
-
-- Add support for Python 3.9.
-
-
-2.0.0 (2019-11-13)
-==================
-
-- CPython 2: Make ``zodbpickle.binary`` objects smaller and untracked
- by the garbage collector. Now they behave more like the native bytes
- object. Just like it, and just like on Python 3, they cannot have
- arbitrary attributes or be weakly referenced. See `issue 53
- <https://github.com/zopefoundation/zodbpickle/issues/53>`_.
-
-1.1 (2019-11-09)
-================
-
-- Add support for Python 3.8.
-
-- Drop support for Python 3.4.
-
-
-1.0.4 (2019-06-12)
-==================
-
-- Fix pickle corruption under certain conditions. See `pull request 47
- <https://github.com/zopefoundation/zodbpickle/pull/47>`_.
-
-
-1.0.3 (2018-12-18)
-==================
-
-- Fix a bug: zodbpickle.slowpickle assigned `_Pickler` to `Unpickler`.
-
-
-1.0.2 (2018-08-10)
-==================
-
-- Add support for Python 3.7.
-
-
-1.0.1 (2018-05-16)
-==================
-
-- Fix a memory leak in pickle protocol 3 under Python 2. See `issue 36
- <https://github.com/zopefoundation/zodbpickle/issues/36>`_.
-
-
-1.0 (2018-02-09)
-================
-
-- Add a warning to the readme not to use untrusted pickles.
-
-- Drop support for Python 3.3.
-
-
-0.7.0 (2017-09-22)
-==================
-
-- Drop support for Python 2.6 and 3.2.
-
-- Add support for Jython 2.7.
-
-- Add support for Python 3.5 and 3.6.
-
-0.6.0 (2015-04-02)
-==================
-
-- Restore the ``noload`` behaviour from Python 2.6 and provide the
- ``noload`` method on the non-C-accelerated unpicklers under PyPy and
- Python 2.
-
-- Add support for PyPy, PyPy3, and Python 3.4.
-
-0.5.2 (2013-08-17)
-==================
-
-- Import accelerator from *our* extension module under Py3k.
- See https://github.com/zopefoundation/zodbpickle/issues/6,
- https://github.com/zopefoundation/zodbpickle/issues/7.
-
-- Fix unpickler's ``load_short_binstring`` across supported platforms.
-
-0.5.1 (2013-07-06)
-==================
-
-- Update all code and tests to Python 2.6.8, 2.7.5, 3.2.5, 3.3.2 .
-
-- Add the modules ``zodbpickle.fastpickle`` and ``zodbpickle.slowpickle``.
- This provides a version-independent choice of the C or Python
- implementation.
-
-- Fix a minor bug on OS X
-
-0.5.0 (2013-06-14)
-==================
-
-- Removed support for the ``bytes_as_strings`` arguments to pickling APIs:
- the pickles created when that argument was true might not be unpickled
- without passing ``encoding='bytes'``, which ZODB couldn't reliably enforce.
- On Py3k, ZODB will be using ``protocol=3`` pickles anyway.
-
-0.4.4 (2013-06-07)
-==================
-
-- Add protocol 3 opcodes to the C version of the ``noload()`` dispatcher.
-
-0.4.3 (2013-06-07)
-==================
-
-- Packaging error: remove spurious ``-ASIDE`` file from sdist.
-
-0.4.2 (2013-06-07)
-==================
-
-- Fix NameError in pure-Python version of ``Unpickler.noload_appends``.
-
-- Fix NameError in pure-Python version of ``Unpickler.noload_setitems``.
-
-0.4.1 (2013-04-29)
-==================
-
-- Fix typo in Python2 version of ``zodbpickle.pickle`` module.
-
-0.4 (2013-04-28)
-================
-
-- Support the common pickle module interface for Python 2.6, 2.7, 3.2, and 3.3.
-
-- Split the Python implementations / tests into Python2- and Py3k-specific
- variants.
-
-- Added a fork of the Python 2.7 ``_pickle.c``, for use under Python2.
- The fork adds support for the Py3k ``protocol 3`` opcodes.
-
-- Added a custom ``binary`` type for use in Python2 apps.
- Derived from ``bytes``, the ``binary`` type allows Python2 apps to pickle
- binary data using opcodes which will cause it to be unpickled as ``bytes``
- on Py3k. Under Py3k, the ``binary`` type is just an alias for ``bytes``.
-
-0.3 (2013-03-18)
-================
-
-- Added ``noload`` code to Python 3.2 version of ``Unpickler``. As with
- the Python 3.3 version, this code remains untested.
-
-- Added ``bytes_as_strings`` option to the Python 3.2 version of
- ``Pickler``, ``dump``, and ``dumps``.
-
-0.2 (2013-03-05)
-================
-
-- Added ``bytes_as_strings`` option to ``Pickler``, ``dump``, and ``dumps``.
-
-- Incomplete support for Python 3.2:
-
- - Move ``_pickle.c`` -> ``_pickle_33.c``.
-
- - Clone Python 3.2.3's ``_pickle.c`` -> ``_pickle_32.c`` and apply the
- same patch.
-
- - Choose between them at build time based on ``sys.version_info``.
-
- - Disable some tests of 3.3-only features.
-
- - Missing: implementation of ``noload()`` in ``_pickle_32.c``.
-
- - Missing: implementation of ``bytes_as_strings=True`` in ``_pickle_32.c``.
-
-
-0.1.0 (2013-02-27)
-==================
-
-- Initial release of Python 3.3's pickle with the patches of Python
- `issue 6784`__ applied.
-
-.. __: http://bugs.python.org/issue6784#msg156166
-
-- Added support for ``errors="bytes"``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/src/zodbpickle.egg-info/SOURCES.txt
new/zodbpickle-4.3/src/zodbpickle.egg-info/SOURCES.txt
--- old/zodbpickle-4.2/src/zodbpickle.egg-info/SOURCES.txt 2025-02-12
11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/src/zodbpickle.egg-info/SOURCES.txt 2025-11-20
07:37:17.000000000 +0100
@@ -30,7 +30,6 @@
src/zodbpickle.egg-info/PKG-INFO
src/zodbpickle.egg-info/SOURCES.txt
src/zodbpickle.egg-info/dependency_links.txt
-src/zodbpickle.egg-info/not-zip-safe
src/zodbpickle.egg-info/requires.txt
src/zodbpickle.egg-info/top_level.txt
src/zodbpickle/tests/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/src/zodbpickle.egg-info/not-zip-safe
new/zodbpickle-4.3/src/zodbpickle.egg-info/not-zip-safe
--- old/zodbpickle-4.2/src/zodbpickle.egg-info/not-zip-safe 2025-02-12
11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/src/zodbpickle.egg-info/not-zip-safe 1970-01-01
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/src/zodbpickle.egg-info/requires.txt
new/zodbpickle-4.3/src/zodbpickle.egg-info/requires.txt
--- old/zodbpickle-4.2/src/zodbpickle.egg-info/requires.txt 2025-02-12
11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/src/zodbpickle.egg-info/requires.txt 2025-11-20
07:37:17.000000000 +0100
@@ -1,6 +1,7 @@
[docs]
Sphinx
+furo
[test]
-zope.testrunner
+zope.testrunner>=6.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/zodbpickle-4.2/tox.ini new/zodbpickle-4.3/tox.ini
--- old/zodbpickle-4.2/tox.ini 2025-02-12 11:10:10.000000000 +0100
+++ new/zodbpickle-4.3/tox.ini 2025-11-20 07:03:46.000000000 +0100
@@ -3,21 +3,22 @@
[tox]
minversion = 4.0
envlist =
+ release-check
lint
- py39,py39-pure
py310,py310-pure
py311,py311-pure
py312,py312-pure
py313,py313-pure
py314,py314-pure
+ py315,py315-pure
pypy3
docs
coverage
[testenv]
-pip_pre = py314: true
+pip_pre = py315: true
deps =
- setuptools <= 75.6.0
+ setuptools >= 78.1.1,< 81
setenv =
pure: PURE_PYTHON=1
!pure-!pypy3: PURE_PYTHON=0
@@ -50,7 +51,8 @@
basepython = python3
skip_install = true
deps =
- setuptools <= 75.6.0
+ setuptools
+ wheel
twine
build
check-manifest
@@ -59,7 +61,7 @@
commands_pre =
commands =
check-manifest
- check-python-versions --only setup.py,tox.ini,.github/workflows/tests.yml
+ check-python-versions --only
pyproject.toml,setup.py,tox.ini,.github/workflows/tests.yml
python -m build --sdist --no-isolation
twine check dist/*