如何贡献
本页面介绍了如何为 VirtualBox 贡献。如果您只是想了解如何下载和运行 VirtualBox,请参阅终端用户文档页面。如果您想首先了解如何获取 VirtualBox 源代码并进行构建,请查看技术文档。
您可以通过多种方式为 VirtualBox 贡献力量。即使您不是程序员,也可以在文档方面提供帮助,或参与设计工作,或者定期试用测试版本(这些版本预计与正常发布版本一样可靠),并向我们报告您遇到的以前不存在的任何问题。
另一方面,如果您了解如何使用 C++ 编程,我们非常欢迎您贡献各种代码。作为开始,我们建议您浏览我们的贡献建议列表,或查看过去的贡献。
允许 Oracle 整合您的贡献
尽管 VirtualBox 的源代码是根据 GPL 许可给您的,但仅根据 GPL 提交您的补丁是不够的。许可常见问题将向您详细介绍 Oracle 如何处理 VirtualBox 许可。
无论如何,如果您希望贡献任何受版权保护的内容(文本、媒体或代码),Oracle 必须在法律上确定他们可以将您贡献的代码再分发给已购买 VirtualBox 闭源版本的客户。因此,为了能够接受您的贡献,我们必须要求您做以下两件事之一:
- 填写贡献者协议 (CA) 并发送给 Oracle。通过 CA,您授予 Oracle 权限,使其可以在 VirtualBox 主许可之外的其他许可下使用您的贡献。这是一次性事件:一旦我们收到您的 CA,我们将永远不会再要求您经历任何繁琐的程序,并且所有未来的贡献都将涵盖在内。
- 如果您不想签署此类协议,您可以选择在UPL 许可下提交您的贡献,或者如果没有其他选择,则在MIT 许可下提交。两者都是宽松、广泛的开源许可,允许 Oracle(以及任何其他人)在开源和闭源项目中使用您的贡献。
基本上,这两种选择的主要区别在于:对于 CA,需要书面声明,但随后只有 Oracle 被允许重新许可您的代码(除非您授予其他人相同的权限)。对于 UPL 或 MIT 许可,您可以省去文书工作,但其他人也可以使用您的代码。这是您的选择。
VirtualBox 开发模型
VirtualBox 的源代码位于托管在本站的公共 Subversion 存储库中。目前,只有 Oracle 员工拥有写入权限,以确保只有经过审查和测试的补丁才能进入存储库。但是,随着时间的推移,我们希望扩大拥有写入权限的人群。
补丁总是首先应用于 Oracle 的内部存储库,然后自动同步到公共存储库。Oracle 设施内的大型测试实验室和 24/7 运行的专业测试团队确保代码质量保持卓越:数十台测试机器执行自动化测试,以发现回归并监控性能。
每当 VirtualBox 源代码发生更改时,所有支持平台上的自动化构建服务器都会创建可运行的 VirtualBox 安装程序。这些开发构建为终端用户提供了最新功能,但可能未经充分测试或不够稳定。
除了开发构建之外,我们还会根据里程碑计划进行定期产品发布。由于我们努力生产高质量的软件版本,所有 VirtualBox 贡献者都必须尊重这些里程碑。
如何提交您的贡献
如果您为 VirtualBox 开发了一个补丁,并且您认为它对其他人有用且符合产品架构,那么您应该提交它以供收录。第一步,您应该按照上述说明签署贡献者协议,这是一个非常简单且无风险的过程。然后,您应该将您的补丁连同其功能描述一起提交到 vbox-dev 邮件列表或 Developers Corner 论坛(参见“社区”页面)。如果您尚未签署 CA,请明确说明您根据MIT 许可许可此补丁。
请记住,审查和集成您的补丁可能需要一些时间。此外,请期待其他开发人员就如何改进您的补丁和解决潜在问题提供反馈。只有当您的补丁不损害产品稳定性时,我们才能将其整合。