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


47

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

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

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

結論:その男をどこでどのように修正し始めますか?


1
あなたの経歴は?バージョン管理システムに精通していますか?パッケージングの慣習では?
ピガブリエル

いや、まだそれに慣れていない!変更の対象と...
インゴ・

回答:


31

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

ドキュメンテーション

  1. Ubuntu開発用のセットアップ
  2. バグを修正する方法

チュートリアル

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

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

機会を見つける場所

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

ヘルプを得る

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

フィードバック

このドキュメントをできる限り簡単に修正するために多くの時間を費やしました。あなたがあなたの経験と私たちがこのようなものを改善する方法についてメモを取るなら、君は。


19

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

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

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

以下を使用して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ブランチで実行すると、ブラウザでその場所が開きます。

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

マージを提案する

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

マージを記述する

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

アクティブレビュー

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.