Package: src:pydevd
Version: 3.5.0+ds-2
User: [email protected]
Usertags: python3.15
Tags: patch, ftbfs, forky, sid
Severity: important

Hi!

While rebuilding the python related packages against the Python 3.15rc2
version we found that pydevd fails to build from source [1].

The error happens because the AST compile and parse functions require a
new `module` keyword argument that was missing. This can easily be
patched by adding it.

I've applied this fix in the sandbox [2] to verify that it builds
successfully, please consider applying the patch to support the upcoming
3.15 version.

Setting the severity to important for now. Once Python 3.15 is released,
it will be added to python3-defaults and this bug will become release
critical.

Happy hacking,

[1]: https://debusine.debian.net/debian/r-python-python3.15/artifact/4390079/
[2]: https://debusine.debian.net/debian/r-python-python3.15/

--
"Can you imagine what I would do if I could do all I can?" -- Sun Tzu
Saludos /\/\ /\ >< `/
From: Maximiliano Curia <[email protected]>
Date: Fri, 11 Sep 2026 08:00:00 +0200
Subject: Adjust tests for Python 3.15

Forwarded: not-needed
Last-Update: 2026-09-11

---
 tests/test_simpleTipper.py                 | 2 ++
 tests_python/test_collect_bytecode_info.py | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/tests/test_simpleTipper.py b/tests/test_simpleTipper.py
index 85dbad09..c66b24c5 100644
--- a/tests/test_simpleTipper.py
+++ b/tests/test_simpleTipper.py
@@ -145,6 +145,7 @@ class TestCPython(unittest.TestCase):
             "(source, filename, mode, flags, dont_inherit)",
             "(source, filename, mode, flags, dont_inherit, optimize, _feature_version=-1)",
             "(source, filename, mode, flags, dont_inherit, optimize, _feature_version)",
+            "(source, filename, mode, flags, dont_inherit, optimize, module=None, _feature_version=-1)",
         )  # args

         t = self.assert_in("setattr", tip)
@@ -182,6 +183,7 @@ class TestCPython(unittest.TestCase):
                         "(source, filename, mode)",
                         "(source, filename, mode, type_comments=False, feature_version=None)",
                         "(source, filename, mode, type_comments=False, feature_version=None, optimize=-1)",
+                        "(source, filename, mode, type_comments=False, feature_version=None, optimize=-1, module=None)",
                     ],
                     tip,
                 )
diff --git a/tests_python/test_collect_bytecode_info.py b/tests_python/test_collect_bytecode_info.py
index 6fd70e20..8b03c4fa 100644
--- a/tests_python/test_collect_bytecode_info.py
+++ b/tests_python/test_collect_bytecode_info.py
@@ -160,7 +160,7 @@ class _ExcVerifier(object):
             if update_try_except_infos is not None:
                 update_try_except_infos(try_except_infos)

-            if sys.version_info[:2] not in ((3, 10), (3, 11), (3, 12), (3, 13), (3, 14)):
+            if sys.version_info[:2] not in ((3, 10), (3, 11), (3, 12), (3, 13), (3, 14), (3, 15)):
                 assert str(try_except_infos) == expected_as_str
             from _pydevd_bundle.pydevd_collect_bytecode_info import collect_try_except_info_from_source

@@ -192,7 +192,7 @@ def test_collect_try_except_info(data_regression, pyfile):
             info = collect_try_except_info(method.__code__, use_func_first_line=True)
             method_to_info[key] = sorted(str(x) for x in info)

-    if sys.version_info[:2] not in ((3, 10), (3, 11), (3, 12), (3, 13), (3, 14)):
+    if sys.version_info[:2] not in ((3, 10), (3, 11), (3, 12), (3, 13), (3, 14), (3, 15)):
         data_regression.check(method_to_info)

     data_regression.check(method_to_info_from_source)

Reply via email to