Ruby Core

现在是关注 Ruby 开发的绝佳时机。随着近年来 Ruby 受到的关注度不断提高,对优秀人才的需求也在增长,以帮助增强 Ruby 并记录其各个部分。那么,您从哪里开始呢?

这里涵盖的与 Ruby 开发相关的主题包括:

使用 Git 跟踪 Ruby 开发

当前最新的 Ruby 源代码主要存储库是 git.ruby-lang.org/ruby.git。GitHub 上还有一个 镜像。通常情况下,请使用此镜像。

您可以使用 Git 获取最新的 Ruby 源代码。在命令行中执行:

$ git clone https://github.com/ruby/ruby.git

现在,ruby 目录将包含 Ruby 的开发版本(ruby-trunk)的最新源代码。

另请参阅 非提交者加入我们开发的 HOWTO

如果您拥有提交权限,并且希望推送内容,则应使用主要存储库。

$ git clone git@git.ruby-lang.org:ruby.git

逐个补丁地改进 Ruby

核心团队维护着一个 问题跟踪系统,用于向 Matz 和团队提交补丁和错误报告。这些报告也会提交到 Ruby-Core 邮件列表进行讨论,因此您可以确信您的请求不会被忽视。您也可以直接将补丁发送到邮件列表。无论哪种方式,都鼓励您参与随之而来的讨论。

请仔细阅读 补丁编写指南,其中包含 Matz 直接提供的一些关于如何让您的补丁获得考虑的技巧。

总结一下,构建补丁的步骤是:

  1. 从 GitHub 检出 Ruby 源代码副本。通常,针对 bug 修复或新功能的补丁应提交到 Ruby 源代码的 trunk 分支。

    $ git clone https://github.com/ruby/ruby.git
    

    如果您正在修复仅限于某个维护分支的 bug,请检出相应分支的副本。

    $ git checkout ruby_X_X
    

    X_X 应替换为您想要检出的版本。

  2. 向代码添加您的改进。

  3. 创建补丁。

    $ git diff > ruby-changes.patch
    
  4. 问题跟踪系统中创建一个工单,或将您的补丁通过电子邮件发送到 Ruby-Core 邮件列表,并附带一个描述补丁的 ChangeLog 条目。

  5. 如果没有关于该补丁的问题,提交者将获得应用它的批准。

请注意:补丁应以 统一 diff 格式提交。有关补丁如何合并的更多信息,请参阅 diffutils 参考

关于 Ruby 开发的讨论汇集在 Ruby-Core 邮件列表。因此,如果您对您的补丁是否值得提交感到好奇,或者您想引发关于 Ruby 未来发展的讨论,请随时加入。请注意,该列表不容忍离题讨论,噪音水平应非常低,主题应明确、构思周全且书写良好。由于我们要面对 Ruby 的创造者,请保持一定的敬意。

请记住,Ruby 的许多核心开发人员居住在日本,虽然许多人英语说得很好,但存在显著的时区差异。他们也有大量的日语开发邮件列表与英语对应。请耐心等待,如果您的诉求没有得到解决,请坚持不懈——几天后再尝试一次。

关于分支的说明

Ruby 的源代码直到 2019 年 4 月 22 日为止一直托管在 Subversion 仓库中。因此,某些分支可能仍由 Subversion 管理。您可以查看 SVN 仓库。

但是,您不必关心这一点(除非您是分支维护者)。您可以在您的 Git 工作副本中检出这些分支。例如,运行以下命令。

$ git checkout ruby_X_X

X_X 应替换为您想要检出的版本。

如果您想修改分支,请在我们 问题跟踪系统中创建一个工单。另请参阅以下部分。