feat(cli): rename binaries to codewhale; keep deepseek aliases
Rename the canonical binaries: - `deepseek` → `codewhale` (CLI dispatcher) - `deepseek-tui` → `codewhale-tui` (TUI runtime) Both legacy names continue to ship as tiny deprecation shims that print a one-line warning to stderr and forward argv to the new binary. The shims are produced by two new `[[bin]]` entries in `crates/cli/Cargo.toml` and `crates/tui/Cargo.toml` pointing at small source files under `src/bin/`. They will be removed in v0.9.0. Touchpoints: - Cargo bin entries + new shim source files. - clap `name`/`bin_name`/usage strings flip to `codewhale`. - Dispatcher's sibling-binary discovery looks for `codewhale-tui` and reports `codewhale` in its error/help prose. `DEEPSEEK_TUI_BIN` env var stays — env vars are explicitly anti-scope. - `update.rs` now downloads `codewhale-*` assets and verifies them against `codewhale-artifacts-sha256.txt`. Legacy `deepseek-*` assets and `deepseek-artifacts-sha256.txt` are still produced by the release matrix so v0.8.40's `deepseek update` keeps working through one transition release. - `ci.yml`, `nightly.yml`, `release.yml` updated to build/upload the new canonical binaries; `release.yml`'s matrix doubles to also ship the legacy shim binaries so v0.8.40 update clients land on the shim. - `scripts/release/crates.sh` and `check-versions.sh` updated for the renamed crate names from R1. Local gates green: `cargo check --workspace --all-targets --locked`, `cargo fmt --all -- --check`, `cargo clippy --workspace --all-targets --all-features --locked -- -D warnings`, `cargo test --workspace --all-features --locked` (3226+ pass, 0 fail), and `cargo build --release` produces all four binaries: - target/release/codewhale (canonical dispatcher) - target/release/codewhale-tui (canonical TUI) - target/release/deepseek (legacy shim, forwards to codewhale) - target/release/deepseek-tui (legacy shim, forwards to codewhale-tui) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,8 +6,10 @@
|
||||
# 1. No `crates/*/Cargo.toml` carries a literal `version = "x.y.z"`; every
|
||||
# crate must inherit `version.workspace = true`.
|
||||
# 2. `npm/deepseek-tui/package.json` `version` matches the workspace
|
||||
# `version` in the root `Cargo.toml`.
|
||||
# 3. Internal `deepseek-*` path dependency pins match the workspace version.
|
||||
# `version` in the root `Cargo.toml`. (The npm wrapper directory is
|
||||
# renamed to `npm/codewhale/` in a follow-up phase; this script will
|
||||
# be updated then.)
|
||||
# 3. Internal `codewhale-*` path dependency pins match the workspace version.
|
||||
# 4. The TUI crate's packaged changelog copy matches root `CHANGELOG.md`.
|
||||
# 5. The current release has a dated Keep a Changelog entry and compare link.
|
||||
# 6. README contributor additions are mentioned in the current release entry.
|
||||
@@ -38,11 +40,11 @@ fi
|
||||
|
||||
# 3) Internal path dependency pins.
|
||||
internal_dep_drift="$(
|
||||
grep -nE 'deepseek-[a-z-]+[[:space:]]*=[[:space:]]*\{[^}]*version[[:space:]]*=[[:space:]]*"' crates/*/Cargo.toml \
|
||||
grep -nE 'codewhale-[a-z-]+[[:space:]]*=[[:space:]]*\{[^}]*version[[:space:]]*=[[:space:]]*"' crates/*/Cargo.toml \
|
||||
| grep -v "version[[:space:]]*=[[:space:]]*\"${workspace_version}\"" || true
|
||||
)"
|
||||
if [[ -n "${internal_dep_drift}" ]]; then
|
||||
echo "::error::Internal deepseek-* path dependency versions must match workspace version ${workspace_version}:" >&2
|
||||
echo "::error::Internal codewhale-* path dependency versions must match workspace version ${workspace_version}:" >&2
|
||||
echo "${internal_dep_drift}" >&2
|
||||
fail=1
|
||||
fi
|
||||
@@ -125,7 +127,7 @@ fi
|
||||
|
||||
# 8) Cargo.lock in sync.
|
||||
if ! cargo metadata --locked --format-version 1 --no-deps >/dev/null 2>&1; then
|
||||
echo "::error::Cargo.lock is out of sync with the manifests. Run 'cargo update -p deepseek-tui' or 'cargo build' and commit the result." >&2
|
||||
echo "::error::Cargo.lock is out of sync with the manifests. Run 'cargo update -p codewhale-tui' or 'cargo build' and commit the result." >&2
|
||||
fail=1
|
||||
fi
|
||||
|
||||
|
||||
+15
-15
@@ -1,19 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Crates published for each DeepSeek TUI release, in dependency order.
|
||||
# Crates published for each codewhale release, in dependency order.
|
||||
release_crates=(
|
||||
deepseek-secrets
|
||||
deepseek-config
|
||||
deepseek-protocol
|
||||
deepseek-state
|
||||
deepseek-agent
|
||||
deepseek-execpolicy
|
||||
deepseek-hooks
|
||||
deepseek-mcp
|
||||
deepseek-tools
|
||||
deepseek-core
|
||||
deepseek-app-server
|
||||
deepseek-tui-core
|
||||
deepseek-tui-cli
|
||||
deepseek-tui
|
||||
codewhale-secrets
|
||||
codewhale-config
|
||||
codewhale-protocol
|
||||
codewhale-state
|
||||
codewhale-agent
|
||||
codewhale-execpolicy
|
||||
codewhale-hooks
|
||||
codewhale-mcp
|
||||
codewhale-tools
|
||||
codewhale-core
|
||||
codewhale-app-server
|
||||
codewhale-tui-core
|
||||
codewhale-cli
|
||||
codewhale-tui
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user