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

29 lines
1.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 独立测试目录与许可证边界
## 决策
所有 ERT 套件、README doctest 与乱序测试运行器统一放在 `tests/`。基准脚本仍在
仓库根目录因为它是独立的性能工具不属于测试入口。Makefile 同时把源码根目录
`tests/` 加入加载路径,继续提供原有的 `test`、`test-shuffled`、`doctest` 与
`compile-all` 命令。
项目继续采用 `GPL-3.0-or-later`。仓库根目录保留完整、未经修改的 GPLv3 正文,
README 明确标注 SPDX 许可证表达式并链接到该正文。
## 原因
测试文件与可发布模块混放会模糊安装边界,也让根目录的模块清单难以快速阅读。
按职责集中测试后,发布源码、测试支持代码和性能工具各有明确位置,同时无需新增
测试框架或包装脚本。
许可证不能只依赖源码头部的简写声明;分发仓库需要同时提供完整条款。保留标准
GPLv3 正文并在用户文档中明确 `GPL-3.0-or-later`,可以让机器识别信息与法律文本
保持一致。
## 被放弃的方案
- 只移动 `*-tests.el`、把 doctest 和乱序运行器留在根目录:测试边界仍然分散。
- 把基准脚本也移入 `tests/`:会把性能测量与正确性测试混为一谈。
- 为新目录增加额外 Elisp 加载器Makefile 已经能直接枚举并加载测试文件,新增
包装层没有净收益。