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

前段时间参加了2020年1月11日Node party线下分享,justjavac 大佬分享的主题就是:《如何融入并贡献开源》,感触颇多。今天又看到一篇讲关于如何参与开源的文章,就想翻译下,与大家分享~


以下正文:

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


寻找一个要贡献的项目

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

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

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

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

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


理解 Issue

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

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


Fork 和 Clone 代码仓库

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

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

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


理解团队的工作流程

下一步将根据项目和团队的不同而有所不同。首先,您需要确定应该基于哪个分支进行更改。接下来,您需要了解团队是否选择并专门化了 Git 工作流以及其分支的命名约定。

值得庆幸的是,在大多数存储库中你都不需要感到疑惑,因为 区已经规范了对于 contributing.md 和 readme.md 文件的创建, 它将指导您如何开始使用存储库,包括分支结构和 Git 工作流。

如果没有相关的文档就要小心了,因为团队可能不欢迎新的贡献者。

在我的例子中,.NET 文档团队提供了一个非常有用的贡献指南,但是您可能不知道。您可能需要通过查看过去的提交来推断事情,以确定模式,甚至亲自联系存储库所有者。

您不太可能与像Microsoft文档团队这样优秀的团队一起工作(如果您这样做,我相信他们会很乐意听到他们可以改进的地方)。

即使有了这些有用的指导,你仍需要以你自己的方式来理解项目结构。而 contributing.md 可能有助于理解某些文件夹,通常我在项目中的第一步就是打开文件夹和子文件夹,直到我开始看到重复的组织模式。

因此,对于每个问题,我查找了 how-to-implement-property-change-notifications.md,并查看了markdown文件中包含要更新的代码示例的部分。

令人惊讶的是:

左侧的分支和存储库代表要合并到的目标分支和存储库。这个存储库应该是项目的主存储库,分支通常与您的所在分支相同。右边的分支和存储库将是您刚才使用的

forked 存储库及其分支。

现在您已经设定了目标,接下来按照团队的约定为您的请求命名。在我的示例中,我将提交的描述性标题和问题编 放在括 中。

团队还使用模板自动填充 pull request 主体的内容,我使用 markdown 语法编写了一个详细的更改列表。

我所做的更改在那一天内就生效了,这意味着在我 fork 他们的存储库、进行更改,以及对这些更改进行审查、批准和部署到生产环境之间甚至没有24小时。

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

好文!必须点赞

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月26日
下一篇 2020年1月26日

相关推荐