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