当前位置:主页 > 翻译软件 >

【译】如何为开源软件做出贡献

如果你和我一样,希望为开源软件做出贡献,又不敢将第一个 pull request 发送至其他团队的代码仓库。

在本文中,我将与大家分享我第一次使用一个主流开源项目的经历。我希望,这将有助于消除使用另一个团队代码工作所带来的恐慌的情绪,并向您展示在更大的社区中工作是多么酷的一件事。

在本文中,我想专门和大家聊聊关于一个 Microsoft’s .NET 文档项目 的 pull request。文中所提到的工作流程、工具和示例是该团队,以及参与维护该项目团队特有的,但是广泛的概念应该会适用于你遇到的许多项目。

寻找一个要贡献的项目

毋庸置疑,为了做出贡献,您需要选择一个想要贡献的项目。

上周末,当我得知我已被.NET基金会录取。这对于一个微软死忠粉(从2001年开始就是.NET粉丝)来说是一件大事,这让我想要找到一种方式,来为任何与.NET相关的任何事情做出更多贡献。

碰巧,我在Twitter上发现了一个帖子,激起了我的兴趣:

image-11

我决定采纳他们的建议,并查阅.NET文档项目。毕竟,写技术问题对我来说只是一件小事。

选择你的第一个优秀的 Issue

一旦你选择好了一个存储库,你需要找到一种开始的方式。

有时候,你会对一些需要改变的问题有强烈的的看法。其他时候,你可能只是希望帮助团队解决一个炙手可热的 issue。

如果您试图贡献一些特定的内容,您可以跳过本节的大部分内容,转而实际使用代码。也就是说,如果您所做的不是修复一个输入错误或让示例代码正确编译,那么您确实应该在他们的存储库中为您将要进行的工作创建一个 issue。这可以确保您的工作是需要的,并且存储库所有者可以在您为这个主题花时间之前对其实现进行评论。

如果您不知道要处理什么,请转到存储库的 Issue 选项卡,查看所有可用的标记(tags)。想要查看当前开放的问题,并具有“良好的第一个问题”、“可供获取”或应用于这些问题的类似标记。

微软的文档团队已经对他们积压的所有内容进行了彻底的审查和评论,对于我来说,找到可用的问题简直易如反掌。

image-12

现在,您需要找到一个问题,它不仅看起来像是您感兴趣的工作内容,而且对新接触存储库的人来说很容易完成。

在我的例子中,我选择了对c#和VB . net中的INotifyPropertyChanged示例的改进。原有的代码很好,但是 .NET 随着时间的推移而发展,并且随着它的发展,出现了更好的实现方式。这是我在自己擅长的领域分享最佳实践的机会,所以我抓住了这个机会。

理解 Issue

当你发现一个现存的问题时,你需要仔细和彻底地阅读它的描述以及它历史上的每一条评论。存储库所有者和问题创建者可能在某种程度上已经加入进来,出于对他们代码的尊重,您应该了解问题及其解决方式的意图和关注点。

在我的例子中,.NET 文档团队非常典型,他们已经彻底审查并讨论了这个问题,我仍然有一些非常有用的意见可供参考。

image-13

我还发表了一篇评论,声明了我在这个问题上的工作意图以及我打算做出的改变。在一定程度上是为了看看团队是否会将问题重新分配给我,或者让我重新当成另一个问题来处理,但是没有得到回复。

image-14

Fork 和 Clone 代码仓库

虽然您可以在本地 Clone 存储库而无需 Fork ,但是除非您首先 Fork 了存储库,否则您将无法发出 pull request。

值得庆幸的是,Forking 十分简单。只需要点击 GitHub 上的“Fork”按钮,它就会引导你创建一个该存储库的副本。

image-15

存储库 Fork 之后,按照 GitHub 的提示将 Fork 的存储库克隆到您的机器上。

image-16

GitKraken 是我非常喜欢的一个 Git 客户端,所以我复制了这个 URL 并使用这个 URL 从 GitKraken 克隆了出来,你也可以选择更适合你的方式,比如命令行或者其他的应用程序。