V8 ソースコードのチェックアウト

このドキュメントでは、V8 ソースコードをローカルにチェックアウトする方法について説明します。ソースコードをオンラインで閲覧するだけであれば、以下のリンクを使用してください。

Git の使用 #

V8 の Git リポジトリは https://chromium.googlesource.com/v8/v8.git にあり、GitHub に公式ミラーがあります: https://github.com/v8/v8

これらの URL を単純に git clone しないでください!チェックアウトしたソースから V8 をビルドしたい場合は、以下の手順に従ってすべてを正しく設定してください。

手順 #

  1. Linux または macOS では、まず Git をインストールし、次に depot_tools をインストールします。

    Windows では、Chromium の手順(Google 社員向けGoogle 社員以外向け)に従って、Visual Studio、Debugging Tools for Windows、および depot_tools(Windows 版には Git が含まれています)をインストールします。

  2. ターミナル/シェルで以下のコマンドを実行して、depot_tools を更新します。Windows では、PowerShell などではなく、コマンドプロンプト(cmd.exe)で実行する必要があります。

    gclient
    
  3. プッシュアクセスを行うには、Git パスワードを設定した .netrc ファイルが必要です。

    1. https://chromium.googlesource.com/new-password にアクセスし、コミッターアカウント(通常は @chromium.org アカウント)でログインします。注: 新しいパスワードを作成しても、以前に作成されたパスワードが自動的に無効になるわけではありません。git config user.email に設定されているものと同じメールアドレスを使用してください。
    2. シェルコマンドを含む大きな灰色のボックスを確認してください。これらの行をシェルに貼り付けます。
  4. 次に、すべてのブランチと依存関係を含む V8 ソースコードを取得します。

    mkdir ~/v8
    cd ~/v8
    fetch v8
    cd v8

この後、意図的に detached HEAD 状態になります。

必要に応じて、新しいブランチの追跡方法を指定できます。

git config branch.autosetupmerge always
git config branch.autosetuprebase always

または、次のように新しいローカルブランチを作成することもできます(推奨)。

git new-branch fix-bug-1234

最新の状態に保つ #

git pull を使用して、現在のブランチを更新します。ブランチ上にいない場合、git pull は機能せず、代わりに git fetch を使用する必要があることに注意してください。

git pull

V8 の依存関係が更新される場合があります。以下のコマンドを実行することで、それらを同期できます。

gclient sync

レビューのためにコードを送信する #

git cl upload

コミット #

コミットには、コードレビューの CQ チェックボックスを使用できます(推奨)。CQ フラグとトラブルシューティングについては、Chromium の手順も参照してください。

デフォルトよりも多くの trybot が必要な場合は、Gerrit のコミットメッセージに以下を追加します(例:nosnap bot を追加する場合)。

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel

手動で反映するには、ブランチを更新します。

git pull --rebase origin

次に、以下のコマンドを使用してコミットします。

git cl land

ジョブを試す #

このセクションは、V8 プロジェクトメンバーにのみ役立ちます。

コードレビューからジョブを試す #

  1. CL を Gerrit にアップロードします。

    git cl upload
  2. 次のように try bot にジョブを送信して、CL を試します。

    git cl try
  3. try bot のビルドが完了するまで待ち、結果のメールを受け取ります。Gerrit のパッチで try の状態を確認することもできます。

  4. パッチの適用に失敗した場合は、パッチをリベースするか、同期する V8 リビジョンを指定する必要があります。

git cl try --revision=1234

ローカルブランチからジョブを試す #

  1. ローカルリポジトリの git ブランチにいくつかの変更をコミットします。

  2. 次のように try bot にジョブを送信して、変更を試します。

    git cl try
  3. try bot のビルドが完了するまで待ち、結果のメールを受け取ります。注: 現在、一部のレプリカに問題があります。コードレビューからジョブを送信することをお勧めします。

役立つ引数 #

revision 引数は、ローカルの変更を適用するために使用されるコードベースのリビジョンを try bot に指示します。revision がない場合、V8 の LKGR リビジョンがベースとして使用されます。

git cl try --revision=1234

すべての bot でジョブを実行しないようにするには、--bot フラグとコンマ区切りのビルダー名リストを使用します。例:

git cl try --bot=v8_mac_rel

try サーバーの表示 #

git cl try-results

ソースコードブランチ #

V8 にはいくつかの異なるブランチがあります。どのバージョンを取得すればよいかわからない場合は、最新の安定バージョンを取得するのが最適です。使用されているさまざまなブランチの詳細については、リリースプロセスをご覧ください。

Chrome が安定(またはベータ)チャネルで出荷している V8 バージョンに従うことができます。 https://omahaproxy.appspot.com/ を参照してください。