diff -pruN 2.3.1-2/PKG-INFO 2.4.0-1/PKG-INFO
--- 2.3.1-2/PKG-INFO	2024-03-07 21:03:27.609297800 +0000
+++ 2.4.0-1/PKG-INFO	2025-05-05 19:37:30.388433000 +0000
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: pytest-timeout
-Version: 2.3.1
+Version: 2.4.0
 Summary: pytest plugin to abort hanging tests
 Home-page: https://github.com/pytest-dev/pytest-timeout
 Author: Floris Bruynooghe
@@ -23,12 +23,15 @@ Classifier: Programming Language :: Pyth
 Classifier: Programming Language :: Python :: 3.9
 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: Topic :: Software Development :: Testing
 Classifier: Framework :: Pytest
 Requires-Python: >=3.7
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: pytest>=7.0.0
+Dynamic: license-file
 
 ==============
 pytest-timeout
@@ -169,10 +172,10 @@ The downsides of this method are that th
 overhead for running each test and that test runs are not completed.
 This means that other pytest features, like e.g. JUnit XML output or
 fixture teardown, will not function normally.  The second issue might
-be alleviated by using the ``--boxed`` option of the pytest-xdist_
+be alleviated by using the ``--forked`` option of the pytest-forked_
 plugin.
 
-.. _pytest-xdist: https://pypi.org/project/pytest-xdist/
+.. _pytest-forked: https://pypi.org/project/pytest-forked/
 
 The benefit of this method is that it will always work.  Furthermore
 it will still provide you debugging information by printing the stacks
@@ -424,6 +427,14 @@ to 100 seconds::
 Changelog
 =========
 
+2.4.0
+-----
+
+- Detect debuggers registered with sys.monitoring.  Thanks Rich
+  Chiodo.
+- Make it clear the timeout message comes from pytest-timeout.  Thanks
+  Pedro Brochado.
+
 2.3.1
 -----
 
diff -pruN 2.3.1-2/README.rst 2.4.0-1/README.rst
--- 2.3.1-2/README.rst	2024-03-07 21:02:37.000000000 +0000
+++ 2.4.0-1/README.rst	2025-05-05 19:17:23.000000000 +0000
@@ -137,10 +137,10 @@ The downsides of this method are that th
 overhead for running each test and that test runs are not completed.
 This means that other pytest features, like e.g. JUnit XML output or
 fixture teardown, will not function normally.  The second issue might
-be alleviated by using the ``--boxed`` option of the pytest-xdist_
+be alleviated by using the ``--forked`` option of the pytest-forked_
 plugin.
 
-.. _pytest-xdist: https://pypi.org/project/pytest-xdist/
+.. _pytest-forked: https://pypi.org/project/pytest-forked/
 
 The benefit of this method is that it will always work.  Furthermore
 it will still provide you debugging information by printing the stacks
@@ -392,6 +392,14 @@ to 100 seconds::
 Changelog
 =========
 
+2.4.0
+-----
+
+- Detect debuggers registered with sys.monitoring.  Thanks Rich
+  Chiodo.
+- Make it clear the timeout message comes from pytest-timeout.  Thanks
+  Pedro Brochado.
+
 2.3.1
 -----
 
diff -pruN 2.3.1-2/debian/changelog 2.4.0-1/debian/changelog
--- 2.3.1-2/debian/changelog	2025-07-02 09:16:21.000000000 +0000
+++ 2.4.0-1/debian/changelog	2025-09-07 15:45:42.000000000 +0000
@@ -1,3 +1,11 @@
+python-pytest-timeout (2.4.0-1) unstable; urgency=medium
+
+  * Remove gustavo panizzo from Uploaders and add myself (Closes: #1114575)
+  * Update to new upstream release 2.4.0
+  * Update Standards-Version to 4.7.2 (no changes needed)
+
+ -- Scott Talbert <swt@techie.net>  Sun, 07 Sep 2025 11:45:42 -0400
+
 python-pytest-timeout (2.3.1-2) unstable; urgency=medium
 
   * Team upload.
diff -pruN 2.3.1-2/debian/control 2.4.0-1/debian/control
--- 2.3.1-2/debian/control	2025-05-14 18:33:49.000000000 +0000
+++ 2.4.0-1/debian/control	2025-09-07 15:40:39.000000000 +0000
@@ -2,7 +2,7 @@ Source: python-pytest-timeout
 Section: python
 Priority: optional
 Maintainer: Debian Python Team <team+python@tracker.debian.org>
-Uploaders: gustavo panizzo <gfa@zumbi.com.ar>
+Uploaders: Scott Talbert <swt@techie.net>
 Build-Depends: debhelper-compat (= 13),
                dh-python,
                pybuild-plugin-pyproject,
@@ -11,7 +11,7 @@ Build-Depends: debhelper-compat (= 13),
                python3-pytest,
                python3-pytest-cov,
                python3-setuptools
-Standards-Version: 4.6.2
+Standards-Version: 4.7.2
 Homepage: https://github.com/pytest-dev/pytest-timeout
 Vcs-Git: https://salsa.debian.org/python-team/packages/python-pytest-timeout.git
 Vcs-Browser: https://salsa.debian.org/python-team/packages/python-pytest-timeout
@@ -36,7 +36,6 @@ Description: Pytest plugin to abort hang
  nevertheless, which is the most important part at this stage. See below
  for detailed information on the timeout methods and their side-effects.
  .
- The pytest-timeout plugin has been tested on Python 2.6 or higher,
- including 3.X and pypy.
+ The pytest-timeout plugin has been tested on CPython and pypy.
  .
  This package provides support for Python 3.X.
diff -pruN 2.3.1-2/pytest_timeout.egg-info/PKG-INFO 2.4.0-1/pytest_timeout.egg-info/PKG-INFO
--- 2.3.1-2/pytest_timeout.egg-info/PKG-INFO	2024-03-07 21:03:27.000000000 +0000
+++ 2.4.0-1/pytest_timeout.egg-info/PKG-INFO	2025-05-05 19:37:30.000000000 +0000
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: pytest-timeout
-Version: 2.3.1
+Version: 2.4.0
 Summary: pytest plugin to abort hanging tests
 Home-page: https://github.com/pytest-dev/pytest-timeout
 Author: Floris Bruynooghe
@@ -23,12 +23,15 @@ Classifier: Programming Language :: Pyth
 Classifier: Programming Language :: Python :: 3.9
 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: Topic :: Software Development :: Testing
 Classifier: Framework :: Pytest
 Requires-Python: >=3.7
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: pytest>=7.0.0
+Dynamic: license-file
 
 ==============
 pytest-timeout
@@ -169,10 +172,10 @@ The downsides of this method are that th
 overhead for running each test and that test runs are not completed.
 This means that other pytest features, like e.g. JUnit XML output or
 fixture teardown, will not function normally.  The second issue might
-be alleviated by using the ``--boxed`` option of the pytest-xdist_
+be alleviated by using the ``--forked`` option of the pytest-forked_
 plugin.
 
-.. _pytest-xdist: https://pypi.org/project/pytest-xdist/
+.. _pytest-forked: https://pypi.org/project/pytest-forked/
 
 The benefit of this method is that it will always work.  Furthermore
 it will still provide you debugging information by printing the stacks
@@ -424,6 +427,14 @@ to 100 seconds::
 Changelog
 =========
 
+2.4.0
+-----
+
+- Detect debuggers registered with sys.monitoring.  Thanks Rich
+  Chiodo.
+- Make it clear the timeout message comes from pytest-timeout.  Thanks
+  Pedro Brochado.
+
 2.3.1
 -----
 
diff -pruN 2.3.1-2/pytest_timeout.py 2.4.0-1/pytest_timeout.py
--- 2.3.1-2/pytest_timeout.py	2024-03-07 20:51:08.000000000 +0000
+++ 2.4.0-1/pytest_timeout.py	2025-05-05 19:16:09.000000000 +0000
@@ -21,7 +21,7 @@ import pytest
 __all__ = ("is_debugging", "Settings")
 SESSION_TIMEOUT_KEY = pytest.StashKey[float]()
 SESSION_EXPIRE_KEY = pytest.StashKey[float]()
-
+PYTEST_FAILURE_MESSAGE = "Timeout (>%ss) from pytest-timeout."
 
 HAVE_SIGALRM = hasattr(signal, "SIGALRM")
 if HAVE_SIGALRM:
@@ -290,6 +290,10 @@ def is_debugging(trace_func=None):
         for name in KNOWN_DEBUGGING_MODULES:
             if any(part.startswith(name) for part in parts):
                 return True
+    
+    # For 3.12, sys.monitoring is used for tracing. Check if any debugger has been registered.
+    if hasattr(sys, "monitoring"):
+        return sys.monitoring.get_tool(sys.monitoring.DEBUGGER_ID) != None
     return False
 
 
@@ -495,7 +499,7 @@ def timeout_sigalrm(item, settings):
     dump_stacks(terminal)
     if nthreads > 1:
         terminal.sep("+", title="Timeout")
-    pytest.fail("Timeout >%ss" % settings.timeout)
+    pytest.fail(PYTEST_FAILURE_MESSAGE % settings.timeout)
 
 
 def timeout_timer(item, settings):
diff -pruN 2.3.1-2/setup.cfg 2.4.0-1/setup.cfg
--- 2.3.1-2/setup.cfg	2024-03-07 21:03:27.609297800 +0000
+++ 2.4.0-1/setup.cfg	2025-05-05 19:37:30.388433000 +0000
@@ -3,7 +3,7 @@ name = pytest-timeout
 description = pytest plugin to abort hanging tests
 long_description = file: README.rst
 long_description_content_type = text/x-rst
-version = 2.3.1
+version = 2.4.0
 author = Floris Bruynooghe
 author_email = flub@devork.be
 url = https://github.com/pytest-dev/pytest-timeout
@@ -26,6 +26,8 @@ classifiers =
 	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
 	Topic :: Software Development :: Testing
 	Framework :: Pytest
 
diff -pruN 2.3.1-2/test_pytest_timeout.py 2.4.0-1/test_pytest_timeout.py
--- 2.3.1-2/test_pytest_timeout.py	2024-03-07 20:51:08.000000000 +0000
+++ 2.4.0-1/test_pytest_timeout.py	2025-05-05 19:16:09.000000000 +0000
@@ -5,7 +5,10 @@ import time
 
 import pexpect
 import pytest
+from pytest_timeout import PYTEST_FAILURE_MESSAGE
 
+
+MATCH_FAILURE_MESSAGE = f"*Failed: {PYTEST_FAILURE_MESSAGE}*"
 pytest_plugins = "pytester"
 
 have_sigalrm = pytest.mark.skipif(
@@ -44,7 +47,7 @@ def test_sigalrm(pytester):
      """
     )
     result = pytester.runpytest_subprocess("--timeout=1")
-    result.stdout.fnmatch_lines(["*Failed: Timeout >1.0s*"])
+    result.stdout.fnmatch_lines([MATCH_FAILURE_MESSAGE % "1.0"])
 
 
 def test_thread(pytester):
@@ -239,7 +242,7 @@ def test_timeout_mark_sigalrm(pytester):
     """
     )
     result = pytester.runpytest_subprocess()
-    result.stdout.fnmatch_lines(["*Failed: Timeout >1.0s*"])
+    result.stdout.fnmatch_lines([MATCH_FAILURE_MESSAGE % "1.0"])
 
 
 def test_timeout_mark_timer(pytester):
@@ -480,7 +483,7 @@ def test_suppresses_timeout_when_debugge
     result = child.read().decode().lower()
     if child.isalive():
         child.terminate(force=True)
-    assert "timeout >1.0s" not in result
+    assert "timeout (>1.0s)" not in result
     assert "fail" not in result
 
 
@@ -524,7 +527,7 @@ def test_disable_debugger_detection_flag
     result = child.read().decode().lower()
     if child.isalive():
         child.terminate(force=True)
-    assert "timeout >1.0s" in result
+    assert "timeout (>1.0s)" in result
     assert "fail" in result
 
 
diff -pruN 2.3.1-2/tox.ini 2.4.0-1/tox.ini
--- 2.3.1-2/tox.ini	2024-02-08 19:02:43.000000000 +0000
+++ 2.4.0-1/tox.ini	2025-05-05 19:27:10.000000000 +0000
@@ -3,7 +3,7 @@ minversion = 7.0
 addopts = -ra
 
 [tox]
-envlist = py37,py38,py39,py310,py311,py312,pypy3
+envlist = py37,py38,py39,py310,py311,py312,py313,pypy3
 
 [testenv]
 deps = pytest
