chore(release): harden deepseek-tui deprecation path
This commit is contained in:
@@ -19,7 +19,6 @@ on:
|
||||
paths:
|
||||
- 'Cargo.toml'
|
||||
- 'npm/codewhale/package.json'
|
||||
- 'npm/deepseek-tui/package.json'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
|
||||
@@ -506,10 +506,11 @@ jobs:
|
||||
body: |
|
||||
> This release renames the project to **CodeWhale**. The legacy
|
||||
> `deepseek` and `deepseek-tui` binaries continue to ship as
|
||||
> deprecation shims for one release cycle; they print a one-line
|
||||
> warning and forward to `codewhale` / `codewhale-tui`. They will
|
||||
> be removed in v0.9.0. See `docs/REBRAND.md` for the full
|
||||
> migration story.
|
||||
> compatibility-only deprecation shims during v0.8.x; they print a
|
||||
> one-line warning and forward to `codewhale` / `codewhale-tui`.
|
||||
> They will be removed in v0.9.0. The legacy npm package
|
||||
> `deepseek-tui` is deprecated and receives no further releases.
|
||||
> See `docs/REBRAND.md` for the full migration story.
|
||||
|
||||
## Install
|
||||
|
||||
@@ -568,7 +569,7 @@ jobs:
|
||||
|
||||
The **portable** Windows archive skips the install script — extract and run from any directory.
|
||||
|
||||
Individual binaries are also attached below for scripting and the npm wrapper. Legacy `deepseek-*` and `deepseek-tui-*` assets ship for one release cycle so that existing `deepseek update` invocations on v0.8.40 keep working; they install the deprecation shims, which forward to the canonical binaries.
|
||||
Individual binaries are also attached below for scripting and the npm wrapper. Legacy `deepseek-*` and `deepseek-tui-*` assets are compatibility-only deprecation shims for v0.8.x so that existing `deepseek update` invocations on v0.8.40 keep working; they forward to the canonical binaries. The legacy npm package `deepseek-tui` is deprecated and is not republished.
|
||||
|
||||
### Verify (recommended)
|
||||
|
||||
|
||||
+5
-4
@@ -9,7 +9,7 @@
|
||||
|
||||
## インストール
|
||||
|
||||
`codewhale` は自己完結型の Rust リリースバイナリのペアとしてインストールされます。`codewhale` はディスパッチャーで、同じ場所にある `codewhale-tui` ランタイムを起動して対話セッションを実行します。npm、Homebrew、Docker は両方を自動でインストールします。Cargo や手動インストールでは、両方を同じディレクトリ(通常は `PATH` 上のディレクトリ)に置いてください。実行に Node.js や Python のランタイムは不要です。
|
||||
`codewhale` は自己完結型の Rust リリースバイナリのペアとしてインストールされます。`codewhale` はディスパッチャーで、同じ場所にある `codewhale-tui` ランタイムを起動して対話セッションを実行します。npm と Docker は両方を自動でインストールします。Cargo や手動インストールでは、両方を同じディレクトリ(通常は `PATH` 上のディレクトリ)に置いてください。実行に Node.js や Python のランタイムは不要です。
|
||||
|
||||
```bash
|
||||
# 1. npm — すでに Node を使っているなら最も簡単。npm パッケージは
|
||||
@@ -21,8 +21,9 @@ npm install -g codewhale
|
||||
cargo install codewhale-cli --locked # `codewhale` (エントリーポイント)
|
||||
cargo install codewhale-tui --locked # `codewhale-tui` (TUI バイナリ)
|
||||
|
||||
# 3. Homebrew — macOS パッケージマネージャ。
|
||||
# tap/formula 名は旧名のままですが、codewhale と codewhale-tui をインストールします。
|
||||
# 3. Homebrew — 旧インストールとの互換用です。
|
||||
# tap/formula はまだ旧 deepseek-tui 名を使っています。新規インストールでは、
|
||||
# formula が改名されるまで npm、Cargo、Docker、直接ダウンロードを優先してください。
|
||||
brew tap Hmbown/deepseek-tui
|
||||
brew install deepseek-tui
|
||||
|
||||
@@ -48,7 +49,7 @@ docker run --rm -it \
|
||||
```bash
|
||||
codewhale update
|
||||
npm install -g codewhale@latest
|
||||
brew update && brew upgrade deepseek-tui
|
||||
brew update && brew upgrade deepseek-tui # 旧 Homebrew インストールのみ
|
||||
cargo install codewhale-cli --locked --force
|
||||
cargo install codewhale-tui --locked --force
|
||||
```
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
|
||||
`codewhale` installs as a matched pair of self-contained Rust release binaries:
|
||||
the `codewhale` dispatcher command and the sibling `codewhale-tui` runtime it
|
||||
launches for interactive sessions. npm, Homebrew, and Docker install both for
|
||||
you; Cargo and manual installs must put both binaries in the same directory
|
||||
launches for interactive sessions. npm and Docker install both for you; Cargo
|
||||
and manual installs must put both binaries in the same directory
|
||||
(normally a directory on your `PATH`). The npm package is only an
|
||||
installer/wrapper for those release binaries; the agent does not run on Node.
|
||||
|
||||
@@ -27,8 +27,9 @@ npm install -g codewhale
|
||||
cargo install codewhale-cli --locked # `codewhale` (entry point)
|
||||
cargo install codewhale-tui --locked # `codewhale-tui` (TUI binary)
|
||||
|
||||
# 3. Homebrew — macOS package manager.
|
||||
# The tap/formula name is legacy; it installs codewhale and codewhale-tui.
|
||||
# 3. Homebrew — legacy compatibility only.
|
||||
# The tap/formula still uses the old deepseek-tui name. Prefer npm, Cargo,
|
||||
# Docker, or direct downloads for new installs until the formula is renamed.
|
||||
brew tap Hmbown/deepseek-tui
|
||||
brew install deepseek-tui
|
||||
|
||||
@@ -61,7 +62,7 @@ Already installed? Use the updater that matches the install path:
|
||||
```bash
|
||||
codewhale update # release-binary updater
|
||||
npm install -g codewhale@latest # npm wrapper
|
||||
brew update && brew upgrade deepseek-tui
|
||||
brew update && brew upgrade deepseek-tui # legacy Homebrew installs only
|
||||
cargo install codewhale-cli --locked --force
|
||||
cargo install codewhale-tui --locked --force
|
||||
```
|
||||
|
||||
+5
-4
@@ -9,7 +9,7 @@
|
||||
## Cài đặt
|
||||
|
||||
`codewhale` được cài đặt dưới dạng một cặp binary tự chạy bằng Rust đồng bộ với nhau:
|
||||
Lệnh điều phối `codewhale` (dispatcher) và môi trường chạy giao diện `codewhale-tui` (runtime) do nó khởi chạy để thực hiện các phiên làm việc tương tác. Các trình quản lý gói như npm, Homebrew, và Docker sẽ tự động cài đặt cả hai cho bạn; đối với Cargo hoặc cài đặt thủ công, bạn phải đặt cả hai tệp binary này trong cùng một thư mục (thông thường là một thư mục nằm trong biến môi trường `PATH` của bạn). Gói npm chỉ là một trình cài đặt/bao bọc (wrapper) cho các tệp binary phát hành này; agent không chạy trên môi trường Node.js.
|
||||
Lệnh điều phối `codewhale` (dispatcher) và môi trường chạy giao diện `codewhale-tui` (runtime) do nó khởi chạy để thực hiện các phiên làm việc tương tác. npm và Docker sẽ tự động cài đặt cả hai cho bạn; đối với Cargo hoặc cài đặt thủ công, bạn phải đặt cả hai tệp binary này trong cùng một thư mục (thông thường là một thư mục nằm trong biến môi trường `PATH` của bạn). Gói npm chỉ là một trình cài đặt/bao bọc (wrapper) cho các tệp binary phát hành này; agent không chạy trên môi trường Node.js.
|
||||
|
||||
```bash
|
||||
# 1. npm — dễ nhất nếu bạn đã cài đặt Node. Gói này sẽ tự động tải các
|
||||
@@ -22,8 +22,9 @@ npm install -g codewhale
|
||||
cargo install codewhale-cli --locked # cài đặt `codewhale` (điểm truy cập CLI chính)
|
||||
cargo install codewhale-tui --locked # cài đặt `codewhale-tui` (giao diện TUI)
|
||||
|
||||
# 3. Homebrew — trình quản lý gói dành cho macOS.
|
||||
# Tên tap/formula là tên cũ (legacy); nó sẽ cài đặt cả codewhale và codewhale-tui.
|
||||
# 3. Homebrew — chỉ dành cho khả năng tương thích với cài đặt cũ.
|
||||
# Tap/formula vẫn dùng tên deepseek-tui cũ. Với cài đặt mới, hãy ưu tiên
|
||||
# npm, Cargo, Docker hoặc tải trực tiếp cho đến khi formula được đổi tên.
|
||||
brew tap Hmbown/deepseek-tui
|
||||
brew install deepseek-tui
|
||||
|
||||
@@ -56,7 +57,7 @@ docker run --rm -it \
|
||||
```bash
|
||||
codewhale update # trình cập nhật binary phát hành trực tiếp
|
||||
npm install -g codewhale@latest # thông qua trình bao bọc npm
|
||||
brew update && brew upgrade deepseek-tui
|
||||
brew update && brew upgrade deepseek-tui # chỉ cho cài đặt Homebrew cũ
|
||||
cargo install codewhale-cli --locked --force
|
||||
cargo install codewhale-tui --locked --force
|
||||
```
|
||||
|
||||
+6
-5
@@ -10,8 +10,8 @@
|
||||
## 安装
|
||||
|
||||
`codewhale` 以一组自包含 Rust 发布二进制安装:`codewhale` 调度器命令,
|
||||
以及它在交互会话中启动的同级 `codewhale-tui` 运行时。npm、Homebrew 和
|
||||
Docker 会自动安装这两个二进制;Cargo 或手动下载时必须把两者放在同一目录
|
||||
以及它在交互会话中启动的同级 `codewhale-tui` 运行时。npm 和 Docker
|
||||
会自动安装这两个二进制;Cargo 或手动下载时必须把两者放在同一目录
|
||||
(通常是 `PATH` 上的某个目录)。运行时不依赖 Node.js 或 Python。
|
||||
|
||||
```bash
|
||||
@@ -24,8 +24,9 @@ npm install -g codewhale
|
||||
cargo install codewhale-cli --locked # `codewhale` 入口
|
||||
cargo install codewhale-tui --locked # `codewhale-tui` TUI 二进制
|
||||
|
||||
# 3. Homebrew —— macOS 包管理器。
|
||||
# tap/formula 名称仍是旧名;实际安装 codewhale 和 codewhale-tui。
|
||||
# 3. Homebrew —— 仅用于旧安装兼容。
|
||||
# tap/formula 仍使用旧的 deepseek-tui 名称。新安装请优先使用
|
||||
# npm、Cargo、Docker 或直接下载,直到 formula 完成改名。
|
||||
brew tap Hmbown/deepseek-tui
|
||||
brew install deepseek-tui
|
||||
|
||||
@@ -57,7 +58,7 @@ docker run --rm -it \
|
||||
```bash
|
||||
codewhale update # release 二进制更新器
|
||||
npm install -g codewhale@latest # npm 包装器
|
||||
brew update && brew upgrade deepseek-tui
|
||||
brew update && brew upgrade deepseek-tui # 仅旧 Homebrew 安装
|
||||
cargo install codewhale-cli --locked --force
|
||||
cargo install codewhale-tui --locked --force
|
||||
```
|
||||
|
||||
+3
-2
@@ -56,8 +56,9 @@ npm install -g codewhale
|
||||
cargo install codewhale-cli --locked
|
||||
cargo install codewhale-tui --locked
|
||||
|
||||
# Homebrew
|
||||
# The tap/formula name is legacy; it installs codewhale and codewhale-tui.
|
||||
# Homebrew, legacy installs only
|
||||
# The tap/formula still uses the old deepseek-tui name. Prefer npm, Cargo,
|
||||
# Docker, or direct downloads for new installs until the formula is renamed.
|
||||
brew tap Hmbown/deepseek-tui
|
||||
brew install deepseek-tui
|
||||
```
|
||||
|
||||
+13
-12
@@ -14,9 +14,9 @@ npm uninstall -g deepseek-tui # or cargo uninstall deepseek-tui-cli deepsee
|
||||
|
||||
# 2. Install under the new name.
|
||||
npm install -g codewhale # or cargo install codewhale-cli codewhale-tui --locked
|
||||
# or brew install deepseek-tui (Homebrew tap still
|
||||
# uses the legacy name during the transition;
|
||||
# it installs the new binaries underneath.)
|
||||
# legacy Homebrew installs may still use
|
||||
# brew install deepseek-tui until the tap
|
||||
# formula is renamed.
|
||||
|
||||
# 3. Run with the new command.
|
||||
codewhale doctor
|
||||
@@ -57,9 +57,10 @@ Anything that targets the DeepSeek provider API stays exactly as it was:
|
||||
and audit log.
|
||||
- **GitHub repository URL**: `https://github.com/Hmbown/CodeWhale`.
|
||||
The old `Hmbown/DeepSeek-TUI` URL redirects there during the transition.
|
||||
- **Homebrew tap and formula** (`Hmbown/homebrew-deepseek-tui`): still
|
||||
installs by the legacy name during the transition. The tap's formula
|
||||
will be flipped to the new names in a follow-up.
|
||||
- **Homebrew tap and formula** (`Hmbown/homebrew-deepseek-tui`): still uses
|
||||
the legacy formula name for existing installs. Treat it as compatibility-only
|
||||
until the tap is renamed; new install docs prefer `codewhale` npm, Cargo,
|
||||
Docker, or direct downloads.
|
||||
- **Docker image**: `ghcr.io/hmbown/codewhale`.
|
||||
|
||||
## Deprecation shims (through v0.8.x)
|
||||
@@ -70,8 +71,8 @@ v0.8.41 and later v0.8.x releases ship **deprecation shims**:
|
||||
- A `deepseek` binary that prints a one-line warning to stderr and forwards
|
||||
argv to `codewhale`.
|
||||
- A `deepseek-tui` binary that does the same for `codewhale-tui`.
|
||||
- An `npm` package at `deepseek-tui@0.8.x` with no `bin` and a postinstall
|
||||
that prints a clear rename notice.
|
||||
- The legacy `deepseek-tui` npm package is deprecated and no longer receives
|
||||
new releases. Install the `codewhale` npm package instead.
|
||||
|
||||
These shims will be removed in **v0.9.0**. Please migrate before then.
|
||||
|
||||
@@ -100,10 +101,10 @@ cargo install --path crates/tui --locked --force
|
||||
|
||||
### Homebrew
|
||||
|
||||
The tap formula still installs `deepseek-tui` during the transition.
|
||||
Existing `brew install deepseek-tui` invocations continue to work and land
|
||||
the new binaries underneath the legacy formula name. The formula and tap
|
||||
repo will follow up with their own rename.
|
||||
The tap formula still installs through the legacy `deepseek-tui` name for
|
||||
existing Homebrew users. Keep using `brew upgrade deepseek-tui` only for that
|
||||
compatibility path. New installs should prefer npm, Cargo, Docker, or direct
|
||||
downloads until the formula and tap repo are renamed.
|
||||
|
||||
### Manual / GitHub Releases
|
||||
|
||||
|
||||
@@ -34,8 +34,8 @@ publish-crates), see [`RELEASE_RUNBOOK.md`](RELEASE_RUNBOOK.md).
|
||||
pins match the new workspace version.
|
||||
- [ ] `npm/codewhale/package.json` `version` AND `codewhaleBinaryVersion`
|
||||
are both bumped.
|
||||
- [ ] `npm/deepseek-tui/package.json` `version` is bumped for the one-release
|
||||
deprecation shim.
|
||||
- [ ] `npm/deepseek-tui/package.json` remains private/compatibility-only and
|
||||
is **not** bumped or published.
|
||||
- [ ] `Cargo.lock` is refreshed (`cargo update --workspace --offline`).
|
||||
- [ ] `./scripts/release/check-versions.sh` reports
|
||||
`Version state OK: workspace=X.Y.Z, npm=X.Y.Z, lockfile in sync.`
|
||||
@@ -95,6 +95,8 @@ Run, in order, from the repo root:
|
||||
```
|
||||
- [ ] `npm view codewhale@X.Y.Z version codewhaleBinaryVersion --json`
|
||||
reports the new version on the npm registry.
|
||||
- [ ] `npm view deepseek-tui deprecated` is non-empty. The legacy npm package
|
||||
is deprecated and must not receive an `X.Y.Z` publish.
|
||||
- [ ] `crates.io` has the new version (or the `publish-crates.sh` job has
|
||||
pushed it).
|
||||
- [ ] `ghcr.io/hmbown/codewhale:vX.Y.Z` and `:latest` are updated.
|
||||
|
||||
@@ -4,8 +4,8 @@ Install and run CodeWhale, the agentic terminal for open-source and open-weight
|
||||
models, from GitHub release artifacts.
|
||||
|
||||
> Previously published as `deepseek-tui`. See `docs/REBRAND.md` in the upstream
|
||||
> repository for the migration notes; the legacy `deepseek-tui` npm package
|
||||
> remains a deprecation shim through the v0.8.x transition.
|
||||
> repository for the migration notes; the legacy `deepseek-tui` npm package is
|
||||
> deprecated and receives no further releases.
|
||||
|
||||
## Install
|
||||
|
||||
|
||||
@@ -7,9 +7,10 @@ npm uninstall -g deepseek-tui
|
||||
npm install -g codewhale
|
||||
```
|
||||
|
||||
`codewhale` ships the same `codewhale` and `codewhale-tui` binaries plus
|
||||
deprecation shims under the old `deepseek` / `deepseek-tui` names so existing
|
||||
scripts keep working through the v0.8.x transition.
|
||||
This legacy npm package is deprecated and receives no further releases.
|
||||
`codewhale` ships the canonical `codewhale` and `codewhale-tui` binaries, plus
|
||||
compatibility-only deprecation shims under the old `deepseek` /
|
||||
`deepseek-tui` binary names for v0.8.x.
|
||||
|
||||
See [docs/REBRAND.md](https://github.com/Hmbown/CodeWhale/blob/main/docs/REBRAND.md)
|
||||
for the full migration story.
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"name": "deepseek-tui",
|
||||
"version": "0.8.49",
|
||||
"description": "Legacy compatibility package. Renamed to `codewhale`; run `npm install -g codewhale` for new installs.",
|
||||
"private": true,
|
||||
"description": "Deprecated legacy package name. Install `codewhale` instead; this package is not republished.",
|
||||
"author": "Hmbown",
|
||||
"license": "MIT",
|
||||
"funding": [
|
||||
@@ -34,9 +35,6 @@
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"files": [
|
||||
"scripts/*.js",
|
||||
"README.md",
|
||||
|
||||
@@ -92,14 +92,22 @@ else
|
||||
fail=1
|
||||
fi
|
||||
|
||||
# Legacy `deepseek-tui` deprecation shim package. Best-effort check —
|
||||
# absence after the transition release is expected and not fatal.
|
||||
# Legacy `deepseek-tui` npm package. It is deprecated and must not be
|
||||
# republished under the release version.
|
||||
if legacy_version="$(npm view "deepseek-tui@${version}" version 2>/dev/null)"; then
|
||||
echo "npm deepseek-tui@${legacy_version} (deprecation shim) is published."
|
||||
echo "npm deepseek-tui@${legacy_version} exists, but the legacy npm package must not be republished." >&2
|
||||
fail=1
|
||||
fi
|
||||
if legacy_deprecated="$(npm view deepseek-tui deprecated 2>/dev/null)" && [[ -n "${legacy_deprecated}" ]]; then
|
||||
echo "npm deepseek-tui is deprecated: ${legacy_deprecated}"
|
||||
else
|
||||
echo "npm deepseek-tui is not marked deprecated." >&2
|
||||
fail=1
|
||||
fi
|
||||
|
||||
crates_user_agent="CodeWhale release check (https://github.com/Hmbown/CodeWhale)"
|
||||
for crate in "${release_crates[@]}"; do
|
||||
if curl -fsSL "https://crates.io/api/v1/crates/${crate}/${version}" >/dev/null 2>&1; then
|
||||
if curl -fsSL -A "${crates_user_agent}" "https://crates.io/api/v1/crates/${crate}/${version}" >/dev/null 2>&1; then
|
||||
echo "crates.io ${crate}@${version} is published."
|
||||
else
|
||||
echo "crates.io ${crate}@${version} is not published." >&2
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
# crate must inherit `version.workspace = true`.
|
||||
# 2. `npm/codewhale/package.json` `version` matches the workspace
|
||||
# `version` in the root `Cargo.toml`. (`npm/deepseek-tui/` still
|
||||
# exists during the transition as a deprecation shim package; its
|
||||
# version is also checked.)
|
||||
# exists only as an unpublished compatibility notice and must stay
|
||||
# private.)
|
||||
# 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.
|
||||
@@ -37,12 +37,15 @@ if [[ "${workspace_version}" != "${npm_version}" ]]; then
|
||||
echo "::error::npm/codewhale/package.json version (${npm_version}) does not match workspace Cargo.toml (${workspace_version})." >&2
|
||||
fail=1
|
||||
fi
|
||||
# Also pin the legacy deprecation shim package to the same workspace version
|
||||
# so a stale `deepseek-tui` doesn't ship pointing at a different release.
|
||||
if [[ -f npm/deepseek-tui/package.json ]]; then
|
||||
legacy_npm_version="$(node -p "require('./npm/deepseek-tui/package.json').version")"
|
||||
if [[ "${workspace_version}" != "${legacy_npm_version}" ]]; then
|
||||
echo "::error::npm/deepseek-tui/package.json version (${legacy_npm_version}) does not match workspace Cargo.toml (${workspace_version})." >&2
|
||||
legacy_private="$(node -p "Boolean(require('./npm/deepseek-tui/package.json').private)")"
|
||||
legacy_publish_config="$(node -p "Boolean(require('./npm/deepseek-tui/package.json').publishConfig)")"
|
||||
if [[ "${legacy_private}" != "true" ]]; then
|
||||
echo "::error::npm/deepseek-tui/package.json must stay private so the legacy package is not republished." >&2
|
||||
fail=1
|
||||
fi
|
||||
if [[ "${legacy_publish_config}" == "true" ]]; then
|
||||
echo "::error::npm/deepseek-tui/package.json must not define publishConfig; the legacy package is deprecated." >&2
|
||||
fail=1
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user