From a82d1a51ad8c371256cd4daeb85dfaf83a25e5a6 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Thu, 23 Mar 2023 13:15:00 +0000 Subject: [PATCH 01/25] Try Qt6 --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 97d43e0..403e40a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,5 +8,5 @@ pywwt notebook numpy<1.22 astropy<5.0 -PyQt5==5.14.2 -PyQtWebEngine==5.14.0 +PyQt6==6.4.2 +PyQt6-WebEngine==6.4.0 From aaa59a5923c54d098491adbaab2ee0a3cd25d73a Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Thu, 23 Mar 2023 15:01:28 +0000 Subject: [PATCH 02/25] Python 3.11 --- .github/workflows/build_stable.yml | 13 ++----------- requirements.txt | 2 -- 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index d5b134b..996f882 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -17,7 +17,6 @@ jobs: strategy: fail-fast: false matrix: - # os: [macos-11, ubuntu-18.04, windows-2019] os: [macos-11, windows-2019] steps: @@ -47,18 +46,10 @@ jobs: - name: Checkout code uses: actions/checkout@v2 - # Not all dependencies work correctly on Python 3.9 on Windows yet so we use - # Python 3.8 there. - - name: Set up Python 3.8 - if: matrix.os == 'windows-2019' + - name: Set up Python 3.11 uses: actions/setup-python@v2 with: - python-version: 3.8 - - name: Set up Python 3.9 - if: matrix.os != 'windows-2019' - uses: actions/setup-python@v2 - with: - python-version: 3.9 + python-version: 3.11 - name: Install development version of pyinstaller if: ${{ matrix.os == 'macos-11' }} diff --git a/requirements.txt b/requirements.txt index 403e40a..ca8ad46 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,5 @@ glue-plotly pvextractor pywwt notebook -numpy<1.22 -astropy<5.0 PyQt6==6.4.2 PyQt6-WebEngine==6.4.0 From 806aaad3e9a29b3113e08e9d402e2477b7443c4e Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Fri, 31 Mar 2023 12:42:58 +0100 Subject: [PATCH 03/25] Include PyQt6.QtTest in hidden imports --- glue_app.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/glue_app.spec b/glue_app.spec index 1a2aecc..3b6d617 100644 --- a/glue_app.spec +++ b/glue_app.spec @@ -38,6 +38,7 @@ a = Analysis( "glue_plotly", "glue_statistics", "pvextractor", + "PyQt6.QtTest" ], hookspath=["hooks"], hooksconfig={ From b70e7ac501cacbd28833680fdf18121b569122ab Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Fri, 31 Mar 2023 22:38:16 +0100 Subject: [PATCH 04/25] Don't use INFO logging level unless requested (otherwise it spams to Error console) --- start_glue.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/start_glue.py b/start_glue.py index 3d092a7..d6bf28b 100644 --- a/start_glue.py +++ b/start_glue.py @@ -14,12 +14,14 @@ os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--ignore-gpu-blacklist" -logger.setLevel("INFO") +if __name__ == "__main__": -load_plugins() + if '--debug' in sys.argv or '--test' in sys.argv: + logger.setLevel("INFO") -if __name__ == "__main__": - if "--debug" in sys.argv: + load_plugins() + + if '--debug' in sys.argv: import faulthandler faulthandler.enable() From ca556f15ff742212e6bc1a7e9edc33314c5a1e6e Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Sat, 1 Apr 2023 08:39:27 +0100 Subject: [PATCH 05/25] Try developer version of vispy --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index ca8ad46..d8c1d39 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,3 +8,4 @@ pywwt notebook PyQt6==6.4.2 PyQt6-WebEngine==6.4.0 +git+https://github.com/vispy/vispy From d6f7603ce67b291c6b0482725e84d8c4089e7927 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Sat, 24 Feb 2024 10:23:25 +0000 Subject: [PATCH 06/25] Switch to using MacOS 14 (M1) runners --- .github/workflows/build_stable.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index 996f882..9c18d49 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-11, windows-2019] + os: [macos-14, windows-2019] steps: - name: Check glue version to build From 90a446ec29eda4a0772882c512de9fb9d1d4fa66 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Sat, 24 Feb 2024 10:25:58 +0000 Subject: [PATCH 07/25] Updated requirements.txt --- .github/workflows/build_stable.yml | 12 ++++++------ requirements.txt | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index 9c18d49..987a48d 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -51,13 +51,13 @@ jobs: with: python-version: 3.11 - - name: Install development version of pyinstaller - if: ${{ matrix.os == 'macos-11' }} - run: PYINSTALLER_COMPILE_BOOTLOADER=1 pip install git+https://github.com/pyinstaller/pyinstaller.git + # - name: Install development version of pyinstaller + # if: ${{ matrix.os == 'macos-11' }} + # run: PYINSTALLER_COMPILE_BOOTLOADER=1 pip install git+https://github.com/pyinstaller/pyinstaller.git - - name: Install development version of pyinstaller - if: ${{ matrix.os != 'macos-11' }} - run: pip install git+https://github.com/pyinstaller/pyinstaller.git + # - name: Install development version of pyinstaller + # if: ${{ matrix.os != 'macos-11' }} + # run: pip install git+https://github.com/pyinstaller/pyinstaller.git - name: Install Python dependencies run: pip install -r requirements.txt --no-cache-dir diff --git a/requirements.txt b/requirements.txt index d8c1d39..f20a719 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -ipykernel<6 # Install old version of ipykernel to avoid terminal issues +pyinstaller glue-core glue-vispy-viewers glue-wwt @@ -6,6 +6,6 @@ glue-plotly pvextractor pywwt notebook -PyQt6==6.4.2 -PyQt6-WebEngine==6.4.0 +PyQt6==6.6.1 +PyQt6-WebEngine==6.6.0 git+https://github.com/vispy/vispy From c0386d6d41cc0f379158e8947a2e7d71a4c01743 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Sat, 24 Feb 2024 10:45:02 +0000 Subject: [PATCH 08/25] Enable pull request builds --- .github/workflows/build_stable.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index 987a48d..c24ed1b 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -9,6 +9,7 @@ on: schedule: - cron: '0 3 * * *' workflow_dispatch: + pull_request: jobs: build_applications: @@ -139,7 +140,7 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - name: Upload package list to S3 - if: github.event_name != 'pull_request' && matrix.os == 'macos-11' + if: github.event_name != 'pull_request' && matrix.os == 'macos-14' run: aws s3 cp included-packages.txt s3://glueviz/installers/${GITHUB_REF_NAME}/ env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} From 7643b2a56eca842ff321898954a2d1287bdf1c78 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Sat, 24 Feb 2024 10:49:22 +0000 Subject: [PATCH 09/25] Updated references to macos-11 in workflow --- .github/workflows/build_stable.yml | 38 +++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index c24ed1b..16ee34e 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -28,7 +28,7 @@ jobs: # osx signing based on https://melatonin.dev/blog/how-to-code-sign-and-notarize-macos-audio-plugins-in-ci/ - name: Import Developer ID Application Certificate - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} uses: apple-actions/import-codesign-certs@v1 with: p12-file-base64: ${{ secrets.DEV_ID_APP_CERT }} @@ -36,7 +36,7 @@ jobs: keychain-password: ${{ secrets.KEYCHAIN_PASSWORD }} - name: Import Mac Installer Distribution Certificate - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} uses: apple-actions/import-codesign-certs@v1 with: p12-file-base64: ${{ secrets.MAC_INST_DIST_CERT }} @@ -53,11 +53,11 @@ jobs: python-version: 3.11 # - name: Install development version of pyinstaller - # if: ${{ matrix.os == 'macos-11' }} + # if: ${{ matrix.os == 'macos-14' }} # run: PYINSTALLER_COMPILE_BOOTLOADER=1 pip install git+https://github.com/pyinstaller/pyinstaller.git # - name: Install development version of pyinstaller - # if: ${{ matrix.os != 'macos-11' }} + # if: ${{ matrix.os != 'macos-14' }} # run: pip install git+https://github.com/pyinstaller/pyinstaller.git - name: Install Python dependencies @@ -68,15 +68,15 @@ jobs: # Don't do the following for now since it actually breaks the WWT plugin # - name: Remove nested app - # if: ${{ matrix.os == 'macos-11' }} + # if: ${{ matrix.os == 'macos-14' }} # run: rm -rf dist/glue.app/Contents/Frameworks/PyQt5/Qt/lib/QtWebEngineCore.framework/Versions/5/Helpers/QtWebEngineProcess.app - name: Simple test of MacOS X application - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: dist/glue.app/Contents/MacOS/start_glue --test - name: Rename MacOS X application - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: mv dist/glue.app dist/"glue ${GITHUB_REF_NAME}.app" - name: Rename Windows application @@ -87,48 +87,48 @@ jobs: # Build signed DMG for direct distribution - name: Remove start_glue - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: rm -rf dist/start_glue - name: Codesign MacOS X application - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: codesign --entitlements entitlements.plist --force -s "${{ secrets.DEVELOPER_ID_APPLICATION}}" -v dist/"glue ${GITHUB_REF_NAME}.app" --deep --strict --options=runtime --timestamp - name: Make DMG - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: hdiutil create -volname "Glue" -srcfolder dist -ov -format UDZO dist/"glue ${GITHUB_REF_NAME}.dmg" - name: Notarize app - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: xcrun notarytool submit dist/"glue ${GITHUB_REF_NAME}.dmg" --apple-id ${{ secrets.NOTARIZATION_USERNAME }} --team-id ${{ secrets.TEAM_ID }} --password ${{ secrets.NOTARIZATION_PASSWORD }} --wait - name: Staple notarization to dmg - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: xcrun stapler staple dist/"glue ${GITHUB_REF_NAME}.dmg" # Build signed pkg for potential Mac App Store distribution - name: Rename MacOS X application - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: mv dist/"glue ${GITHUB_REF_NAME}.app" dist/glueviz.app - name: Build MacOS X installer for distribution - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: productbuild --component dist/glueviz.app /Applications/ dist/"glue ${GITHUB_REF_NAME}_unsigned.pkg" - name: Sign MacOS X installer for distribution - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: productsign --sign "${{ secrets.MAC_INSTALLER_DISTRIBUTION}}" dist/"glue ${GITHUB_REF_NAME}_unsigned.pkg" dist/"glue ${GITHUB_REF_NAME}.pkg" - name: Remove unsigned pkg - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: rm -rf dist/"glue ${GITHUB_REF_NAME}_unsigned.pkg" # For now validation fails because the entitlements file is missing the sandbox option - but we are leaving # it out for now as WWT does not work correctly with it. #- name: Validate pkg - # if: ${{ matrix.os == 'macos-11' }} + # if: ${{ matrix.os == 'macos-14' }} # run: xcrun altool --validate-app -f dist/"glue ${GITHUB_REF_NAME}.pkg" --type osx --username ${{ secrets.NOTARIZATION_USERNAME }} --password ${{ secrets.NOTARIZATION_PASSWORD }} --team-id ${{ secrets.TEAM_ID }} - name: Remove .app - if: ${{ matrix.os == 'macos-11' }} + if: ${{ matrix.os == 'macos-14' }} run: rm -rf dist/"glueviz.app" - name: Output list of included packages - if: matrix.os == 'macos-11' + if: matrix.os == 'macos-14' run: pip freeze > included-packages.txt - name: Install awscli run: pip install awscli From 342cb4e0471aca6fe6048445c074d618baa13f00 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Sat, 24 Feb 2024 10:56:41 +0000 Subject: [PATCH 10/25] Added hook for jupyter-events --- hooks/hook-jupyter_events.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 hooks/hook-jupyter_events.py diff --git a/hooks/hook-jupyter_events.py b/hooks/hook-jupyter_events.py new file mode 100644 index 0000000..aea3c2d --- /dev/null +++ b/hooks/hook-jupyter_events.py @@ -0,0 +1,4 @@ +from PyInstaller.utils.hooks import collect_data_files, copy_metadata + +datas = collect_data_files("jupyter_events", include_py_files=True) +datas += copy_metadata("jupyter-events") From 85fef9917e98106de5d3386dda209f2251d13e61 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Sat, 24 Feb 2024 11:04:08 +0000 Subject: [PATCH 11/25] Explicitly specify glue-qt as a dependency --- glue_app.spec | 1 + requirements.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/glue_app.spec b/glue_app.spec index 3b6d617..9f2b652 100644 --- a/glue_app.spec +++ b/glue_app.spec @@ -34,6 +34,7 @@ a = Analysis( "vispy", "notebook", "freetype", + "glue_qt", "glue_wwt", "glue_plotly", "glue_statistics", diff --git a/requirements.txt b/requirements.txt index f20a719..e69d432 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ pyinstaller glue-core +glue-qt glue-vispy-viewers glue-wwt glue-plotly From e217a9e80b5da8d6ef55178821f60f3e909845aa Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Sat, 24 Feb 2024 11:10:42 +0000 Subject: [PATCH 12/25] Uninstall debugpy --- .github/workflows/build_stable.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index 16ee34e..a49de9c 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -63,6 +63,9 @@ jobs: - name: Install Python dependencies run: pip install -r requirements.txt --no-cache-dir + - name: Uninstall debugpy + run: pip uninstall debugpy + - name: Run pyinstaller run: pyinstaller glue_app.spec From 19ec3dd1898e20df06854bf66d800cb21dfd1e6b Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Sat, 24 Feb 2024 11:15:13 +0000 Subject: [PATCH 13/25] Don't require interactive reply --- .github/workflows/build_stable.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index a49de9c..6e057da 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -64,7 +64,7 @@ jobs: run: pip install -r requirements.txt --no-cache-dir - name: Uninstall debugpy - run: pip uninstall debugpy + run: pip uninstall -y debugpy - name: Run pyinstaller run: pyinstaller glue_app.spec From 518edc69b7c37cd48b6488603d2f785ee82f7400 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Sat, 24 Feb 2024 11:20:31 +0000 Subject: [PATCH 14/25] Add pyinstaller hook for glue-qt --- hooks/hook-glue_qt.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 hooks/hook-glue_qt.py diff --git a/hooks/hook-glue_qt.py b/hooks/hook-glue_qt.py new file mode 100644 index 0000000..3549062 --- /dev/null +++ b/hooks/hook-glue_qt.py @@ -0,0 +1,4 @@ +from PyInstaller.utils.hooks import collect_data_files, copy_metadata + +datas = collect_data_files("glue_qt", include_py_files=True) +datas += copy_metadata("glue-qt") From 7d82a36e1fbe57c852d6c952bbbfea0e1f15665c Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Mon, 26 Feb 2024 21:51:03 +0000 Subject: [PATCH 15/25] Pin PyQt6 --- requirements.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index e69d432..086c288 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,8 @@ glue-plotly pvextractor pywwt notebook -PyQt6==6.6.1 -PyQt6-WebEngine==6.6.0 +PyQt6==6.4.* +PyQt6-Qt6==6.4.* +PyQt6-WebEngine==6.4.* +PyQt6-WebEngine-Qt6==6.4.* git+https://github.com/vispy/vispy From 58a3117a7f38619750b8e305bb99c66cd725fcd4 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Wed, 28 Feb 2024 09:41:09 +0000 Subject: [PATCH 16/25] Don't include joblib --- glue_app.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/glue_app.spec b/glue_app.spec index 9f2b652..1c972a3 100644 --- a/glue_app.spec +++ b/glue_app.spec @@ -3,6 +3,8 @@ import os import sys +sys.setrecursionlimit(sys.getrecursionlimit() * 5) + # Version needs to be three integers separated by period, which is # the case for stable tags, but otherwise we need to use a dummy version @@ -39,14 +41,18 @@ a = Analysis( "glue_plotly", "glue_statistics", "pvextractor", - "PyQt6.QtTest" + "PyQt6.QtTest", ], hookspath=["hooks"], hooksconfig={ "matplotlib": {"backends": "all"}, }, runtime_hooks=[], - excludes=["tkinter", "PyQt5.QtQml"], + excludes=[ + "tkinter", + "PyQt5.QtQml", + "joblib", + ], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, @@ -55,7 +61,6 @@ a = Analysis( pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) if onefile: - exe = EXE( pyz, a.scripts, @@ -72,7 +77,6 @@ if onefile: ) else: - exe = EXE( pyz, a.scripts, From 0c30416b4e71dd2db164dd0a20af7bd58d614a0e Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Wed, 28 Feb 2024 10:30:24 +0000 Subject: [PATCH 17/25] Updated imports for glue-qt --- start_glue.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/start_glue.py b/start_glue.py index d6bf28b..1311d79 100644 --- a/start_glue.py +++ b/start_glue.py @@ -8,7 +8,7 @@ from pywwt import qt from glue import load_plugins from glue.logger import logger -from glue.app.qt import GlueApplication +from glue_qt.app import GlueApplication qt.APP_LIVELINESS_DEADLINE = 60 @@ -45,7 +45,7 @@ # Open a few viewers to test - from glue.viewers.image.qt import ImageViewer + from glue_qt.viewers.image import ImageViewer ga.new_data_viewer(ImageViewer) From 669d36a22880d1f7dce2491a13dff8dcf5efbac9 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Wed, 28 Feb 2024 10:39:16 +0000 Subject: [PATCH 18/25] Use lock file to prevent multiple launches --- start_glue.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/start_glue.py b/start_glue.py index 1311d79..fca2cfd 100644 --- a/start_glue.py +++ b/start_glue.py @@ -16,6 +16,12 @@ if __name__ == "__main__": + if os.path.exists('/tmp/gluelock'): + raise Exception("glue lock already exists") + + with open('/tmp/gluelock', 'w') as f: + f.write('Denied!') + if '--debug' in sys.argv or '--test' in sys.argv: logger.setLevel("INFO") From 37558937aee16c7d109a35a00e9a34205ccbf2cf Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Wed, 28 Feb 2024 10:40:07 +0000 Subject: [PATCH 19/25] Uninstall joblib --- .github/workflows/build_stable.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index 6e057da..5f09428 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -66,6 +66,9 @@ jobs: - name: Uninstall debugpy run: pip uninstall -y debugpy + - name: Uninstall joblib + run: pip uninstall -y joblib + - name: Run pyinstaller run: pyinstaller glue_app.spec From ff2cf1b2a019b63355fb82c24b920bc479c696d1 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Wed, 28 Feb 2024 10:43:28 +0000 Subject: [PATCH 20/25] Print out sys.argv --- start_glue.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/start_glue.py b/start_glue.py index fca2cfd..d7a7b9a 100644 --- a/start_glue.py +++ b/start_glue.py @@ -16,6 +16,8 @@ if __name__ == "__main__": + print(sys.argv) + if os.path.exists('/tmp/gluelock'): raise Exception("glue lock already exists") From f7db1f56a7ecd174ec5a73e96cf8a77fd97be465 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Wed, 28 Feb 2024 11:19:03 +0000 Subject: [PATCH 21/25] Try killing forked processes --- start_glue.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/start_glue.py b/start_glue.py index d7a7b9a..1c1ef0e 100644 --- a/start_glue.py +++ b/start_glue.py @@ -1,8 +1,14 @@ -import os import sys print("start_glue.py called with arguments", sys.argv) +# Exit early if this was launched by multiprocessing +for arg in sys.argv: + if 'multiprocessing' in arg: + print('Killed forked process') + sys.exit(0) + +import os import time from pywwt import qt @@ -18,11 +24,11 @@ print(sys.argv) - if os.path.exists('/tmp/gluelock'): - raise Exception("glue lock already exists") + #if os.path.exists('/tmp/gluelock'): + # raise Exception("glue lock already exists") - with open('/tmp/gluelock', 'w') as f: - f.write('Denied!') + #with open('/tmp/gluelock', 'w') as f: + # f.write('Denied!') if '--debug' in sys.argv or '--test' in sys.argv: logger.setLevel("INFO") From 39916f7dc558fc4c73ccc85fdc2dcb831df9fe90 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Fri, 1 Mar 2024 14:46:19 +0000 Subject: [PATCH 22/25] Try Qt6.6 with latest glue-qt fix --- requirements.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index 086c288..c826235 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,14 +1,14 @@ pyinstaller glue-core -glue-qt +glue-qt>=0.3.1 glue-vispy-viewers glue-wwt glue-plotly pvextractor pywwt notebook -PyQt6==6.4.* -PyQt6-Qt6==6.4.* -PyQt6-WebEngine==6.4.* -PyQt6-WebEngine-Qt6==6.4.* +PyQt6==6.6.* +PyQt6-Qt6==6.6.* +PyQt6-WebEngine==6.6.* +PyQt6-WebEngine-Qt6==6.6.* git+https://github.com/vispy/vispy From 964f3024ba9876641b7a11bd9119c54c81aa6b1c Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Thu, 21 Mar 2024 12:51:30 +0000 Subject: [PATCH 23/25] Remove unused code related to lock file --- start_glue.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/start_glue.py b/start_glue.py index 1c1ef0e..6562b21 100644 --- a/start_glue.py +++ b/start_glue.py @@ -22,14 +22,6 @@ if __name__ == "__main__": - print(sys.argv) - - #if os.path.exists('/tmp/gluelock'): - # raise Exception("glue lock already exists") - - #with open('/tmp/gluelock', 'w') as f: - # f.write('Denied!') - if '--debug' in sys.argv or '--test' in sys.argv: logger.setLevel("INFO") From fa3aebcf19207a852f6a5e38efac0417e3190e60 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Thu, 21 Mar 2024 12:52:20 +0000 Subject: [PATCH 24/25] Require glue-wwt v0.7.2 or later --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index c826235..b55eb3b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ pyinstaller glue-core glue-qt>=0.3.1 glue-vispy-viewers -glue-wwt +glue-wwt>=0.7.2 glue-plotly pvextractor pywwt From f01266702d61fe70bf4439c82f026585d4ee3595 Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Thu, 21 Mar 2024 12:55:56 +0000 Subject: [PATCH 25/25] Remove unused installation of development version of PyInstaller --- .github/workflows/build_stable.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index 5f09428..17410aa 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -52,14 +52,6 @@ jobs: with: python-version: 3.11 - # - name: Install development version of pyinstaller - # if: ${{ matrix.os == 'macos-14' }} - # run: PYINSTALLER_COMPILE_BOOTLOADER=1 pip install git+https://github.com/pyinstaller/pyinstaller.git - - # - name: Install development version of pyinstaller - # if: ${{ matrix.os != 'macos-14' }} - # run: pip install git+https://github.com/pyinstaller/pyinstaller.git - - name: Install Python dependencies run: pip install -r requirements.txt --no-cache-dir