Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-zope.testrunner for 
openSUSE:Factory checked in at 2026-09-01 15:48:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-zope.testrunner (Old)
 and      /work/SRC/openSUSE:Factory/.python-zope.testrunner.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-zope.testrunner"

Tue Sep  1 15:48:39 2026 rev:32 rq:1374982 version:8.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-zope.testrunner/python-zope.testrunner.changes
    2026-03-30 18:34:48.791872638 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-zope.testrunner.new.1265/python-zope.testrunner.changes
  2026-09-01 15:50:18.909856105 +0200
@@ -1,0 +2,12 @@
+Mon Aug 31 21:56:41 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 8.3:
+  * Move package metadata from setup.py to pyproject.toml.
+  * Add support for Python 3.15: Restore the pre-3.15 behavior of
+    reporting a doctest as a single test even if it contains
+    multiple examples.  Python 3.15 changed doctest.DocTestCase
+    to report each example as a separate subtest
+    (python/cpython#108885), which broke zope.testrunner's
+    failure reporting.
+
+-------------------------------------------------------------------

Old:
----
  zope_testrunner-8.2.tar.gz

New:
----
  zope_testrunner-8.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-zope.testrunner.spec ++++++
--- /var/tmp/diff_new_pack.iiW7hk/_old  2026-09-01 15:50:19.618880841 +0200
+++ /var/tmp/diff_new_pack.iiW7hk/_new  2026-09-01 15:50:19.619880876 +0200
@@ -31,7 +31,7 @@
 %endif
 %{?sle15_python_module_pythons}
 Name:           python-zope.testrunner%{psuffix}
-Version:        8.2
+Version:        8.3
 Release:        0
 Summary:        Zope testrunner script
 License:        ZPL-2.1

++++++ zope_testrunner-8.2.tar.gz -> zope_testrunner-8.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope_testrunner-8.2/.pre-commit-config.yaml 
new/zope_testrunner-8.3/.pre-commit-config.yaml
--- old/zope_testrunner-8.2/.pre-commit-config.yaml     2026-01-23 
08:27:52.000000000 +0100
+++ new/zope_testrunner-8.3/.pre-commit-config.yaml     2026-07-30 
08:30:28.000000000 +0200
@@ -1,9 +1,9 @@
-# Generated from:
-# https://github.com/zopefoundation/meta/tree/master/config/pure-python
+# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
+# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/pure-python
 minimum_pre_commit_version: '3.6'
 repos:
   - repo: https://github.com/pycqa/isort
-    rev: "7.0.0"
+    rev: "8.0.1"
     hooks:
     - id: isort
   - repo: https://github.com/hhatto/autopep8
@@ -12,7 +12,7 @@
     - id: autopep8
       args: [--in-place, --aggressive, --aggressive]
   - repo: https://github.com/asottile/pyupgrade
-    rev: v3.21.0
+    rev: v3.21.2
     hooks:
     - id: pyupgrade
       args: [--py310-plus]
@@ -20,6 +20,7 @@
     rev: 0.4.3
     hooks:
     - id: teyit
+      language_version: python3.13
       exclude: tests/testrunner-ex/sample2/badsyntax\.py
   - repo: https://github.com/PyCQA/flake8
     rev: "7.3.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope_testrunner-8.2/.readthedocs.yaml 
new/zope_testrunner-8.3/.readthedocs.yaml
--- old/zope_testrunner-8.2/.readthedocs.yaml   2026-01-23 08:27:52.000000000 
+0100
+++ new/zope_testrunner-8.3/.readthedocs.yaml   2026-07-30 08:30:28.000000000 
+0200
@@ -1,5 +1,5 @@
-# Generated from:
-# https://github.com/zopefoundation/meta/tree/master/config/pure-python
+# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
+# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/pure-python
 # Read the Docs configuration file
 # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope_testrunner-8.2/CHANGES.rst 
new/zope_testrunner-8.3/CHANGES.rst
--- old/zope_testrunner-8.2/CHANGES.rst 2026-01-23 08:27:52.000000000 +0100
+++ new/zope_testrunner-8.3/CHANGES.rst 2026-07-30 08:30:28.000000000 +0200
@@ -2,6 +2,18 @@
  zope.testrunner Changelog
 ===========================
 
+8.3 (2026-07-30)
+================
+
+- Move package metadata from setup.py to pyproject.toml.
+
+- Add support for Python 3.15: Restore the pre-3.15 behavior of reporting a
+  doctest as a single test even if it contains multiple examples.  Python 3.15
+  changed ``doctest.DocTestCase`` to report each example as a separate subtest
+  (`python/cpython#108885 <https://github.com/python/cpython/issues/108885>`_),
+  which broke zope.testrunner's failure reporting.
+
+
 8.2 (2026-01-23)
 ================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope_testrunner-8.2/CONTRIBUTING.md 
new/zope_testrunner-8.3/CONTRIBUTING.md
--- old/zope_testrunner-8.2/CONTRIBUTING.md     2026-01-23 08:27:52.000000000 
+0100
+++ new/zope_testrunner-8.3/CONTRIBUTING.md     2026-07-30 08:30:28.000000000 
+0200
@@ -1,6 +1,6 @@
 <!--
-Generated from:
-https://github.com/zopefoundation/meta/tree/master/config/pure-python
+Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
+https://github.com/zopefoundation/meta/tree/master/src/zope/meta/pure-python
 -->
 # Contributing to zopefoundation projects
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope_testrunner-8.2/MANIFEST.in 
new/zope_testrunner-8.3/MANIFEST.in
--- old/zope_testrunner-8.2/MANIFEST.in 2026-01-23 08:27:52.000000000 +0100
+++ new/zope_testrunner-8.3/MANIFEST.in 2026-07-30 08:30:28.000000000 +0200
@@ -1,5 +1,5 @@
-# Generated from:
-# https://github.com/zopefoundation/meta/tree/master/config/pure-python
+# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
+# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/pure-python
 include *.md
 include *.rst
 include *.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope_testrunner-8.2/PKG-INFO 
new/zope_testrunner-8.3/PKG-INFO
--- old/zope_testrunner-8.2/PKG-INFO    2026-01-23 08:27:53.879819000 +0100
+++ new/zope_testrunner-8.3/PKG-INFO    2026-07-30 08:30:53.669272400 +0200
@@ -1,16 +1,17 @@
 Metadata-Version: 2.4
 Name: zope.testrunner
-Version: 8.2
+Version: 8.3
 Summary: Zope testrunner script.
-Home-page: https://github.com/zopefoundation/zope.testrunner
-Author: Zope Foundation and Contributors
-Author-email: [email protected]
-License: ZPL-2.1
+Author-email: Zope Foundation and contributors <[email protected]>
+Maintainer-email: Plone Foundation and contributors <[email protected]>
+License-Expression: ZPL-2.1
+Project-URL: Source, https://github.com/zopefoundation/zope.testrunner
+Project-URL: Issues, https://github.com/zopefoundation/zope.testrunner/issues
+Project-URL: Changelog, 
https://github.com/zopefoundation/zope.testrunner/blob/master/CHANGES.rst
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Console
 Classifier: Framework :: Zope :: 3
 Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: Zope Public License
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
@@ -36,18 +37,7 @@
 Provides-Extra: docs
 Requires-Dist: Sphinx; extra == "docs"
 Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
-Dynamic: author
-Dynamic: author-email
-Dynamic: classifier
-Dynamic: description
-Dynamic: description-content-type
-Dynamic: home-page
-Dynamic: license
 Dynamic: license-file
-Dynamic: provides-extra
-Dynamic: requires-dist
-Dynamic: requires-python
-Dynamic: summary
 
 =================
  zope.testrunner
@@ -77,7 +67,6 @@
 
 Detailed documentation is hosted at https://zopetestrunner.readthedocs.io
 
-
 =======================
  Using zope.testrunner
 =======================
@@ -225,11 +214,22 @@
 .. _zc.recipe.testrunner: https://pypi.python.org/pypi/zc.recipe.testrunner
 .. _subunit: https://pypi.python.org/pypi/python-subunit
 
-
 ===========================
  zope.testrunner Changelog
 ===========================
 
+8.3 (2026-07-30)
+================
+
+- Move package metadata from setup.py to pyproject.toml.
+
+- Add support for Python 3.15: Restore the pre-3.15 behavior of reporting a
+  doctest as a single test even if it contains multiple examples.  Python 3.15
+  changed ``doctest.DocTestCase`` to report each example as a separate subtest
+  (`python/cpython#108885 <https://github.com/python/cpython/issues/108885>`_),
+  which broke zope.testrunner's failure reporting.
+
+
 8.2 (2026-01-23)
 ================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope_testrunner-8.2/pyproject.toml 
new/zope_testrunner-8.3/pyproject.toml
--- old/zope_testrunner-8.2/pyproject.toml      2026-01-23 08:27:52.000000000 
+0100
+++ new/zope_testrunner-8.3/pyproject.toml      2026-07-30 08:30:28.000000000 
+0200
@@ -1,14 +1,67 @@
-# 
-# Generated from:
-# https://github.com/zopefoundation/meta/tree/master/config/pure-python
-
+# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
+# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/pure-python
 [build-system]
 requires = [
-    "setuptools >= 78.1.1,< 81",
+    "setuptools >= 78.1.1,< 82",
     "wheel",
 ]
 build-backend = "setuptools.build_meta"
 
+[project]
+name = "zope.testrunner"
+version = "8.3"
+description = "Zope testrunner script."
+license = "ZPL-2.1"
+classifiers = [
+    "Development Status :: 5 - Production/Stable",
+    "Environment :: Console",
+    "Framework :: Zope :: 3",
+    "Intended Audience :: Developers",
+    "Operating System :: OS Independent",
+    "Programming Language :: Python",
+    "Programming Language :: Python :: 3",
+    "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 :: Software Development :: Libraries :: Python Modules",
+    "Topic :: Software Development :: Testing",
+]
+dynamic = ["readme"]
+requires-python = ">=3.10"
+authors = [
+    {name = "Zope Foundation and contributors",email = "[email protected]"},
+]
+maintainers = [
+    {name = "Plone Foundation and contributors",email = "[email protected]"},
+]
+dependencies = [
+    "zope.exceptions",
+    "zope.interface",
+]
+
+[project.scripts]
+zope-testrunner = "zope.testrunner:run"
+
+[project.optional-dependencies]
+test = ["zope.testing"]
+subunit = [
+    "python-subunit >= 1.4.3",
+    "testtools >= 0.9.30",
+]
+docs = [
+    "Sphinx",
+    "sphinxcontrib-programoutput",
+]
+
+[project.urls]
+Source = "https://github.com/zopefoundation/zope.testrunner";
+Issues = "https://github.com/zopefoundation/zope.testrunner/issues";
+Changelog = 
"https://github.com/zopefoundation/zope.testrunner/blob/master/CHANGES.rst";
+
 [tool.coverage.run]
 branch = true
 source = ["zope.testrunner"]
@@ -31,3 +84,10 @@
 
 [tool.coverage.html]
 directory = "parts/htmlcov"
+
+[tool.setuptools.dynamic]
+readme = {file = ["README.rst", "docs/getting-started.rst", "CHANGES.rst"]}
+
+[tool.zest-releaser]
+create-wheel = false
+upload-pypi = false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope_testrunner-8.2/setup.py 
new/zope_testrunner-8.3/setup.py
--- old/zope_testrunner-8.2/setup.py    2026-01-23 08:27:52.000000000 +0100
+++ new/zope_testrunner-8.3/setup.py    2026-07-30 08:30:28.000000000 +0200
@@ -16,84 +16,9 @@
 # When developing and releasing this package, please follow the documented
 # Zope Toolkit policies as described by this documentation.
 ##############################################################################
-import os
 
 from setuptools import setup
 
 
-version = '8.2'
-
-INSTALL_REQUIRES = [
-    'zope.exceptions',
-    'zope.interface',
-]
-
-TESTS_REQUIRE = [
-    'zope.testing',
-]
-
-EXTRAS_REQUIRE = {
-    'test': TESTS_REQUIRE,
-    'subunit': [
-        'python-subunit >= 1.4.3',
-        'testtools >= 0.9.30',
-    ],
-    'docs': [
-        'Sphinx',
-        'sphinxcontrib-programoutput',
-    ],
-}
-
-
-def read(*names):
-    with open(os.path.join(*names)) as f:
-        return f.read()
-
-
-long_description = (
-    read('README.rst')
-    + '\n\n' +
-    read("docs", 'getting-started.rst')
-    + '\n\n' +
-    read('CHANGES.rst')
-)
-
-setup(
-    name='zope.testrunner',
-    version=version,
-    url='https://github.com/zopefoundation/zope.testrunner',
-    license='ZPL-2.1',
-    description='Zope testrunner script.',
-    long_description=long_description,
-    long_description_content_type='text/x-rst',
-    author='Zope Foundation and Contributors',
-    author_email='[email protected]',
-    classifiers=[
-        "Development Status :: 5 - Production/Stable",
-        "Environment :: Console",
-        "Framework :: Zope :: 3",
-        "Intended Audience :: Developers",
-        "License :: OSI Approved :: Zope Public License",
-        "Operating System :: OS Independent",
-        "Programming Language :: Python",
-        "Programming Language :: Python :: 3",
-        "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 :: Software Development :: Libraries :: Python Modules",
-        "Topic :: Software Development :: Testing",
-    ],
-    python_requires='>=3.10',
-    install_requires=INSTALL_REQUIRES,
-    extras_require=EXTRAS_REQUIRE,
-    entry_points={
-        'console_scripts':
-            ['zope-testrunner = zope.testrunner:run'],
-    },
-    include_package_data=True,
-    zip_safe=False,
-)
+# See pyproject.toml for package metadata
+setup()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/zope_testrunner-8.2/src/zope/testrunner/_doctest.py 
new/zope_testrunner-8.3/src/zope/testrunner/_doctest.py
--- old/zope_testrunner-8.2/src/zope/testrunner/_doctest.py     2026-01-23 
08:27:52.000000000 +0100
+++ new/zope_testrunner-8.3/src/zope/testrunner/_doctest.py     2026-07-30 
08:30:28.000000000 +0200
@@ -15,7 +15,9 @@
 """
 
 import doctest
+import io
 import sys
+import unittest
 
 import zope.testrunner.feature
 from zope.testrunner.exceptions import DocTestFailureException
@@ -58,3 +60,37 @@
 
 # Use a special exception for the test runner.
 doctest.DocTestCase.failureException = DocTestFailureException
+
+
+if sys.version_info >= (3, 15):
+    # Python 3.15 changed ``doctest.DocTestCase.runTest`` to report each
+    # example as a separate subtest of the enclosing unittest result
+    # (python/cpython#108885).  These reports happen while the doctest
+    # machinery has ``sys.stdout`` redirected to its internal buffer, so
+    # zope.testrunner's immediate failure output would be swallowed by that
+    # buffer and corrupt the output of the following examples.  Restore the
+    # pre-3.15 behavior of raising a single failure for the whole doctest
+    # after ``sys.stdout`` has been restored.
+    def _runTest(self):
+        test = self._dt_test
+        optionflags = self._dt_optionflags
+
+        if not (optionflags & doctest.REPORTING_FLAGS):
+            # The option flags don't include any reporting flags,
+            # so add the default reporting flags
+            optionflags |= doctest._unittest_reportflags
+
+        runner = doctest.DocTestRunner(optionflags=optionflags,
+                                       checker=self._dt_checker,
+                                       verbose=False)
+        out = io.StringIO()
+        runner.DIVIDER = "-" * 70
+        results = runner.run(test, out=out.write, clear_globs=False)
+        if results.skipped == results.attempted:
+            raise unittest.SkipTest("all examples were skipped")
+
+        if results.failed:
+            raise self.failureException(
+                self.format_failure(out.getvalue().rstrip('\n')))
+
+    doctest.DocTestCase.runTest = _runTest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope_testrunner-8.2/src/zope/testrunner/tests/testrunner-errors.rst 
new/zope_testrunner-8.3/src/zope/testrunner/tests/testrunner-errors.rst
--- old/zope_testrunner-8.2/src/zope/testrunner/tests/testrunner-errors.rst     
2026-01-23 08:27:52.000000000 +0100
+++ new/zope_testrunner-8.3/src/zope/testrunner/tests/testrunner-errors.rst     
2026-07-30 08:30:28.000000000 +0200
@@ -826,7 +826,7 @@
     Traceback (most recent call last):
       File "testrunner-ex/sample2/sample21/sampletests_i.py", line 15, in ?
         import zope.testrunner.huh  # noqa: F401
-    ModuleNotFoundError: No module named 'zope.testrunner.huh'
+    ModuleNotFoundError: No module named 'zope.testrunner.huh'...
     <BLANKLINE>
     <BLANKLINE>
     Module: sample2.sample23.sampletests_i
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope_testrunner-8.2/src/zope/testrunner/tests/testrunner-subunit-v2.rst 
new/zope_testrunner-8.3/src/zope/testrunner/tests/testrunner-subunit-v2.rst
--- old/zope_testrunner-8.2/src/zope/testrunner/tests/testrunner-subunit-v2.rst 
2026-01-23 08:27:52.000000000 +0100
+++ new/zope_testrunner-8.3/src/zope/testrunner/tests/testrunner-subunit-v2.rst 
2026-07-30 08:30:28.000000000 +0200
@@ -449,7 +449,7 @@
     Traceback (most recent call last):
       File 
"/home/benji/workspace/all-the-trunks/zope.testrunner/src/zope/testrunner/testrunner-ex/sample2/sample21/sampletests_i.py",
 line 16, in <module>
         import zope.testrunner.huh  # noqa: F401...
-    ModuleNotFoundError: No module named 'zope.testrunner.huh'
+    ModuleNotFoundError: No module named 'zope.testrunner.huh'...
     <BLANKLINE>
     id=sample2.sample21.sampletests_i status=fail tags=(zope:import_error)
     id=sample2.sample23.sampletests_i status=inprogress
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope_testrunner-8.2/src/zope/testrunner/tests/testrunner-subunit.rst 
new/zope_testrunner-8.3/src/zope/testrunner/tests/testrunner-subunit.rst
--- old/zope_testrunner-8.2/src/zope/testrunner/tests/testrunner-subunit.rst    
2026-01-23 08:27:52.000000000 +0100
+++ new/zope_testrunner-8.3/src/zope/testrunner/tests/testrunner-subunit.rst    
2026-07-30 08:30:28.000000000 +0200
@@ -477,7 +477,7 @@
     Traceback (most recent call last):
       File 
"/home/benji/workspace/all-the-trunks/zope.testrunner/src/zope/testrunner/testrunner-ex/sample2/sample21/sampletests_i.py",
 line 16, in <module>
         import zope.testrunner.huh  # noqa: F401...
-    ModuleNotFoundError: No module named 'zope.testrunner.huh'
+    ModuleNotFoundError: No module named 'zope.testrunner.huh'...
     ]
     test: sample2.sample23.sampletests_i
     tags: zope:import_error
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope_testrunner-8.2/src/zope.testrunner.egg-info/PKG-INFO 
new/zope_testrunner-8.3/src/zope.testrunner.egg-info/PKG-INFO
--- old/zope_testrunner-8.2/src/zope.testrunner.egg-info/PKG-INFO       
2026-01-23 08:27:53.000000000 +0100
+++ new/zope_testrunner-8.3/src/zope.testrunner.egg-info/PKG-INFO       
2026-07-30 08:30:53.000000000 +0200
@@ -1,16 +1,17 @@
 Metadata-Version: 2.4
 Name: zope.testrunner
-Version: 8.2
+Version: 8.3
 Summary: Zope testrunner script.
-Home-page: https://github.com/zopefoundation/zope.testrunner
-Author: Zope Foundation and Contributors
-Author-email: [email protected]
-License: ZPL-2.1
+Author-email: Zope Foundation and contributors <[email protected]>
+Maintainer-email: Plone Foundation and contributors <[email protected]>
+License-Expression: ZPL-2.1
+Project-URL: Source, https://github.com/zopefoundation/zope.testrunner
+Project-URL: Issues, https://github.com/zopefoundation/zope.testrunner/issues
+Project-URL: Changelog, 
https://github.com/zopefoundation/zope.testrunner/blob/master/CHANGES.rst
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Environment :: Console
 Classifier: Framework :: Zope :: 3
 Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: Zope Public License
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
@@ -36,18 +37,7 @@
 Provides-Extra: docs
 Requires-Dist: Sphinx; extra == "docs"
 Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
-Dynamic: author
-Dynamic: author-email
-Dynamic: classifier
-Dynamic: description
-Dynamic: description-content-type
-Dynamic: home-page
-Dynamic: license
 Dynamic: license-file
-Dynamic: provides-extra
-Dynamic: requires-dist
-Dynamic: requires-python
-Dynamic: summary
 
 =================
  zope.testrunner
@@ -77,7 +67,6 @@
 
 Detailed documentation is hosted at https://zopetestrunner.readthedocs.io
 
-
 =======================
  Using zope.testrunner
 =======================
@@ -225,11 +214,22 @@
 .. _zc.recipe.testrunner: https://pypi.python.org/pypi/zc.recipe.testrunner
 .. _subunit: https://pypi.python.org/pypi/python-subunit
 
-
 ===========================
  zope.testrunner Changelog
 ===========================
 
+8.3 (2026-07-30)
+================
+
+- Move package metadata from setup.py to pyproject.toml.
+
+- Add support for Python 3.15: Restore the pre-3.15 behavior of reporting a
+  doctest as a single test even if it contains multiple examples.  Python 3.15
+  changed ``doctest.DocTestCase`` to report each example as a separate subtest
+  (`python/cpython#108885 <https://github.com/python/cpython/issues/108885>`_),
+  which broke zope.testrunner's failure reporting.
+
+
 8.2 (2026-01-23)
 ================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope_testrunner-8.2/src/zope.testrunner.egg-info/SOURCES.txt 
new/zope_testrunner-8.3/src/zope.testrunner.egg-info/SOURCES.txt
--- old/zope_testrunner-8.2/src/zope.testrunner.egg-info/SOURCES.txt    
2026-01-23 08:27:53.000000000 +0100
+++ new/zope_testrunner-8.3/src/zope.testrunner.egg-info/SOURCES.txt    
2026-07-30 08:30:53.000000000 +0200
@@ -47,7 +47,6 @@
 src/zope.testrunner.egg-info/SOURCES.txt
 src/zope.testrunner.egg-info/dependency_links.txt
 src/zope.testrunner.egg-info/entry_points.txt
-src/zope.testrunner.egg-info/not-zip-safe
 src/zope.testrunner.egg-info/requires.txt
 src/zope.testrunner.egg-info/top_level.txt
 src/zope/testrunner/__init__.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/zope_testrunner-8.2/src/zope.testrunner.egg-info/not-zip-safe 
new/zope_testrunner-8.3/src/zope.testrunner.egg-info/not-zip-safe
--- old/zope_testrunner-8.2/src/zope.testrunner.egg-info/not-zip-safe   
2026-01-23 08:27:53.000000000 +0100
+++ new/zope_testrunner-8.3/src/zope.testrunner.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/zope_testrunner-8.2/tox.ini 
new/zope_testrunner-8.3/tox.ini
--- old/zope_testrunner-8.2/tox.ini     2026-01-23 08:27:52.000000000 +0100
+++ new/zope_testrunner-8.3/tox.ini     2026-07-30 08:30:28.000000000 +0200
@@ -1,5 +1,5 @@
-# Generated from:
-# https://github.com/zopefoundation/meta/tree/master/config/pure-python
+# Generated with zope.meta (https://zopemeta.readthedocs.io/) from:
+# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/pure-python
 [tox]
 minversion = 3.18
 envlist =
@@ -10,6 +10,7 @@
     py312
     py313
     py314
+    py315
     pypy3
     docs
     coverage
@@ -19,8 +20,9 @@
 usedevelop = true
 package = wheel
 wheel_build_env = .pkg
+pip_pre = py315: true
 deps =
-    setuptools >= 78.1.1,< 81
+    setuptools >= 78.1.1,< 82
 commands =
     zope-testrunner --test-path=src {posargs:-vc}
 extras =
@@ -38,12 +40,12 @@
 basepython = python3
 skip_install = true
 deps =
-    setuptools >= 78.1.1,< 81
+    setuptools >= 78.1.1,< 82
     wheel
     twine
     build
     check-manifest
-    check-python-versions >= 0.20.0
+    check-python-versions >= 0.24.2
     wheel
 commands_pre =
 commands =

Reply via email to