夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

MixedReality GraphicsToolsに貢献する まとめ

本日はMixedReality Graphics Tools(MRGT)ネタです。

先日MRGTへ提出していたプルリクエストがマージされ、私の実装した機能がMRGTの機能として提供されるようになりますので、今回はMRGTへの貢献方法に関してまとめていきます。 (私が実装した機能は次のリリースのタイミングで反映されるはずです。)

github.com

〇What's MRGT?

 MRGTMRTK3で提供されるMixedRealityデバイス向けの主にグラフィックス周りのUnityパッケージです。

従来のMRTKで提供されていたグラフィックス関連の機能はMRTKのコアと紐づいており、MRTKのグラフィックを使用するためにはMRTKのコアも使用する必要がありました。

 先日公開されたMRDevDaysのセッションでは決して少なくない開発者がコアとグラフィック関連の機能を切り離して独自で使用できるように改造に取り組んでいたと紹介されていました。

 MRGTはこういったフィードバックを受け、MRTKのグラフィック以外の機能と干渉しないように作成されたUnity向けのパッケージになります。(Unreal版もあります。)

〇MRGTへの貢献方法

 貢献と一言で言っても様々な方法があります。例えばSNSなどで#MRGTをつけて発信することもその一つです。

 今回はGitHubプロジェクトでの機能開発の貢献に関して方法をまとめます。

 

●1イシューを立てる

Microsoft社のOSSの多くはGithub上で公開、開発がされています。

MRGTも同様で以下のリポジトリで公開されています。

github.com

まずは問題提起としてイシューを立てる必要があります。

 イシューページを開きNew issueを選択します。

 テンプレートから状況にあったイシューを作成します。

 

機能開発の場合はFeature Requestがそれにあたります。

 選択したテンプレートに応じてイシューを作成していきます。Feature Requestの場合は次のような項目になります。

## Describe the problem(問題の説明)

A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
私は○○の時に○○のためストレスを感じてしまう・・・などトラブルや問題の概要を記述します。

## Describe the solution you'd like(どうなってほしいか?)

A clear and concise description of what you want to happen.
トラブルが起こる場合本来はこうなってほしい、など自分が思う正しい動作、挙動を記述します。

## Describe alternatives you've considered(提案する代替案)

A clear and concise description of any alternative solutions or features you've considered.



## Additional context(追加のコメント)

Add any other context or screenshots about the feature request here.

イシュー作成直後はAssignees(担当者)に誰も割り当てられていません。

 イシューを提出してMicrosoftの担当者、MRGTの場合はCameronさんが担当者を決めて割り当てます。

●2 リポジトリをフォークする

GitHubに公開されているMRGTに自分自身の機能を開発して提供するためにはフォークをする必要があります。

 フォークはリポジトリの複製で、自分自身のプロジェクトとすることができます。

 一度自分自身の環境を構築して作業を行います。

   

●3 フォークしたリポジトリをCloneして作業する

フォークした自分自身のリポジトリをCloneして作業を始めます。

git clone (リポジトリSSH)
●4 ごりごり開発

今回はShaderの機能開発を行っています。ごりごり開発をします。

redhologerbera.hatenablog.com

redhologerbera.hatenablog.com

●5 PRの作成

作業を終え一度自分自身のフォークしたリポジトリにPushします。

 git push origin (作業ブランチ名)

 Pullrequestを選択し作成をします。

ここではフォークしたブランチからオリジナルのMRGTへPRを出すことができます。

●6 レビューとフィードバック

 提出したPRはMicrosoftのプロジェクトリーダーがレビューを終えるまで保留にされます。

 レビューが行われると場合によってはrequested changeのラベルが張られます。

 

これは変更依頼に相当します。

 提出したコードに対して例えばスペルミスやルールに反する記述、今回の場合はスペースを空けなければならない箇所にスペースがない点など細かく変更箇所が記述されますので指示に従います。

 

また複数人のレビューが行われることもあります。今回はCameronさんのほかにMartin Wettigさんによるレビューが行われました。

Martinさんのレビューでは問題ない!と評価をいただきました。

修正を終え、再度レビューを依頼し、問題がクリアされた場合マージされます。

マージされることによってMRGTのContributors(貢献者)として名前が載ることになります。

以上が一連の機能実装での貢献作業になります。

なおプロジェクトにPRを出し貢献した時点でコミュニティ規範に従ったコントリビューターライセンス契約に同意することになります。

cla.opensource.microsoft.com

opensource.microsoft.com

〇余談

MRGTはMRTK3として6月に新しく生まれたプロジェクトです。

プロジェクトリーダーのCameronさんによると私の貢献がコミュニティメンバーとしてのはじめての貢献であったようです。

 MRTKを最初に触ったときからずっと愛用していたShaderに自分自身の機能が入るとはとても感動します。

 これからもこういった活動を続けていきます。