Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/community/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ The Typelevel community is dedicated to providing a positive experience for ever
@:@

@:fragment(contributing)
Learn how to get involved in Typelevel projects. Find good first issues, understand the workflow, and collaborate with maintainers.
The projects in the Typelevel ecosystem are all open-source. Learn how to contribute to Typelevel and help maintain your favorite projects. Find good first issues, understand the workflow, and collaborate with maintainers.
@:@

@:fragment(resources)
Explore recommended books, courses, and documentation for learning functional programming in Scala and the Typelevel ecosystem.
@:@
Learn functional programming fundamentals and the theory behind the design of Typelevel libraries. Explore recommended books, courses, and documentation for learning functional programming in Scala and the Typelevel ecosystem.
@:@
48 changes: 24 additions & 24 deletions src/community/about.template.html
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
@:embed(/templates/main.template.html)
<div class="bulma-section bulma-content bulma-container bulma-is-max-desktop">
<div class="bulma-section bulma-content bulma-container bulma-is-max-fullhd">

${cursor.currentDocument.content}

<div class="bulma-columns bulma-is-multiline">
<div class="bulma-column bulma-is-6-tablet bulma-is-12-mobile">
<div class="bulma-column bulma-is-6 bulma-is-12-mobile bulma-is-4-fullhd">
<div class="bulma-card bulma-has-background-primary-light">
<div class="bulma-card-content bulma-has-text-centered">
<div class="bulma-card-content bulma-has-text-centered ">
<span class="bulma-icon bulma-large bulma-has-text-primary bulma-is-large bulma-is-size-3">
@:svg(fa-discord)
</span>
Expand All @@ -20,7 +20,7 @@ <h4 class="bulma-is-4 bulma-has-text-primary-25">Discord Server</h4>
</div>
</div>
</div>
<div class="bulma-column bulma-is-6-tablet bulma-is-12-mobile">
<div class="bulma-column bulma-is-6 bulma-is-12-mobile bulma-is-4-fullhd">
<div class="bulma-card bulma-has-background-warning-95">
<div class="bulma-card-content bulma-has-text-centered">
<span class="bulma-icon bulma-large bulma-has-text-warning bulma-is-large bulma-is-size-3">
Expand All @@ -36,13 +36,13 @@ <h4 class="bulma-is-4 bulma-has-text-warning-20">Virtual Meetups</h4>
</div>
</div>
</div>
<div class="bulma-column bulma-is-6-tablet bulma-is-12-mobile">
<div class="bulma-column bulma-is-6 bulma-is-12-mobile bulma-is-4-fullhd">
<div class="bulma-card bulma-has-background-success-95">
<div class="bulma-card-content bulma-has-text-centered">
<span class="bulma-icon bulma-large bulma-has-text-success bulma-is-large bulma-is-size-3">
@:svg(fa-puzzle-piece)
</span>
<h4 class="bulma-is-4 bulma-has-text-success-20">Affiliate Projects</h4>
<h4 class="bulma-is-4 bulma-has-text-success-20">Explore Projects</h4>
<div class="bulma-content bulma-has-text-left hyphenate">
${cursor.currentDocument.fragments.projects}
</div>
Expand All @@ -52,23 +52,7 @@ <h4 class="bulma-is-4 bulma-has-text-success-20">Affiliate Projects</h4>
</div>
</div>
</div>
<div class="bulma-column bulma-is-6-tablet bulma-is-12-mobile">
<div class="bulma-card bulma-has-background-danger-95">
<div class="bulma-card-content bulma-has-text-centered">
<span class="bulma-icon bulma-large bulma-has-text-danger bulma-is-large bulma-is-size-3">
@:svg(fa-hand-holding-heart)
</span>
<h4 class="bulma-is-4 bulma-has-text-danger-20">Code of Conduct</h4>
<div class="bulma-content bulma-has-text-left hyphenate">
${cursor.currentDocument.fragments.coc}
</div>
<a class="bulma-button bulma-is-danger bulma-has-text-light" href="@:target(/code-of-conduct/README.md)">
Read the Code of Conduct
</a>
</div>
</div>
</div>
<div class="bulma-column bulma-is-6-tablet bulma-is-12-mobile">
<div class="bulma-column bulma-is-6 bulma-is-12-mobile bulma-is-4-fullhd">
<div class="bulma-card bulma-has-background-info-95">
<div class="bulma-card-content bulma-has-text-centered">
<span class="bulma-icon bulma-large bulma-has-text-info bulma-is-large bulma-is-size-3">
Expand All @@ -84,7 +68,7 @@ <h4 class="bulma-is-4 bulma-has-text-info-20">Start Contributing</h4>
</div>
</div>
</div>
<div class="bulma-column bulma-is-6-tablet bulma-is-12-mobile">
<div class="bulma-column bulma-is-6 bulma-is-12-mobile bulma-is-4-fullhd">
<div class="bulma-card bulma-has-background-link-95">
<div class="bulma-card-content bulma-has-text-centered">
<span class="bulma-icon bulma-large bulma-has-text-link bulma-is-large bulma-is-size-3">
Expand All @@ -100,6 +84,22 @@ <h4 class="bulma-is-4 bulma-has-text-link-20">Learning Resources</h4>
</div>
</div>
</div>
<div class="bulma-column bulma-is-6 bulma-is-12-mobile bulma-is-4-fullhd">
<div class="bulma-card bulma-has-background-danger-95">
<div class="bulma-card-content bulma-has-text-centered">
<span class="bulma-icon bulma-large bulma-has-text-danger bulma-is-large bulma-is-size-3">
@:svg(fa-hand-holding-heart)
</span>
<h4 class="bulma-is-4 bulma-has-text-danger-20">Code of Conduct</h4>
<div class="bulma-content bulma-has-text-left hyphenate">
${cursor.currentDocument.fragments.coc}
</div>
<a class="bulma-button bulma-is-danger bulma-has-text-light" href="@:target(/code-of-conduct/README.md)">
Read the Code of Conduct
</a>
</div>
</div>
</div>
</div>
</div>
@:@
23 changes: 14 additions & 9 deletions src/community/start-contributing.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,42 @@

# Start Contributing to Typelevel

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!
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!

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.

> Become a user of the ecosystem you want to contribute to.
**Become a user of the ecosystem you want to contribute to.**

Also some tips that works well across most Typelevel repositories:
- Use the [Typelevel Toolkit](https://typelevel.org/toolkit/) to experiment with [Cats](https://typelevel.org/cats) and [Cats Effect](https://typelevel.org/cats-effect/).
- Try streaming something with [FS2](https://fs2.io/#/).
- Use [http4s](https://http4s.org/) for a simple service.
- Build a static site with [Laika](https://typelevel.org/Laika).

#### Find something that can be improved

**Find something that can be improved**
- Look for open issues, especially those labeled `good first issue` or `help wanted`.
- Browse the curated [good-first-issues board](https://github.com/orgs/typelevel/projects/1/).
- If you're already using the library, improve something that bothered you.
- Documentation and tests are excellent starting points too.

#### Understand the problem first
**Understand the problem**
- Read the issue carefully, understand the current implementation.
- Look for existing PRs or recent comments.
- Check whether a solution was already proposed.

#### Communication is Key
**Communication with the community**
- Comment on the issue saying you'd like to work on it and briefly describe your idea or approach.
- Ask clarifying questions if anything is unclear.
- If the change is small, you can open a draft PR early to get feedback.

#### Open a PR and iterate
**Open a PR and iterate**
- Fork the repo, create a branch, and implement the change. Add or update tests where appropriate.
- Open a PR with a clear description of the problem and your solution.
- Expect review feedback, ask questions, adjust your changes, and iterate.

#### Where to Ask for Help
## Where to Ask for Help
- Join the [Typelevel Discord](https://discord.gg/typelevel-632277896739946517).
- Ask in `#starting-contributing` if you're new to contributing.
- Use library-specific channels like `#cats`, `#cats-effect`, `#fs2`, or `#http4s` for more focused questions.
- You can also ask directly on a GitHub issue if your question is specific to that issue.

> **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.
Loading