docs(brand): rename to codewhale across READMEs and docs
Sweep brand mentions of `DeepSeek TUI` / `deepseek-tui` / bare `deepseek` (the dispatcher binary) across all user-facing docs to the new `codewhale` brand. The DeepSeek **provider** integration is left untouched throughout: env vars (`DEEPSEEK_*`), model IDs (`deepseek-v4-pro`, `deepseek-v4-flash`, `deepseek-chat`, `deepseek-reasoner`), the `api.deepseek.com` host, the `~/.deepseek/` config dir, and the `--provider deepseek` argument value all keep the legacy spelling. Anti-scope items deliberately left as the legacy `deepseek-tui`: - Homebrew tap and formula (`Hmbown/homebrew-deepseek-tui`, `brew install deepseek-tui`, `scoop install deepseek-tui`). The tap rename ships separately. - Docker image (`ghcr.io/hmbown/deepseek-tui`). Image-tag rename ships separately. - CNB mirror namespace (`cnb.cool/deepseek-tui.com/DeepSeek-TUI`). Third-party hosted path. - Security contact email (`security@deepseek-tui.com`). - GitHub repo URL (`Hmbown/DeepSeek-TUI`). New artifact: - `docs/REBRAND.md` documents what changed, what didn't, the deprecation window, and migration commands for npm / Cargo / Homebrew / manual installs. CHANGELOG entries: - Root `CHANGELOG.md` and `crates/tui/CHANGELOG.md` both gain a new `[Unreleased]` section describing the rename and the one- release deprecation window. Historical entries are untouched. Issue templates: - `.github/ISSUE_TEMPLATE/bug_report.md` and `feature_request.md` refer to "codewhale" / `codewhale --version` instead of the old brand name in their environment fields. The rebrand sweep was driven by a perl script with bulk patterns (`deepseek-tui` -> `codewhale-tui`, `DeepSeek TUI` -> `codewhale`, bare `deepseek` -> `codewhale` with provider/model/host/env-var/ config-path negative lookbehind/lookahead) followed by targeted reverts for the anti-scope items above. Output was visually reviewed file-by-file before committing. Verified: - `cargo check --workspace --all-targets --locked` — pass. - `cargo test --workspace --all-features --locked` — pass (no test source touched here; suite stayed green to confirm no doc-from-string assertions broke). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+54
-54
@@ -1,37 +1,37 @@
|
||||
# DeepSeek TUI Release Runbook
|
||||
# codewhale Release Runbook
|
||||
|
||||
This runbook is the source of truth for shipping Rust crates, GitHub release assets,
|
||||
and the `deepseek-tui` npm wrapper.
|
||||
and the `codewhale-tui` npm wrapper.
|
||||
|
||||
Current packaging note:
|
||||
- `deepseek-tui` is the live runtime and TUI package shipped to users today.
|
||||
- `deepseek-tui-core` is a supporting workspace crate for the extraction/parity effort, not a replacement for the shipping runtime.
|
||||
- `codewhale-tui` is the live runtime and TUI package shipped to users today.
|
||||
- `codewhale-tui-core` is a supporting workspace crate for the extraction/parity effort, not a replacement for the shipping runtime.
|
||||
|
||||
## Canonical Publish Targets
|
||||
|
||||
- End-user crates:
|
||||
- `deepseek-tui`
|
||||
- `deepseek-tui-cli`
|
||||
- `codewhale-tui`
|
||||
- `codewhale-cli`
|
||||
- Supporting crates published from this workspace:
|
||||
- `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-cli` on crates.io is an unrelated crate and is not part of this release flow.
|
||||
- `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` on crates.io is an unrelated crate and is not part of this release flow.
|
||||
|
||||
## Version Coordination
|
||||
|
||||
- Rust crates inherit the shared workspace version from [Cargo.toml](../Cargo.toml).
|
||||
- Internal path dependency versions should match the shared workspace version; stale older pins are release blockers once the workspace version moves.
|
||||
- The npm wrapper version lives in [npm/deepseek-tui/package.json](../npm/deepseek-tui/package.json).
|
||||
- The npm wrapper version lives in [npm/codewhale-tui/package.json](../npm/codewhale-tui/package.json).
|
||||
- `deepseekBinaryVersion` controls which GitHub release binaries the npm wrapper downloads.
|
||||
- Packaging-only npm releases are allowed:
|
||||
- bump the npm package version
|
||||
@@ -48,13 +48,13 @@ cargo fmt --all -- --check
|
||||
cargo check --workspace --all-targets --locked
|
||||
cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
|
||||
cargo test --workspace --all-features --locked
|
||||
cargo publish --dry-run --locked --allow-dirty -p deepseek-tui
|
||||
cargo publish --dry-run --locked --allow-dirty -p codewhale-tui
|
||||
./scripts/release/publish-crates.sh dry-run
|
||||
```
|
||||
|
||||
`check-versions.sh` also runs in CI on every push/PR (the `versions` job in
|
||||
`.github/workflows/ci.yml`), so drift between `Cargo.toml`, the per-crate
|
||||
manifests, `npm/deepseek-tui/package.json`, and `Cargo.lock` is caught before
|
||||
manifests, `npm/codewhale-tui/package.json`, and `Cargo.lock` is caught before
|
||||
release time rather than at it.
|
||||
|
||||
`publish-crates.sh dry-run` performs a full `cargo publish --dry-run` for crates
|
||||
@@ -65,11 +65,11 @@ new workspace version while still validating package contents before publish.
|
||||
For npm wrapper verification, build the two shipped binaries and run the
|
||||
cross-platform smoke harness. This packs the npm wrapper, installs it into a
|
||||
clean temporary project, serves local release assets over HTTP, and checks both
|
||||
the dispatcher-to-TUI path (`deepseek doctor --help`) and the direct TUI
|
||||
entrypoint (`deepseek-tui --help`).
|
||||
the dispatcher-to-TUI path (`codewhale doctor --help`) and the direct TUI
|
||||
entrypoint (`codewhale-tui --help`).
|
||||
|
||||
```bash
|
||||
cargo build --release --locked -p deepseek-tui-cli -p deepseek-tui
|
||||
cargo build --release --locked -p codewhale-cli -p codewhale-tui
|
||||
node scripts/release/npm-wrapper-smoke.js
|
||||
```
|
||||
|
||||
@@ -81,7 +81,7 @@ directory with a full asset matrix fixture before starting the server:
|
||||
|
||||
```bash
|
||||
DEEPSEEK_TUI_PREPARE_ALL_ASSETS=1 node scripts/release/prepare-local-release-assets.js
|
||||
cd npm/deepseek-tui
|
||||
cd npm/codewhale-tui
|
||||
DEEPSEEK_TUI_VERSION=X.Y.Z DEEPSEEK_TUI_RELEASE_BASE_URL=http://127.0.0.1:8123/ npm run release:check
|
||||
```
|
||||
|
||||
@@ -96,8 +96,8 @@ After publishing, prove the release is visible in both registries:
|
||||
./scripts/release/check-published.sh X.Y.Z
|
||||
```
|
||||
|
||||
Do not mark a Rust release complete until that command sees `deepseek-tui@X.Y.Z`
|
||||
on npm and every `deepseek-*` crate at `X.Y.Z` on crates.io. For a rare
|
||||
Do not mark a Rust release complete until that command sees `codewhale-tui@X.Y.Z`
|
||||
on npm and every `codewhale-*` crate at `X.Y.Z` on crates.io. For a rare
|
||||
npm packaging-only release, run with `--allow-npm-binary-mismatch` and keep the
|
||||
release notes explicit that no new Rust binary version shipped.
|
||||
|
||||
@@ -115,20 +115,20 @@ configured.
|
||||
`main` and letting `auto-tag.yml` create the tag — see the npm wrapper
|
||||
release section below for the `RELEASE_TAG_PAT` requirement).
|
||||
4. Publish crates in this order with `./scripts/release/publish-crates.sh publish`:
|
||||
- `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`
|
||||
5. Wait for each published crate version to appear on crates.io before publishing dependents.
|
||||
|
||||
The publish helper is idempotent for reruns: already-published crate versions are skipped.
|
||||
@@ -137,16 +137,16 @@ The publish helper is idempotent for reruns: already-published crate versions ar
|
||||
|
||||
`.github/workflows/release.yml` builds these binaries:
|
||||
|
||||
- `deepseek-linux-x64`
|
||||
- `deepseek-macos-x64`
|
||||
- `deepseek-macos-arm64`
|
||||
- `deepseek-windows-x64.exe`
|
||||
- `deepseek-tui-linux-x64`
|
||||
- `deepseek-tui-macos-x64`
|
||||
- `deepseek-tui-macos-arm64`
|
||||
- `deepseek-tui-windows-x64.exe`
|
||||
- `codewhale-linux-x64`
|
||||
- `codewhale-macos-x64`
|
||||
- `codewhale-macos-arm64`
|
||||
- `codewhale-windows-x64.exe`
|
||||
- `codewhale-tui-linux-x64`
|
||||
- `codewhale-tui-macos-x64`
|
||||
- `codewhale-tui-macos-arm64`
|
||||
- `codewhale-tui-windows-x64.exe`
|
||||
|
||||
The release job also uploads `deepseek-artifacts-sha256.txt`. The npm installer and
|
||||
The release job also uploads `codewhale-artifacts-sha256.txt`. The npm installer and
|
||||
release verification script both depend on that checksum manifest.
|
||||
|
||||
## npm Wrapper Release
|
||||
@@ -159,14 +159,14 @@ on a workstation with `npm login` and an authenticator app.
|
||||
|
||||
### Steps
|
||||
|
||||
1. Set the npm package version in [npm/deepseek-tui/package.json](../npm/deepseek-tui/package.json) to match the workspace `Cargo.toml`. CI's version-drift guard will catch mismatches before tag.
|
||||
1. Set the npm package version in [npm/codewhale-tui/package.json](../npm/codewhale-tui/package.json) to match the workspace `Cargo.toml`. CI's version-drift guard will catch mismatches before tag.
|
||||
2. Set `deepseekBinaryVersion` to the GitHub release tag that should supply binaries.
|
||||
3. Push the version bump to `main`. `auto-tag.yml` creates the matching `vX.Y.Z` tag, and `release.yml` builds the binary matrix and drafts the GitHub Release.
|
||||
4. **Wait for the GitHub Release to finalize** with all eight signed binaries plus `deepseek-artifacts-sha256.txt`. The npm `prepublishOnly` hook (`scripts/verify-release-assets.js`) requires every asset to be present.
|
||||
4. **Wait for the GitHub Release to finalize** with all eight signed binaries plus `codewhale-artifacts-sha256.txt`. The npm `prepublishOnly` hook (`scripts/verify-release-assets.js`) requires every asset to be present.
|
||||
5. From a developer machine, publish the npm wrapper manually:
|
||||
|
||||
```bash
|
||||
cd npm/deepseek-tui
|
||||
cd npm/codewhale-tui
|
||||
npm publish --access public
|
||||
# (you will be prompted for the npm OTP from your authenticator)
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user