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

35 行
2.1 KiB
Markdown

此文件含有模棱两可的 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 v0.0.2
- **新增 `ppdm list`**:列出当前账号已发布的包(`name@version os/arch + url`)。
- **新增 `ppdm del <pkg> [version]`**:删除自己已发布的包,可只删某个版本。
- **后端新增 `web/ppdm/list.php``web/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)。