napari / napari

napari: a fast, interactive, multi-dimensional image viewer for python
https://napari.org
BSD 3-Clause "New" or "Revised" License
2.07k stars 410 forks source link

Check prereleases testing with macOS + Python 3.12 + PyQt6 #6858

Closed dalthviz closed 3 weeks ago

dalthviz commented 3 weeks ago

References and relevant issues

Follow up for #6826 (macOS + Python 3.12 + PyQt6 case)

Description

Explore enabling macOS with Python 3.12 and PyQt6 case for prereleases testing

codecov[bot] commented 3 weeks ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 92.40%. Comparing base (9fcf63e) to head (d0fd145).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #6858 +/- ## ========================================== - Coverage 92.41% 92.40% -0.01% ========================================== Files 614 614 Lines 54862 54874 +12 ========================================== + Hits 50701 50707 +6 - Misses 4161 4167 +6 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Czaki commented 3 weeks ago

@dalthviz Maybe you should disable test workflow by editing .github/workflow/test_pull_request.yml to speedup CI and reduce obsolete runs?

dalthviz commented 3 weeks ago

Thanks @Czaki for the suggestion! But I'm not totally sure to understand the idea 😅

As a quick summary of the PR checks state, I think that all the prerelease checks are passing now :) However, checking the last error shown over the checks, seems like it comes from a pyqt5-qt5==5.15.2 constraint (which maybe comes from the constraint files?). Since now macos-latest ends up being macOS 14 arm64 and there are only macOS intel wheels for pyqt5-qt5==5.15.2 pip ends up showing a ResolutionImpossible error 🤔

Could it be that disabling the pull request test workflow could help with that? The only thing that occurs to me is to change from macos-latest image to some other image (macos-12, macos-13, macos-latest-large or some other) 🤔

Let me know what do you think!

Edit: Changing the macOS image seems like indeed worked!

Czaki commented 3 weeks ago

As a quick summary of the PR checks state, I think that all the prerelease checks are passing now :) However, checking the last error shown over the checks, seems like it comes from a pyqt5-qt5==5.15.2 constraint (which maybe comes from the constraint files?). Since now macos-latest ends up being macOS 14 arm64 and there are only macOS intel wheels for pyqt5-qt5==5.15.2 pip ends up showing a ResolutionImpossible error 🤔

It is surprising for me that pyqt5 has macos arm wheels but pyqt5-qt which is dependency of pyqt5 does not have such wheels..

Could it be that disabling the pull request test workflow could help with that? The only thing that occurs to me is to change from macos-latest image to some other image (macos-12, macos-13, macos-latest-large or some other) 🤔

no. It was for test sped up as repo has low level limits on macos runners, But as you resolved the problem it is not needed.

psobolewskiPhD commented 3 weeks ago

It is surprising for me that pyqt5 has macos arm wheels but pyqt5-qt which is dependency of pyqt5 does not have such wheels..

What's really odd is that newer releases only have macOS wheels: https://pypi.org/project/PyQt5-Qt5/5.15.13/#files

on my arm64: pip install pyqt5 pulls:

Name: PyQt5
Version: 5.15.10
Summary: Python bindings for the Qt cross platform application toolkit
Home-page: https://www.riverbankcomputing.com/software/pyqt/
Author: Riverbank Computing Limited
Author-email: info@riverbankcomputing.com
License: GPL v3
Location: /Users/piotrsobolewski/Dev/miniforge3/envs/nap-3d/lib/python3.9/site-packages
Requires: PyQt5-Qt5, PyQt5-sip

and

Name: PyQt5-Qt5
Version: 5.15.13
Summary: The subset of a Qt installation needed by PyQt5.
Home-page: https://www.riverbankcomputing.com/software/pyqt/
Author: Riverbank Computing Limited
Author-email: info@riverbankcomputing.com
License: LGPL v3
Location: /Users/piotrsobolewski/Dev/miniforge3/envs/nap-3d/lib/python3.9/site-packages
Requires: 
Required-by: PyQt5
Czaki commented 3 weeks ago

What's really odd is that newer releases only have macOS wheels:

it is my bad. There were two packages. pyqt5-qt and pyqt5-qt5 and pyqt5-qt is deprecated.

But pyqt5-qt5 release 5.15.2 is for all systems, except macos-arm. And 5.15.11, 5.15.12, and 5.15.13 are macos only, because of this, our pinning dependencies do not pick them.

I have send mail to PyQt5 maintainer with ask about Linux and Widows wheels for PyQt5-Qt5==5.15.13