Skip to content

Latest commit

 

History

History
52 lines (44 loc) · 2.08 KB

File metadata and controls

52 lines (44 loc) · 2.08 KB

Releasing podcli

Distribution is fully automated by .github/workflows/release.yml: pushing a v* tag builds the launcher per platform, builds whisper.cpp, bundles the studio and Remotion, generates checksums.txt, and publishes a GitHub release. End users install with no prerequisites:

curl -fsSL https://podcli.com/install.sh | sh
# Windows: irm https://podcli.com/install.ps1 | iex

Platforms: macOS arm64, Linux x64/arm64, Windows x64. (npm isn't used — the unscoped name podcli is blocked by npm as too similar to pod-cli.)

Cutting a release

  1. Bump the version in package.json. It is the single source of truth: the launcher embeds cli/VERSION, which go generate writes from package.json, and the Python backend reads it too.
    cd cli && go generate ./... && git add VERSION   # refresh the embedded version
    A tag that disagrees with package.json fails the release build, and go test ./... in cli/ fails if VERSION is stale.
  2. Merge to main and make sure CI is green.
  3. Tag and push. The tag must match package.json:
    git tag vX.Y.Z
    git push origin vX.Y.Z
  4. Watch the release workflow. It produces these assets (the names the installers, self-update, and provisioner expect):
    • podcli-{darwin,linux,windows}-{amd64,arm64}[.exe] — static launchers
    • whisper-cli-<os>-<arch>[.exe]
    • studio-bundle.tar.gz
    • remotion-<os>-<arch>.tar.gz
    • checksums.txt
  5. Verify the release is published with all assets, then run the smoke test below.

Smoke test (ideally one machine per OS)

curl -fsSL .../install.sh | sh      # Windows: irm .../install.ps1 | iex
podcli doctor                        # paths + engine resolution
podcli process sample.mp4 --top 1    # transcribe -> suggest -> export a clip
podcli                               # interactive menu -> Open Web UI

First run downloads the hermetic runtimes (Python, Node, FFmpeg, model) once. Needs outbound HTTPS to github.com, huggingface.co, nodejs.org, and the ffmpeg hosts. glibc Linux only (Alpine/musl is unsupported).