快捷方式 | 说明 |
---|---|
Scala 贡献者 | 深入了解 Scala 编译器的内部结构。 |
报告问题 | 提交错误报告或功能请求。 |
社区问题 | 着手解决一些易于解决的问题。 |
Scala 2 黑客指南 | 学习编写良好代码并提高为 Scala 贡献做出贡献的机会。 |
Scala 3 贡献指南 | 逐步指导为 Scala 3 编译器做出贡献,并提供编译器内部结构指南。 |
为什么要为 Scala 贡献补丁?
仅列举一些常见原因
- 贡献补丁是确保所需更改在下一个 Scala 版本中可用的最佳方式
- Scala 是用 Scala 编写的,因此遍历源代码并对其进行修补将提高您对 Scala 的了解。
- 最后但并非最不重要的一点是,只需提交几次即可进入 Scala 贡献者名人堂。
Scala 主要项目包括标准 Scala 库、Scala 反射和宏库、Scala 编译器和 Scaladoc 工具。这意味着在决定做什么时有很多选择。通常,scaladoc 工具为新提交者提供了较低的进入点,因此它是做出贡献的第一步。
在 Scala 缺陷跟踪器 中,您将找到可以解决的缺陷。一旦您决定查看某个工单,请参阅下一步了解如何进一步进行。
如果您有兴趣贡献代码,我们会要求您签署 Scala 贡献者许可协议,这使我们能够确保提交给项目的全部代码不受版权或专利约束。
错误修复清单
最初,这些步骤涵盖 Scala 2 编译器,但它们也与 Scala 3 编译器 相关。
这是针对 Scala 项目提交错误修复请求的步骤,供急不可耐的开发者使用。有关步骤的更多信息、描述和理由,请点击该步骤中的链接。针对你所要发布的 Scala 版本的进一步具体说明,请参阅 GitHub 分支 的 CONTRIBUTING.md
文件
- 从 GitHub 中选择一个错误进行修复,或者如果你自己发现了错误并想要修复它,创建 GitHub 问题(但请 确保它不是重复项)。
- 可选(但推荐),在 Scala Contributors 上宣布你打算修复错误。毕竟,难道你不希望与 这些友好的人 一起工作吗?这是做出贡献的好处之一。
- 分叉 Scala 存储库并克隆你的分叉(如果你尚未这样做)。
- 创建功能分支进行处理:使用分支名称
issue/NNNN
,其中 NNNN 是 GitHub 问题编号。 - 修复错误或实现新的小型功能,包括新测试(是的,也包括错误修复)。
- 测试、冲洗和 再测试,直到 所有测试通过。
- 提交你的更改到你的分叉中的功能分支。请根据 Scala 项目 README 的 Git 卫生部分选择你的提交消息。
- 如果需要,重写 git 历史,以便 提交按修复/功能的主要步骤组织。对于错误修复,请求单次提交,对于功能,可能需要多次提交(但每个单独的提交都必须编译并通过所有测试)
- 提交请求.
- 与审阅者合作,将你的请求合并。
- 庆祝!
需要更多信息或对第一个问题需要更多帮助?我们为你提供保障:通读整个 黑客指南(或 等效的 Scala 3 贡献指南)以了解实现新功能的示例(某些步骤可以跳过错误修复,这从阅读中可以明显看出,但此处许多步骤也有助于错误修复)。
较大的更改,新功能
对于更大、更具野心的更改(例如,新的语言特性),进行更改的第一步是与整个社区进行讨论,以确保每个人都同意这个想法和实施计划。在 Scala 贡献者 邮件列表上宣布更改并获得开发人员的反馈。对于非常复杂的更改,可能需要 Scala 改进流程 (SIP) 文档,但第一步始终是在邮件列表上进行讨论,如果需要 SIP,将在邮件列表上进行讨论。
无论贡献是大是小、简单还是复杂、有争议还是没有争议,都需要作为针对 Scala 项目源代码树的补丁来实现。黑客指南(Scala 2 或 Scala 3)将解释如何将你的想法具体化为针对 Scala 代码库的全面拉取请求。