## License, Source code & Issues

Kobalt is licensed under Apache 2.0

You can contribute code and report issues at the Kobalt Github Repo

## Discuss Kobalt

- Live discussions are happening on Kotlin's Slack Channel, managed by JetBrains. You can get an automated invitation here and then, just join the `#kobalt` channel.
- Join `kobalt-users`, the mailing-list for Kobalt users.
- Join `kobalt-dev`, the mailing-list for Kobalt developers. This mailing-list is for people interested in writing code for Kobalt, either the core, or writing plug-ins, or just to follow various technical discussions about Kobalt's internals.

## Configuring IDEA

Working on the Kobalt code base with Intellij IDEA is very easy.

### Edit kobalt.version

First of all, edit the file `src/main/resources/kobalt.properties` and set it to a nonexistent version. For example, if the current version is `0.399`, set it to `0.400`.

                        kobalt.version=0.400

When you launch Kobalt from IDEA with a nonexistent version, Kobalt will show a message saying that it couldn't locate that version and instead, it will use the classes generated by IDEA. This way, you will always be running the files that you just modified with IDEA. On start up, Kobalt will display a message looking like:

    Couldn't find .../kobalt-0.400.jar, using ...

Note that at the moment, Kobalt expects to be located in `$HOME/kotlin/kobalt`.

### Launch configuration

Next, create a launch configuration in IDEA.

Kobalt's main class is `com.beust.kobalt.MainKt`. Here is a typical launch configuration:

A few observations:

- You can ask Kobalt to build external projects by specifying a non-empty "Working Directory".
- The default log level is 1. 2 is useful for debugging and 3 will be extremely verbose.
- Another command line parameter worth of notice is `--dev`, which will add the class name and thread information to each log line.
- Checking the "Single instance" box is useful to avoid duplicating these launch configurations.