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.

소스 정보

저장소
RunanywhereAI/RCLI
최근 소스 활동
2026년 8월 25일 18:06
감지된 SKILL.md 언어
영어
스타
1,544
포크
85

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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.
GitHub에서 보기