Skip to content

plctap v0.5.5

Choose a tag to compare

@ymxc152 ymxc152 released this 07 Sep 13:07
· 27 commits to main since this release

S7 写审计回归修复 —— 真实测试台架发现

修复 (D5 红线)

  • s7 write 漏调 on_frame → 写操作完全绕过审计日志: 补审计回调并对齐 modbus / fins / melsec 语义
  • 冒烟回归: s7 写连接失败也必须留痕
  • 防复发条款入册 docs/ADD_PROTOCOL.md: 新适配器的 write 必须在请求帧构建后、任何网络动作前调用 on_frame(request.hex())

为什么全量测试没抓到 —— 验收方法学固化

全量 pytest 只测过 modbus 写审计路径, s7 缺陷漏网; 由发布 wheel 真实台架验收抓出:
起 4 仿真器 (modbus 5020 / s7 1020 / melsec 6000 / fins 9600) → uv run --with plctap==X.Y.Z 用 PyPI wheel 走 fastmcp Client 完整 MCP 工具链 → 第三方权威客户端交叉读回 → 审计逐帧核对 (s7 适配器 on_frame 引用计数为 0 暴露)。
台架验收 21/21。

发布流程升级

  • publish.yml 加 guard-main 闸门: tag 所指 commit 必须在 main 历史内, 分支 tag 拒绝发布 (v0.5.3 曾以旧版 workflow 绕过)

质量

510 项单测 (全量 520 passed 0 skipped); 评测八档 49/49; 官方 Registry 0.4.0→0.5.5 六条记录全 active。

安装

uvx plctap    # 或: pip install plctap==0.5.5

PyPI: https://pypi.org/project/plctap/0.5.5/

Full Changelog: v0.5.4...v0.5.5