Skip to content

Cargo meta-crate deepseek so cargo install deepseek ships both binaries (resolves #258 root cause) #264

@Hmbown

Description

@Hmbown

Problem

External user @whereiszebra (#258) downloaded deepseek-macos-arm64 from the GitHub Release, ran it, hit the missing-companion error, spent 11 minutes figuring out they also needed deepseek-tui-macos-arm64 next to it. They left feedback: "Release page does not document that both deepseek-macos-arm64 and deepseek-tui-macos-arm64 must be downloaded together."

The v0.8.3 fix improved the error message (bb88ab91) so future users see a concrete checklist (npm / cargo / both-binaries-from-Releases). But the underlying ergonomic problem stays: cargo install deepseek-tui only installs deepseek-tui (because we removed the v0.8.1 deepseek shim from that crate when it broke Windows release builds — see v0.8.2 CHANGELOG).

Proposal

Publish a tiny meta-crate deepseek to crates.io whose only job is:

# crates/deepseek/Cargo.toml
[package]
name = "deepseek"
version = "0.8.4"
description = "Meta-crate that installs both deepseek (dispatcher) and deepseek-tui (TUI) binaries"

[dependencies]
deepseek-tui-cli = { version = "0.8.4", path = "../cli" }
deepseek-tui = { version = "0.8.4", path = "../tui" }

Then cargo install deepseek --locked pulls in both crates and installs both binaries (deepseek from cli, deepseek-tui from tui). No shim, no Windows collision (each binary still owns its own crate), and the canonical install command finally matches the canonical command name.

Acceptance criteria

  • crates/deepseek/ exists with the meta-crate manifest
  • Workspace builds it, Cargo.toml default-members includes it
  • version-drift gate stays passing (the meta-crate inherits version.workspace = true)
  • cargo install --path crates/deepseek --locked from a fresh clone produces both deepseek and deepseek-tui in ~/.cargo/bin/
  • README + Chinese README install commands updated to recommend cargo install deepseek as the single canonical cargo install path
  • CHANGELOG entry under v0.8.4
  • Release pipeline publishes the new crate (add it to the cargo publish order — last in topological order since it depends on the others)

Why now

This is the natural follow-up to #258. With the meta-crate, the fix message we ship in v0.8.3 (bb88ab91) gets a clean third option — and the simplest one wins:

cargo install deepseek

Out of scope

  • Renaming the existing crates. deepseek-tui-cli and deepseek-tui keep their names; the meta-crate is additive.
  • Touching the npm wrapper. It already installs both correctly via the GitHub Release artifacts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions