Your message dated Sat, 19 Sep 2026 18:50:35 +0000
with message-id <[email protected]>
and subject line Bug#1140978: fixed in flask-caching 2.4.1-2
has caused the Debian Bug report #1140978,
regarding flask-caching: FTBFS: E                   
pytest.PytestRemovedIn10Warning: Class-scoped fixture defined as instance 
method is deprecated.
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1140978: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1140978
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:flask-caching
Version: 2.4.0-1
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202606/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:flask-caching, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --with python3 --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --with python3 --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:142: Building wheel for python3.13 with "build" 
module
I: pybuild base:385: python3.13 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_flask-caching  
* Building wheel...
Successfully built flask_caching-2.4.0-py3-none-any.whl
I: pybuild plugin_pyproject:168: Unpacking wheel built for python3.13 with 
"installer" module
I: pybuild plugin_pyproject:142: Building wheel for python3.14 with "build" 
module
I: pybuild base:385: python3.14 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_flask-caching  
* Building wheel...
Successfully built flask_caching-2.4.0-py3-none-any.whl
I: pybuild plugin_pyproject:168: Unpacking wheel built for python3.14 with 
"installer" module
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:385: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_flask-caching/build; python3.13 -m 
pytest tests
============================= test session starts ==============================
platform linux -- Python 3.13.14, pytest-9.1.1, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_flask-caching/build
configfile: pyproject.toml
plugins: typeguard-4.4.4
collected 199 items

tests/test_backend_cache.py ...........................sssssssssssssssss [ 22%]
ssssssssssssssssssssssssssssssssssssssss.ssssssssssssssssE               [ 51%]
tests/test_basic_app.py ....ssss..                                       [ 56%]
tests/test_cache.py .....s................                               [ 67%]
tests/test_init.py ......                                                [ 70%]
tests/test_memoize.py ........................................           [ 90%]
tests/test_templates.py .                                                [ 90%]
tests/test_view.py ..................                                    [100%]

==================================== ERRORS ====================================
___________________ ERROR at setup of TestNullCache.test_has ___________________

cls = <class '_pytest.runner.CallInfo'>
func = <function call_and_report.<locals>.<lambda> at 0x7f52f0492340>
when = 'setup'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)

    @classmethod
    def from_call(
        cls,
        func: Callable[[], TResult],
        when: Literal["collect", "setup", "call", "teardown"],
        reraise: type[BaseException] | tuple[type[BaseException], ...] | None = 
None,
    ) -> CallInfo[TResult]:
        """Call func, wrapping the result in a CallInfo.
    
        :param func:
            The function to call. Called without arguments.
        :type func: Callable[[], _pytest.runner.TResult]
        :param when:
            The phase in which the function is called.
        :param reraise:
            Exception or exceptions that shall propagate if raised by the
            function, instead of being wrapped in the CallInfo.
        """
        excinfo = None
        instant = timing.Instant()
        try:
>           result: TResult | None = func()
                                     ^^^^^^

/usr/lib/python3/dist-packages/_pytest/runner.py:361: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3/dist-packages/_pytest/runner.py:250: in <lambda>
    lambda: runtest_hook(item=item, **kwds),
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
           
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/logging.py:858: in pytest_runtest_setup
    yield
/usr/lib/python3/dist-packages/_pytest/capture.py:895: in pytest_runtest_setup
    return (yield)
            ^^^^^
/usr/lib/python3/dist-packages/_pytest/runner.py:170: in pytest_runtest_setup
    item.session._setupstate.setup(item)
/usr/lib/python3/dist-packages/_pytest/runner.py:536: in setup
    col.setup()
/usr/lib/python3/dist-packages/_pytest/python.py:1710: in setup
    self._request._fillfixtures()
/usr/lib/python3/dist-packages/_pytest/fixtures.py:806: in _fillfixtures
    item.funcargs[argname] = self.getfixturevalue(argname)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/fixtures.py:630: in getfixturevalue
    fixturedef = self._get_active_fixturedef(argname)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/fixtures.py:726: in 
_get_active_fixturedef
    fixturedef.execute(request=subrequest)
/usr/lib/python3/dist-packages/_pytest/fixtures.py:1232: in execute
    result: FixtureValue = ihook.pytest_fixture_setup(
/usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
           
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/setuponly.py:36: in pytest_fixture_setup
    return (yield)
            ^^^^^
/usr/lib/python3/dist-packages/_pytest/fixtures.py:1313: in pytest_fixture_setup
    fixturefunc = resolve_fixture_function(fixturedef, request)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

fixturedef = <FixtureDef argname='make_cache' scope='class' 
baseid='tests/test_backend_cache.py::TestNullCache'>
request = <SubRequest 'make_cache' for <Function test_has>>

    def resolve_fixture_function(
        fixturedef: FixtureDef[FixtureValue], request: FixtureRequest
    ) -> _FixtureFunc[FixtureValue]:
        """Get the actual callable that can be called to obtain the fixture
        value."""
        fixturefunc = fixturedef.func
        # The fixture function needs to be bound to the actual
        # request.instance so that code working with "fixturedef" behaves
        # as expected.
        instance = request.instance
    
        if fixturedef._scope is Scope.Class:
            # Check if fixture is an instance method (bound to instance, not 
class)
            if hasattr(fixturefunc, "__self__"):
                bound_to = fixturefunc.__self__
                # classmethod: bound_to is the class itself (a type)
                # instance method: bound_to is an instance (not a type)
                if not isinstance(bound_to, type):
>                   warnings.warn(CLASS_FIXTURE_INSTANCE_METHOD, stacklevel=2)
E                   pytest.PytestRemovedIn10Warning: Class-scoped fixture 
defined as instance method is deprecated.
E                   Instance attributes set in this fixture will NOT be visible 
to test methods,
E                   as each test gets a new instance while the fixture runs 
only once per class.
E                   Use @classmethod decorator and set attributes on cls 
instead.
E                   See 
https://docs.pytest.org/en/stable/deprecations.html#class-scoped-fixture-as-instance-method

/usr/lib/python3/dist-packages/_pytest/fixtures.py:1289: 
PytestRemovedIn10Warning
=========================== short test summary info ============================
ERROR tests/test_backend_cache.py::TestNullCache::test_has - pytest.PytestRem...
============= 120 passed, 78 skipped, 1 error in 95.64s (0:01:35) ==============
E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_flask-caching/build; python3.13 -m 
pytest tests
I: pybuild base:385: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_flask-caching/build; python3.14 -m 
pytest tests
============================= test session starts ==============================
platform linux -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_flask-caching/build
configfile: pyproject.toml
plugins: typeguard-4.4.4
collected 199 items

tests/test_backend_cache.py ...........................sssssssssssssssss [ 22%]
ssssssssssssssssssssssssssssssssssssssss.ssssssssssssssssE               [ 51%]
tests/test_basic_app.py ....ssss..                                       [ 56%]
tests/test_cache.py .....s................                               [ 67%]
tests/test_init.py ......                                                [ 70%]
tests/test_memoize.py ........................................           [ 90%]
tests/test_templates.py .                                                [ 90%]
tests/test_view.py ..................                                    [100%]

==================================== ERRORS ====================================
___________________ ERROR at setup of TestNullCache.test_has ___________________

cls = <class '_pytest.runner.CallInfo'>
func = <function call_and_report.<locals>.<lambda> at 0x7f70f0f42140>
when = 'setup'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)

    @classmethod
    def from_call(
        cls,
        func: Callable[[], TResult],
        when: Literal["collect", "setup", "call", "teardown"],
        reraise: type[BaseException] | tuple[type[BaseException], ...] | None = 
None,
    ) -> CallInfo[TResult]:
        """Call func, wrapping the result in a CallInfo.
    
        :param func:
            The function to call. Called without arguments.
        :type func: Callable[[], _pytest.runner.TResult]
        :param when:
            The phase in which the function is called.
        :param reraise:
            Exception or exceptions that shall propagate if raised by the
            function, instead of being wrapped in the CallInfo.
        """
        excinfo = None
        instant = timing.Instant()
        try:
>           result: TResult | None = func()
                                     ^^^^^^

/usr/lib/python3/dist-packages/_pytest/runner.py:361: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3/dist-packages/_pytest/runner.py:250: in <lambda>
    lambda: runtest_hook(item=item, **kwds),
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
           
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/logging.py:858: in pytest_runtest_setup
    yield
/usr/lib/python3/dist-packages/_pytest/capture.py:895: in pytest_runtest_setup
    return (yield)
            ^^^^^
/usr/lib/python3/dist-packages/_pytest/runner.py:170: in pytest_runtest_setup
    item.session._setupstate.setup(item)
/usr/lib/python3/dist-packages/_pytest/runner.py:536: in setup
    col.setup()
/usr/lib/python3/dist-packages/_pytest/python.py:1710: in setup
    self._request._fillfixtures()
/usr/lib/python3/dist-packages/_pytest/fixtures.py:806: in _fillfixtures
    item.funcargs[argname] = self.getfixturevalue(argname)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/fixtures.py:630: in getfixturevalue
    fixturedef = self._get_active_fixturedef(argname)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/fixtures.py:726: in 
_get_active_fixturedef
    fixturedef.execute(request=subrequest)
/usr/lib/python3/dist-packages/_pytest/fixtures.py:1232: in execute
    result: FixtureValue = ihook.pytest_fixture_setup(
/usr/lib/python3/dist-packages/pluggy/_hooks.py:512: in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
           
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/pluggy/_manager.py:120: in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/_pytest/setuponly.py:36: in pytest_fixture_setup
    return (yield)
            ^^^^^
/usr/lib/python3/dist-packages/_pytest/fixtures.py:1313: in pytest_fixture_setup
    fixturefunc = resolve_fixture_function(fixturedef, request)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

fixturedef = <FixtureDef argname='make_cache' scope='class' 
baseid='tests/test_backend_cache.py::TestNullCache'>
request = <SubRequest 'make_cache' for <Function test_has>>

    def resolve_fixture_function(
        fixturedef: FixtureDef[FixtureValue], request: FixtureRequest
    ) -> _FixtureFunc[FixtureValue]:
        """Get the actual callable that can be called to obtain the fixture
        value."""
        fixturefunc = fixturedef.func
        # The fixture function needs to be bound to the actual
        # request.instance so that code working with "fixturedef" behaves
        # as expected.
        instance = request.instance
    
        if fixturedef._scope is Scope.Class:
            # Check if fixture is an instance method (bound to instance, not 
class)
            if hasattr(fixturefunc, "__self__"):
                bound_to = fixturefunc.__self__
                # classmethod: bound_to is the class itself (a type)
                # instance method: bound_to is an instance (not a type)
                if not isinstance(bound_to, type):
>                   warnings.warn(CLASS_FIXTURE_INSTANCE_METHOD, stacklevel=2)
E                   pytest.PytestRemovedIn10Warning: Class-scoped fixture 
defined as instance method is deprecated.
E                   Instance attributes set in this fixture will NOT be visible 
to test methods,
E                   as each test gets a new instance while the fixture runs 
only once per class.
E                   Use @classmethod decorator and set attributes on cls 
instead.
E                   See 
https://docs.pytest.org/en/stable/deprecations.html#class-scoped-fixture-as-instance-method

/usr/lib/python3/dist-packages/_pytest/fixtures.py:1289: 
PytestRemovedIn10Warning
=========================== short test summary info ============================
ERROR tests/test_backend_cache.py::TestNullCache::test_has - pytest.PytestRem...
============= 120 passed, 78 skipped, 1 error in 95.66s (0:01:35) ==============
E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_flask-caching/build; python3.14 -m 
pytest tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 
3.14" --parallel=2 returned exit code 13
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit 
status 2
--------------------------------------------------------------------------------

--- End Message ---
--- Begin Message ---
Source: flask-caching
Source-Version: 2.4.1-2
Done: Alexandre Detiste <[email protected]>

We believe that the bug you reported is fixed in the latest version of
flask-caching, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Alexandre Detiste <[email protected]> (supplier of updated flask-caching package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sat, 19 Sep 2026 20:25:29 +0200
Source: flask-caching
Architecture: source
Version: 2.4.1-2
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Alexandre Detiste <[email protected]>
Closes: 1140978
Changes:
 flask-caching (2.4.1-2) unstable; urgency=medium
 .
   * Team Upload
   * Drop builddependency on SetupTools, this uses Flit only
   * Rewrite d/watch in v5 format
   * Re-Close old bug (Closes: #1140978)
Checksums-Sha1:
 73e63e179be06f0fa7cbe850ec3a7be18228bc7b 2408 flask-caching_2.4.1-2.dsc
 20d68a1f81e3b4c3b7add112e15715a4d006de52 4244 
flask-caching_2.4.1-2.debian.tar.xz
 ce78162e2ce9280e0d116664102af1fe91db2a8b 7777 
flask-caching_2.4.1-2_source.buildinfo
Checksums-Sha256:
 d9fc4387ed9b5508e86def5593f8e4a51cb93203135b7de39cb9fec2636c22e1 2408 
flask-caching_2.4.1-2.dsc
 31081cd037f242c8062ec0e194bcc674e1e55a2a8c2a23d8343931c8d7909070 4244 
flask-caching_2.4.1-2.debian.tar.xz
 3e3e2549b48135b7252538c81dba2e578cf715788c57fb7088c6189dd59a762c 7777 
flask-caching_2.4.1-2_source.buildinfo
Files:
 2ad0371156c5aa2d66ee1572f6d7e970 2408 python optional flask-caching_2.4.1-2.dsc
 b2f869f47cffee3311d2a6358c43d025 4244 python optional 
flask-caching_2.4.1-2.debian.tar.xz
 b0fe1a6550d635c359fa07bce9f33b60 7777 python optional 
flask-caching_2.4.1-2_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEEj23hBDd/OxHnQXSHMfMURUShdBoFAmqu1gsRHHRjaGV0QGRl
Ymlhbi5vcmcACgkQMfMURUShdBoCNhAAqqnbnk04LgEYBI0cuWc9ihdhb+jt04fW
Klzl/4585IpJKkr7gWgW7kk1Cckg1wdMRxyCeTJ/cZFv2XxG/SL33aqB4YnANyzh
hQNgqMBq/16weVFndKImePAFDnJNdohQ1Re7yfkES36DPTNOLqpNP98PYJf+Oc1+
Fap5l8CIz+FBFZoE340HiCEQ61coE7wLu8wzhFtjuHUVsGORCtLBoYDX6dIgAdg5
qKI7c8R25Wn6B57UiNGhTE7Ixs0TMHMM3bGi/rVh5Ojh7KgjvDTbWajZOMJ9IpWt
7cRB5VsIgIRgkwAlbI92E87L0+J82x84KM5z3LQPe4dpTD3KGjqgWedX7BkTbKiy
fXn518qfbYges3Oe9vAJ25+Pwnx//QCvOnaHBp98QG6eZmO6XQZ7ZsY5fIffC4zC
vEKHMeQrAAKm8L/3/+KoRP0BeXRDXUxUZn4FmdPLWD8W4R13WQ7Ug5Nr2HrFoaUV
bqDGIVrnbYyHgVUFMOf+/UG4jCPxCArJ9aMQry0KrHk1/dorEXbzQ5K9+bUiXFC7
+aenTlZovHVHxUCuqnfLPRz9AOeoDfmshmOmHQnsF2dEF9pdv0m/rDGYxKTsc5kG
3vOAitYcr3DjTZh9vSmpdC0juQU72nw3pPLDtNwUdP6i4/jqGOp60yfNo+erf/eN
Ty52c41jxUQ=
=TShh
-----END PGP SIGNATURE-----

Attachment: pgptuBO8Usnfb.pgp
Description: PGP signature


--- End Message ---

Reply via email to