我想修复一个错误。我从哪里开始?


47

尽管我不是专业程序员,但是我编写了一个或两个程序。但是,如今,每个工程师和科学家都学会了编程,因此我习惯于用Python,C和MATLAB编写程序。现在,我想回馈给Ubuntu及其伟大的人们,并修复一个bug!

我看了一下“咬伤”运动的清单,不得不发现它们中的大多数对我来说都不那么容易修复,因为我怀疑它们需要很多时间来解决这个问题,而我却没有。仍然我发现了这个,它看起来很容易管理,对我来说就像一个很酷的功能。

由于我之前从未写过补丁或发布过程序,所以我不知道从哪里开始。解决该问题的第一步应该是什么?

底线:我在哪里以及如何开始固定那个家伙?


1
你的背景是什么?您是否熟悉版本控制系统?在包装实践中?
pygabriel 2011年

不,还不熟悉!随时可能更改...
Ingo

Answers:


31

回答这个问题可能会变得漫长而复杂,因此我将向您指出可用资源,而不是在此处重新散布它们。

文献资料

  1. 为Ubuntu开发进行设置
  2. 如何修复错误

讲解

我们在整个周期中都运行活动来帮助像您这样的人,特别是我们在IRC中运行Ubuntu开发者周,这是一个实时教程和“问答”研讨会。如果您想参加的话,二月底就要来了!

这是上一届会议的两个日志,可让您有所了解:

寻找机会的地方

  • 收获 -此工具遍历Launchpad中的所有补丁和软件包(甚至在其他发行版中查找)以查找补丁。其中许多可以被捕获,应用,测试,然后在Ubuntu中修复,然后发送到上游。
  • Cleansweep-位于启动板中的某人已附加到错误报告的补丁列表。这些可能有用或没有用,但是仍然应该加以研究。

获得帮助

联系邮件列表或IRC上的MOTU是获得有关遇到的单个问题的帮助的好方法:

反馈

我们已经花费了很多时间来尽可能地简化本文档,如果您要记下您的经验以及我们如何改进这些内容,那么了解如何减少像这样的人的吸收非常有用。您。


19

Jorge的通用答案是跳入Ubuntu开发的绝佳入门,但是让我们尝试进一步了解您的特定问题...

Apport的主要上游开发人员和Ubuntu维护人员是一模一样的。这为您简化了一些事情。无需学习打包和补丁系统,这里最简单的方法是直接在上游代码上工作。

Apport的开发托管在Launchpad上。它使用集市分布式版本控制系统来管理其源代码。修复错误的第一步是获取源代码。如果您以前从未使用过集市,那么五分钟集市教程将是一个不错的起点。

通过以下方式安装集市:

sudo apt-get install bzr

拉apport的源代码:

bzr branch lp:apport

现在您可以开始黑客攻击了。与大多数VCS一样,在使用集市时,最好每次提交仅进行一次更改。您还应该使提交消息具有信息性。它使您的更改更容易检查。准备好进行第一次提交时,请运行:

bzr commit -m "My commit message. Did foo to bar in order to achieve baz."

继续进行更改并提交,直到您对错误已修复感到满意为止。在最后一次提交时,还可以通过附加--fixes lp:<bug_number>到commit命令将其标记为已修复错误。现在,您可以准备提交更改以供审核和包含。

首先,您需要将其推送到启动板以使其公开可用:

bzr push lp:~<launchpad_username>/apport/<branch_name>

现在可以在以下位置找到您的分支机构:

https://code.launchpad.net/~<launchpad_username>/apport/<branch_name>/

bzr lp-open在分支中运行将在浏览器中打开该位置。

现在我们要提出合并。在该页面上,选择“建议合并”。

提议合并

在下一页上,选择目标分支并概述更改。

描述合并

您现在将有一个有效的合并建议。

积极评论

维护者将审查您的更改。如果合适,它们将被合并并在下一个版本中可用。或者,可以将提案设置为“需要工作”,维护者将与您讨论在合并之前应进行的其他更改。如果发生这种情况,请不要将其视为对工作的任何个人拒绝。初次为新项目做贡献时,通常很少有诸如编码风格之类的事情,您可能并不知道。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.