为 Scala 的 OSS 生态系统做出贡献

贡献指南

语言
快捷方式 说明
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 文件

  1. 从 GitHub 中选择一个错误进行修复,或者如果你自己发现了错误并想要修复它,创建 GitHub 问题(但请 确保它不是重复项)。
  2. 可选(但推荐),在 Scala Contributors 上宣布你打算修复错误。毕竟,难道你不希望与 这些友好的人 一起工作吗?这是做出贡献的好处之一。
  3. 分叉 Scala 存储库并克隆你的分叉(如果你尚未这样做)。
  4. 创建功能分支进行处理:使用分支名称 issue/NNNN,其中 NNNN 是 GitHub 问题编号。
  5. 修复错误或实现新的小型功能,包括新测试(是的,也包括错误修复)。
  6. 测试、冲洗再测试,直到 所有测试通过
  7. 提交你的更改到你的分叉中的功能分支。请根据 Scala 项目 README 的 Git 卫生部分选择你的提交消息。
  8. 如果需要,重写 git 历史,以便 提交按修复/功能的主要步骤组织。对于错误修复,请求单次提交,对于功能,可能需要多次提交(但每个单独的提交都必须编译并通过所有测试)
  9. 提交请求.
  10. 与审阅者合作将你的请求合并
  11. 庆祝!

需要更多信息或对第一个问题需要更多帮助?我们为你提供保障:通读整个 黑客指南(或 等效的 Scala 3 贡献指南)以了解实现新功能的示例(某些步骤可以跳过错误修复,这从阅读中可以明显看出,但此处许多步骤也有助于错误修复)。

较大的更改,新功能

对于更大、更具野心的更改(例如,新的语言特性),进行更改的第一步是与整个社区进行讨论,以确保每个人都同意这个想法和实施计划。在 Scala 贡献者 邮件列表上宣布更改并获得开发人员的反馈。对于非常复杂的更改,可能需要 Scala 改进流程 (SIP) 文档,但第一步始终是在邮件列表上进行讨论,如果需要 SIP,将在邮件列表上进行讨论。

无论贡献是大是小、简单还是复杂、有争议还是没有争议,都需要作为针对 Scala 项目源代码树的补丁来实现。黑客指南(Scala 2Scala 3)将解释如何将你的想法具体化为针对 Scala 代码库的全面拉取请求。

本页的贡献者