BUG-005: 模板文件名改为 PinMAP-Template.xlsx / PinList-Template.xlsx BUG-006: 布局改为 Number 外侧 + Name 里侧(v1.5.4 最终版) - 从边界往中心:第1圈=Number,第2圈=Name - 上边角点例外处理,15种网格无冲突 - 18/18 单元测试 + 37/37 集成测试全部通过
2.9 KiB
2.9 KiB
Changelog — v1.5.4
发布日期: 2026-06-09 版本类型: Bug 修复版本
🐛 Bug 修复
BUG-005 【高】模板文件名错误
问题: main.py 中引用的模板文件名(BallList-Template.xlsx 和 BallMAP-Template.xlsx)与用户期望的文件名不匹配。
修复:
- 模板文件重命名:
BallList-Template.xlsx→PinList-Template.xlsx - 模板文件重命名:
BallMAP-Template.xlsx→PinMAP-Template.xlsx - 同步更新
main.py中的函数名和模板引用路径
BUG-006 【高】布局重设计(Number 外侧 + Name 里侧)
问题: PinList→PinMAP→PinList 双向转换中,v1.3 的"紧致布局"导致 Number 与 Name 单元格冲突(6 处),15×15 网格下序号 1 错位到 A2,序号 16 错位到 B16。
根本原因: 旧布局将 Name 放在 Number 向内偏移一行/一列的位置,边角处发生冲突。
修复方案: 重新设计布局为 Number 外侧(第 1 圈)+ Name 里侧(第 2 圈),从网格边界往中心排列:
| 边 | 外侧(第 1 圈) | 内侧(第 2 圈) |
|---|---|---|
| 上边 | Number 在 row 1(最顶行) | Name 在 row 2(第二行;角点例外在 row 1) |
| 左边 | Number 在 col 0(最左列) | Name 在 col 1(第二列) |
| 下边 | Number 在 row rows+3(最底行) | Name 在 row rows+2(倒数第二行) |
| 右边 | Number 在 col cols+1(最右列) | Name 在 col cols(右二列) |
关键设计点:
- 上边角点例外: 最左/最右上边 Name 无法放在 row 2(被左/右边 Name 占用),分别使用
(1, 0)和(1, cols+1)例外单元格 - Pin1 保持在左上角(A3=1, B3=Pin1)
- 不再需要角点
"//"合并 — 每条边不共享任何单元格 - 周长公式
(rows+cols)×2保持不变
验证:
- ✅ 15 种网格大小(4×4, 15×15, 3×5, 2×2, 8×8, 10×12, 20×20, 5×3, 6×7, 2×3, 3×3, 2×4, 3×2, 4×2, 2×5)全部无冲突
- ✅ 18/18 单元测试通过
- ✅ 37/37 集成测试通过
🔧 修改文件
| 文件 | 修改内容 |
|---|---|
Code/src/main.py |
BUG-005: 模板函数和引用改名;BUG-006: 传递 cols 参数 |
Code/src/pinmap_layout.py |
BUG-006: 重写坐标公式 + get_name_cell() 支持 cols 参数 + 角点例外 |
Code/src/pinmap_generator.py |
BUG-006: 传递 cols 参数 + 更新注释 |
Code/src/pinmap_parser.py |
BUG-006: 重写边界检测、Name 读取(角点例外检测) |
Code/src/test_pinmap.py |
BUG-006: 更新测试数据适配新布局 |
Test/fixtures/PinList-Template.xlsx |
BUG-005: 模板文件重命名 |
Test/fixtures/PinMAP-Template.xlsx |
BUG-005: 模板文件重命名 |
📝 文档
- 更新
CHANGELOG.md追加 v1.5.4 版本日志 - 更新
README.md追加 v1.5.4 版本说明 - 生成
Releases/v1.5.4/CHANGELOG.md - 更新
docs/bugs.mdBUG-005、BUG-006 状态为已修复