Skip to content

Conversation

@darikoneil
Copy link
Contributor

Qt 6.5 introduced breaking changes to dependencies that the distribution of pyqt6 does not properly handle for linux platforms. These breaking changes can result in a variety of strange errors during runtime due to missing or failing to load linked-libraries (e.g., xcb-cursor0). Users can "fix" these errors by manually installing non-python libraries (e.g., sudo apt install), so they may not appear to be related or reported. Feel free to just close this and add the constraints yourself if it's easier (it's only 3 lines).

P.S.: In troubleshooting this for some colleagues, I came across some issues that might also be related to this in other MouseLand repo's (e.g., Kilosort #1001 and Cellpose #926).

…ced breaking changes to dependencies that the distribution of pyqt6 does not properly handle. These breaking changes can result in a variety of strange errors during runtime due to missing or failing to load linked-libraries(e.g., xcb-cursor0). These errors can be "fixed" by users by manually installing these non-python libraries (e.g., sudo apt install), so they may not appear to be related or reported.
Copilot AI review requested due to automatic review settings January 9, 2026 00:55
Copy link

Copilot AI left a comment

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 addresses PyQt6 compatibility issues on Linux by pinning PyQt6 and PyQt6-Qt6 versions to <6.5 for Linux platforms, while allowing unrestricted versions for non-Linux platforms. Qt 6.5 introduced breaking changes that cause runtime errors on Linux due to missing or failing linked-libraries.

Key Changes

  • Replaces the unconditional pyqt6 dependency with platform-specific versions
  • Pins pyqt6<6.5 and pyqt6-qt6<6.5 for Linux platforms only
  • Allows unrestricted pyqt6 for non-Linux platforms

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

Comment on lines +19 to +21
'pyqt6 ; platform_system != "Linux"',
'pyqt6<6.5 ; platform_system == "Linux"',
'pyqt6-qt6<6.5 ; platform_system == "Linux"',
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

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

Inconsistent quote style: lines 19-21 use single quotes while line 22 uses double quotes. For consistency with the rest of the gui_deps list, these should use double quotes.

Suggested change
'pyqt6 ; platform_system != "Linux"',
'pyqt6<6.5 ; platform_system == "Linux"',
'pyqt6-qt6<6.5 ; platform_system == "Linux"',
"pyqt6 ; platform_system != \"Linux\"",
"pyqt6<6.5 ; platform_system == \"Linux\"",
"pyqt6-qt6<6.5 ; platform_system == \"Linux\"",

Copilot uses AI. Check for mistakes.
Comment on lines +19 to +21
'pyqt6 ; platform_system != "Linux"',
'pyqt6<6.5 ; platform_system == "Linux"',
'pyqt6-qt6<6.5 ; platform_system == "Linux"',
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

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

The logic at lines 51-52, 58-59, and 65-66 that removes "pyqt6" from gui_deps will fail because "pyqt6" is no longer a simple string in the list. It has been replaced with conditional strings that include platform markers. This will cause the removal attempts to fail silently, which means PyQt5/PySide2/PySide6 installations will not prevent PyQt6 from being installed as intended. Consider updating the removal logic to handle the new conditional dependency strings, or refactor to check for existing Qt installations before defining gui_deps.

Copilot uses AI. Check for mistakes.
@codecov
Copy link

codecov bot commented Jan 9, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 54.89%. Comparing base (be8830d) to head (98ac444).
⚠️ Report is 29 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1203      +/-   ##
==========================================
- Coverage   55.21%   54.89%   -0.32%     
==========================================
  Files          43       43              
  Lines        5055     5064       +9     
==========================================
- Hits         2791     2780      -11     
- Misses       2264     2284      +20     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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