One-developer workflow: ``python build/make_release.py`` on each target OS produces both the installer and a portable .zip for that platform. Preflight checks PyInstaller / Pillow / iscc / hdiutil / ditto / appimagetool and bails with install hints if anything is missing — no half-built dist/. New scripts: - build/make_release.py — orchestrator, auto-detects host OS. - build/generate_icons.py — icon.ico / icon.icns / icon.png from src/gui/assets/datatools_icon_256.png (Pillow ships ICO + ICNS writers; no platform tooling needed). - build/build_portable_zip.py — Win/Linux portable zip via stdlib. - build/macos/build_zip.sh — Mac portable .app via ditto so bundle metadata survives. installer.iss now adds: Quick Launch task (opt-in, legacy Win 7), App Paths registry entry (Win+R "DataTools" works), SetupIconFile, UninstallDisplayIcon, AppSupportURL, AppUpdatesURL. CI workflow uploads installer + portable per platform and attaches both to GitHub Releases on tag push. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
27 lines
700 B
Plaintext
27 lines
700 B
Plaintext
.venv/
|
|
__pycache__/
|
|
*.pyc
|
|
*.pyo
|
|
logs/
|
|
*.egg-info/
|
|
dist/
|
|
# PyInstaller writes intermediate artifacts to build/build/<spec>/ when the
|
|
# spec lives in build/. The spec, launcher, and hooks themselves are source
|
|
# and should be committed; only the generated artifacts are ignored.
|
|
build/build/
|
|
build/__pycache__/
|
|
build/dist/
|
|
# Generated by build/generate_icons.py from src/gui/assets/datatools_icon_256.png.
|
|
# Build artifacts, not source — regenerated each CI run.
|
|
build/icon.ico
|
|
build/icon.icns
|
|
build/icon.png
|
|
.pytest_cache/
|
|
|
|
# Claude Code agent worktrees + local settings
|
|
.claude/
|
|
|
|
# Landing-page deploy outputs and operator config (real URLs, not committed)
|
|
landing/dist/
|
|
landing/deploy.config.json
|