Skip to content

build: support PySide6 6.11.1, pyqtgraph 0.14 and PySide6-QtAds 5.0.0#1242

Open
wyzula-jan wants to merge 4 commits into
mainfrom
build/pyside-pyqtgraph-qtads-latest
Open

build: support PySide6 6.11.1, pyqtgraph 0.14 and PySide6-QtAds 5.0.0#1242
wyzula-jan wants to merge 4 commits into
mainfrom
build/pyside-pyqtgraph-qtads-latest

Conversation

@wyzula-jan

@wyzula-jan wyzula-jan commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Description

This PR update core dependencies and adjust project to be compatible with:

  • PySide 6.11.1
  • PyQtGraph 0.14
  • QtADS 5.0.0

The main feature is Wayland support by QtADS 5.0.0, so we can drop x11 forcing on Linux.

Related Issues

Irrelevant PRs after this is merged

Potential side effects

Major dependencies update, caution required...

Additional Comments

Tested at SIM x11ma-vcons-test-01, dock actions, pyqtgraph, terminal seems to work as expected.

@wyzula-jan wyzula-jan self-assigned this Jul 14, 2026
@wyzula-jan
wyzula-jan force-pushed the build/pyside-pyqtgraph-qtads-latest branch from ee0d347 to 9fe5174 Compare July 14, 2026 18:52
@wyzula-jan
wyzula-jan force-pushed the build/pyside-pyqtgraph-qtads-latest branch from 9fe5174 to 052cb43 Compare July 15, 2026 12:58
@wyzula-jan
wyzula-jan marked this pull request as ready for review July 15, 2026 12:58
Copilot AI review requested due to automatic review settings July 15, 2026 12:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the widget stack to newer Qt/PySide6 + pyqtgraph + QtAds versions and adjusts several widget utilities/tests to accommodate behavioral changes in those upstream libraries (notably paint-event safety, palette roles, and view-range handling).

Changes:

  • Bump runtime dependencies to PySide6 6.11.1, pyqtgraph 0.14.0, and PySide6-QtAds 5.0.0.
  • Harden Qt/pyqtgraph interactions (heatmap config label legend samples, crosshair event handling, dock-area cleanup, widget close cleanup ordering).
  • Update unit tests/fixtures to reflect new event/range behavior and to reduce cross-test leakage (console registry cleanup, explicit show()/ranges).

Reviewed changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
pyproject.toml Updates pinned PySide6 / pyqtgraph / QtAds dependency versions.
bec_widgets/widgets/plots/heatmap/heatmap.py Avoids crashy legend sample painting by using a text-only legend sample for config label rows.
bec_widgets/utils/crosshair.py Refines crosshair move/click handling by validating against view range and using public event APIs.
bec_widgets/utils/bec_widget.py Sets _destroyed before calling cleanup() to reduce re-entrancy risk during close.
bec_widgets/widgets/containers/dock_area/basic_dock_area.py Adds a dock-area cleanup() that tears down docks through the QtAds API before base cleanup.
bec_widgets/widgets/editors/bec_console/bec_console.py Avoids using a window as a parking parent when it is marked destroyed.
bec_widgets/widgets/utility/spinner/spinner.py Uses palette highlight() instead of accent() for consistent theming on Qt 6.10+.
bec_widgets/utils/forms_from_types/styles.py Builds a theme palette directly from theme XML mapping and uses highlight() for accent color.
bec_widgets/applications/__init__.py Removes import-time forcing of QT_QPA_PLATFORM and keeps only QtAds configuration flags.
tests/unit_tests/conftest.py Clears the console registry during teardown to prevent test leakage.
tests/unit_tests/test_crosshair.py Updates crosshair tests to use manual_pos, explicit view ranges, and public click-event APIs.
tests/unit_tests/test_image_view_next_gen.py Sets view range in tests to make crosshair/profile behavior deterministic.
tests/unit_tests/test_heatmap_widget.py Adds a regression test ensuring config label paint passes safely using the new legend sample.
tests/unit_tests/test_device_manager_view.py Ensures the widget is shown before waitExposed() for reliable exposure checks.
tests/unit_tests/test_widget_io.py Updates expected exported widget tree keying for the table corner button name.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pyproject.toml

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 21 out of 22 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/generate-cli-check.yml
@wyzula-jan
wyzula-jan force-pushed the build/pyside-pyqtgraph-qtads-latest branch from e79294e to 43cf118 Compare July 15, 2026 13:43
@codecov

codecov Bot commented Jul 15, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 86.11111% with 5 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
bec_widgets/utils/crosshair.py 75.00% 1 Missing and 2 partials ⚠️
...widgets/widgets/editors/bec_console/bec_console.py 0.00% 0 Missing and 1 partial ⚠️
bec_widgets/widgets/plots/heatmap/heatmap.py 92.85% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark comparison

Threshold: 20% (lower is better).
Result: 0 regression(s), 0 improvement(s) beyond threshold.

No benchmark regression exceeded the configured threshold.

No benchmark improvement exceeded the configured threshold.

All benchmark results
Benchmark Baseline Current Change Status
BEC IPython client with companion app 2.20399 s 2.33438 s +5.92% ok
BEC IPython client without companion app 2.18623 s 2.30467 s +5.42% ok
Import bec_widgets 0.0131978 s 0.0154197 s +16.84% ok
tests/unit_tests/benchmarks/test_dock_area_benchmark.py::test_add_waveform_to_dock_area 0.158608 s 0.152069 s -4.12% ok

@wyzula-jan
wyzula-jan requested a review from a team July 15, 2026 13:59
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.

Make BW compatible with pyqtgraph 0.14 Make BEC Widgets compatible with PySide 6.9.1

2 participants