[译] 为 Django Framework 贡献你的力量并没有想象中的那么难

综合编程 2018-02-05

当我们准备开始编码并开源的时候,总感觉无从下手。我知道,给一个精彩绝伦的代码库贡献代码的这个想法听起来是有一点吓人的。不过幸运的是,只要你愿意,很多这样的开源库会为你提供大显身手的空间。他们同样会给予我们所需要的支持。听起来很不错吧?

你知道那个著名的 python 框架吗?Django!他们的网站上有一个部分叫Easy Pickings。假如你准备开始参与开源工作并为一个精彩的代码库做贡献,这就是为你而准备的!

在这篇博客中,我将逐步向你展示如何通过修复 Django easy pick 问题来为开源代码库做贡献的,通过这几个简单的步骤你也可以做到。接下来我将通过修复一个缺陷来从头到尾讲解这个过程,跟我来!

发现/定位一个 bug

首先你要做的是访问 Django 的Easy pickings部分。在那里你可以找到易于修复 ticket 和小 bug。每天都会有新的 ticket。找到没有分配给任何人的 ticket。如下图所示:


本文中我选择的是bug ticket #26026 并把它分配给我自己,接下来我们要深入的了解这个问题。在下图中,我只是显示了 ticket 的头部。请记得阅读完整的 ticket。


正如我之前所说,我已经解决了这个 bug。所以当我把这个 bug 分配给我自己,bug 将被关闭,并有一些相关的 PR。因此当你选择一个 bug 时,千万不要忘记把它分配给自己。这是为了防止其他人重复选择这个 bug。你需要在 Django 的网站上登录,在 ticket 页面的顶部有链接。

如果你打开 ticket 页面,你可能会看到一些关于如何解决问题的意见和方案。通常这些对你都是很有帮助的。

好了!我们现在已经找到并理解了一个公开的 ticket 是什么样子的。

开始编码

第一步先 fork Django repo 仓库。第二步,编写你的代码,并按照建议的风格进行提交Django's guidelines。可以参考一下我的提交: [1.9.x] Fixed #26026 -- Checked if the QuerySet is empty 。最后发起 pull request。

让我们来看一下我的 pull request 并检查一下我的代码。可以看到我用了包含 ticket 的链接来注释这个 PR。



简单吧,你觉得呢?这是我的解决方案,只有一行代码。但是看了下面的答案我发现:


额... 问题的原因是我对错误的 Django 版本进行了 pull request。而且我忘记了写我的修复测试。让我们来解决这个问题!

这是我的第二次 PR,针对 master 对我已经编写的代码进行测试。请注意我的提交名称已经变了(和我的 PR 名称一致)。



完成!我的 PR 已经被合并和关闭。我已经为了不起的 Django 库做出了我的贡献!


更多来自Vinta

稀土掘金

责编内容来自:稀土掘金 (本文源链)。感谢您的支持!

您可能感兴趣的

My django administration page does not have the cs... I just finished to serve my pages on the internet through apache. I can see my webpage nicely, but w...
How Sendwithus Sent Their First Billion Emails Editor's note: ByBrad Van Vugt, ‎Cofounder atSendwithus What is Sendwithus? Sendwithus is a p...
Download a remote image and save it in a Django te... I am writing a Django app which will fetch all images of particular URL and save them in the databas...
Django: Fixing race condition when queuing with on... This has been explained in Celery docs . And we bumped into this issue after rolling out dja...
Django 入门案例开发(下)——创建项目应用及模型类... 前面两章是在已经开发好的项目上用来描述环境和业务,这一章创建一个全新的项目来用作开发,你可以跟着我的步骤进行开发,如果有不理解的地方可以给我留言。 今天的任务是创建好项目和用户(users)应用及让...