Goal
Ship yapi as a standalone native binary so users can install it via Homebrew / a single download, without a JVM on their machine.
Status
Post-MVP. v0.1.0 ships as a JVM application (`installDist` / `distZip` from the Gradle `application` plugin). Native packaging unlocks proper Linux/macOS distribution and `brew install yapi`.
Scope
- GraalVM native-image build for:
- linux-x86_64
- linux-aarch64
- darwin-x86_64
- darwin-aarch64
- Resolve native-image surprises:
- Reflection config for Ktor engine, kotlinx.serialization, mordant.
- Resource includes (default config templates etc.).
- Coroutine debug agent off in release.
- CI:
- Cross-compile/build matrix in GitHub Actions.
- Upload binaries as release artifacts.
- Distribution:
- Homebrew tap / formula (`syncended/tap/yapi` or similar).
- Linux: tarball release + optional AUR/deb later.
Out of scope
- Windows binary (separate issue).
- App bundle / signed installer for macOS.
Acceptance criteria
- `brew install /yapi` installs and runs on macOS arm64 and x86_64.
- A static-ish Linux binary runs on Ubuntu LTS and Alpine (musl variant if feasible) without a JVM.
- Release workflow attaches per-platform binaries to GitHub Releases.
Goal
Ship yapi as a standalone native binary so users can install it via Homebrew / a single download, without a JVM on their machine.
Status
Post-MVP. v0.1.0 ships as a JVM application (`installDist` / `distZip` from the Gradle `application` plugin). Native packaging unlocks proper Linux/macOS distribution and `brew install yapi`.
Scope
Out of scope
Acceptance criteria