Skip to content

Building a Distributable

Package a standalone application that end users can run without installing Python or any dependencies.

pip install pyinstaller
pyinstaller QuickPhaseAnalysis.spec

Output goes to dist/:

  • macOSAutoPhaseAnalysis.app
  • Windows / Linux → a one-directory bundle under dist/AutoPhaseAnalysis/

How the packaged app stays working

The BGMN binaries are bundled and copied to the writable per-user directory (~/.autophaseanalysis/bgmn) at runtime, so the packaged app works even when it is installed to a read-only location. This behaviour comes from the compatibility patches in app/patches.py — see Architecture.

Build on the target OS

PyInstaller does not cross-compile. Build the macOS app on macOS and the Windows bundle on Windows.

BGMN is GPL

A packaged app bundles BGMN binaries, which are licensed under GPL-2.0-or-later. Comply with BGMN's GPL terms before redistributing. See Acknowledgements & License.


Distributing via GitHub Releases

Once you have a build, attach it to a GitHub Release so users can download and run it directly. Tag the commit (e.g. v1.0.0), write release notes, and upload the dist/ artifact as a release asset.