为 GraalVM 做贡献
GraalVM 是一个 Oracle 开源项目,来自世界各地的人们在其中贡献他们的工作,互相帮助,并使 GraalVM 变得创新。我们感谢过去的大大小小的贡献,并始终欢迎新的合作者!只有庞大的社区才能使这个项目成为强大的语言虚拟化技术。
有两种常见的合作方式
- 通过提交 GitHub 问题 来报告错误,提出问题或请求增强功能。请注意,安全漏洞应报告给 secalert_us@oracle.com。
- 通过创建 GitHub 拉取请求。
如果您考虑仅对文档进行贡献,请查看 此指南。
如果您考虑对 GraalVM 核心进行贡献,请首先学习如何使用 mx
(一个独特的构建工具)从源代码构建 GraalVM 发行版。了解如何设置适当的开发环境,将 GraalVM 项目加载到 IDE 中,并查看可以查看的主要类,以了解编译器在做什么的基本理解。此视频演示了上述内容。
如何成为 GraalVM 贡献者?
以下是有关为 GraalVM 社区版及其项目(托管在 GitHub 上的 Oracle 组织中)做出贡献的一些提示。我们希望贡献者遵守 贡献者契约行为准则。总的来说,有三个阶段
I. 创建拉取请求
如果您认为您的贡献对其他人有价值,请 创建拉取请求(PR)。常见流程是分叉存储库,提交更改并创建 PR。创建 PR 时,请确保包含对更改目的的清晰描述,除非更改是自解释的,例如版本更新。描述为什么(1)需要更改或功能,(2)如何实现,以及可选的(3)可能产生的进一步影响。您可以使用 PR 请求描述字段或提交消息。建议每个 PR 请求只处理一个功能或更改。
您 创建拉取请求 后,Travis CI 服务将对您的更改运行一些完整性检查。请务必解决这些检查发现的任何明显问题(例如格式违规),但请记住,测试失败可能与您的更改无关(由于基础设施问题和瞬时测试失败,没有门是完美的)。
II. 签署 Oracle 贡献者协议
要使您的拉取请求被接受,您需要签署 Oracle 贡献者协议(OCA)。OCA 有两种类型:个人 OCA 和公司 OCA。在线签署它,一旦您的姓名或组织出现在 OCA 签署者列表中,我们将将其添加到用于检查拉取请求作者是否包含在 OCA 中的数据库中。如果您的条目似乎在签署者列表中显示有延迟,请发送电子邮件至 oracle-ca_us@oracle.com。如果您的条目在签署者列表中,但机器人仍然在您的拉取请求中留下了一条消息,表明您尚未签署 OCA,请在拉取请求中留下评论,说明您现在已包含在 OCA 中。机器人从与 OCA 签署者列表分开的数据库中运行(因为后者不一定包含电子邮件详细信息),并且必须手动更新。
III. 审查和合并
一位 Oracle 员工将审查拟议的更改,一旦拉取请求处于可合并状态,将负责将其合并到主分支。为了确保在验证外部贡献的代码是否满足这些要求方面更加尽职,我们有一个入站检查机器人。
提交拉取请求后会发生什么?
从较小的更改(例如错误修复或对 API 文档的改进)到更大的更改(可以加快执行速度或提供对系统的更好控制)等,有许多方向可以探索。
我们期待使用 Truffle 框架 扩展 GraalVM 生态系统,实现对新语言的支持,为多语言编程提供更好的工具,或提出新的嵌入场景。持续的努力将集中在机器学习上,以优化编译器配置。欢迎贡献者加入完全用 Java 编写的完全元循环 Java 运行时的开发。我们继续研究更有效地使用内存的技术,并追求改进不同工作负载的性能。
要联系 GraalVM 开发人员,询问与使用 GraalVM 源代码相关的问题,请订阅并发布到 graalvm-dev@oss.oracle.com。