-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework CI to be non-repetitive, simpler, test more things #2263
Conversation
4e43beb
to
4527388
Compare
4527388
to
d810e9a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code looks fine. Artifacts from a recent build are here. The Mac installer runs sasview 5.0.5 as expected.
I don't know why the dmg is wrapped in a zip file. Presumably this reproduces the existing behaviour. Feel free to skip the zip or add a ticket to suggest doing so.
Re: zip file, I suspect it is created by github to bundle the build artifacts from a workflow, so no need to change anything. |
6547fda
to
d70a2d3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job!
The code looks good. One questions/suggestion I have is related to how we install packages and whether it can be done through pip install -r requirements.txt
rather then listing them explicetly?
The mac installer works fine, however linux installer failed on ubuntu-20.04
Traceback (most recent call last):
File "sasview.py", line 15, in <module>
File "sas/qtgui/MainWindow/MainWindow.py", line 129, in run_sasview
File "sas/qtgui/MainWindow/MainWindow.py", line 44, in __init__
File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module
File "sas/qtgui/MainWindow/GuiManager.py", line 27, in <module>
File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module
File "sas/qtgui/Utilities/GuiUtils.py", line 45, in <module>
File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module
File "sasmodels/sasview_model.py", line 30, in <module>
from . import weights
File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module
File "sasmodels/weights.py", line 11, in <module>
from scipy.special import gammaln # type: ignore
File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module
File "scipy/__init__.py", line 153, in <module>
File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module
File "scipy/_lib/_ccallback.py", line 1, in <module>
File "_ccallback_c.pyx", line 210, in init scipy._lib._ccallback_c
File "PyInstaller/loader/pyimod02_importers.py", line 499, in exec_module
File "ctypes/__init__.py", line 7, in <module>
ImportError: libffi.so.6: cannot open shared object file: No such file or directory
[29967] Failed to execute script 'sasview' due to unhandled exception!
I accidently approved. I guess it may still require some work on linux side? |
Windows installer (#5) works well for me. Tested my standard 1D fitting which worked perfectly. The only issue was that I could not run the python shell which gave the following error:
I suspect that is not related to this PR but more to something done earlier (and now reversed)? |
Yes, that's a new failure that has appeared during code camp. I'm not sure if that's due to lack of CI or some other external change. |
Perhaps. That's a can of worms in itself and can be a separate PR. The objective of this is to do what we already doing but in a simpler fashion. I'm trying avoid scope creep and this exploding into much larger and longer discussions. |
d70a2d3
to
1428d9b
Compare
@wpotrzebowski: linux installer updated; looks like some library changes that pyinstaller wasn't quite catching up with, so a little tweak with a sover symlink farm there solves it. @butlerpd: added in the (And now I've got to include #2326 in commits for this PR otherwise the test suite fails) |
@llimeht thanks for fixes! I will test the installer. I think we don't need |
Not sure I understand (OK .. I am sure I don't understand:-) but testing the installer on windows I still see the same error and indeed the path to: |
The linux install installer works now besides python shell editor (debugpy._vendored error as reported by @butlerpd ). Not sure if it helps in this case but should we tell pyinstaller to explicetly add it to installer: |
MacOSX installer seems to work fine (in sasme cases even better) with latest PyQt version. No need to bind it to 5.13 anymore. |
Updated once more (but perhaps this is a topic for bug fixes for a separate PR) |
I've tested OSX and linux installers and they seem to work fine up to the point when one starts python shell editor. The editor itself works fine however the error occurs:
Not sure how difficult to fix it is, however I would vote for merging it and addressing this issue in a separate PR. |
I would vote for merging it, however I would wait until end of the code camp (tomorrow). |
I suspect the error is a result of the python app builder putting modules in a zip file. IIRC the import hook which loads the module from the zip does not define The code which is failing is not critical. It is telling the model compiler that the code is coming from the current line in |
Seems to have come back via a bad merge.
- reduce duplication - easier maintenance of test matrix - test more things
Should not be needed but without it, libffi.so.6 is not found.
a776709
to
308deb7
Compare
Updated once more for merge conflicts. |
Tested latest OSX installer. The convoluted issue with shell editor still persists but I am merging it as it is. |
This is a preview of some work to update the GitHub Actions, aiming to:
This is only in a draft state, as this work is blocked by the following things:
(There's also another PR for pyinstaller that is queued behind #2259)
In the last steps of these workflows, I started to experiment with actual functional testing of the GUI and taking screenshots of the GUI in action. That's not working at the moment. I intend to back out that work and return to it later, in a separate PR.