コントリビューターとしての活動

コントリビューター ライセンス契約(CLA)

コードパッチを受け付けるには、コードパッチを個別に または企業コントリビューター ライセンス契約(CLA):

  • オリジナルのソースコードを書いていて、 所有権を証明済みの場合は、 個々の CLA です。
  • 会社に勤務している場合は、法人向けの CLA を提出する必要があります。 このクライアント ライブラリへの貢献が認められていることを示すことができます。

上記のいずれかのリンクをクリックして該当する CLA を取得し、署名と返信の方法を確認してください。情報が届き次第、 公式コントリビューターのリストに登録します

パッチの送信の概要

このプロジェクトにコードを投稿する手順は次のとおりです。

  1. 上記の手順に沿ってコントリビューター ライセンス契約に署名する。
  2. ディスカッション グループにご参加ください。
  3. 開発環境を設定します。
  4. 各変更セットを問題(バグレポートまたは機能)に関連付ける request など)を GitHub Issue Tracker で公開します。まだ作成していない場合は新しい問題を作成し、自分に割り当てます。
  5. コードをチェックアウトし、codereview.appspot.com で新しい問題を作成し、コードレビューのプロセスを完了します。これらすべてのプロセスの詳細な手順については、下記をご覧ください。
  6. コードがレビューされて承認が得られたら、コードを commit します。公式のコントリビューターでない場合は、コントリビューターが変更セットを公式リポジトリに取り込みます。

Google が使用するツールとプロセスは次のとおりです。

  • バージョン管理システムとして Git を使用しています。
  • ビルドシステムには Maven のほか、 バイナリディストリビューションシステムです
  • コードには codereview.appspot.com を使用します。 評価します。(ただし、codereview.appspot.com ツールでは、「問題」という用語は はコードレビューのリクエストを意味します。一方、GitHub Issue Tracker では「問題」は 機能リクエスト、バグレポートなど)。

Eclipse 開発者の方は、プロジェクト固有のコード形式を使用してください。 .settings ディレクトリに指定されています。これは、Eclipse によって自動的に処理されます。

開発環境のセットアップ

前提条件

  1. Java 6 をインストールします。JAVA_HOME の設定が必要な場合があります 変数です。
  2. Maven をインストールします。(このドキュメント Maven コマンドの基本的な知識があることを前提としています)。
  3. 省略可: Android SDK をインストールする ANDROID_HOME 変数を Android のインストール場所に設定します。
  4. Git をインストールします。

Git の設定

git config コマンドを使用して、デフォルトの表示名とメールアドレスを設定します。

git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL ADDRESS"

Git から GitHub を使用した認証

GitHub からコードをチェックアウトできるようにするには、 GitHub で HTTP または SSH を使用します。先に進む前に、 GitHub リポジトリをご覧ください。 こちらの手順をご覧ください。 HTTPS または SSH のクローン作成から 開始できますGoogle Cloud で Git について Pro Git が有用なリソースです。

コードをチェックアウトする

HTTPS の使用

開発「マスター」でライブラリ リポジトリをチェックアウトするブランチ 次のコマンドを実行します。

git clone https://github.com/google/google-api-java-client.git

SSH を使用する

開発「マスター」でライブラリ リポジトリをチェックアウトするブランチ, 作る CANNOT TRANSLATE GitHub リポジトリへの書き込みアクセス権がある場合は、次のコマンドを実行します。

git clone git@github.com:google/google-api-java-client.git

代替ブランチ(1.12 など)に切り替えるには:

git checkout --track origin/1.12

マスター ブランチに戻すには:

git checkout master

GitHub リポジトリから最新の変更を pull して、ローカル 最新の commit にアップグレードします。

git pull

Maven

Google Play 開発者サービスをインストールする

初めてプロジェクトを設定するときは、 google-play-services.jar ファイルを追加します。手順は次のとおりです。

  1. Eclipse を起動し、[Window] >Android SDK Manager を使用するか、android を実行します。 指定します。
  2. パッケージ リストの一番下までスクロールして、[Extras(ボーナス コンテンツ)>] を選択します。Google Play サービス
mvn install:install-file \
           -Dfile=$ANDROID_HOME/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar \
           -DgroupId=com.google.android.google-play-services \
           -DartifactId=google-play-services \
           -Dversion=1 \
           -Dpackaging=jar

プロジェクトをコンパイルする

mvn clean install

Maven はコンパイルされたバイナリをローカル リポジトリ( ~/.m2/repository など)、フェッチする前に、そのリポジトリ内のバイナリを検索する Maven セントラル リポジトリからインストールしてください。

注: このライブラリは google-http-java-client に依存します。 と google-oauth-java-client。 まだリリースされていない 3 つのライブラリすべての新しいバージョンに取り組む場合 次の順序でコンパイルする必要があります。

  1. google-http-java-client
  2. google-oauth-java-client
  3. google-api-java-client この順序でコンパイルすると、Maven はコンパイル済みのバイナリを コンパイルを自動化します。

コードレビュー プロセス

Upload.py スクリプトのダウンロード

upload.py スクリプトをダウンロードします。 必要に応じて PATH に追加します。

初めて upload.py を実行するときに、 アプリケーション固有のパスワード:

Email (login for uploading to codereview.appspot.com): your_email_address@yourdomain.com
Password for your_email_address@yourdomain.com: 

レビューに向けてコードを準備する

レビューのためにコードを送信する前に、Clirr を実行して逆方向の 互換性の問題を検出できます。エラーが報告された場合は、 修正するか、clirr-ignored-differences.xml ファイルを更新します。

mvn -q clirr:check

また、コード内のバグを検出するために FindBugs ツールを実行する必要があります。エラーがある場合 修正するか、findbugs-exclude.xml を更新する必要があります。 表示されます。(FindBugs は非常に遅いことに注意してください)。

mvn findbugs:check

変更がすべてのテストに合格したら、その変更をインデックス(Git ステージング :

git add .

追加、変更、削除したすべてのファイルが反映されていることを再度確認します インデックスで次のように変更します。

git status

git status の出力で、「Changes to beCommitted」セクションを確認します。

コードレビューの開始

レビューの準備ができたら、codereview.appspot.com で新しい問題を作成します。

upload.py --rev=HEAD --base_url=https://github.com/google/google-api-java-client --send_mail -r reviewer@somedomain --cc ...

さらに変更を加えたら、新しい変更をステージングします。新しいパッチをアップロードするには たとえば、発行番号 123456 の場合は、次のコマンドを実行します。

upload.py --rev=HEAD -i 123456

その他のオプションについて知りたい場合は、upload.py --help を実行してください。

通常の GitHub ワークフロー おそらくインフラストラクチャをフォークし、 GitHub リポジトリを作成し、この新機能またはバグ修正のブランチを作成しました。ユーザーが コードを送信 自分のフォークからのリクエストを確認するには、自身のフォークが アップロードします。詳しくは、こちらの GitHub ヘルプをご覧ください。 フォークを同期する方法をご確認ください。

ローカルで commit された変更セットにも、upload.py を使用できます。

upload.py --rev=upstream/master:HEAD --base_url=https://github.com/google/google-api-java-client --send_mail -r reviewer@somedomain --cc ...

コードレビュー担当者

コードレビュー担当者は、承認する前に変更セットをインポートしてテストします。 変更セットを commit してリモート リポジトリに push します。

変更セットのインポート

エラーを早期に検出するには、必ずリモコンから最新の変更を pull してください。 作業ツリーに配置します。作業ツリーがクリーンで インデックスが空です。

リモート リポジトリから最新の commit を pull してマージするには:

git pull

作業ツリーとインデックスの内容を確認するには:

git status

ローカル Git クローンにパッチをインポートするには:

  1. codereview.appspot.com で問題をオープンします。
  2. 問題のパッチの [Download raw] を探します。右上にある パッチ仕様に追加します。
  3. [raw] をクリックしますして、インポートするファイルの URL を取得します。
  4. 未加工の差分ファイルを issue123456.diff があります。
  5. ローカル Git 作業ツリーに移動し、patch を使用して差分を適用します。 command:
patch -p1 < issue123456.diff

正しい差分がインポートされたことを再確認するには、git diff を実行します。 作成します。

変更セットのテスト

テストを実行してインストールするには、次のコマンドを使用します。

mvn clean install checkstyle:check

codereview.appspot.com の変更セットの承認

一般に、コードを GitHub リポジトリに push するには、コードレビュー担当者が必要になります。 コードの準備ができた ことを確認しますこの時点では、原則として 「LGTM」というメッセージが(「OK です」)。

コードを commit する

重要: コードを commit する前に、最新の変更を GitHub から最新の commit に更新します。 リポジトリ:

git pull

競合がある場合は解決し、すべてのテストを テストします。

コードをローカルで commit するには:

git commit

次のようなメッセージを入力します(修正または実装を 問題番号 123(GitHub) Issue Tracker をご覧ください)。

#123: NullPointerException when passing null to processFoo()
http://codereview.appspot.com/123456/

最初のコロンと説明の前:

  • これが Issue Tracker の問題に対する修正である場合は、次に示すように問題番号を記載してください。
  • 特定の支店に対する変更の場合は、支店番号も記載してください。
  • あなたがこの契約のcommitterになりますが、 author--author=<author>)としてマークすることで、変更の作成者に権限を与えることができます。

説明の後に、コードレビューに問題へのリンクを必ず含めます。 サイトをご覧ください。このリンクは重要です。このリンクがないと、 commit に関連するコードレビューについて学習します。これは、 ディスカッションの履歴を維持できます。

変更を GitHub リポジトリに push するには:

git push

git push の最中に、更新の否承認に関するエラー メッセージが表示された場合( git pull を実行するのを忘れた場合)、最新の変更と統合する方法は次のとおりです。 変更をリモート リポジトリに push します。

git pull
git commit
git push

問題のクローズ

コードレビュー ツールで問題を必ずクローズしてください。手順は次のとおりです。

  1. codereview.appspot.com で問題を選択します。
  2. [X] をクリックします。「Id」の前にある左上の「Id」を使用します

変更セットのパッチ適用を解除する

なんらかの理由でインポートした変更セットを commit しない場合は、 これを削除します。注意: ローカルの変更は文字どおりすべて消去されます。

git checkout -- .