文件
JGZYES 4091c6791a release: PMM v0.6.0 + ppdm v0.0.2 — 站点版本/文档/CI 版本提升
- pmm 0.6.0: 结构化错误码(见前), 站点 PMM_VERSION + install.sh 版本 + 文档版本
- ppdm 0.0.2: 新增 list/del 命令(客户端) + web/ppdm/list.php/del.php 后端
- CI: ppdm 构建版本 0.0.1 -> 0.0.2
- docs: ppdm.md 加 list/del, download/install 文档 0.5.6 -> 0.6.0
- CHANGELOG 0.6.0 增 ppdm 0.0.2 全量发布说明
2026-09-06 18:01:41 +08:00

2.1 KiB

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 v0.0.2

  • 新增 ppdm list:列出当前账号已发布的包(name@version os/arch + url)。
  • 新增 ppdm del <pkg> [version]:删除自己已发布的包,可只删某个版本。
  • 后端新增 web/ppdm/list.phpweb/ppdm/del.php(按 owner 鉴权,他人包拒绝)。
  • ppdm 0.0.2 全量发布:像 pmm 一样打 .pdm 进镜像(dists/+files/), 可用 pmm install ppdm 安装;install-ppdm.sh 与 GitHub Release 资产同时更新。
  • ppdm 版本从 0.0.1 升到 0.0.2(独立于 PMM 0.6.0)。