Files
dbtool-cli-v1/USABLE_RELEASE_GATE.md
Paperclip CTO d5f69462b0
Some checks failed
release-smoke / macos-13 / x86_64-apple-darwin (push) Has been cancelled
release-smoke / ubuntu-latest / x86_64-unknown-linux-gnu (push) Has been cancelled
release-smoke / windows-latest / x86_64-pc-windows-msvc (push) Has been cancelled
feat(usable): integrate current dbtool implementation snapshot
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-02 08:26:18 +00:00

110 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# dbtool-usable-v1 发布门槛结论
## 当前快照
- 日期2026-03-31
- QA 结论:`no-go`
- 判断类型evidence-based gate
## 当前 gate 判断
### 已满足
- CLI / SQLite 主路径与关键 failure-path 具备 2026-03-28 最新直接执行证据
- CLI / PostgreSQL happy path 具备宿主机证据
- CLI / MySQL happy path 与 Unicode/export 具备宿主机证据
- TUI shell baseline 具备 2026-03-28 最新直接执行证据
- TUI / `sqlite-local` local live 已有局部真实工作流证据,但只能记为 `partial`
- TUI / PostgreSQL live demo path 已具备 2026-03-31 当前 runner 直接执行证据
- TUI / MySQL live demo path 已具备 2026-03-31 当前 runner 直接执行证据
- TUI / Linux release binary 已具备 2026-03-31 当前 runner 直接执行证据(`target/release/dbtool-tui` + TTY smoke
- Linux artifact smoke 具备 2026-03-28 直接执行证据
### 未满足
- TUI packaged-binary / checksum / unpacked smoke 与跨平台 release runner 证据仍未闭环,尚不足以宣布长期可持续使用体验完成
- TUI packaged artifact / checksum / unpacked smoke 仍缺真实证据
- GitHub macOS / Windows release runner 仍缺真实执行日志
- 发布追溯性在线上 artifact 维度仍缺 binary path、commit SHA / branch 留档
## PostgreSQL / MySQL failure-path 收口规则
- 在发起宿主机或 sidecar live 执行前,先跑 `scripts/qa/test-failure-path-fixtures.sh`,必要时再缩小到 `format` / `sidecar` 子范围。
- 只有当 `HOST_FAILURE_PATH_CHECKLIST.md` / `FAILURE_PATH_EVIDENCE_TEMPLATE.md` 定义的 6 个场景至少各有一条可审计记录时failure-path blocker 才能从 `未满足` 移除。
- 每条记录都必须带 UTC 时间、操作者、宿主机、binary path、`--version`、commit SHA、branch、完整命令、退出码、关键输出摘要。
- 若任一场景的 `status` / `state` / `error.kind` 偏离模板预期,应先按 defect 管理,而不是直接宣称 failure-path 已补齐。
## Blocker 分类
### 产品 blocker
- TUI 已不再停留在纯 shell 演示;当前 runner 已直接通过 PostgreSQL / MySQL demo live happy path。
- 但单条 happy path 还不能等价为“可持续使用”:当前 runner 已补齐失败连接、空 schema、PostgreSQL restricted schema、空结果 / 错误结果与结果浏览稳定性证据;剩余 `no-go` 原因已切换为 artifact / CI / traceability 证据不足。
- usable-v1 还无法以单一产品口径声明“技术操作者可在终端中持续完成跨库任务”。
### 环境 / 证据 blocker
- 当前 QA runner 已有 `docker` daemon但缺 `docker compose`
- 当前 QA runner 可直接复跑源码测试,并已通过 `host.docker.internal:55432/53306` 完成 TUI live smoke但标准 `docker compose` runbook 仍无法原样复跑
- 当前 QA runner 不能直接访问 `127.0.0.1:55432/53306`;当前有效入口是 `host.docker.internal` + TTY smoke 脚本
- 当前 PostgreSQL demo / TUI `reporting-postgres` profile 已可通过 non-superuser `dbtool` + restricted probe 形成真实 gate 证据schema-level restricted 不再是当前 gate blocker
- 当前仓库仍没有 `dbtool-tui` 的 package script / workflow matrix故 Linux release binary 直证不能替代 packaged artifact gate
- 缺 GitHub macOS / Windows runner 实跑证据
- 缺 release artifact / packaged binary 的执行追溯性字段
## 最新复验
- 2026-03-28 最新 sidecar 复跑已确认 PostgreSQL auth / network / bad-SQL 与 MySQL auth / network / file-based bad-SQL 全部满足 failure-path 模板预期。
- [CMP-53](/CMP/issues/CMP-53) 已被当前 release binary 复验为修复完成,不再计为活跃 backend blocker。
- 2026-03-31 当前 runner 已直接执行 `scripts/tui/live-network-smoke.sh postgres ./target/debug/dbtool-tui``scripts/tui/live-network-smoke.sh mysql ./target/debug/dbtool-tui`两条路径都完成连接激活、schema 加载、查询成功与 CSV 导出。
- 2026-03-31 当前 runner 已直接复验 `/tmp/cmp64-role-probe-v4.json``/tmp/cmp64-postgres-root-inspect-v4.json``/tmp/cmp64-postgres-restricted-schema-inspect-v4.stderr.txt``/tmp/cmp64-postgres-restricted-query-v4.stderr.txt``/tmp/cmp64-tui-restricted-live-v6.log`;证据显示 `dbtool` 为 non-superuser、CLI inspect/query 返回预期 restricted error且 TUI 直接显示 `restricted_probe``Schema failure``Query execution blocked because schema restricted_probe is restricted...`
- 2026-03-31 当前 runner 已直接执行 `CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse cargo build --release -p dbtool-tui``scripts/tui/smoke-tty.sh target/release/dbtool-tui 40 120 /tmp/cmp60-dbtool-tui-release-smoke.log``target/release/dbtool-tui` 的 SHA256 为 `b02ab9be82ebc683c61cf193945a123a66ff181eb386607e95d3335bed84f339`
- 当前 `no-go` 判断继续成立,但原因已收敛为 TUI live 覆盖深度不足、跨平台 release 证据缺口与 release traceability 缺口,而不是“缺少 TUI network live path”或活跃的 CLI backend contract defect。
## 通过规则
- 只有当 CLI、TUI、release evidence 三条线都形成可审计闭环时usable-v1 才能从 `no-go` 转为 `go`
- 只补文档、不补执行证据,仍是 `no-go`
- 只证明 CLI 可用、TUI 仍停留在演示态,仍是 `no-go`
## 结论模板
后续发布判断应至少包含以下字段:
```md
# dbtool-usable-v1 Release Gate
- Date:
- Reviewer:
- Verdict: `go` | `no-go`
- Evidence Window:
- Binary / Artifact:
- Commit SHA / Branch:
## Product Gates
- CLI / SQLite:
- CLI / PostgreSQL:
- CLI / MySQL:
- TUI / shell baseline:
- TUI / network live:
## Release Gates
- Linux runner:
- macOS runner:
- Windows runner:
- Artifact smoke:
- Traceability:
## Blocking Items
- Product blockers:
- Evidence blockers:
## Notes
- Residual risks:
- Follow-up issues:
```