欢迎使用有关为 Scala 开源生态系统的所有部分做出贡献的指南!
新手的常见问题解答
如果您正在阅读此页面,无论您的背景如何,我们都欢迎您开始为 Scala 的开源生态系统做出贡献。我们在下面回答了您的一些常见问题
谁可以做出贡献?
开源面向所有人!如果您正在阅读本文,您就已经是一位贡献者...
我为什么要做出贡献?
回馈社区有很多好处...
我如何做出贡献?
从友好的文档到编码错误修复,有很多事情要做...
我应该在哪里做出贡献?
如果您已经在使用 OSS,或者对项目感到好奇,您可以立即开始...
开始的途径
加入最近的开源狂欢
Scala 中心主办开源狂欢,与其他 Scala 活动同地举行。在狂欢中,常规项目维护人员将指导你为项目创建你的第一个贡献。
所以你想改进 Scala 3 编译器…
Scala 3 编译器是一个开源项目。如果你对贡献很感兴趣,但不知道如何开始,Scala 中心运行Scala 编译器学院项目,为项目引入和教育新人。你可以加入常规问题狂欢,观看深入的视频,并阅读贡献指南
加入编译器问题狂欢
一个三周一次的活动,你可以在这里接受编译器的指导。在此处注册参与。
编译器学院视频
Scala 3 编译器内部的深入讲解,旨在帮助你入门。
Scala 3 贡献指南
Scala 3 编译器和修复问题的指南
哪些领域最适合新人?
- 添加新的 linting 选项,有助于强制使用更简洁的代码。
- 提高错误消息的清晰度,以便用户更好地理解出错的原因。
- 向错误消息添加 IDE 快速修复操作,例如 PR scala/scala3#18314。
所以你想编写一个库…
如果您是某个库的维护者,或者正在考虑启动一个新项目,请阅读这些指南
库作者指南
列出了库作者应该设置的所有工具,以发布和记录他们的库。
让项目更具包容性
如何编写欢迎所有人的代码和文档
创建一个欢迎社区
我们的行为准则是一个健康社区的实用协议
二进制兼容性指南
随着时间的推移发展您的库,让用户放心地进行安全升级。
想改进 Scala 本身吗?
Scala 编程语言是一个开源项目,拥有一个非常多元化的社区,来自世界各地的人们贡献他们的工作,每个人都可以从友好的帮助和建议中受益,并亲切地帮助他人。
继续阅读,了解如何加入 Scala 社区并帮助每个人做得更好。
为 Scala 项目做出贡献
我能做什么?这取决于您想做出什么贡献。以下是针对不同贡献领域的入门资源。在尝试做出贡献之前,请阅读所有文档并关注以下主题页面中的所有链接,因为您提出的许多问题都已得到解答。
报告错误
请参阅我们的 错误报告指南,了解如何有效地报告错误。
做出贡献
贡献工作的协调在 Scala Contributors 上进行。
文档
库 API 文档、docs.scala-lang.org 上的新指南以及 scala-lang.org 的帮助。
错误修复
工具、核心库和编译器的问题。此外,您还可以通过报告错误来帮助我们。
代码审查
审查针对 scala/scala、scala/scala3、scala/scala-lang、scala/docs.scala-lang 等的拉取请求。
核心库
更新和扩展核心(及关联)Scala 库的功能。
IDE 和构建工具
使用构建工具、IDE 插件和其他相关项目的功能增强 Scala 工具。
编译器/语言
较大的语言功能和编译器增强,包括语言规范和 SIP。
指南
在做出贡献时,请遵循
- 《Scala 行为准则》
- 《包容性语言指南》
社区工单
所有问题都可以在 Scala 错误跟踪器 或 Scala 3 问题跟踪器 中找到。大多数问题都已贴上标签,以便您更轻松地找到您感兴趣的问题。
工具和库
Scala 生态系统包含许多不同的开源项目,它们有自己的维护者和贡献者社区。帮助其中一个项目是帮助 Scala 的另一种方式。考虑为一个您已经在使用的项目提供帮助。或者,要了解其他项目,请参阅我们社区页面上的 库和工具部分。
Scala 社区构建
Scala 社区构建使 Scala 编译器团队能够针对 Scala 编译器和标准库的开发版本构建和测试 Scala 开源项目的语料库,以便在发布之前发现回归。此构建使用 Lightbend 的 dbuild 工具,该工具利用 sbt。
如果您是开源 Scala 库或工具的维护者(或只是感兴趣的用户),请访问 社区构建文档,了解有关哪些项目适合社区构建以及如何添加项目的指南。
您的问题,已解答
谁可以为开源做出贡献?
- 每个人:无论您的技能或背景如何,非技术性或其他,总有 某种方式 可以为项目做出贡献。
- 社区组织者:社区通常围绕开源项目形成,也许您想帮助社区发展。
- Scala 学习者:如果您处于 Scala 之旅的开始阶段,一旦您对日常 Scala 编程有了基本了解,熟悉开源代码将向您展示新技术,帮助您提高专业知识。
- 有一个很酷的想法?也许您对自己的技能充满信心,并希望回馈社区,启动一个填补完美利基的新项目,或者可能是每个人都不知道他们需要的改变生活的工具。
我为什么要为开源做出贡献?
- 世界建立在 OSS 之上:开源软件 (OSS) 库是核心语言本身骨架上的血肉。它们为绝大多数商业和非商业项目提供支持。
- 变得更加引人注目:做出贡献是增强您的简历的好方法。从社区的角度来看,这也是一件好事:如果您坚持不懈地这样做,随着时间的推移,您会认识到人们,人们也会认识到您。这种网络可以带来各种机会。
- 通过做一些实际的事情来学习:为开源库做出贡献是学习 Scala 的好方法。开源软件中的标准做法是代码审查——这意味着您将获得有关代码的专家反馈。与有能力的人一起学习并获得反馈比自己犯下所有错误并独自找出错误要快得多。
- 享受乐趣并提供帮助:最后,通过贡献,您可以改进自己正在使用的项目。成为维护团队的一员可以带来个人满足感,并且致力于一个创新库可以带来很多乐趣。
无论您的经验水平如何,上述好处都是值得实现的。
如何为开源做出贡献?
- 文档:通常过时、不完整或有错误。如果您看到一种方法可以改进您正在使用的项目的文档,您应该考虑该项目是否接受贡献,在这种情况下,您可以提交拉取请求以包含您的更改。
- 构建社区:所有项目都有用户,用户聚集在一起形成社区。管理和发展社区需要协调和努力。
- 问题最小化:在项目问题跟踪器上发现的许多报告问题很难重现,并且重现涉及大量代码。但是,通常情况下,只需一小部分报告的设置和代码即可重现问题。更多的重现代码意味着维护人员修复问题需要更多工作。您可以通过调查已报告的问题来帮助他们,以尝试使其重现尽可能小。
- 问题重现:一些报告的问题根本没有重现说明!如果维护人员无法重现它,他们将无法修复它。确定使问题显现的确切条件是做出贡献的另一种方式。
- 修复错误:如果您能够重现问题,也许您希望在代码中追踪其来源,甚至尝试构建一个解决方案来防止问题发生。
- 添加功能:有时项目会维护计划或请求的功能列表,您可以帮助将这些想法变为现实。但请注意 - 您只应在核心维护人员已经批准该功能的想法时执行此操作,他们没有义务接受您的添加!
- 随时寻求帮助:在实现或修复功能时,当您感到卡住时,重要的是尽早寻求帮助。即使您的代码不起作用,也不要犹豫提交拉取请求,同时明确表示您需要帮助。有关良好贡献指南的更多信息,您可以在 Seth Tisue 的演讲 中找到,该演讲介绍如何成为一名优秀的贡献者。
- 开源您自己的项目:您有一个正在进行的个人项目吗?您在工作中所做的任何事情是否有足够通用的部分,可以与他人在线分享?开源您的工作是一种为可能也遇到该问题的其他程序员解决问题的方法。如果您有兴趣进行开源,库作者指南 是一个关于如何入门的优秀资源。
如何选择做出贡献的地方?
- 问问自己,我正在使用什么?做出贡献的最佳项目是您自己正在使用的项目。清点您的工作和爱好项目:它们使用了哪些 OSS 库?您是否曾经在其中遇到过错误?或者您是否曾经希望实现某个功能?选择一个错误和一个功能,并致力于修复或实现它。克隆您尝试改进的项目,找出如何编写和运行测试。为您的功能或错误编写一个测试。
- 试用一个很棒的库:Scaladex 是查找新库的好地方。如果您热衷于做出贡献,但没有看到任何有吸引力的机会为已经使用的项目做出贡献,请尝试学习一个新的 Scala 库,将其推向极限,看看它可以在哪里得到改进。为了获得最佳效果,请花大量时间使用该库,以了解哪些重要以及哪些可以改进。
- 留意公告:您可能希望关注 Scala 中心 LinkedIn 和 Twitter,以随时了解可能的贡献机会。例如,Scala 中心每年都会参加 Google Summer of Code 计划,您可以在该计划中获得报酬,在夏季期间从事开源 Scala 项目。