We love contributions! There is a lot to do on Kotlin and on the standard library so why not chat with us about what you're interested in doing? Please join the #kontributors channel in our Slack chat and let us know about your plans.
If you want to find some issues to start off with, try this query which should find all open Kotlin issues that are marked as "up-for-grabs".
Currently only committers can assign issues to themselves so just add a comment if you're starting work on it.
A nice gentle way to contribute would be to review the standard library docs and find classes or functions which are not documented very well and submit a patch.
In particular, it'd be great if all functions included a nice example of how to use it such as for the
hashMapOf() function. This is implemented using the
@sample macro to include code from a test function. The benefits of this approach are twofold; First, the API's documentation is improved via beneficial examples that help new users and second, the code coverage is increased.
Some of the code in the standard library is created by generating code from templates. See the README in the stdlib section for how to run the code generator. The existing templates can be used as examples for creating new ones.
If you want to contribute a new language feature, it is important to discuss it through a KEEP first and get an approval from the language designers. This way you'll make sure your work will be in line with the overall language evolution plan and no other design decisions or considerations will block its acceptance.
The best way to submit a patch is to fork the project on GitHub and then send us a pull request to the
master branch via GitHub.
If you create your own fork, it might help to enable rebase by default when you pull by executing
git config --global pull.rebase true
This will avoid your local repo having too many merge commits which will help keep your pull request simple and easy to apply.
Please read the Intention/QuickFix/Inspection Quick Notes if you are going to implement an inspection or intention or add a quick fix.
Before submitting the pull request, make sure that you can say "YES" to each point in this short checklist: