This entry is for Japanese. For English speaker, please refer kotlin repo
最初に
kotlinにcontributeし始めました。ドキュメントに書いてない部分があったので、主に自分用になりますが、書いておきます。
この文章は2016/07に書かれたので、その後、contribute方法が変わっているかもしれません。
contributeする前にREADMEは必ず読み込んでください。
開発環境
JDK周り
特に、JDKの設定は複雑です。jdk1.6, 1.7, 1.8全てが必要で、それらをドキュメント通り指定します。
1
|
|
こんな感じで設定していきました。
Windows user
自分はWindowsでの開発をしていないのですが、Windowsで開発する場合、JDKはOracleさんが出しているものが良いようです。
Macであれば、OpenJDKでもOrableのやつでもどちらでも問題なくビルドできるそうです。
build
buildコマンドは2017/09/20にgradleを利用する大きな変更が入りました。時間が出来たら反映します。
pullには結構時間かかります。buildコマンドはドキュメントにある通り、
1 2 |
|
kotlin開発用プラグインのインストールも必要です。
全てが揃わない限り、ビルド出来ません。このあたりで断念するのはもったいないので、わからなければ、slackのkotlinlangのkontributorチャンネルで聞いてください。
kotlinlangのslackはhttps://kotlinlang.org/community.html%E3%81%93%E3%81%93%E3%81%AB%E8%A9%B3%E7%B4%B0%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82
ANTの設定
よくハマるのが、antの設定です。Heapサイズを増やさないとビルド出来ないことが多々発生します。
以下のようにANT_OPTS
を設定して下さい。Xmxの数値は任意。
1
|
|
run
.idea/runConfigurationを見てもらうとわかるのですが、かなり多くのrun設定が含まれています。
ビルドが成功すれば、それらをrunするだけで、動きます。IDEAをrunすると自分の修正を取り込んだIntellijが立ち上がります。
run test
UnitテストもIDEAなどと同じでrun設定から起動します。
一つ一つのテストを起動することも出来ますが、working directoryがプロジェクトrootを指定しない限り動かないので注意。All IDEA Plugin Testsの設定を参考にしてください。
Plugin “GitHub” was not loaded: required plugin “Git4Idea” not installed.
ideaSDK/config-idea
の中身を全て消せばいいらしい。
でもそれで動くマシンと動かないマシンがあった。これに関しては謎。動かないマシンはもう一回環境構築しなおしてみます。
追記
理由がわかりました。テスト時にSDKに設定されているプラグインを全て読み込みます。
File > Project Structure > 1.8 > Classpath
私の場合、ここに、CE版のgithubプラグインのパスが設定されていました。これを削除すると動くようになりました。
別プラグイン開発で使っていたものが残っていました。
開発
READMEにもありますが、kotlinにはまだまだいっぱいやることがあるので、contributeし放題です。
YouTrackからやりたいものを選んで下さい。
そのスレッドにやるわこれ!とコメントすると良いです。やっていいのかわからない場合は、kontributorチャンネルでやっていいか?という質問を投げて下さい。JetBrainsの営業時間になればだいたい回答が来ます。
ブランチ名
特にルールないらしい。なんでも良い。masterはさすがにマナー違反だと思う。
コミットメッセージ
あんまりルールがあるように見えない。#KT-12345 Fixed
はつけたほうが良さ気。
テスト
基本書いたコードに対して考えられるケースのテストを書くことになる。XxxTestGenerated
という名前のクラスはRun ConfigurationのGenerate Testsで自動生成されたテストケース。これらのテストケースは編集しない。
例えば、Inspectionのテストの場合、InspectionTestGeneratedがあり、これにテストを追加するにはidea/testData/inspections
配下にフォルダを作成し、その下にテストデータを作成する。その後、"Generate Tests"を起動させると、テストケースが追加される。
新規のUnit Test
新規のUnit Testを書くことになるIssueもある。
その場合、通常通り、JUnitでテストを作成してもいいのだけど、KotlinCodeInsightTestCase
を継承した、abstract classを作成し、GenerateTests.ktに追記すると、上記"Generate Tests"の対象となり、abstractクラスで作ったロジックに則った自動テストを作成することが出来る。
例えば、このPRではAbstractConcatenatedStringGeneratorTest
を作成して、ConcatenatedStringGenerator
クラスをテストする自動テストケースを作成している。
Pull Request
特に気にせず投げてOK。
投げた後に、そのURLを対象のYouTrackのissueのコメントに貼り付けて欲しいとのこと。
マージ
マージはcherry-pick?でマージ先をJetBrainsの中の人がやってくれる。微修正までしてくれる。Authorは自分になる。(CommiterがJBの中の人。)
こんな感じ。
https://github.com/JetBrains/kotlin/commits?author=shiraji
ビルド出来なくなったら?
kotlinプラグインは結構な頻度で更新されていきます。
急にビルド出来なくなった場合、まず、kotlinプラグインを最新のバージョンにしているのか確認して下さい。
また、masterにマージされているものが時々ビルドエラーを起こしたりします。こうなるとその修正が入るまで特に何も出来ません。我慢して待ちましょう!
ただ、2~3日ビルド出来ないというのは何かしら環境がおかしい場合があります。その時は以下の作業をしてみます。
ideaSDK/config-idea
以下を削除する(Run時に使うプラグインを削除)ant -f update_dependencies.xml
を実行するant dist
を実行する
それでもだめならkontributorチャンネルで聞いてみましょう。
雑感
殺伐としておらず、やりたい!と手をあげたらやらせてくれる。ちょっとわかんね。となっても質問すれば教えてくれる。
kontributorチャンネルで聞けばだいたい問題は解決する。やってほしいIssueとかも聞けば答えてくれる。非常にやりやすい感じでした。
IDE周りは今まで結構コード書いてたり読んでたりしているので、引き続きcontributeしていこうかなと考えています。