#1135455 python-memray: FTBFS: E AttributeError: 'Label' object has no attribute 'renderable'.

#1135455#5
Date:
2026-05-01 23:14:21 UTC
From:
To:
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/202605/

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:python-memray, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --with sphinxdoc --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 sphinxdoc --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.14 with "build" module
I: pybuild base:385: python3.14 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_memray
* Building wheel...
warning: src/memray/_memray.pyx:517:14: Rvalue-reference as function argument not supported

[... snipped ...]

           ^^^^^^^^^^^^^^^
tests/unit/test_tui_reporter.py:567: in run_test
    labels.update(extract_label_text(pilot.app))
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/unit/test_tui_reporter.py:149: in extract_label_text
    label.id: render_widget(label)
              ^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

widget = Label(id='head_title')

    def render_widget(widget: Widget) -> str:
        output = StringIO()
tests/unit/test_tui_reporter.py:143: AttributeError

tests/unit/test_tui_reporter.py:684:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:108: in async_run
    return asyncio.run(coro)
           ^^^^^^^^^^^^^^^^^
/usr/lib/python3.13/asyncio/runners.py:195: in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
/usr/lib/python3.13/asyncio/runners.py:118: in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3.13/asyncio/base_events.py:725: in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
tests/unit/test_tui_reporter.py:680: in run_test
    labels = extract_label_text(app)
             ^^^^^^^^^^^^^^^^^^^^^^^
tests/unit/test_tui_reporter.py:149: in extract_label_text
    label.id: render_widget(label)
              ^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

widget = Label(id='head_title')

    def render_widget(widget: Widget) -> str:
        output = StringIO()
tests/unit/test_tui_reporter.py:143: AttributeError

tests/unit/test_tui_reporter.py:728:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:108: in async_run
    return asyncio.run(coro)
           ^^^^^^^^^^^^^^^^^
/usr/lib/python3.13/asyncio/runners.py:195: in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
/usr/lib/python3.13/asyncio/runners.py:118: in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3.13/asyncio/base_events.py:725: in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
tests/unit/test_tui_reporter.py:726: in run_test
    label.append(extract_label_text(app)["thread"])
                 ^^^^^^^^^^^^^^^^^^^^^^^
tests/unit/test_tui_reporter.py:149: in extract_label_text
    label.id: render_widget(label)
              ^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

widget = Label(id='head_title')

    def render_widget(widget: Widget) -> str:
        output = StringIO()
tests/unit/test_tui_reporter.py:143: AttributeError

tests/unit/test_tui_reporter.py:776:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/utils.py:108: in async_run
    return asyncio.run(coro)
           ^^^^^^^^^^^^^^^^^
/usr/lib/python3.13/asyncio/runners.py:195: in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
/usr/lib/python3.13/asyncio/runners.py:118: in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3.13/asyncio/base_events.py:725: in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
tests/unit/test_tui_reporter.py:772: in run_test
    labels = extract_label_text(app)
             ^^^^^^^^^^^^^^^^^^^^^^^
tests/unit/test_tui_reporter.py:149: in extract_label_text
    label.id: render_widget(label)
              ^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

widget = Label(id='head_title')

    def render_widget(widget: Widget) -> str:
        output = StringIO()
tests/unit/test_tui_reporter.py:143: AttributeError
=============================== warnings summary ===============================
tests/conftest.py:66
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_memray/build/tests/conftest.py:66: UserWarning: snapshot tests require pytest-textual-snapshot but it is not installed
    config.issue_config_time_warning(UserWarning(reason), stacklevel=2)

tests/integration/test_processes.py: 11 warnings
  /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=2918) is multi-threaded, use of fork() may lead to deadlocks in the child.
    self.pid = os.fork()

#1135455#10
Date:
2026-05-11 12:47:06 UTC
From:
To:
Fix compatibility with Textual 8 by falling back from renderable to content.
#1135455#15
Date:
2026-05-28 12:59:28 UTC
From:
To:
Source: python-memray
Source-Version: 1.19.1+dfsg-1

Thanks for this patch.  However, the package's git repository already
had an update to the new upstream version 1.9.1, which contains a very
similar patch
(https://github.com/bloomberg/memray/commit/26b7f3b457943fba5c3fa36cae3102174ff0ceea).
That update had a finalized changelog but for some unclear reason hadn't
actually been uploaded to unstable.  I think at this point it likely
makes more sense to base work on a current upstream version, so I've
upgraded further to 1.9.3 and uploaded that.

For future reference, https://dep-team.pages.debian.net/deps/dep3/ makes
it clear that the Forwarded field should be about the patch having been
forwarded _from Debian to upstream_, not from you to Debian.  Bug-Debian
is the proper field to use to point to the Debian bug.

Thanks,