diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 0091adf35..3046452e3 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -338,10 +338,10 @@ jobs: fail-fast: false matrix: os: [macos, windows, ubuntu] - # https://pypi.org/project/PySide6/ seems to have binaries only for python 3.9 - python-version: ["3.9"] + # only 1 version, it's heavy + python-version: ["3.10"] env: - LOCK_FILE_LOCATION: .ci-package-locks/qt/os${{ matrix.os }}-python${{ matrix.python-version }}-ipywidgets${{ matrix.ipywidgets_major }}.txt + LOCK_FILE_LOCATION: .ci-package-locks/qt/os${{ matrix.os }}-python${{ matrix.python-version }}.txt steps: - uses: ConorMacBride/install-package@v1 with: @@ -396,7 +396,10 @@ jobs: pip install `echo packages/solara-server/dist/*.whl`[all] pip install `echo packages/solara-meta/dist/*.whl`[dev,documentation] pip freeze --exclude solara --exclude solara-ui --exclude solara-server > ${{ env.LOCK_FILE_LOCATION }} - git diff --quiet || echo "HAS_DIFF=true" >> "$GITHUB_OUTPUT" + git diff --exit-code | tee ${{ env.DIFF_FILE_LOCATION }} + [ -s ${{ env.DIFF_FILE_LOCATION }} ] || echo "HAS_DIFF=true" >> "$GITHUB_OUTPUT" + + - name: Install if: github.event_name != 'schedule' && steps.prepare.outputs.LOCKS_EXIST == 'true' run: | @@ -406,6 +409,7 @@ jobs: pip install `echo packages/solara-meta/dist/*.whl`[dev,documentation] - name: test qt app if: github.event_name != 'schedule' || steps.install_no_lock.outputs.HAS_DIFF == 'true' + # this app should simply exit with an error code of 0 to indicate success run: | python tests/qtapp/solara-qt-test.py @@ -418,14 +422,14 @@ jobs: if: always() uses: actions/upload-artifact@v4 with: - name: test-results-integration-os${{ matrix.os }}-python${{ matrix.python-version }}-ipywidgets${{ matrix.ipywidgets_major }} + name: test-results-qt-test-os${{ matrix.os }}-python${{ matrix.python-version }} path: test-results - name: Upload CI package locks if: steps.install_no_lock.outputs.HAS_DIFF == 'true' || steps.prepare.outputs.LOCKS_EXIST == 'false' uses: actions/upload-artifact@v4 with: - name: ci-package-locks-integration-os${{ matrix.os }}-python${{ matrix.python-version }}-ipywidgets${{ matrix.ipywidgets_major }} + name: ci-package-locks-qt-test-os${{ matrix.os }}-python${{ matrix.python-version }} path: ./**/${{ env.LOCK_FILE_LOCATION }} integration-test: diff --git a/pyinstaller/embedded_browser/solara-qt.spec b/pyinstaller/embedded_browser/solara-qt.spec index 03d944d80..2239e4ecc 100644 --- a/pyinstaller/embedded_browser/solara-qt.spec +++ b/pyinstaller/embedded_browser/solara-qt.spec @@ -8,6 +8,8 @@ from PyInstaller.building.api import COLLECT, EXE, PYZ from PyInstaller.building.osx import BUNDLE import solara +# see https://github.com/spacetelescope/jdaviz/blob/main/.github/workflows/standalone.yml +# for an example of how to sign the app for macOS codesign_identity = os.environ.get("DEVELOPER_ID_APPLICATION") # this copies over the nbextensions enabling json and the js assets @@ -46,8 +48,6 @@ exe = EXE( a.scripts, [], exclude_binaries=True, - # executable name: dist/solara/solara-cli - # note: cannot be called solara, because there is a directory called solara name="solara-qt", debug=False, bootloader_ignore_signals=False, diff --git a/solara/server/pyinstaller/hook-solara_server.py b/solara/server/pyinstaller/hook-solara_server.py deleted file mode 100644 index e959dc8d6..000000000 --- a/solara/server/pyinstaller/hook-solara_server.py +++ /dev/null @@ -1,5 +0,0 @@ -from PyInstaller.utils.hooks import collect_data_files, copy_metadata, collect_submodules - -hiddenimports = collect_submodules("solara-server") -datas = collect_data_files("solara-server") # codespell:ignore datas -datas += copy_metadata("solara-server") # codespell:ignore datas diff --git a/solara/server/pyinstaller/hook-solara_ui.py b/solara/server/pyinstaller/hook-solara_ui.py deleted file mode 100644 index 404b5ae63..000000000 --- a/solara/server/pyinstaller/hook-solara_ui.py +++ /dev/null @@ -1,5 +0,0 @@ -from PyInstaller.utils.hooks import collect_data_files, copy_metadata, collect_submodules - -hiddenimports = collect_submodules("solara-ui") -datas = collect_data_files("solara-ui") # codespell:ignore datas -datas += copy_metadata("solara-ui") # codespell:ignore datas