Skip to content

Install Qt runtime libraries before the PyPI smoke test - #15

Merged
saudzahirr merged 1 commit into
masterfrom
fix/pypi-smoke-test-qt-libs
Aug 25, 2026
Merged

Install Qt runtime libraries before the PyPI smoke test#15
saudzahirr merged 1 commit into
masterfrom
fix/pypi-smoke-test-qt-libs

Conversation

@saudzahirr

Copy link
Copy Markdown
Collaborator

Summary

The v0.1.0 release job failed at its final step:

ImportError: libEGL.so.1: cannot open shared object file: No such file or directory
  File ".../brayer/handlers/pydantic_types.py", line 19, in <module>
    from PySide6 import QtWidgets

The release itself was fine. The upload returned 200 OK and brayer 0.1.0 is live and installable. What broke is the post-publish smoke test: brayer imports PySide6 at package import time, and the publish-to-pypi job runs on a bare ubuntu-latest with no Qt runtime libraries and no display. A red release job here reads as a broken package when it is really a missing system library.

code_test.yml already solved this — it has an Install Qt runtime libraries step and sets QT_QPA_PLATFORM=offscreen at the workflow level. The publish job never got either. This ports both across.

Test plan

  • The package list is identical to the one in code_test.yml, which passes import PySide6.QtWidgets on Linux across the whole 3.10–3.14 matrix, including a dedicated Verify Qt imports headlessly step.
  • Workflow parses; publish-to-pypi steps are now Download Distributions, Publish to PyPI, Install Qt runtime libraries, Smoke Test on PyPI, with the Qt env vars scoped to the smoke test.
  • Not verified by direct reproduction: this is release-triggered only, so PR checks cannot exercise it, and Docker was unavailable locally to reproduce the bare-runner import. The evidence is parity with the passing test matrix, not a local run. It executes for real on the next published release.

Note

libegl1 alone would clear the reported error, but the full list is used deliberately: it matches code_test.yml exactly, so the two stay in step and the smoke test cannot pass while the matrix fails on some other missing .so.

🤖 Generated with Claude Code

brayer imports PySide6 at package import time, so `import brayer` on a
bare runner fails with:

    ImportError: libEGL.so.1: cannot open shared object file

The v0.1.0 release hit exactly this. The upload to PyPI succeeded and
the package is fine; only the post-publish check failed, which reads as
a broken release when it is really a missing system library.

Installs the same Qt runtime packages the test matrix already installs
in code_test.yml, and sets QT_QPA_PLATFORM=offscreen so Qt does not look
for a display.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Aug 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@saudzahirr
saudzahirr merged commit a3cce77 into master Aug 25, 2026
13 checks passed
@saudzahirr
saudzahirr deleted the fix/pypi-smoke-test-qt-libs branch August 25, 2026 11:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant