tp/postmortem/2026-07-28-test-directory-and-license.md
2026-07-28 23:08:25 +08:00

1.4 KiB
Raw Blame History

独立测试目录与许可证边界

决策

所有 ERT 套件、README doctest 与乱序测试运行器统一放在 tests/。基准脚本仍在 仓库根目录因为它是独立的性能工具不属于测试入口。Makefile 同时把源码根目录 和 tests/ 加入加载路径,继续提供原有的 testtest-shuffleddoctestcompile-all 命令。

项目继续采用 GPL-3.0-or-later。仓库根目录保留完整、未经修改的 GPLv3 正文, README 明确标注 SPDX 许可证表达式并链接到该正文。

原因

测试文件与可发布模块混放会模糊安装边界,也让根目录的模块清单难以快速阅读。 按职责集中测试后,发布源码、测试支持代码和性能工具各有明确位置,同时无需新增 测试框架或包装脚本。

许可证不能只依赖源码头部的简写声明;分发仓库需要同时提供完整条款。保留标准 GPLv3 正文并在用户文档中明确 GPL-3.0-or-later,可以让机器识别信息与法律文本 保持一致。

被放弃的方案

  • 只移动 *-tests.el、把 doctest 和乱序运行器留在根目录:测试边界仍然分散。
  • 把基准脚本也移入 tests/:会把性能测量与正确性测试混为一谈。
  • 为新目录增加额外 Elisp 加载器Makefile 已经能直接枚举并加载测试文件,新增 包装层没有净收益。