Repository navigation
Desktop app for macOS and Windows (1.13.0) - #165
Merged
Merged
Conversation
A PyInstaller build with Python and every dependency inside (OASIS and the spike sorters included), for people who don't use a terminal: - packaging/: entry point, spec, icon, Inno Setup installer (per-user, no admin rights), build_app.py; built + smoke-tested by .github/workflows/desktop-app.yml on official releases, by hand, and on PRs that touch the packaging. - meanap.frozen: the few things a frozen app lacks (python -m re-entry, bundled MATLAB images, a console on Windows) as no-ops from a clone. - The app's version dialog checks GitHub's latest release over HTTPS and links to the download, instead of the git-based switcher. - meanap.app_smoke (--smoke-test): imports, numba, steps 1-4 on synthetic recordings with worker processes, and the GUI, run on the built app. Plan and status: python/DESKTOP_APP_PLAN.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…en, startup timing PyInstaller's matplotlib hook gives every launch a fresh temporary MPLCONFIGDIR, so the app (and each worker process) re-scanned every system font on each start. Keep a lasting cache folder instead. Show a splash before the main window's pipeline imports, log how long the window took, and add --time-startup (run cold + warm in CI). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
numba/llvmlite stopped shipping Intel-Mac wheels after 0.62/0.45, so Intel Macs resolve to those (and numpy 2.3) via a platform marker; every other platform's lock is unchanged. Add a macos-15-intel job, build for the native architecture, and compile source-only extensions for macOS 12. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X78uDckMcD2xCkAo9Hj7g8
Timothysit
marked this pull request as ready for review
October 21, 2026 20:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A double-clickable MEA-NAP for people who don't use a terminal: a
.dmgfor Macs (Apple silicon and Intel) and a per-userSetup.exefor Windows, each with Python and every dependency inside (OASIS and the spike sorters included). Plan, decisions and status:python/DESKTOP_APP_PLAN.md.Merge together with publishing the v1.13.0 release. The README and install docs link to the latest release's downloads, which only exist once this workflow has attached them to an official (non-pre-release) release.
packaging/: entry point, PyInstaller spec, icon, Inno Setup script,build_app.py..github/workflows/desktop-app.yml: builds macOS arm64, macOS Intel and Windows x64, times a cold and a warm start, runs the smoke test on the built app, and attaches the.dmg/Setup.exeto official releases. Also runs by hand and on PRs that touch the packaging.meanap.frozen: what a frozen app lacks (python -mre-entry, bundled MATLAB images, a console on Windows), each a no-op from a clone.--time-startup.docs/python/installation.mdcovers Chrome's download warning, SmartScreen, and macOS "Open Anyway".Tested: all three builds pass the smoke test in CI (imports and extras, numba, steps 1–4 with worker processes, the GUI).
python/test_desktop_app.pypasses. Real-device checks: Windows (works; the slow start was fixed afterwards), Apple-silicon Mac (Gatekeeper step). Not yet tried on a real Intel Mac.🤖 Generated with Claude Code
https://claude.ai/code/session_01X78uDckMcD2xCkAo9Hj7g8