Skip to content

v1.0.1 — Hotfix(description + argparse JSON 化)🔧

Latest

Choose a tag to compare

@Tianbuyu-wwx Tianbuyu-wwx released this 03 Sep 05:32
60498e3

v1.0.1 — Hotfix(description + argparse JSON 化)🔧

发布日期:2026-08-31 · npm @tianbuyu-wwx/dsh-formatforge@1.0.1 (latest) · 测试 569 passed / 0 fail
主题:v1.0.0 发布后实测发现的小问题 + argparse UX 改进。

修复内容

1. description 字符串修正(npm 搜索结果一致性)

v1.0.0 npm 包 description 字段仍含 'v0.14.0' 字符串(被遗漏),影响 npm 搜索结果显示的版本号。

修法:description 字符串 v0.14.0 → v1.0.0。

2. argparse 错误 JSON 化(v0.14.1 候选 #1

之前 argparse 错误(未知子命令、无效参数值)走 stderr + exit 2 —— 破坏"stdout 是唯一协议出口"约定

dsh 调用方需要 redirect stderr 才能区分"协议输出"和"argparse 错误",体验差。

修法main()parser.parse_args() 时临时替换 sys.stderr_SilentStream(不写入),让 argparse usage 静默;SystemExit 时走 _fail("internal", ...) 输出协议 JSON 到 stdout。

实测

  • formatforge nonexistent → stdout JSON {ok:false, error.kind:internal}, stderr 静默, exit 70 ✓
  • formatforge formats --category bad → stdout JSON, stderr 静默, exit 70 ✓
  • formatforge --help → stdout 正常 usage, exit 0 ✓(不触发 error 路径)

3. 测试修正

  • 新增 TestArgparseJsonOutput(2 测试)
  • test_category_invalid:旧断言依赖 argparse stderr 文本输出

升级

npm install @tianbuyu-wwx/dsh-formatforge@latest

API 完全向后兼容(无破坏性改动)。

测试

  • 569 passed / 0 fail(v1.0.0 567 → v1.0.1 569,+2)
  • ruff ✓ / format ✓ / mypy ✓
  • CI 7/7 全绿

文件变更

  • packages/dsh-formatforge/package.json(description 修正)
  • formatforge/__main__.py(argparse JSON 化)
  • test/unit/test_cli_protocol.py(新增 2 测试 + 修 1 测试)

完整变更见 CHANGELOG.md