python-hypothesis fails to build with Python 3.15.0b2. tests/cover/test_direct_strategies.py::test_produces_valid_examples_from_keyword[fractions(**{'min_value': -1, 'max_value': 1, 'max_denominator': 1000})] INTERNALERROR> def worker_internal_error( INTERNALERROR> self, node: WorkerController, formatted_error: str INTERNALERROR> ) -> None: INTERNALERROR> """ INTERNALERROR> pytest_internalerror() was called on the worker. INTERNALERROR> INTERNALERROR> pytest_internalerror() arguments are an excinfo and an excrepr, which can't INTERNALERROR> be serialized, so we go with a poor man's solution of raising an exception INTERNALERROR> here ourselves using the formatted message. INTERNALERROR> """ INTERNALERROR> self._active_nodes.remove(node) INTERNALERROR> try: INTERNALERROR> > assert False, formatted_error INTERNALERROR> ^^^^^ INTERNALERROR> E AssertionError: Traceback (most recent call last): INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 43, in run_old_style_hookwrapper INTERNALERROR> E teardown.send(result) INTERNALERROR> E ~~~~~~~~~~~~~^^^^^^^^ INTERNALERROR> E File "/builddir/build/BUILD/python-hypothesis-6.151.9-build/BUILDROOT/usr/lib/python3.15/site-packages/_hypothesis_pytestplugin.py", line 337, in pytest_runtest_makereport INTERNALERROR> E report = (yield).get_result() INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_result.py", line 103, in get_result INTERNALERROR> E raise exc.with_traceback(tb) INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 38, in run_old_style_hookwrapper INTERNALERROR> E res = yield INTERNALERROR> E ^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> E teardown.throw(exception) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/skipping.py", line 280, in pytest_runtest_makereport INTERNALERROR> E rep = yield INTERNALERROR> E ^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 121, in _multicall INTERNALERROR> E res = hook_impl.function(*args) INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/runner.py", line 377, in pytest_runtest_makereport INTERNALERROR> E return TestReport.from_item_and_call(item, call) INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/reports.py", line 438, in from_item_and_call INTERNALERROR> E longrepr = _format_failed_longrepr(item, call, excinfo) INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/reports.py", line 263, in _format_failed_longrepr INTERNALERROR> E longrepr = item.repr_failure(excinfo) INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/python.py", line 1762, in repr_failure INTERNALERROR> E return self._repr_failure_py(excinfo, style=style) INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/nodes.py", line 456, in _repr_failure_py INTERNALERROR> E return excinfo.getrepr( INTERNALERROR> E ~~~~~~~~~~~~~~~^ INTERNALERROR> E funcargs=True, INTERNALERROR> E ^^^^^^^^^^^^^^ INTERNALERROR> E ...<5 lines>... INTERNALERROR> E truncate_args=truncate_args, INTERNALERROR> E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E ) INTERNALERROR> E ^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/_code/code.py", line 746, in getrepr INTERNALERROR> E format_exception( INTERNALERROR> E ~~~~~~~~~~~~~~~~^ INTERNALERROR> E self.type, INTERNALERROR> E ^^^^^^^^^^ INTERNALERROR> E self.value, INTERNALERROR> E ^^^^^^^^^^^ INTERNALERROR> E self.traceback[0]._rawentry if self.traceback else None, INTERNALERROR> E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E ) INTERNALERROR> E ^ INTERNALERROR> E File "/usr/lib64/python3.15/traceback.py", line 200, in format_exception INTERNALERROR> E te = TracebackException(type(value), value, tb, limit=limit, compact=True) INTERNALERROR> E File "/usr/lib64/python3.15/traceback.py", line 1148, in __init__ INTERNALERROR> E self.stack = StackSummary._extract_from_extended_frame_gen( INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ INTERNALERROR> E _walk_tb_with_full_positions(exc_traceback), INTERNALERROR> E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E limit=limit, lookup_lines=lookup_lines, INTERNALERROR> E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E capture_locals=capture_locals) INTERNALERROR> E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib64/python3.15/traceback.py", line 534, in _extract_from_extended_frame_gen INTERNALERROR> E linecache.lazycache(filename, f.f_globals) INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "<frozen linecache>", line 217, in lazycache INTERNALERROR> E File "<frozen linecache>", line 238, in _make_lazycache_entry INTERNALERROR> E File "<frozen linecache>", line 265, in _bless_my_loader INTERNALERROR> E DeprecationWarning: Module globals is missing a __spec__.loader INTERNALERROR> E INTERNALERROR> E During handling of the above exception, another exception occurred: INTERNALERROR> E INTERNALERROR> E Traceback (most recent call last): INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/main.py", line 318, in wrap_session INTERNALERROR> E session.exitstatus = doit(config, session) or 0 INTERNALERROR> E ~~~~^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/main.py", line 372, in _main INTERNALERROR> E config.hook.pytest_runtestloop(session=session) INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_hooks.py", line 512, in __call__ INTERNALERROR> E return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_manager.py", line 120, in _hookexec INTERNALERROR> E return self._inner_hookexec(hook_name, methods, kwargs, firstresult) INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 167, in _multicall INTERNALERROR> E raise exception INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> E teardown.throw(exception) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/logging.py", line 801, in pytest_runtestloop INTERNALERROR> E return (yield) # Run all the tests. INTERNALERROR> E ^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> E teardown.throw(exception) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/terminal.py", line 707, in pytest_runtestloop INTERNALERROR> E result = yield INTERNALERROR> E ^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 121, in _multicall INTERNALERROR> E res = hook_impl.function(*args) INTERNALERROR> E File "/usr/lib/python3.15/site-packages/xdist/remote.py", line 206, in pytest_runtestloop INTERNALERROR> E self.run_one_test() INTERNALERROR> E ~~~~~~~~~~~~~~~~~^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/xdist/remote.py", line 227, in run_one_test INTERNALERROR> E self.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_hooks.py", line 512, in __call__ INTERNALERROR> E return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_manager.py", line 120, in _hookexec INTERNALERROR> E return self._inner_hookexec(hook_name, methods, kwargs, firstresult) INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 167, in _multicall INTERNALERROR> E raise exception INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> E teardown.throw(exception) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/warnings.py", line 89, in pytest_runtest_protocol INTERNALERROR> E return (yield) INTERNALERROR> E ^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> E teardown.throw(exception) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/assertion/__init__.py", line 192, in pytest_runtest_protocol INTERNALERROR> E return (yield) INTERNALERROR> E ^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> E teardown.throw(exception) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/unittest.py", line 591, in pytest_runtest_protocol INTERNALERROR> E return (yield) INTERNALERROR> E ^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> E teardown.throw(exception) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/faulthandler.py", line 102, in pytest_runtest_protocol INTERNALERROR> E return (yield) INTERNALERROR> E ^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 121, in _multicall INTERNALERROR> E res = hook_impl.function(*args) INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/runner.py", line 118, in pytest_runtest_protocol INTERNALERROR> E runtestprotocol(item, nextitem=nextitem) INTERNALERROR> E ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/runner.py", line 137, in runtestprotocol INTERNALERROR> E reports.append(call_and_report(item, "call", log)) INTERNALERROR> E ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/runner.py", line 249, in call_and_report INTERNALERROR> E report: TestReport = ihook.pytest_runtest_makereport(item=item, call=call) INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_hooks.py", line 512, in __call__ INTERNALERROR> E return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_manager.py", line 120, in _hookexec INTERNALERROR> E return self._inner_hookexec(hook_name, methods, kwargs, firstresult) INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 167, in _multicall INTERNALERROR> E raise exception INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> E teardown.throw(exception) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/_pytest/tmpdir.py", line 333, in pytest_runtest_makereport INTERNALERROR> E rep = yield INTERNALERROR> E ^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> E teardown.throw(exception) INTERNALERROR> E ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 47, in run_old_style_hookwrapper INTERNALERROR> E _warn_teardown_exception(hook_name, hook_impl, e) INTERNALERROR> E ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 73, in _warn_teardown_exception INTERNALERROR> E warnings.warn(PluggyTeardownRaisedWarning(msg), stacklevel=6) INTERNALERROR> E ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> E pluggy.PluggyTeardownRaisedWarning: A plugin raised an exception during an old-style hookwrapper teardown. INTERNALERROR> E Plugin: hypothesispytest, Hook: pytest_runtest_makereport INTERNALERROR> E DeprecationWarning: Module globals is missing a __spec__.loader INTERNALERROR> E For more information see https://pluggy.readthedocs.io/en/stable/api_reference.html#pluggy.PluggyTeardownRaisedWarning INTERNALERROR> INTERNALERROR> /usr/lib/python3.15/site-packages/xdist/dsession.py:232: AssertionError INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "/usr/lib/python3.15/site-packages/_pytest/main.py", line 318, in wrap_session INTERNALERROR> session.exitstatus = doit(config, session) or 0 INTERNALERROR> ~~~~^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.15/site-packages/_pytest/main.py", line 372, in _main INTERNALERROR> config.hook.pytest_runtestloop(session=session) INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.15/site-packages/pluggy/_hooks.py", line 512, in __call__ INTERNALERROR> return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.15/site-packages/pluggy/_manager.py", line 120, in _hookexec INTERNALERROR> return self._inner_hookexec(hook_name, methods, kwargs, firstresult) INTERNALERROR> ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 167, in _multicall INTERNALERROR> raise exception INTERNALERROR> File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> teardown.throw(exception) INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.15/site-packages/_pytest/logging.py", line 801, in pytest_runtestloop INTERNALERROR> return (yield) # Run all the tests. INTERNALERROR> ^^^^^ INTERNALERROR> File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall INTERNALERROR> teardown.throw(exception) INTERNALERROR> ~~~~~~~~~~~~~~^^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.15/site-packages/_pytest/terminal.py", line 707, in pytest_runtestloop INTERNALERROR> result = yield INTERNALERROR> ^^^^^ INTERNALERROR> File "/usr/lib/python3.15/site-packages/pluggy/_callers.py", line 121, in _multicall INTERNALERROR> res = hook_impl.function(*args) INTERNALERROR> File "/usr/lib/python3.15/site-packages/xdist/dsession.py", line 138, in pytest_runtestloop INTERNALERROR> self.loop_once() INTERNALERROR> ~~~~~~~~~~~~~~^^ INTERNALERROR> File "/usr/lib/python3.15/site-packages/xdist/dsession.py", line 163, in loop_once INTERNALERROR> call(**kwargs) INTERNALERROR> ~~~~^^^^^^^^^^ INTERNALERROR> File "/usr/lib/python3.15/site-packages/xdist/dsession.py", line 217, in worker_workerfinished INTERNALERROR> assert not crashitem, (crashitem, node) INTERNALERROR> ^^^^^^^^^^^^^ INTERNALERROR> AssertionError: ('hypothesis-python/tests/cover/test_example.py::test_xfail_reraises_non_specified_exception', <WorkerController gw9>) https://docs.python.org/3.15/whatsnew/3.15.html For our attempts to build python-hypothesis with Python 3.15, see: https://koji.fedoraproject.org/koji/search?terms=python-hypothesis&type=package&match=exact Let us know here if you have any questions. Python 3.15 is planned to be included in Fedora 45. To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.15. A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon. We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.