Qtブログ(日本語)

Gerrit が Qt Creator プロジェクトに参加しました!

作成者: 朝木卓見|Jul 14, 2011 9:26:58 AM

この記事は Qt Blog の "Gerrit joined the Qt Creator project!" を翻訳した物です。
執筆: Kai Köhne, 2011年5月23日

Qt Creator の開発に新しく参加した Gerrit を暖かく歓迎してあげてください。彼をご存じありませんか? Qt Creator の git リポジトリのコミットに以下のような行を書いているのが彼です。

Change-Id: I8364167d5be3e7c361b192318b0bba7fb70d0f2f
Reviewed-on: http://codereview.qt.nokia.com/9

というのも、先週から Qt 内部の git サーバーを Gerrit ベースのものに置き換えて、全てのコミットのレビューに使用しているのです。

それは記事にするほどのことなのでしょうか。実は Gerrit の利用はオープンガバナンスに触れることの出来る最初の一歩なのです。以前からパッチをレビューする際の情報の伝達方法(IRC 上で pastebin.com やEメールを併用しての議論)が、様々な技術知識、異なるタイムゾーンと文化を持つ人々に合っていないというのが明らかでした。そのため、opengov@qt-labs.org ではコードレビューツールの必要性が議論されていました。その他の選択肢(例えば、Crucible)も評価しましたが、Gerrit が我々の目的に最も近いツールでした。Qt Creator は Gerrit をフル活用する最初の Qt のプロジェクトです。

すぐに皆さんも新しいパッチをチェックしてコメントできるようになります。また、Qt Contributors Agreement に承諾したあとにはレビュー用のパッチを投稿できるようにもなります。これは Thiago のブログ記事である「オープンガバナンスにおける役割とその責任 」で述べられていた "Contributor"(貢献者) です。投稿されたパッチは、その後 "Approver"(承認者) である誰かによって承認もしくは却下されるでしょう。承認者には Qt Creator の開発にフルタイムで関わる Nokia の社員がなります。しかし、プラグインなどで貢献してきたそれ以外の人々も将来的にはメンテナンスのために承認者となるでしょう。最終的には、Qt Creator の最終決定を行う公式な "Maintainer"(メンテナ) を一人持つことになります。

さて、Gerrit をどう使えばいいのでしょうか。それは git と密接に統合されていて、(既に git について知っていれば)とても簡単に使えるようになっています。レビュー用パッチの投稿は 'git push' をするだけで出来ます。投稿したパッチは誰かがレビューして承認すれば、自動的にターゲットの git ブランチに適用されます。また、レビューに対応して修正するには、オリジナルの git のコミットを 'amending'(修正) して再び push します。レビューは通常 Web サイト上で行います。実のところ、それはとても頻繁に行われます。ファイルごとの差分を見たり、ファイル内にコメントすることが出来、最終的にはパッチが承認もしくは却下されます。投稿したパッチや監視しているパッチのステータスが変化すればすぐに、メールで通知を受けることももちろん出来ます。

まだ、先週使い始めたばかりなので、日々ツールの使い方に習熟しつつある状態です。既に変更したいことがいくつか見つかりました。最も苦情のあることの一つが Web サイトで、コミット全体の差分を見る方法がありません(ファイルごとの差分はあるのですが)。また、一連の関連したコミットがある場合には、それらを一つ一つレビューしていくのも退屈かもしれません。それらは修正するつもりです。とにかく、利用を開始した当初は全てが苦痛でした。個人的には、より正式な過程によって、コードの品質を総合的に向上することという高い望みがあります。例えば、インラインのコメントはコーディングスタイルのような些細な問題に関するやりとりに便利ですし、明示されたレビューのステップはパッチが実際に充分準備された物どうかの誤解を防ぎます。

今のところ、Gerrit の Qt での利用は限定的で、まだ Qt Creator に対してのみ運用しています。この次のステップは、Web サイトの公開によって、誰もがアクセスできるようになり、Qt とそれ以外のプロジェクトの開発にも適用することを計画していました。現在は、実際に人間がレビューを開始する前に形式的な確認を行うためのボットの準備を行っています。Qt ではレビューされたパッチを継続的インテグレーションシステムに掛けることも必要です。六月のどこかのタイミングで Gerrit を公開したいと望んでいます(訳注: もう少しお待ちください)。その間でも、gitorious の Qt Creator clone を更新しますし、codereview.qt.nokia.com が公開されてもそこで更新を続けます。