Skip to content

feat(publish): publish boxlite-cli via cargo install and cargo binstall#378

Merged
DorianZheng merged 1 commit intomainfrom
feat/publish-boxlite-cli
Mar 13, 2026
Merged

feat(publish): publish boxlite-cli via cargo install and cargo binstall#378
DorianZheng merged 1 commit intomainfrom
feat/publish-boxlite-cli

Conversation

@DorianZheng
Copy link
Copy Markdown
Member

Summary

  • Enable boxlite-cli distribution via cargo install boxlite-cli (from source) and cargo binstall boxlite-cli (prebuilt binary)
  • Add versioned tarball naming for both runtime and CLI artifacts
  • Fix empty README on crates.io for the boxlite crate

Changes

  • boxlite-cli/Cargo.toml: Sync version to workspace (0.7.3), remove publish = false, add [package.metadata.binstall], use workspace dep for boxlite
  • Cargo.toml: Add boxlite to [workspace.dependencies] with version for crates.io
  • boxlite/Cargo.toml: Add readme = "../README.md" (fixes empty crates.io page)
  • boxlite/build.rs: Update runtime download URL to versioned format (boxlite-runtime-v{version}-{target}.tar.gz)
  • config.yml: Add rust_target (Rust triple) to platform matrix for cargo-binstall naming
  • build-runtime.yml: Build CLI in CI, package/upload versioned tarballs, add Tier 3 crates.io publish
  • make/build.mk: Add cli:release target
  • boxlite-cli/README.md: Add cargo install / cargo binstall instructions, remove hardcoded version

Test plan

  • cargo check -p boxlite-cli compiles with workspace dep
  • cargo metadata shows version 0.7.3 and binstall config
  • BOXLITE_DEPS_STUB=1 cargo publish -p boxlite-cli --dry-run --allow-dirty succeeds
  • All 137 tests pass (pre-push hook)
  • CI workflow builds and uploads CLI tarballs on release
  • cargo install boxlite-cli works from crates.io after publish
  • cargo binstall boxlite-cli downloads prebuilt binary from GitHub Release

Enable boxlite-cli distribution through two install paths:
- `cargo install boxlite-cli` (builds from source on crates.io)
- `cargo binstall boxlite-cli` (prebuilt binary from GitHub Releases)

Changes:
- Remove `publish = false`, sync version to workspace (0.7.3)
- Add workspace dependency for boxlite with version for crates.io
- Add `[package.metadata.binstall]` configuration
- Build CLI binary in CI (manylinux container + macOS)
- Package and upload CLI tarballs to GitHub Releases
- Add Tier 3 crates.io publish step for boxlite-cli
- Add version to runtime tarball names for consistency
- Update build.rs download URL to match new naming
- Add `cli:release` Makefile target
- Add `readme = "../README.md"` to boxlite crate (fixes empty crates.io page)
@DorianZheng DorianZheng merged commit c533187 into main Mar 13, 2026
18 checks passed
@DorianZheng DorianZheng deleted the feat/publish-boxlite-cli branch March 13, 2026 12:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant