Conversation
- Remove non-existent packages: systemd-loginctl (not a real package), selenium-webdriver-at-spi (not in Fedora 41 repos) - Add 'Build selenium-webdriver-at-spi' step: clone from KDE invent, patch out videorecorder (Qt6GuiPrivate conflict on F41), build & install - Add all required build/runtime deps: ruby, qt6-qtwayland-devel, kf6-kwindowsystem-devel, kwayland-devel, kpipewire-devel, plasma-wayland-protocols-devel, python3-flask, python3-pyatspi, python3-gobject-base, gobject-introspection-devel, dbus-x11, etc. - Move dbus-python and evdev from pip requirements to dnf packages (pip builds fail on Fedora, system packages work correctly)
CMake failed to find Wayland_Client/Wayland_Server because the base wayland-devel package was missing — qt6-qtwayland-devel only pulls in the runtime library, not the dev headers.
The Ruby runner script expects pip3 in PATH. Fedora's python3-pip only provides 'python3 -m pip', not /usr/bin/pip3. Create a shell wrapper.
The wrapper must exist before selenium-webdriver-at-spi-run starts, which happens in the test step. Moving it to the system deps step ensures it persists across all subsequent steps.
The runner script uses system('which', 'pip3') to check for pip3 in PATH.
Without the 'which' binary installed, this check always fails even when
/usr/bin/pip3 exists.
The runner crashes with 'no implicit conversion of nil into String' when XDG_RUNTIME_DIR is unset. Docker containers don't have this env var — set it to a writable tmp path.
selenium-webdriver-at-spi-run launches kwin_wayland --virtual to host the app under test. Without it: No such file or directory - kwin_wayland.
GitHub Actions containers lack DRM/GPU capabilities needed by kwin_wayland --virtual (EPERM on exec). Set TEST_WITH_KWIN_WAYLAND=0 to skip the compositor and QT_QPA_PLATFORM=offscreen for headless rendering.
The Flask driver (selenium-webdriver-at-spi.py) imports numpy at startup. Without it: ModuleNotFoundError: No module named 'numpy'.
pytest was running from the project root, so 'from helpers.base_test import BaseTest' failed with ModuleNotFoundError. --rootdir=appiumtests makes pytest resolve imports relative to the test directory.
pytest runs from the project root (via selenium-webdriver-at-spi-run), so 'from helpers.base_test import BaseTest' failed. Add conftest.py to sys.path so helpers/ resolves correctly.
selenium-webdriver-at-spi-run overrides XDG_DATA_HOME to a temp dir, so ~/.local/share/applications/ is invisible. Install to the system location /usr/share/applications/ and symlink binary to /usr/local/bin/.
GAppInfo tries to execute 'io.github.hikaps.couchplay' (the desktop file ID) as a binary when it can't find the desktop file. Add a symlink with that name to /usr/local/bin/ so the binary is findable by GLib's app lookup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Re-merge of #2 after CI infrastructure fixes.
Summary
objectName,Accessible.*) to all interactive QML elements across 15 files (pages, components, dialogs)appiumtests/)LaunchInstance()returns fake PID, no real gamescope/GPU neededevdev/uinputfor device assignment testse2e-tests) runs headless viaselenium-webdriver-at-spi-runwith virtual KWin Wayland sessionChanges
objectName,Accessible.role,Accessible.name,Accessible.onPressActionto every interactive elementappiumtests/: New directory with pytest + Appium test suite.github/workflows/ci.yml: Newe2e-testsjob (depends onbuildjob)AGENTS.md: Updated structure table, conventions, build commands