文件
ParlzPackageManger/CHANGELOG/0.6.0.md
T
JGZYES 2d7fcab70f feat(err): 结构化错误码系统 — 每个报错带错误码与解决办法
- 新增 src/pmm_err.h: 稳定错误码枚举 PMM_E_* (USAGE/NOT_FOUND/DOWNLOAD/
  NETWORK/NO_MIRROR/REGISTRY/CHECKSUM/EXTRACT/CONFLICT/NO_TAR/NO_ROOT/CACHE/LANG/INTERNAL)
- out.c: 新增 pmm_error_c(code,hint,fmt,...) 统一输出 [PMM]:[E<code>]: msg (hint: hint)
- 所有高频报错点(main/pdm/install/json/ppdm)接入错误码+hint
- 杜绝空 [PMM]:[ERROR]: (空消息兜底) 与裸 msg.xxx key (i18n 互补内置包回退)
2026-09-06 17:54:55 +08:00

28 行
1.6 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# PMM v0.6.0
## 新增
- **错误码系统(结构化报错)**:新增 `pmm_err.h` 定义稳定的错误码枚举
`PMM_E_*``PMM_E_USAGE=1``PMM_E_NOT_FOUND=2``PMM_E_DOWNLOAD=3`
`PMM_E_NETWORK=4``PMM_E_NO_MIRROR=5``PMM_E_REGISTRY=6``PMM_E_CHECKSUM=7`
`PMM_E_EXTRACT=8``PMM_E_CONFLICT=9``PMM_E_NO_TAR=10``PMM_E_NO_ROOT=11`
`PMM_E_CACHE=12``PMM_E_LANG=13``PMM_E_INTERNAL=99`),每个报错都可以被
脚本 / 工具 / 用户可靠识别。
- **`pmm_error_c(code, hint, fmt, ...)`**:统一输出
`[PMM]:[E<code>]: <消息> (hint: <解决办法>)`,每条错误都带**回答**(怎么修)。
- **高频报错点全部接入错误码**`main.c` / `pdm.c` / `install.c` / `json.c` /
`ppdm.c` 的用法、找不到、下载失败、校验和、解包、冲突、缺镜像、缺 tar、
权限、缓存、语言包等报错统一走 `pmm_error_c`
## 修复
- **杜绝裸/空报错**
- `pmm_error` 在消息为空时不再输出 `[PMM]:[ERROR]:`(兜底为 `(no message)`)。
- `pmm_tr` 增加“互补内置包回退”:中文内置表是英文全表的子集,缺键时再回退到
英文内置表,任何 `msg.xxx` 键都不会裸显示原始 key。
- 报错格式统一为 `[PMM]:[E<code>]: 消息 (hint: 提示)`,颜色仅在有 TTY 时包裹,
日志/管道下输出纯文本,方便机器解析。
## 说明
- 兼容性:错误码在 0.6.0 起稳定;旧脚本若匹配 `[PMM]:[ERROR]:` 前缀,建议改用
`[PMM]:[E<NN>]:``<NN>` 为两位数字错误码)。
- `ppdm` 仍为独立版本 `0.0.1`,本次同步接入错误码格式。