Skip to content

Commit 4dcf8a6

Browse files
authored
Update the contribution guidelines (#4458)
1 parent 8062e9f commit 4dcf8a6

File tree

1 file changed

+28
-22
lines changed

1 file changed

+28
-22
lines changed

CONTRIBUTING.md

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,31 @@ Both bug reports and feature requests are welcome.
99
Submit issues [here](https://github.com/Kotlin/kotlinx.coroutines/issues).
1010
Questions about usage and general inquiries are better suited for [StackOverflow](https://stackoverflow.com)
1111
or 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

1532
We love PRs. Submit PRs [here](https://github.com/Kotlin/kotlinx.coroutines/pulls).
1633
However, please keep in mind that maintainers will have to support the resulting code of the project,
1734
so 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

5975
This 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

Comments
 (0)