-
Notifications
You must be signed in to change notification settings - Fork 1
Deployment Guide
VAC34 edited this page Aug 11, 2026
·
2 revisions
Single-file portable EXE (FastPrompter.exe). No installer, no admin rights, no Python runtime needed. All state in data/ beside binary.
- Python 3.11+
- uv (package manager) or pip
- Nuitka >= 4.1.2
- C compiler — Nuitka auto-downloads if missing
- UPX (optional, 50-60% size reduction)
- Git for Windows with GitHub credentials
uv run python tools/build.py- Verify Nuitka >= 4.1.2 installed (auto-installs if missing)
- Detect UPX in PATH (adds
--plugin-enable=upxif found) - Inject
src/into PYTHONPATH for clean module trace - Compile
FastPrompter.pyw(GUI entry, no console) - Output:
build/FastPrompter.exe
cmd = [
sys.executable,
"-m", "nuitka",
"FastPrompter.pyw",
]
if upx_bin:
cmd.append("--plugin-enable=upx")
cmd.append(f"--upx-binary={upx_bin}")Output EXE ~15-28MB depending on UPX.
uv run python tools/release.py [release_notes.md]- Verify
build/FastPrompter.exeexists - Read version from
pyproject.toml(tag =v<version>) - Extract GitHub token from Windows Credential Manager (
git credential fill) - Check if tag exists via GitHub API
- No → create new release
- Yes → update release notes
- Upload
build/FastPrompter.exeas release asset (deletes old first)
Commit + push local changes:
- Stage tracked changes (
git add -u) - Untracked files are listed and only staged after an explicit yes (never auto-added)
- Timestamped commit (
deploy: YYYY-MM-DD HH:mm) - Pull rebase (
git pull --rebase --autostash origin main) - On conflict, ask for confirmation before force-pushing (
git push --force-with-leaseis used only after an explicit y)
Build + publish in one click:
uv run python tools\build.py || pause
uv run python tools\release.py %*
| Issue | Cause | Fix |
|---|---|---|
ImportError: No module named fastprompter |
Nuitka didn't trace src/ | Ensure PYTHONPATH includes src/ (build.py does this) |
No GitHub credential found |
Git token not in Credential Manager | Run git push once manually to store token |
| Large EXE (>60MB) | UPX not found in PATH | Install UPX from https://upx.github.io/ |
| Rebase conflict on deploy | Remote edited directly on GitHub | deploy.ps1 asks for confirmation before force-pushing (y/N); decline and resolve manually |
FastPrompter Wiki — Built with SAIPEN Protocol | GitHub Repo