==> Building on electivire ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list ./ .SRCINFO 700 81% 0.00kB/s 0:00:00 858 100% 154.30kB/s 0:00:00 (xfr#1, to-chk=7/9) .nvchecker.toml 95 100% 92.77kB/s 0:00:00 95 100% 92.77kB/s 0:00:00 (xfr#2, to-chk=6/9) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=5/9) PKGBUILD 700 38% 683.59kB/s 0:00:00 1,833 100% 1.75MB/s 0:00:00 (xfr#4, to-chk=4/9) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=3/9) python-textual-8.0.2-1.log 700 94% 683.59kB/s 0:00:00 743 100% 725.59kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ sent 550 bytes received 204 bytes 1,508.00 bytes/sec total size is 4,014 speedup is 5.32 ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Updating pacman database cache [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==> Building python-textual  -> repo: extra  -> arch: riscv64  -> worker: felix-7 ==> Building python-textual for [extra] (riscv64) ]3008;start=08e0f97e1ffc4712a835b53e3705e959;user=root;hostname=electivire.felixc.at;machineid=20663a96e205491681a8d81de8d4d2fb;bootid=d0ebe08711aa4179a9c8c50fbe86c768;pid=1121696;pidfdid=1802569324;comm=systemd-nspawn;container=arch-nspawn-1121696;type=container\]11;?\]2;🔵 Container arch-nspawn-1121696 on electivire.felixc.at\:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [!p]104[?7h]3008;end=08e0f97e1ffc4712a835b53e3705e959\==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-7]...done ==> Making package: python-textual 8.0.2-1 (Thu Mar 5 07:00:36 2026) ==> Retrieving sources...  -> Found textual-8.0.2.tar.gz ==> Validating source files with sha512sums... textual-8.0.2.tar.gz ... Passed ]3008;start=31f5b1c1b2df4861b684a8ede099d914;user=root;hostname=electivire.felixc.at;machineid=20663a96e205491681a8d81de8d4d2fb;bootid=d0ebe08711aa4179a9c8c50fbe86c768;pid=1122942;pidfdid=1802570584;comm=systemd-nspawn;container=arch-nspawn-1122942;type=container\]11;?\]2;🔵 Container arch-nspawn-1122942 on electivire.felixc.at\==> Making package: python-textual 8.0.2-1 (Wed Mar 4 23:00:51 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (10) New Version Net Change core/mpdecimal 4.0.1-1 0.31 MiB extra/python-mdurl 0.1.2-9 0.06 MiB extra/python-pygments 2.19.2-3 15.30 MiB extra/python-uc-micro-py 2.0.0-1 0.02 MiB core/python 3.14.3-1 132.79 MiB extra/python-linkify-it-py 2.1.0-1 0.20 MiB extra/python-markdown-it-py 4.0.0-2.1 0.77 MiB extra/python-platformdirs 4.9.3-1 0.40 MiB extra/python-rich 14.3.3-1 4.48 MiB extra/python-typing_extensions 4.15.0-3 0.52 MiB Total Installed Size: 154.85 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing mpdecimal... installing python... Optional dependencies for python python-setuptools: for building Python packages using tooling that is usually bundled with Python python-pip: for installing Python packages using tooling that is usually bundled with Python python-pipx: for installing Python software not packaged on Arch Linux sqlite: for a default database integration [installed] xz: for lzma [installed] tk: for tkinter installing python-mdurl... installing python-markdown-it-py... Optional dependencies for python-markdown-it-py python-mdit_py_plugins: core plugins python-linkify-it-py: linkify extension [pending] installing python-pygments... installing python-rich... installing python-uc-micro-py... installing python-linkify-it-py... installing python-typing_extensions... installing python-platformdirs... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... ==> Checking buildtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (21) New Version Net Change Download Size extra/python-dateutil 2.9.0-8.1 1.03 MiB extra/python-execnet 2.1.2-3 0.55 MiB 0.10 MiB extra/python-fastjsonschema 2.21.2-2 0.28 MiB extra/python-iniconfig 2.1.0-3.1 0.05 MiB extra/python-jinja 1:3.1.6-3.1 2.04 MiB extra/python-lark-parser 1.3.1-2 1.39 MiB extra/python-markupsafe 3.0.3-1 0.09 MiB extra/python-packaging 26.0-1 0.89 MiB 0.15 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/python-pytest 1:8.4.2-3 4.69 MiB 0.77 MiB extra/python-six 1.17.0-2 0.12 MiB extra/python-syrupy 4.6.2-1 0.55 MiB extra/python-textual 8.0.0-1 9.86 MiB extra/python-build 1.4.0-1 0.24 MiB extra/python-installer 0.7.0-14 0.20 MiB extra/python-poetry-core 2.3.1-1 1.68 MiB extra/python-pytest-asyncio 1.3.0-1 0.14 MiB extra/python-pytest-textual-snapshot 1.1.0-4 0.07 MiB extra/python-pytest-xdist 3.8.0-3 0.56 MiB 0.09 MiB extra/python-time-machine 3.2.0-2 0.15 MiB Total Download Size: 1.12 MiB Total Installed Size: 24.89 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-pytest-1:8.4.2-3-any downloading... python-packaging-26.0-1-any downloading... python-execnet-2.1.2-3-any downloading... python-pytest-xdist-3.8.0-3-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-packaging... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-installer... installing python-fastjsonschema... installing python-lark-parser... Optional dependencies for python-lark-parser python-atomicwrites: for atomic_cache python-regex: for regex support installing python-poetry-core... installing python-iniconfig... installing python-pluggy... installing python-pytest... installing python-pytest-asyncio... installing python-six... installing python-dateutil... installing python-time-machine... Optional dependencies for python-time-machine python-pytest: for pytest plugin [installed] python-tokenize-rt: for the migration tool installing python-execnet... installing python-pytest-xdist... Optional dependencies for python-pytest-xdist python-psutil: to use psutil for detection of the number of CPUs available python-setproctitle: to update the process title installing python-markupsafe... installing python-jinja... Optional dependencies for python-jinja python-babel: for i18n support installing python-syrupy... installing python-textual... installing python-pytest-textual-snapshot... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... ==> Retrieving sources... -> Found textual-8.0.2.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Extracting textual-8.0.2.tar.gz with bsdtar ==> Starting build()... * Getting build dependencies for wheel... * Building wheel... Successfully built textual-8.0.2-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.14.3, pytest-8.4.2, pluggy-1.6.0 rootdir: /build/python-textual/src/textual-8.0.2 configfile: pyproject.toml testpaths: tests plugins: asyncio-1.3.0, time-machine-3.2.0, xdist-3.8.0, syrupy-4.6.2, textual-snapshot-1.1.0 asyncio: mode=Mode.AUTO, debug=False, asyncio_default_fixture_loop_scope=function, asyncio_default_test_loop_scope=function created: 32/32 workers 32 workers [2869 items] ........................................................................ [ 2%] ........................................................................ [ 5%] ........................................................................ [ 7%] ...........................................x............................ [ 10%] ........................................................................ [ 12%] ........................................................................ [ 15%] ........................................................................ [ 17%] ........................................................................ [ 20%] ........................................................................ [ 22%] ........................................................................ [ 25%] ........................................................................ [ 27%] ........................................................................ [ 30%] ........................................................................ [ 32%] ........................................................................ [ 35%] ........................................................................ [ 37%] ..........x............................................................. [ 40%] ........................................................................ [ 42%] ........................................................................ [ 45%] ........................................................................ [ 47%] ........................................................................ [ 50%] ........................................................................ [ 52%] ........................................................................ [ 55%] ........................................................................ [ 57%] ........................................................................ [ 60%] ........................................................................ [ 62%] ........................................................................ [ 65%] ........................................................................ [ 67%] ........................................................................ [ 70%] ........................................................................ [ 72%] ..........................F................x............................ [ 75%] ........................................................................ [ 77%] ....................................................x................... [ 80%] .........................Fs............................................. [ 82%] ........................................................................ [ 85%] ........................................................................ [ 87%] ........................................................................ [ 90%] ........................................................................ [ 92%] ........................................................................ [ 95%] ........................................................................ [ 97%] ............................................................. [100%] =================================== FAILURES =================================== __________________ test_removing_tipper_should_remove_tooltip __________________ [gw12] linux -- Python 3.14.3 /build/python-textual/src/textual-8.0.2/test-env/bin/python async def test_removing_tipper_should_remove_tooltip() -> None: """If the tipping widget is removed, it should remove the tooltip.""" async with TooltipApp().run_test(tooltips=True) as pilot: assert pilot.app.query_one("#textual-tooltip").display is False await pilot.hover("#mr-blue") assert pilot.app.query_one("#textual-tooltip").display is False await pilot.pause(TOOLTIP_TIMEOUT) > assert pilot.app.query_one("#textual-tooltip").display is True E AssertionError: assert False is True E + where False = Tooltip(id='textual-tooltip', classes='-textual-system').display E + where Tooltip(id='textual-tooltip', classes='-textual-system') = query_one('#textual-tooltip') E + where query_one = TooltipApp(title='TooltipApp', classes={'-dark-mode'}, pseudo_classes={'dark', 'focus'}).query_one E + where TooltipApp(title='TooltipApp', classes={'-dark-mode'}, pseudo_classes={'dark', 'focus'}) = .app tests/test_tooltips.py:76: AssertionError __________________________________ test_hide ___________________________________ [gw8] linux -- Python 3.14.3 /build/python-textual/src/textual-8.0.2/test-env/bin/python async def test_hide() -> None: """Check that setting visibility produces Hide messages.""" # https://github.com/Textualize/textual/issues/3460 visibility: list[bool] = [] class ShowHideLabel(Label): def on_show(self) -> None: visibility.append(True) def on_hide(self) -> None: visibility.append(False) class ShowHideApp(App[None]): BINDINGS = [("space", "toggle_label")] def compose(self) -> ComposeResult: yield ShowHideLabel("Here I am") def action_toggle_label(self) -> None: self.query_one(ShowHideLabel).visible = not self.query_one( ShowHideLabel ).visible app = ShowHideApp() async with app.run_test() as pilot: assert visibility == [True] await pilot.press("space") assert visibility == [True, False] await pilot.press("space") > assert visibility == [True, False, True] E assert [True, False] == [True, False, True] E E Right contains one more item: True E Use -v to get more diff tests/test_widget_visibility.py:34: AssertionError =========================== short test summary info ============================ FAILED tests/test_tooltips.py::test_removing_tipper_should_remove_tooltip - A... FAILED tests/test_widget_visibility.py::test_hide - assert [True, False] == [... ======= 2 failed, 2862 passed, 1 skipped, 4 xfailed in 165.75s (0:02:45) ======= ==> ERROR: A failure occurred in check(). Aborting... [!p]104[?7h]3008;end=31f5b1c1b2df4861b684a8ede099d914\==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-7/build [?25h[?25h[?25hreceiving incremental file list python-textual-8.0.2-1-riscv64-build.log python-textual-8.0.2-1-riscv64-check.log sent 62 bytes received 1,738 bytes 3,600.00 bytes/sec total size is 7,104 speedup is 3.95