贡献指南¶
这里是完整版;仓库根目录的 CONTRIBUTING.md 是它的英文摘要,两处修改需同步。
从哪里开始¶
- 报告问题或提需求:提交 GitHub issue。安全问题不要公开提交,按漏洞披露政策处理。
- 较大的改动:先开 issue 讨论设计,再写代码。
- 改进文档:修正示例、补充常见问题或澄清行为;工程后续事项见仓库
docs/README.md,提交时同步中英文。
开发循环¶
just build # debug 构建
just test # 通过 cargo nextest 运行 Rust 测试,再运行 Python 测试
just test pvisor-core # 只运行一个包的 Rust 测试
just fmt-check # 格式检查
just lint # clippy 与 ruff
just docs-build # 构建并检查文档站点
平台准备(FUSE/macFUSE、KVM/HVF、OCI runtime)见开发环境与工程说明,测试分工见测试与 semspec。
语义规格的规则¶
产品承诺写成语义规格(semspec),位于 tests/semantics/ 与 reference/cases.md。测试通过不等于人工批准:
- 可以起草新用例、修复实现;
- 不得为了通过而削弱已有的声明、检查或
xfail标注; - 批准用例(
semspec approve)以及编辑REVIEWED.toml、.approved/快照只能由维护者人工完成。
提交 PR¶
- 每个 PR 聚焦一件事,说明行为变化以及你如何验证;
- 运行
just fmt-check、just lint和相关的just test; - 同步更新负责该行为的权威文档页,遵守
docs/README.md的约定:每个主题只有一篇权威页面,其他页面一句话加链接。
贡献内容按 Apache License 2.0 授权。