web-dev-qa-db-ja.com

バグを修正したい。どこから始めますか?

私はプロのプログラマーではありませんが、1つか2つのプログラムを書いています。しかし、今日では、すべてのエンジニアと科学者が少しプログラミングを習得しているため、Python、C、MATLABでプログラムを書くことに慣れています。今、私はUbuntuとその偉大な人々に少し返し、バグを修正したいです!

私はバイトサイズキャンペーンのリストを見て、問題に取り組むのに多くの時間が必要だと思うので、それらのほとんどは修正するのがそれほど簡単ではないことを見つけなければなりませんでした、そして私はそれを持っていません。それでも私は this one を発見し、それは管理しやすく、私にとってクールな機能のように見えます。

しかし、以前にパッチを書いたりプログラムを公開したことは一度もないので、どこから始めればいいのかわかりません。その問題に取り組むための最初のステップは何ですか?

一番下の行:どこでどのようにその人を修正し始めますか?

47
Ingo

この質問への回答は長く複雑になる可能性があるため、代わりにここでリソースを再ハッシュするのではなく、利用可能なリソースを示します。

ドキュメンテーション

  1. buntu開発用のセットアップ
  2. バグの修正方法

チュートリアル

サイクル全体を通してイベントを実行し、あなたのような人々を支援します。具体的には、IRCで buntu Developer Week を実行します。これは、ライブチュートリアルおよび質疑応答ワークショップです。参加したい場合は、2月末に予定されています。

以下に、過去のセッションの2つのログを示します。

機会を見つける場所

  • Harvest -このツールは、Launchpadのすべてのパッチとパッケージを調べます(さらに、他のディストリビューションを調べます)。これらの多くは、Ubuntuでひっかかり、適用、テスト、修正してからアップストリームに送信できます。
  • Cleansweep -誰かがバグレポートに添付したLaunchpadにあるパッチのリスト。これらは役に立つかもしれないし、そうではないかもしれませんが、まだ見なければなりません。

ヘルプを得る

メーリングリストまたはIRCのMOTUに連絡することは、発生した個々の問題のヘルプを得るための良い方法です。

フィードバック

私たちはこのドキュメントをできる限り簡単にするために多くの時間を費やしました。あなたがあなたの経験とこのものを改善する方法についてメモを取るなら、それが好きな人のためにそれを減らす方法を知ることは非常に有用です君は。

31
Jorge Castro

Jorgeの一般的な答えは、Ubuntu開発に飛び込むための優れた入門書ですが、特定の問題についてもう少し詳しく見てみましょう...

Apportのメインアップストリーム開発者とUbuntuメンテナーはまったく同じです。これにより、物事が少し簡単になります。パッケージングとパッチシステムについて学ぶ必要はなく、ここで最も簡単な方法は、アップストリームコードで直接作業することです。

Apportの開発は Launchpad でホストされています。 Bazaar分散バージョン管理システムを使用して、ソースコードを管理します。 バグ を修正するための最初のステップは、ソースを取得することです。 Bazaarを使用したことがない場合は、 5分間のBazaarチュートリアル を開始するのに適した場所です。

Bazaarのインストール:

Sudo apt-get install bzr

Apportのソースコードを取得します。

bzr branch lp:apport

これで、ハッキングを開始できます。ほとんどのVCSと同様に、Bazaarを使用する場合、コミットごとに1つの変更のみを行うことをお勧めします。また、コミットメッセージを参考にしてください。変更を確認しやすくなります。最初のコミットを行う準備ができたら、次を実行します。

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を実行すると、ブラウザでその場所が開きます。

次に、マージを提案します。そのページで、「マージの提案」を選択します。

propose for merging

次のページで、ターゲットブランチを選択し、変更の概要を示します。

describe merge

これで、アクティブなマージプロポーザルが作成されます。

active review

メンテナーはあなたの変更をレビューします。適切な場合、それらはマージされ、次のリリースで使用可能になります。または、提案を「Needs Work」に設定し、メンテナーがマージ前に行う必要がある追加の変更について話し合います。これが発生した場合、あなたの仕事に対するいかなる種類の個人的な拒絶としても受け取らないでください。初めて新しいプロジェクトに貢献するとき、コーディングスタイルなど、気づかないかもしれない小さなものがしばしばあります。

19
andrewsomething