python-twisted fails to build with Python 3.15.0a5. [FAIL] Traceback (most recent call last): File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/test/test_doctest.py", line 58, in test_repeatable self._testRun(suite) File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/test/test_doctest.py", line 43, in _testRun self.assertEqual(5, result.successes) File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/_synctest.py", line 444, in assertEqual super().assertEqual(first, second, msg) File "/usr/lib64/python3.15/unittest/case.py", line 925, in assertEqual assertion_func(first, second, msg=msg) File "/usr/lib64/python3.15/unittest/case.py", line 918, in _baseAssertEqual raise self.failureException(msg) twisted.trial.unittest.FailTest: 5 != 7 twisted.trial.test.test_doctest.RunnersTests.test_repeatable =============================================================================== [FAIL] Traceback (most recent call last): File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/test/test_loader.py", line 67, in test_findNonFile self.assertRaises(ValueError, self.loader.findByName, path) File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/_synctest.py", line 430, in assertRaises return context._handle(lambda: f(*args, **kwargs)) File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/_synctest.py", line 320, in _handle with self as context: File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/_synctest.py", line 355, in __exit__ self._testCase.fail( twisted.trial.unittest.FailTest: builtins.AttributeError raised instead of ValueError: Traceback (most recent call last): File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/_synctest.py", line 321, in _handle self._returnValue = obj() File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/_synctest.py", line 430, in <lambda> return context._handle(lambda: f(*args, **kwargs)) File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/runner.py", line 460, in findByName return self.loadFile(_name, recurse=recurse) File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/runner.py", line 763, in loadFile module = SourceFileLoader(name, fileName).load_module() builtins.AttributeError: 'SourceFileLoader' object has no attribute 'load_module' twisted.trial.test.test_loader.FinderPy3Tests.test_findNonFile [FAIL] Traceback (most recent call last): File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/test/test_reporter.py", line 209, in test_doctestError self.assertSubstring(substring, output) File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/_synctest.py", line 590, in assertSubstring return self.failUnlessIn(substring, astring, msg) File "/builddir/build/BUILD/python-twisted-25.5.0-build/twisted-twisted-25.5.0/src/twisted/trial/_synctest.py", line 509, in assertIn raise self.failureException(msg or f"{containee!r} not in {container!r}") twisted.trial.unittest.FailTest: '1/0' not in '\n===============================================================================\n[ERROR]\nTraceback (most recent call last):\n File "/usr/lib64/python3.15/unittest/case.py", line 58, in testPartExecutor\n yield\n File "/usr/lib64/python3.15/unittest/case.py", line 667, in run\n self._callTestMethod(testMethod)\n File "/usr/lib64/python3.15/unittest/case.py", line 613, in _callTestMethod\n result = method()\n File "/usr/lib64/python3.15/doctest.py", line 2406, in runTest\n results = runner.run(test, clear_globs=False)\n File "/usr/lib64/python3.15/doctest.py", line 1598, in run\n return self.__run(test, compileflags, out)\n File "/usr/lib64/python3.15/doctest.py", line 1496, in __run\n self.report_unexpected_exception(out, test, example,\n File "/usr/lib64/python3.15/doctest.py", line 2329, in report_unexpected_exception\n self._test_result.addSubTest(self._test_case, self._subTest(), exc_info)\nbuiltins.AttributeError: \'_AdaptedReporter\' object has no attribute \'addSubTest\'\n\nDoctest: twisted.trial.test.erroneous.unexpectedException\n-------------------------------------------------------------------------------\nRan 1 tests in 0.001s\n\nFAILED (errors=1)\n' twisted.trial.test.test_reporter.ErrorReportingTests.test_doctestError twisted.trial.test.test_reporter.UncleanWarningWrapperErrorReportingTests.test_doctestError https://docs.python.org/3.15/whatsnew/3.15.html For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.15/fedora-rawhide-x86_64/10047698-python-twisted/ For all our attempts to build python-twisted with Python 3.15, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.15/package/python-twisted/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.15: https://copr.fedorainfracloud.org/coprs/g/python/python3.15/ 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.