@@ -9,13 +9,31 @@ Both bug reports and feature requests are welcome.
99Submit issues [ here] ( https://github.com/Kotlin/kotlinx.coroutines/issues ) .
1010Questions about usage and general inquiries are better suited for [ StackOverflow] ( https://stackoverflow.com )
1111or the ` #coroutines ` channel in [ KotlinLang Slack] ( https://surveys.jetbrains.com/s3/kotlin-slack-sign-up ) .
12+ There, questions get answered much quicker than they do in this issue tracker,
13+ while also reducing the load on the maintainers.
14+
15+ ### Commenting on issues
16+
17+ Describing why you're interested in some specific issue helps us a lot with looking for the best solution.
18+ The more experiences, concerns, or suggestions get shared, the better!
19+ If you feel that something you know hasn't been said (or even if the issue discussion is too long to actually
20+ make sure of it), please do not hesitate to drop a line.
21+
22+ If you feel like your case was already described and you have nothing to add, please still let us know about
23+ your interest by leaving a smiley (👍)! We use these as indicators of demand.
24+
25+ Plese not that there is no need to leave a comment in this case, though.
26+ "+1"-style remarks or questions about the progress on an issue do not bring anything new
27+ and only create noise, complicating the job of finding insight in the discussion.
28+ Please avoid this. We reserve the right to delete such comments.
1229
1330## Submitting PRs
1431
1532We love PRs. Submit PRs [ here] ( https://github.com/Kotlin/kotlinx.coroutines/pulls ) .
1633However, please keep in mind that maintainers will have to support the resulting code of the project,
1734so do familiarize yourself with the following guidelines.
1835
36+ * Before introducing a code change,
1937* All development (both new features and bug fixes) is performed in the ` develop ` branch.
2038 * The ` master ` branch contains the sources of the most recently released version.
2139 * Base your PRs against the ` develop ` branch.
@@ -35,48 +53,36 @@ so do familiarize yourself with the following guidelines.
3553 then separate them with a comment instead.
3654 * [ Build the project] ( #building ) to make sure everything works and passes the tests.
3755* If you fix a bug:
56+ * Note that what is a bug for some can be a feature for others.
57+ Are you truly fixing a problem? Is there an open issue about it?
3858 * Write the test that reproduces the bug.
3959 * Fixes without tests are accepted only in exceptional circumstances if it can be shown that writing the
4060 corresponding test is too hard or otherwise impractical.
4161 * Follow the style of writing tests that is used in this project:
4262 name test functions as ` testXxx ` . Don't use backticks in test names.
4363* If you introduce any new public APIs:
44- * Comment on the existing issue if you want to work on it or create one beforehand.
45- Ensure that not only the issue describes a problem, but also that the proposed solution has received positive
46- feedback. Propose a solution if there isn't any.
47- PRs that add new API without a corresponding issue with positive feedback about the proposed implementation are
48- unlikely to be approved or reviewed.
64+ * Before setting out to work on a problem, comment on the existing issue or create one,
65+ proposing a solution and gathering feedback first before implementing it.
66+ PRs that add new API without the corresponding issue with positive feedback about the proposed implementation are
67+ very unlikely to be approved or reviewed.
4968 * All new APIs must come with documentation and tests.
5069 * All new APIs are initially released with the ` @ExperimentalCoroutineApi ` annotation and graduate later.
5170 * [ Update the public API dumps] ( #updating-the-public-api-dump ) and commit the resulting changes as well.
5271 It will not pass the tests otherwise.
53- * If you plan large API additions, then please start by submitting an issue with the proposed API design
54- to gather community feedback.
55- * [ Contact the maintainers] ( #contacting-maintainers ) to coordinate any extensive work in advance.
5672
5773## Building
5874
5975This library is built with Gradle.
6076
61- * Run ` ./gradlew build ` to build. It also runs all the tests.
62- * Run ` ./gradlew <module>:check ` to test the module you are looking at to speed
77+ * Run ` ./gradlew build ` to build, also running all of the tests.
78+ * Run ` ./gradlew <module>:check ` to test the module you are working with to speed
6379 things up during development.
6480* Run ` ./gradlew <module>:jvmTest ` to perform only the fast JVM tests of a multiplatform module.
65-
66- You can import this project into IDEA, but you have to delegate build actions
67- to Gradle (in Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle -> Build and run).
81+ * Run ` ./gradlew <module>:jvmTest -Pstress=true ` to run both fast and slow JVM tests.
6882
6983### Environment requirements
7084
71- * JDK >= 11 referred to by the ` JAVA_HOME ` environment variable.
72- * JDK 1.8 referred to by the ` JDK_18 ` environment variable. Only used by nightly stress-tests.
73- It is OK to have ` JDK_18 ` point to a non-1.8 JDK (e.g. ` JAVA_HOME ` ) for external contributions.
74-
75- For external contributions you can, for example, add this to your shell startup scripts (e.g. ` ~/.zshrc ` ):
76- ``` shell
77- # This assumes JAVA_HOME is set already to a JDK >= 11 version
78- export JDK_18=" $JAVA_HOME "
79- ```
85+ JDK >= 11 referred to by the ` JAVA_HOME ` environment variable.
8086
8187### Running the Knit tool
8288
0 commit comments