Ctrl K
ComunidadGuías…

dist-workspace.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[workspace]
members = ["cargo:."]

# Config for 'dist'
[dist]
# The preferred dist version to use in CI (Cargo.toml SemVer syntax)
cargo-dist-version = "0.31.0"
# CI backends to support
ci = "github"
# The installers to generate for each app
installers = ["shell"]
# Target platforms to build apps for (Rust target-triple syntax).
# Phase 61 scope: Linux x86_64 + Linux aarch64 + macOS x86_64 + macOS
# aarch64. Linux targets use musl-static (Q2(a) sign-off) so one
# binary works on every distro without glibc version drift. Native
# Windows (x86_64-pc-windows-msvc) is explicitly deferred to a
# follow-up phase — daemon IPC is Unix-domain-socket-only today;
# Windows needs a NamedPipe port. The glibc variants
# (*-unknown-linux-gnu) are intentionally omitted in favor of musl.
targets = [
    "x86_64-unknown-linux-musl",
    "aarch64-unknown-linux-musl",
    "x86_64-apple-darwin",
    "aarch64-apple-darwin",
]
# Path that installers should place binaries in
install-path = "CARGO_HOME"
# Where to host releases
hosting = "github"
# Whether to install an updater program
install-updater = false
# The installer's last word is the next step (it used to be just
# "everything's installed!"). Plain text only: it's embedded in the
# generated shell script, so no backticks or quotes.
install-success-msg = "aivyx-pa is installed. Next, set it up with: aivyx-pa init"
# Build ONLY the packages that ship a release artifact (aivyx-cli → the
# `aivyx` binary), not the whole workspace. Without this, cargo-dist does a
# single workspace-wide "fat build" that also compiles default-member crates
# like `aivyx-voice` (cpal → alsa-sys), which fails on the musl Linux targets
# (no ALSA, and ALSA doesn't fit a static-musl binary). `aivyx-cli`'s default
# feature set excludes voice, so a precise per-package build never touches it.
precise-builds = true
# Phase 61 Task 4 — run the shared quality-gate reusable workflow
# (`.github/workflows/quality-gate.yml`: `cargo test --workspace` +
# `cargo clippy --workspace --all-targets -- -D warnings`) alongside the
# release pipeline's `plan` job; the build jobs need it. On its own that
# did NOT stop publishing: dist's generated `host` job accepted skipped
# builds, so a failed gate would still have published a release with no
# CLI binaries. The `host` guard in release.yml (see allow-dirty below)
# is what makes a failed gate block the release.
plan-jobs = ["./quality-gate"]
# release.yml is hand-edited: its `host` job refuses to publish unless
# the quality gate and every build job succeeded (dist's generated
# condition accepted skipped builds — v0.10.0 shipped without its CLI
# binaries that way). With "ci" here dist neither checks nor regenerates
# release.yml, so after changing this file or upgrading
# cargo-dist-version, regenerate it (`dist generate --mode=ci`) and
# re-apply the `host` guard by hand.
allow-dirty = ["ci"]
# Don't run the release workflow on pull requests — ci.yml already runs
# the quality gate on every PR, so a PR-time release run would just
# duplicate it. The release pipeline runs on version tags only.
pr-run-mode = "skip"

# GitHub retired the macos-14 image on 2026-11-02, and dist 0.31 still
# picks it for aarch64-apple-darwin (v0.20.0's first run was refused).
[dist.github-custom-runners]
aarch64-apple-darwin = "macos-15"