Add cross-platform single-file installer build, Windows compatibility, and CI workflow - #1
Add cross-platform single-file installer build, Windows compatibility, and CI workflow#1eimexdev wants to merge 1 commit into
Conversation
ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughThis pull request introduces installer build infrastructure and Windows support for the OpenBeat project. It adds a GitHub Actions workflow for automating platform-specific installer creation, updates documentation with installation options, and implements Windows compatibility throughout the codebase alongside a new Python build script. Changes
Sequence Diagram(s)sequenceDiagram
participant Script as build_installers.py
participant Version as Version Parser
participant PyInstaller as PyInstaller
participant Payload as Payload Copier
participant MacOS as macOS DMG Builder
participant Windows as Windows EXE Builder
Script->>Version: parse_version() from pyproject.toml
Version-->>Script: version string
Script->>PyInstaller: build_cli_binary()
PyInstaller-->>Script: openbeat binary
Script->>Payload: copy_payload(platform)
Payload-->>Script: Fusion modules copied
alt platform == macOS
Script->>MacOS: create_macos_dmg(cli_binary, version)
MacOS->>MacOS: stage payload + install.command
MacOS->>MacOS: call hdiutil create .dmg
MacOS-->>Script: versioned .dmg artifact
else platform == Windows
Script->>Windows: create_windows_exe(cli_binary, version)
Windows->>Windows: embed payload in installer
Windows->>Windows: write runtime entry script
Windows-->>Script: versioned .exe artifact
end
Script->>Script: write to dist/installers/
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes Poem
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
Motivation
Description
build-installers.ymlto build macOS and Windows installers and upload artifacts asOpenBeat-*-installer.scripts/build_installers.pywhich bundles the Python CLI withPyInstaller, packages payload files, produces a macOS.dmg(withinstall.command) and a Windows single-file installer.exe(PyInstaller-wrapped installer script), and writesOpenBeatConfig.local.luapointing to the bundled binary.README.mdwith an installer-first install option, local build instructions, and artifact locations, and addbuild/anddist/to.gitignore.resolve/Fusion/Modules/OpenBeat/OpenBeatCommon.lua: normalize path separators, detect Windows viapackage.config, providepath_sep(), improvedirname,join_path, andshell_quotefor Windows, use appropriate temp directory (TMPDIR/TEMP/TMPwith Windows fallback), resolvepython_bincandidates for.venv/Scripts/python.exe, addcommand_prefix()to invoke the CLI entrypoint uniformly, and update logging paths to use%APPDATA%/AppData\Roamingon Windows.Testing
main, on pull requests, and viaworkflow_dispatchso CI will build installers for subsequent runs.Codex Task
Summary by CodeRabbit
Release Notes
New Features
Documentation
Improvements