Skip to content

Commit da3dca5

Browse files
authored
Merge pull request #616 from abby-ql/add-start-contributing
Add getting started pages
2 parents ea725d3 + 46c2457 commit da3dca5

4 files changed

Lines changed: 115 additions & 0 deletions

File tree

src/community/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,11 @@ Typelevel boasts an impressive ecosystem of affiliate projects, built by our com
2424
@:fragment(coc)
2525
The Typelevel community is dedicated to providing a positive experience for everyone. Whether you are new or familiar with our community, we care about making it a welcoming and safe place for you and we are here to support you.
2626
@:@
27+
28+
@:fragment(contributing)
29+
Learn how to get involved in Typelevel projects. Find good first issues, understand the workflow, and collaborate with maintainers.
30+
@:@
31+
32+
@:fragment(resources)
33+
Explore recommended books, courses, and documentation for learning functional programming in Scala and the Typelevel ecosystem.
34+
@:@

src/community/about.template.html

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,38 @@ <h4 class="bulma-is-4 bulma-has-text-danger-20">Code of Conduct</h4>
6868
</div>
6969
</div>
7070
</div>
71+
<div class="bulma-column bulma-is-6-tablet bulma-is-12-mobile">
72+
<div class="bulma-card bulma-has-background-info-95">
73+
<div class="bulma-card-content bulma-has-text-centered">
74+
<span class="bulma-icon bulma-large bulma-has-text-info bulma-is-large bulma-is-size-3">
75+
@:svg(fa-puzzle-piece)
76+
</span>
77+
<h4 class="bulma-is-4 bulma-has-text-info-20">Start Contributing</h4>
78+
<div class="bulma-content bulma-has-text-left hyphenate">
79+
${cursor.currentDocument.fragments.contributing}
80+
</div>
81+
<a class="bulma-button bulma-is-info" href="@:target(start-contributing.md)">
82+
Learn How
83+
</a>
84+
</div>
85+
</div>
86+
</div>
87+
<div class="bulma-column bulma-is-6-tablet bulma-is-12-mobile">
88+
<div class="bulma-card bulma-has-background-link-95">
89+
<div class="bulma-card-content bulma-has-text-centered">
90+
<span class="bulma-icon bulma-large bulma-has-text-link bulma-is-large bulma-is-size-3">
91+
@:svg(fa-person-chalkboard)
92+
</span>
93+
<h4 class="bulma-is-4 bulma-has-text-link-20">Learning Resources</h4>
94+
<div class="bulma-content bulma-has-text-left hyphenate">
95+
${cursor.currentDocument.fragments.resources}
96+
</div>
97+
<a class="bulma-button bulma-is-link" href="@:target(learning-resources.md)">
98+
View Resources
99+
</a>
100+
</div>
101+
</div>
102+
</div>
71103
</div>
72104
</div>
73105
@:@
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
2+
# Learning Resources
3+
4+
This is a collection of community recommended resources for functional programming in Scala and materials that help contributors understand the ideas behind Typelevel libraries.
5+
6+
> These resources are optional. You can start contributing with good first issues or examples and learn more as you go!
7+
8+
## Foundational books & guides
9+
10+
- **[Creative Scala](https://www.creativescala.org/creative-scala/)**: Hands-on exercises and usage for practising Scala.
11+
12+
- **[Essential Scala](https://underscore.io/books/essential-scala/)**: A functionally-friendly introduction to Scala language features.
13+
14+
- **[Scala with Cats](https://scalawithcats.com)**: Practical introduction to Cats
15+
16+
- **[Functional Programming in Scala](https://www.manning.com/books/functional-programming-in-scala-second-edition)**: A classic introduction to FP ideas in Scala; strong on the thinking behind libraries like Cats.
17+
18+
19+
## Documentation for Key Libraries
20+
21+
- **[Cats Effect](https://typelevel.org/cats-effect/)**: Core to the modern Typelevel runtime model.
22+
23+
- **[FS2](https://fs2.io)**: Functional streaming library used throughout the ecosystem.
24+
25+
- **[http4s](https://http4s.org)**: Functional HTTP toolkit for Scala.
26+
27+
- **[Circe](https://circe.github.io/circe)**: JSON library for Scala.
28+
29+
- **[Laika](https://typelevel.org/Laika/)**: Site and E-book Generator and Customizable Text Markup Transformer in Scala
30+
31+
32+
## Tutorials & Courses
33+
34+
- Coursera courses [Functional Programming in Scala](https://www.coursera.org/learn/scala-functional-programming) (useful if you prefer lecture-style learning and a systematic introduction).
35+
36+
## Scala ecosystem docs
37+
38+
- **[Official Scala documentation](https://docs.scala-lang.org/)**: general language reference and guides
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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

Comments
 (0)