Skip to content

Commit

Permalink
add contribution guide
Browse files Browse the repository at this point in the history
  • Loading branch information
osiegmar committed Aug 30, 2024
1 parent 1806896 commit 9003836
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 17 deletions.
16 changes: 1 addition & 15 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,3 @@
# How to Contribute

Are you considering contributing to this project? That's great; help is always welcome.

Please make sure to read the [goals](https://www.fastcsv.org/architecture/goals/) of FastCSV before investing your time.

If you're unsure, start a [discussion](https://github.com/osiegmar/FastCSV/discussions) about your idea first.

## Steps to Take

- Fork
- Code
- Add test(s)
- Run build locally (`./gradlew build`) to ensure coding standards and tests pass
- Run and compare benchmarks (`./gradlew jmh`) to ensure performance is not degraded
- Commit
- Submit a pull request
See our [Contribution Guide](https://fastcsv.org/guides/contribution/) on how to contribute to FastCSV.
3 changes: 1 addition & 2 deletions docs/src/content/docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ tableOfContents:

### How to contribute?

Contributions are welcome! Please refer to
the [contribution guidelines](https://github.com/osiegmar/FastCSV/blob/main/.github/CONTRIBUTING.md).
Contributions are welcome! Please refer to the [Contribution Guide](/guides/contribution/).

### Where to ask questions? Where to get help?

Expand Down
58 changes: 58 additions & 0 deletions docs/src/content/docs/guides/contribution.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: Contribution
---

import { Steps } from '@astrojs/starlight/components';

Are you considering contributing to this project? That's great; help is always welcome.

:::tip
If you are not contributing a very obvious bug fix or documentation update, please start a
[discussion](https://github.com/osiegmar/FastCSV/discussions) about your idea first.
This will help to avoid wasted effort and ensure that your contribution is in line with the project's goals.
:::

<Steps>
0. Prerequisites

- Understand and respect the [goals of the project](/architecture/goals/)
- Get familiar with the [architecture](/architecture/architecture/)
- Accept the [MIT license](https://opensource.org/license/mit) that will also apply to your contributions
- Have Java 21 on our path

1. Fork the [repository](https://github.com/osiegmar/FastCSV) and clone it to your local machine

See [GitHub's documentation](https://docs.github.com/en/get-started/quickstart/fork-a-repo) for more information.

2. Create a feature branch

```bash
git checkout -b feature/my-feature
```

3. Write code and tests

FastCSV enforces top-notch test coverage. Make sure to write proper tests for your code.

4. Build the project, run tests and static code analysis

```bash
./gradlew build
```

To prevent performance degradation, run and compare benchmarks:

```bash
./gradlew jmh
```

5. Update documentation

- Add your change to the `CHANGELOG.md`
- Check documentation `/docs/` for required updates or create new documentation
- Update the `README.md` if necessary

6. Commit, push and create a pull request

See [GitHub's documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) for more information.
</Steps>

0 comments on commit 9003836

Please sign in to comment.