贡献指南
怎么提问题、怎么提 PR、提交信息怎么写、依赖的许可证有什么要求。完整版本在源码仓库根目录的 CONTRIBUTING.md。
提问题
| 想做的事 | 去哪里 |
|---|---|
| 报告缺陷 | 源码仓库的 Issue,选「缺陷」模板 |
| 提建议 | Issue,选「建议」模板 |
| 使用上的疑问 | Issue 的「提问」模板,或 Discussions |
| 安全漏洞 | 不要开公开 Issue,按 报告安全问题 私下报告 |
报告缺陷时写上:版本(evstats version 的输出)、部署方式、ClickHouse 与 Redis 版本、复现步骤,以及界面错误提示里的 request_id。
先说清问题,再写代码
- 小修(缺陷、文案、测试):直接提 PR。
- 新功能或改变行为:先开 Issue 说明要解决的问题和打算怎么做,维护者确认后再写代码。
- 改变采集协议、
/api/v1、配置键、表结构的 PR,必须同时改契约文件(evs-aggr/api/、evs-aggr/schema/)、官网对应页面和CHANGELOG.md。 - 用户能感知的变化,同时在官网 更新日志 当月的文件里记一句。
evstats 不接受引入功能开关、授权校验或向作者回传数据的改动。
分支与提交
- 只有一个长期分支
main,随时可发布;从main拉功能分支,提 PR 合回,合并方式是 squash。 - 提交信息用 Conventional Commits:
feat、fix、docs、refactor、test、build、ci、chore,范围写目录或模块,例如feat(stat): 漏斗窗口上限、docs(evs-docs): 补充反代示例。 - 每个提交都要有 DCO 签名:
git commit -s。
PR 的要求
- CI 全绿:
cd evs-test && uv run main.py --case all在本机先跑一遍。 - 改了行为就有测试;改了界面就附浅色、深色两张截图。
- 改了使用方式就改官网对应的页面。
- 至少一位维护者批准。
依赖与许可证
全仓库使用 Apache-2.0。引入新依赖前先核对它的许可证:
- 允许:MIT、BSD、Apache-2.0、ISC、MPL-2.0(仅作依赖)、OFL(字体)。
- 不允许:GPL、AGPL、SSPL,以及没有许可证的代码。
CI 的 license 任务会检查 Go、Node、Java 的新依赖。