Shiraji's Blog

How to Kontribute (for Japanese)

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
JDK_17=`/usr/libexec/java_home -v 1.7`

こんな感じで設定していきました。

build

pullには結構時間かかります。buildコマンドはドキュメントにある通り、

1
2
ant -f update_dependencies.xml
ant -f build.xml

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

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はつけたほうが良さ気。

Pull Request

特に気にせず投げてOK。

投げた後に、そのURLを対象のYouTrackのissueのコメントに貼り付けて欲しいとのこと。

マージ

マージはcherry-pick?でマージ先をJetBrainsの中の人がやってくれる。微修正までしてくれる。Authorは自分になる。(CommiterがJBの中の人。)

こんな感じ。

https://github.com/JetBrains/kotlin/commits?author=shiraji

雑感

殺伐としておらず、やりたい!と手をあげたらやらせてくれる。ちょっとわかんね。となっても質問すれば教えてくれる。

kontributorチャンネルで聞けばだいたい問題は解決する。やってほしいIssueとかも聞けば答えてくれる。非常にやりやすい感じでした。

IDE周りは今まで結構コード書いてたり読んでたりしているので、引き続きcontributeしていこうかなと考えています。