Skip to main content

rcli-release

Cut an RCLI product release (independent of SDK version) — version bump, release:patch label, merge, auto-tag, bottles. Use when shipping rcli after a published SDK kit, or when Homebrew / notarization / private overlays must not leak into public bottles.

Informações da origem

Repositório
RunanywhereAI/RCLI
Última atividade na origem
25 de agosto de 2026 às 18:06
Idioma detectado do SKILL.md
inglês
Estrelas
1.544
Forks
85

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
rcli-release
description
Cut an RCLI product release (independent of SDK version) — version bump, release:patch label, merge, auto-tag, bottles. Use when shipping rcli after a published SDK kit, or when Homebrew / notarization / private overlays must not leak into public bottles.
# RCLI release Repo: `RunanywhereAI/RCLI`. Product version is `project(rcli VERSION x.y.z)` in `CMakeLists.txt` (also stamped into `Formula/rcli.rb`). Independent of the SDK kit pin. Do this **after** the SDK GitHub Release this pin targets is **published** (not draft). Companion: **rcli-kit-pin**, then this skill. ## 0. Facts - Label form is `release:patch` / `release:minor` / `release:major` (**colon**). `.github/workflows/auto-tag.yml` matches that spelling only. - Merge to `main` with that label → auto-tag pushes `v<CMakeLists VERSION>` and dispatches `release.yml`. Tag pushes with `GITHUB_TOKEN` do **not** trigger other workflows; the dispatch is required. - Checkout in auto-tag uses `persist-credentials: true` so the tag push works. - `release.yml` jobs: macos-arm64 bottle, windows-x64 zip, then GitHub Release. **macos runner must be macos-26** (Xcode 26 / Swift 6.2). macos-15 is Swift 6.1 and cannot resolve the SDK package; macos-14 is Swift 5.10. - Public bottle / zip is OSS only. NeuRT / QHexRT overlays are workflow artifacts or `RCLI_PRIVATE_OVERLAY`, never public release assets, never Homebrew bottles. - Linux bottles are not a v1 merge blocker. ## 1. Pin the SDK kit first If this train needs new engines (sherpa routable, windows-arm64 kit, NeuRT image gen): bump `cmake/sdk-pin.cmake` + CI `ref: v$SDK` in the **same PR** (**rcli-kit-pin**). CI must be green on that pin before you bump the product version. ## 2. Product version + label Next patch after `0.5.0` is `0.5.1`. Bump `CMakeLists.txt` `project(rcli VERSION …)` and any Formula version stamp in the same commit. Open/update the PR and apply **exactly one** `release:patch` (or minor/major). `gh pr create --label release:patch` is not atomic with the `opened` event — verify the label landed (`gh pr view --json labels`). ## 3. CI bar before merge Required: macOS product e2e (`scripts/e2e.sh ./build/rcli`) and Windows e2e against the pinned kit. `agents-sync.yml` must pass (`scripts/ci/check-agents-sync.sh`). Re-check immediately before merge (a rollup of SUCCESS can hide checks that have not started): ```bash gh pr checks <pr> --repo RunanywhereAI/RCLI --json name,state,bucket \ --jq '[.[] | select(.state == null or .state == "")] | length' # must be 0 ``` Do not merge on a partial matrix. Confirm bypass eligibility the same way as the SDK (`bypass_pull_request_allowances`) before `--admin`. ## 4. Merge triggers the release ```bash gh pr merge <pr> --repo RunanywhereAI/RCLI --squash --admin # only if allow-listed ``` `auto-tag.yml` tags `v$PRODUCT` and dispatches `release.yml`. Unlike the SDK train, there is typically **no** pre-merge candidate to reuse — let this release.yml run. Watch it; do not cancel `macos` for being "slow" (MLX host link + e2e). ## 5. Verify the GitHub Release ```bash gh release view v$PRODUCT --repo RunanywhereAI/RCLI --json isDraft,assets \ --jq '{isDraft, names: [.assets[].name]}' ``` Expect `rcli-$PRODUCT-macos-arm64.tar.gz` (+ `.sha256`) and `rcli-$PRODUCT-windows-x64.zip` (+ `.sha256`). **Must be empty** for `*neurt*`, `*qhexrt*`, `*private*`. If `release.yml` still creates a non-draft release, that is the live product cut — confirm asset names before anyone bottles from it. Stamp Formula from the macOS sidecar (`scripts/stamp-formula.py`) when that path is wired. ## 6. Overlays after the public cut Private packs stay off the public release. For a machine that should load NeuRT / QHexRT: ```bash export RCLI_PRIVATE_OVERLAY=/path/to/RunAnywhere-cpp-desktop-macos-arm64-neurt-private-v$SDK.tar.gz # or windows-arm64-qhexrt ``` `RCLI_REQUIRE_PRIVATE=1` fails closed when the overlay is missing. Default CI must pass without it. Device proof is not CI: rebuild overlay `rcli` on a Mac (NeuRT image gen) and on Snapdragon ARM64 Windows (QHexRT). Match QAIRT to the device Hexagon skel (`ADSP_LIBRARY_PATH`); see **rcli-e2e**. Public `v0.5.1` bottles are OSS — NeuRT/QHexRT will never appear in `rcli backends` on those artifacts. ## Do not - Attach `rcli-*` assets onto an SDK GitHub Release. - Pin `fetch-kit.sh` at a draft SDK tag. - Ship NeuRT / QHexRT inside the public bottle "just this once". - Use macos-14 or macos-15 for the Apple job (need macos-26 / Swift 6.2). - Weaken `assert-backends.sh` when `HAS_SHERPA`/`HAS_ONNX` is TRUE.
Ver no GitHub