|
| 1 | +# Contributing Guidelines |
| 2 | + |
| 3 | +One can contribute to the project by reporting issues or submitting changes via pull request. |
| 4 | + |
| 5 | +## Reporting issues |
| 6 | + |
| 7 | +Please use [GitHub issues](https://github.com/Kotlin/kotlinx-benchmark/issues) for filing feature requests and bug reports. |
| 8 | + |
| 9 | +Questions about usage and general inquiries are better suited for StackOverflow or the #benchmarks channel in KotlinLang Slack. |
| 10 | + |
| 11 | +## Submitting changes |
| 12 | + |
| 13 | +Submit pull requests [here](https://github.com/Kotlin/kotlinx-benchmark/pulls). |
| 14 | +However, please keep in mind that maintainers will have to support the resulting code of the project, |
| 15 | +so do familiarize yourself with the following guidelines. |
| 16 | + |
| 17 | +* All development (both new features and bug fixes) is performed in the `master` branch. |
| 18 | + * Base your PRs against the `master` branch. |
| 19 | +* If you make any code changes: |
| 20 | + * Follow the [Kotlin Coding Conventions](https://kotlinlang.org/docs/reference/coding-conventions.html). |
| 21 | + * Use 4 spaces for indentation. |
| 22 | + * Use imports with '*'. |
| 23 | + * [Build the project](#building) to make sure it all works and passes the tests. |
| 24 | +* If you fix a bug: |
| 25 | + * Write the test that reproduces the bug. |
| 26 | + * Depending on a particular bug, it may require either a unit or an integration test. For the latter, please check [integration module](integration/src/test) for examples. |
| 27 | + * Fixes without tests are accepted only in exceptional circumstances if it can be shown that writing the |
| 28 | + corresponding test is too hard or otherwise impractical. |
| 29 | + * Follow the style of writing tests that is used in this project: |
| 30 | + name test functions as `testXxx`. Don't use backticks in test names. |
| 31 | +* Comment on the existing issue if you want to work on it. Ensure that the issue not only describes a problem, but also describes a solution that has received positive feedback. Propose a solution if none has been suggested. |
| 32 | + |
| 33 | +## Building |
| 34 | + |
| 35 | +This project is built with Gradle. |
| 36 | + |
| 37 | +* Run `./gradlew build` to build. It also runs all the tests. |
| 38 | + |
| 39 | +You can import this project into IDEA, but you have to delegate build actions |
| 40 | +to Gradle (in Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle -> Build and run). |
| 41 | + |
| 42 | +### Updating the public API dump |
| 43 | + |
| 44 | +* Use the [Binary Compatibility Validator](https://github.com/Kotlin/binary-compatibility-validator/blob/master/README.md) for updates to public API: |
| 45 | + * Run `./gradlew apiDump` to update API index files. |
| 46 | + * Commit the updated API indexes together with other changes. |
0 commit comments