Junior Jobs
ジュニア・ジョブ とは、簡単に修正できる低い優先順位の作業です。誰もがしばしばそのような問題を抱えるもので、その問題を解決するのは良いのですが、これらの問題を抱えた人は通常、それよりも重要な作業 (高い優先順位の問題) も抱えていて、これらの作業が後回しになってしまいます。これは貢献を希望する方々にとっては、またとないチャンスです。
openSUSE ビルドサービスのジョブ
openSUSE ビルドサービスチームでは、コミュニティがピックアップした作業の wiki ページ を管理しています。
パッケージのバグ
パッケージには少なからずバグがあり、それらの多くは簡単に修正できるものです。そのため、それらのうちのいくつかは ジュニア・ジョブ としてマークされます。 ジュニア・ジョブ としてバグに印を付けても、メンテナはそのバグについて今後関知しないということではありません! 誰も名乗りでない場合、バグは最終的にメンテナが修正します。これが貢献のやり方について学ぶ簡単な方法です。
作業手順
- メンテナが該当のバグを ジュニア・ジョブ として指定します。
- メンテナは概要部に JJ: というプレフィクス (接頭辞) を付与します。
- Bugzilla のページの終わり、概要の隣に編集リンクがあります。
- メンテナはそのほか、いくつかの詳細 (パッチ送信についての代替的な方法や、送信要求 (submitrequest) の受け入れ可否、開発元からのパッチ取得について等々)
- 貢献者は Bugzilla 検索 - http://tr.im/opensusejj を利用してバグを発見します。
- 貢献者はそのバグについて作業をしたい旨のコメントを追記し、修正にかかる時間を見積もって提案します。
- たとえば "この修正について週末に作業を行ないたいと思います" など。
- 貢献者はバグを修正し、 SUSE 固有のものでなければ開発元に報告を行ないます。また、開発プロジェクトに対して送信要求 (submitrequest) を送り、 Bugzilla にそのバグ報告のリクエスト番号とリンクを書き込みます。
- 提案した日時を過ぎても更新されない場合、そのバグは解放されたものと見なされ、他の貢献者が取得できるようになります。
- メンテナはリクエストを確認し、受け入れ可能であれば Factory に配置を行ない、受け入れ不可であれば貢献者に何が間違っていて何を修正すべきかを通知します。
バグの修正方法
- まずは下記のようにして作業用のブランチを作成します。
osc branch openSUSE:Factory package - ソースをチェックアウトします。
osc co home:login:branches:project/package - ディレクトリに移動します ;-)
cd home:login:branches:project/package - 何らかのパッチを必要とする場合は、 quilt を使うと良いでしょう。
- ソースコードを展開します。
quilt setup package.spec - 再度ディレクトリに移動します ;-)
cd unpacked_package_directory - 既存のパッチ全てを適用します。
quilt push -a - 新しいパッチを作成します。
quilt new package-version-brief-description.patch - 修正対象のファイルを追加します。
quilt add file - ファイルを修正します (本作業と上記の作業は、いずれも quilt edit file で行なうことができます) 。
- 最終形態のパッチを作成します。
quilt refresh -p0 package-version-brief-description.patch
- ソースコードを展開します。
- なお、 全ての新しいパッチにマーク しておくことを忘れずに実施し、 osc vc を利用して .changes ファイルに項目を追加してください。
- 要件全てを修正したらその旨を報告します。あとはビルドサービスに変更点を送信するだけです:
- ファイルを追加したり削除した場合には、まずは下記を実行します。
osc addremove - その後、変更を送信します。
osc commit - メンテナに対して送信リクエストを送ります。
osc sr -m 'Fixed bug #1234'
- ファイルを追加したり削除した場合には、まずは下記を実行します。
- もちろん Bugzilla に対してバグが修正が完了した旨をリクエストと共に通知してください。
- たとえば "修正は sr#456 として送信済みです。開発元には http://bugzilla.foo.bar/?id=1234 として報告済み。" のように。
- 受け入れが完了すると、メンテナはバグレポートを実際にバグを修正したコミュニティメンバーに割り当て直します。
- 既に修正済みのバグ: http://tr.im/opensusejjfixed