当前位置: 首页>>技术教程>>正文


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

, , ,

问题描述

虽然我不是专业程序员,但我已经写了一两个程序。然而,现在每个工程师和科学家都学会了编程,因此我习惯用Python,C和MATLAB编写程序。现在我想回馈一下Ubuntu及其伟大的人并修复一个错误!

我查看了bitesize广告系列列表,并且必须发现其中大部分对我来说并不容易解决,因为我怀疑他们需要大量时间才能解决这个问题,而我却没有。我仍然发现了this one,它看起来很易于管理,对我来说就像一个很酷的功能。

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

一句话:我在哪里以及如何开始修复那个人?

最佳解决思路

回答这个问题会变得冗长而复杂,所以我会指向你可用的资源,而不是在这里重复它们。

Documentation

  1. Getting Set Up for Ubuntu Development

  2. How to Fix Bugs

Tutorials

我们在整个周期中运行事件来帮助像您一样的人,特别是我们在IRC中运行Ubuntu Developer Week,这是一个实时教程和问答研讨会。如果你想参加,那么2月底会有一个!

以下是过去会话中的两个日志,可以为您提供一个想法:

寻找机会的地方

  • Harvest – 这个工具遍历Launchpad中的所有补丁和包(甚至可以查看其他发行版中的补丁)。其中许多可以被钩住,应用,测试,然后在Ubuntu中修复,然后发送到上游。

  • Cleansweep – 有人附加到错误报告的Launchpad中的补丁列表。这些可能有用或不有用,但仍然应该看一下。

获得帮助

联系邮件列表或IRC上的MOTU是获得遇到的个别问题的好方法:

Feedback

我们花了很多时间重新编写这些文档,尽可能简单,如果你记下你的经验以及我们如何改进这些东西那么知道如何让它对于像您。

次佳解决思路

Jorge的一般性答案是跳入Ubuntu开发的一个很好的介绍,但让我们试着仔细看看你的具体问题……

Apport的主要上游开发人员和Ubuntu维护人员是同一个。这有点简化你的事情。这里最简单的方法是直接在上游代码上工作,而不必学习打包和补丁系统。

Apport的开发托管在Launchpad上。它使用集市分布式版本控制系统来管理其源代码。修复your bug的第一步是获取源。如果您之前没有使用过集市,那么bazaar in five minutes tutorial是一个很好的起点。

安装集市:

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命令来将其标记为修复错误。现在,您已准备好提交更改以供审核和包含。

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

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

您的分行现在可以在以下位置找到:

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

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

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

programming,bug-reporting,contributing,ubuntu

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

programming,bug-reporting,contributing,ubuntu

您现在将拥有一个有效的合并提案。

programming,bug-reporting,contributing,ubuntu

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1612.html,未经允许,请勿转载。