なりゆきでエンジン修正してプルリクしてみた その2:プルリクする【UE4 / Unreal Engine 4】

前回の続き。

せっかくエンジンのバグを直したのでプルリクしてみます! 

その2:プルリクする

alweiさんの手順を参考にする。
GitHubのアカウント登録や、Epicのアカウントとの紐づけの説明はここでは省略します。

Gitクライアント

自分が使ったことがあるという理由だけですが、今回はSourceTreeを使うことにしました。あんまりSourceTreeでUE4のプルリクっていう記事もなさそうだし。
SourceTree自体の説明はしません。

GitHub push用のメアドの設定(GitHub 及び SourceTree)

GitHubにcommit~pushする際に、ユーザー名とメールアドレスを登録する必要があるが、この文字列はそのまま履歴に記録されるので、公にしたくない場合はpushするためだけのダミーメールアドレスを発行する設定がある。GitHubで発行したダミーメールアドレスでcommitした履歴は自動的にそのGitHubアカウントに紐づく。

https://qiita.com/sta/items/982ab68e8220a81d485c
こちらの記事のとおりです。
 
SourceTree側では、「ツール>オプション」
「全般>デフォルトユーザー情報」の「フルネーム」と「メールアドレス」
の部分です。
  • 「メールアドレス」にGitHubで取得したメアドを設定します。
  • 「フルネーム」もログに記載されるので公開されても問題のない文字列にしておきます。

Fork(GitHub

これは冒頭のalweiさんの記事のとおりで、GitHub上のForkボタンを押すだけです。

Clone(SourceTree)

「ファイル>新規/クローンを作成する」

まずGitHubのアカウントを登録する。

  • 「Remote」から、「アカウントを追加」
  • GitHubを選択して、
  • 「OAuthトークンを再読み込み」を押す。
  • ブラウザでページが開く
  • 下部「Authorize atlassian」を押し、パスワードを入力する。
  • SourceTreeのアカウント設定ダイアログに戻って「認証に成功」と出たらOK

    f:id:nakadaieng:20190716190601p:plain

続いてCloneする。

  • 「Remote」タブのまま、先ほど追加したアカウントを選択すると、リポジトリ一覧が出る。
  • 一覧からForkしたリポジトリを選択し、「Clone」を押す。EpicGamesと書いてある方ではないことに注意。
  • すると、「Clone」タブに切り替わりCloneする内容の設定をする。
  • ダウンロードする場所を適当に書き換え、「クローン」を押す。

    f:id:nakadaieng:20190716192659p:plain

全部ダウンロードするから時間かかると思いきや10分もかからないくらいで完了。

補足:Cloneされたブランチ名について

alweiさんの記事ではreleaseになっているが、私はmasterがcloneされた。
ドキュメントによるとプルリクはmasterをベースにしてと書いてあるのでこれでよいと思うが、forkの時点なのかcloneの時点なのか、元のブランチがどこで決まるのか不明。

ブランチ(SourceTree)

Histroyからmasterタグが付いてるコミットを選んで、
「右クリック>ブランチ」

  • ブランチ名は具体的な方がいいらしい。他のプルリクの名前を参考にして「Fix-SoundVisualizations-GetAmplitude」にした。
  • 新規のブランチを作成してチェックアウトにチェックを入れると、ブランチを作ってそのブランチをチェックアウトする(checkout -b の動作)。
    チェックをいれないと、branchコマンドでbranchをつくるだけ。

    f:id:nakadaieng:20190717162504p:plain

ソース書き換え~Commit~Push(SourceTree)

ソースを書き換えると
「コミットされていない変更があります」という行がHistoryの一番上に出る。

 

Commitは、
Historyじゃなくて、ファイルステータスのほうが作業しやすい。
下の「作業ツリーのファイル」に変更したファイルが出ているのを確認し、「全てインデックスに追加」を押す。これが add コマンドに相当する。
下部にコメントを書いて、「コミット」。
この段階のコメントは簡素でいいのかなぁ。とりあえずシンプルに「Fix GetAmplitude」とした。

 

そして「プッシュ」を押す。んー、この画面は難しいぞ・・・。

  • おそらくは、新たに作ったFix~ブランチのみをプッシュだろう。
    こちらの「対象」にチェックを入れると、自動的に「リモートブランチ」に同名が入った。
  • 「追跡中」はよくわからない。
  • 「すべてのタグをプッシュ」は要らんかった気がする。すべてのタグにup to dateってログが出てビビる。

    f:id:nakadaieng:20190717163152p:plain

GitHub上で、コミットが反映されていることを確認できる。
f:id:nakadaieng:20190717163941p:plain

Pull Request(GitHub

  • 「Compare & pull request」を押す

    f:id:nakadaieng:20190717164522p:plain

  • baseのブランチをmasterに変更する。

    と、差分情報が解析され「Able to merge」になった。
    「 Create pull request 」を押す。

    f:id:nakadaieng:20190717165034p:plain

  • Titleと内容を英語で頑張って書く。(Google翻訳でやりました!)

    (スクショ忘れた…)
  • プルリク完了!!

    f:id:nakadaieng:20190717165335p:plain

その後

すぐに返答が来ました!(実質1~2営業日くらい?)

f:id:nakadaieng:20190717165832p:plain

  • よりよいオーディオ解析API / Plugin Systemのために、このプラグインを非推奨にする予定なので、このプルリクエストは承認されません。
  • ブランチやフォークは削除してもいいよ。

てことでした!!
このプラグインがメンテナンスされてなくて消えそうなのはわかってた…。勉強になりました~!