Kotlin の ReadMe.md を訳してみた #ktac2014

[Kotlin Advent Calendar 2014](http://www.adventar.org/calendars/477) の 12 日目です。

[JetBrains/kotlin](https://github.com/JetBrains/kotlin) の ReadMe.md を訳してみました。

# プログラミング言語 Kotlin

ようこそ [Kotlin](http://kotlinlang.org/) へ ! 関連するリンク :

 * [Kotlin Site](http://kotlinlang.org/)
 * [Getting Started Guide](http://kotlinlang.org/docs/tutorials/getting-started.html)
 * [Web Demo](http://kotlin-demo.jetbrains.com/)
 * [API](http://jetbrains.github.com/kotlin/versions/snapshot/apidocs/index.html)
 * [Issue Tracker](http://youtrack.jetbrains.com/issues/KT)
 * [Forum](http://devnet.jetbrains.net/community/kotlin?view=discussions)
 * [Kotlin Blog](http://blog.jetbrains.com/kotlin/)
 * [Follow Kotlin on Twitter](http://twitter.com/#!/project_kotlin)
 * [TeamCity CI build](https://teamcity.jetbrains.com/project.html?tab=projectOverview&projectId=Kotlin)

## Kotlin を書く

 * [Kotlin IntelliJ IDEA Plugin](http://hadihariri.com/2012/02/17/the-kotlin-journey-part-i-getting-things-set-up/)
 * [Kotlin TextMate Bundle](https://github.com/k33g/kotlin-textmate-bundle#readme)

## ビルド

このプロジェクトをビルドするには、まず下記のコマンドを実行します (Apache Ant 1.8 以上) :

    ant -f update_dependencies.xml

すると、下記がセットアップされます。

* intellij-core: コマンドラインのコンパイラの一部で、必要な API を含みます。
* idea-full: IntelliJ IDEA Community Edition に使われるプラグインです。

そして、下記のコマンドを実行します。

    ant -f build.xml

すると、dist ディレクトリにコンパイラのバイナリが作成されます。 ヒープサイズを増やしたい場合は
[ANT_OPTS](http://www.liferay.com/community/wiki/-/wiki/Main/Ant+opts) の **heap size** を利用してください。

**オプション :** Maven ディストリビューションを別に構築する場合は下記のコマンドを実行してください。

    mvn package

コンパイラのビルド後、'libraries' ディレクトリとは別に構築します。詳細は `libraries/ReadMe.md' を参照してください。

## IntelliJ IDEA でこのプロジェクトを編集する

[root kotlin project](https://github.com/JetBrains/kotlin) の IntelliJ IDEA 用のプロジェクトはすでに用意されています。これを IntelliJ IDEA で開いてください。

プロジェクト SDK を File -> Project Structure -> Project で設定する必要があります。
`tools.jar` を File -> Project Structure -> SDKs -> <Your JDK> -> Classpath から SDK に追加し、
JDK の `lib` ディレクトリから `tools.jar` を選択してください。

Android が不要な場合は Android プラグインを無効にしてください。

Kotlin プロジェクトが Kotlin 自体で書かれているコードを含むので、IntelliJ IDEA でプロジェクトを構築するためには Kotlin プラグインが必要です。
他のチームと同じプラグインのバージョンに保つため、[Continuous Integration server](https://teamcity.jetbrains.com/project.html?projectId=Kotlin&tab=projectOverview) と同期してください。
[下の指示](#plugin-for-contributors) に従ってインストールしてください。

Kotlin プラグインを含んだ IntelliJ IDEA とは別に Kotlin プラグインを除いた IntelliJ IDEA をインストールしたい場合は、この[ドキュメント](http://devnet.jetbrains.net/docs/DOC-181)を読んでください。
複数の IntelliJ IDEA をインストールする方法が記載されています。

このプロジェクトから IDEA やコンパイラのテストを実行/デバッグできます。IDEA プラグインを試したいなら、

* VCS -> Git -> Pull
* Run IntelliJ IDEA
* Kotlin プラグインを含んだ Intelli J IDEA が起動します。
* [Kotlin ライブラリプロジェクト](https://github.com/JetBrains/kotlin/tree/master/libraries)などを開けるようになっています。

### <a name="pre-built-plugin"></a>IntelliJ IDEA で既にビルド済みの Kotlin プラグインを使う

Kotlin プラグインを入手する方法はいくつかあります。安定版は、他のプラグインのように IntelliJ IDEA のプラグインから入手できます。

    Preferences -> Plugins -> Install JetBrains plugin... -> "Kotlin"で検索する

最新版は [IDEA Plugin and Tests CI build](https://teamcity.jetbrains.com/project.html?projectId=project67&tab=projectOverview) からダウンロードできます。
ダウンロードしたら "Install plugin from disk..." でインストールします。

    Preferences -> Plugins -> Install plugin from disk...

これで Kotlin ベースのプロジェクトを開けるようになります。

<a name="plugin-for-contributors"></a>
**コントリビュータの注**: もし Kotlin プロジェクトに貢献するつもりなら、ローカルにビルドサーバが利用している同じバージョンのプラグインがほしくなるでしょう。
このプラグインのバージョンは絶えず更新されています。プラグインを常に更新したいなら、IntelliJ IDEA へ通知させるのが最適です。

リポジトリの設定を開き、

    Preferences -> Plugins -> Browse Repositories -> Manage Repositories...

下記の URL をリポジトリに追加しましよう。

    https://teamcity.jetbrains.com/guestAuth/repository/download/bt345/bootstrap.tcbuildtag/updatePlugins.xml

そして、"Browse Repositories"でプラグインのリストを更新してください。そこにある 2 つのバージョンを見て、より高いバージョンのプラグインをインストールします。

# 貢献する

我々はコントリビュータを歓迎します！ [Kotlin](http://youtrack.jetbrains.com/issues/KT) や[標準ライブラリ](https://youtrack.jetbrains.com/issues/KT?q=Subtask+of%3A+KT-2554+%23Unresolved)でたくさんの問題があります。あなたが興味を持っていることについて[フォーラム](http://devnet.jetbrains.net/community/kotlin?view=discussions)で話しませんか？

もし軽めの問題から始めたいなら、["up-for-grabs" タグのついた問題](https://youtrack.jetbrains.com/issues?q=tag%3A+%7BUp+For+Grabs%7D+%23Unresolved)を探しましょう。

問題にアサインできるのはコミッターだけです。もしその問題に着手しているならコメントを加えましょう。

上手に貢献する方法は [API ドキュメント](http://jetbrains.github.com/kotlin/versions/snapshot/apidocs/index.html)をチェックすることです。ドキュメント化されていないクラスやメソッドがあったらパッチを送りましょう。

特に、すべての機能において、例えば Collection の <a href="http://jetbrains.github.com/kotlin/versions/snapshot/apidocs/kotlin/java/util/Collection-extensions.html#filter(kotlin.Function1)">filter()</a> のような、よい使い方の例が含まれていると素晴らしいです。これは、テスト機能からコードを含むために <a href="https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/src/kotlin/IterablesLazy.kt#L17">@inludeFunctionBody</a> マクロを利用して実行されます。これにより、ユーザには素晴らしい API の例を、コードはテストカバレッジを得ることができます。

また、[JavaScript 変換](https://github.com/JetBrains/kotlin/blob/master/js/ReadMe.md)が助けになるでしょう。詳細は [JavaScript 変換](https://github.com/JetBrains/kotlin/blob/master/js/ReadMe.md) を確認してください。


## コンパイラに貢献する

Kotlin のコンパイラは Java と Kotlin で書かれています(純粋な Kotlin に徐々に移行しています) 。最も簡単に着手するには、

* クリーンな [IDEA 14 EAP build](http://confluence.jetbrains.com/display/IDEADEV/IDEA+14+EAP) をダウンロードする
* [Kotlin プラグインをインストールする](#pre-built-plugin)
* [root kotlin project](https://github.com/JetBrains/kotlin) を IDEA で開く(Kotlin ディレクトリを開く)

実行/デバッグの設定で下記を起動できます。

* IDEA
* コンパイラのすべてのテスト
* IDEA プラグインのすべてのテスト


## Kotlin ライブラリに貢献する

* クリーンな [IDEA 14 EAP build](http://confluence.jetbrains.com/display/IDEADEV/IDEA+14+EAP) をダウンロードする
* [Kotlin プラグインをインストールする](#pre-built-plugin)
* [kotlin ライブラリプロジェクト](https://github.com/JetBrains/kotlin/tree/master/libraries)を開く

そして、下記でビルドします。

    cd libraries
    mvn install

標準ライブラリの一部はテンプレートからコードを生成します。既存のテンプレートからコードがどのように生成されるか、stdlib の [README](https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/ReadMe.md) を確認してください。


## パッチを送る

パッチを送る最適な方法は [github のプロジェクトを fork](http://help.github.com/fork-a-repo/) して、[github](http://github.com) から [pull request](http://help.github.com/send-pull-requests/) することです。

fork した場合、[rebase してから pull する](http://d.strelau.net/post/47338904/git-pull-rebase-by-default)と、あなたのローカルのリポジトリに多くのマージがコミットされることを避けられ、あなたの pull request をシンプルで簡潔に保ちます。


## コミットコメント

コミットコメントに下記を含めると、[Issue Tracker](http://youtrack.jetbrains.com/issues/KT) の KT-1234 が自動的に解決のステータスになります。

    #KT-1234 Fixed