Repository navigation
plctap v0.5.5
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.5PyPI: https://pypi.org/project/plctap/0.5.5/
Full Changelog: v0.5.4...v0.5.5