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/*
 

Reply via email to