|
| 1 | + |
| 2 | +# Start Contributing to Typelevel |
| 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! A practical path that works well across most Typelevel repositories: |
| 5 | + |
| 6 | +#### Find something that can be improved |
| 7 | + - Look for open issues, especially those labeled `good first issue` or `help wanted`. |
| 8 | + - Browse the curated [good-first-issues board](https://github.com/orgs/typelevel/projects/1/) |
| 9 | + - If you're already using the library, improve something that bothered you. |
| 10 | + - Documentation and tests are excellent starting points too. |
| 11 | + |
| 12 | +#### Understand the problem first |
| 13 | + - Read the issue carefully, understand the current implementation. |
| 14 | + - Look for existing PRs or recent comments |
| 15 | + - Check whether a solution was already proposed. |
| 16 | + |
| 17 | +#### Communication is Key |
| 18 | + - Comment on the issue saying you'd like to work on it and briefly describe your idea or approach. |
| 19 | + - Ask clarifying questions if anything is unclear. |
| 20 | + - If the change is small, you can open a draft PR early to get feedback. |
| 21 | + |
| 22 | +#### Open a PR and iterate |
| 23 | + - Fork the repo, create a branch, and implement the change. Add or update tests where appropriate. |
| 24 | + - Open a PR with a clear description of the problem and your solution. Read the [Typelevel AI policy](https://typelevel.org/gsoc/ai.html). |
| 25 | + - Expect review feedback, ask questions, adjust your changes, and iterate. |
| 26 | + |
| 27 | +#### Become a User First |
| 28 | + |
| 29 | +Build something small with Cats Effect. Try streaming something with FS2. Use http4s for a simple service. Build with [Typelevel Toolkit](https://typelevel.org/blog/). |
| 30 | +A common piece of advice from the community is: |
| 31 | + |
| 32 | +> Become a user of the ecosystem you want to contribute to. |
| 33 | +
|
| 34 | +#### Where to Ask for Help |
| 35 | + |
| 36 | +- Join the [Typelevel Discord](https://discord.gg/typelevel-632277896739946517) |
| 37 | +- Ask in `#starting-contributing` if you're new to contributing. |
| 38 | +- Use library-specific channels like `#cats`, `#cats-effect`, `#fs2`, or `#http4s` for more focused questions. |
| 39 | +- You can also ask directly on a GitHub issue if your question is specific to that issue. |
0 commit comments