|
1 | 1 |
|
2 | 2 | # Start Contributing to Typelevel |
3 | 3 |
|
4 | | -Typelevel projects power a large part of the functional Scala ecosystem. They are also complex, long-lived codebases with active communities. Contributing can feel intimidating at first, but the path in is actually quite simple! |
| 4 | +Typelevel projects power a large part of the functional Scala ecosystem. They are also complex, long-lived codebases with active communities. Contributing can feel intimidating at first, but even bug reports, small fixes, and documentation updates help move our projects forward! |
5 | 5 |
|
6 | | -Build something small with Cats Effect. Try streaming something with FS2. Use http4s for a simple service. Build with [Typelevel Toolkit](https://typelevel.org/toolkit/). Build a static site with Laika. |
7 | 6 |
|
8 | | -> Become a user of the ecosystem you want to contribute to. |
| 7 | +**Become a user of the ecosystem you want to contribute to.** |
9 | 8 |
|
10 | | -Also some tips that works well across most Typelevel repositories: |
| 9 | +- Use the [Typelevel Toolkit](https://typelevel.org/toolkit/) to experiment with [Cats](https://typelevel.org/cats) and [Cats Effect](https://typelevel.org/cats-effect/). |
| 10 | +- Try streaming something with [FS2](https://fs2.io/#/). |
| 11 | +- Use [http4s](https://http4s.org/) for a simple service. |
| 12 | +- Build a static site with [Laika](https://typelevel.org/Laika). |
11 | 13 |
|
12 | | -#### Find something that can be improved |
| 14 | + |
| 15 | +**Find something that can be improved** |
13 | 16 | - Look for open issues, especially those labeled `good first issue` or `help wanted`. |
14 | 17 | - Browse the curated [good-first-issues board](https://github.com/orgs/typelevel/projects/1/). |
15 | 18 | - If you're already using the library, improve something that bothered you. |
16 | 19 | - Documentation and tests are excellent starting points too. |
17 | 20 |
|
18 | | -#### Understand the problem first |
| 21 | +**Understand the problem** |
19 | 22 | - Read the issue carefully, understand the current implementation. |
20 | 23 | - Look for existing PRs or recent comments. |
21 | 24 | - Check whether a solution was already proposed. |
22 | 25 |
|
23 | | -#### Communication is Key |
| 26 | +**Communication with the community** |
24 | 27 | - Comment on the issue saying you'd like to work on it and briefly describe your idea or approach. |
25 | 28 | - Ask clarifying questions if anything is unclear. |
26 | 29 | - If the change is small, you can open a draft PR early to get feedback. |
27 | 30 |
|
28 | | -#### Open a PR and iterate |
| 31 | +**Open a PR and iterate** |
29 | 32 | - Fork the repo, create a branch, and implement the change. Add or update tests where appropriate. |
30 | 33 | - Open a PR with a clear description of the problem and your solution. |
31 | 34 | - Expect review feedback, ask questions, adjust your changes, and iterate. |
32 | 35 |
|
33 | | -#### Where to Ask for Help |
| 36 | +## Where to Ask for Help |
34 | 37 | - Join the [Typelevel Discord](https://discord.gg/typelevel-632277896739946517). |
35 | 38 | - Ask in `#starting-contributing` if you're new to contributing. |
36 | 39 | - Use library-specific channels like `#cats`, `#cats-effect`, `#fs2`, or `#http4s` for more focused questions. |
37 | 40 | - You can also ask directly on a GitHub issue if your question is specific to that issue. |
| 41 | + |
| 42 | +> **Note:** This guide emphasises learning and understanding. While most Typelevel projects accept AI written contributions, simply using such tools to fix a bug does not help you learn the codebase and gain the understanding needed to make more significant contributions. |
0 commit comments