文件
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

1.6 KiB
原始文件 Blame 文件历史

PMM v0.6.0

新增

  • 错误码系统(结构化报错):新增 pmm_err.h 定义稳定的错误码枚举 PMM_E_*PMM_E_USAGE=1PMM_E_NOT_FOUND=2PMM_E_DOWNLOAD=3PMM_E_NETWORK=4PMM_E_NO_MIRROR=5PMM_E_REGISTRY=6PMM_E_CHECKSUM=7PMM_E_EXTRACT=8PMM_E_CONFLICT=9PMM_E_NO_TAR=10PMM_E_NO_ROOT=11PMM_E_CACHE=12PMM_E_LANG=13PMM_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,本次同步接入错误码格式。