Files
JMR-devandClaude Opus 5 e459606e89 feat(packaging): ship as a tool install or a self-contained directory
Two ways to get `ccn-transcribe` on PATH. `uv tool install .` is the light one.
scripts/build-binary.sh produces a ~450 MB directory that needs neither Python
nor uv, which turned out to work despite OpenVINO resolving 47 plugins by
dlopen at runtime -- the frozen build reports CPU, GPU and transcribes on the
GPU to a byte-identical transcript.

Two things that build needs. PyInstaller points sys.prefix at the bundle, so
deno goes in bin/ and the runtime lookup finds it with no frozen-app special
case in the package. And a frozen executable is re-invoked to start a
multiprocessing child, which parsed the interpreter's own -B flag as a CLI
option and printed "No such option '-B'" twice per run before dying;
freeze_support() in the entry point makes that child do its job and exit.

onedir, not onefile: onefile would extract 450 MB to /tmp on every launch.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-13 19:10:51 -05:00

28 lines
384 B
Plaintext

# Python environment
.venv/
__pycache__/
*.py[cod]
# OpenVINO compiled-kernel caches (scripts create .ov_cache_gpu / .ov_cache_cpu)
.ov_cache*/
# Test audio fixtures - fetched by scripts, not committed
*.wav
# Pipeline working directories
transcripts/
out/
# Coverage
.coverage
htmlcov/
.pytest_cache/
# Tool caches
.mypy_cache/
.ruff_cache/
# PyInstaller output
/dist/
/build/