# Contributing Guide of `pydykit`

Thank you for investing your time in contributing to this project!
Please follow the [Code of Conduct](./CODE_OF_CONDUCT.md) to keep the community approachable and respectable.
In this guide you will get an overview of the contribution workflow.

## New Contributor Guide

To get an overview of the project, read the
[README](README.md)
as well as
[the docs](https://pydykit.github.io/pydykit/).
Github offers the following resources to help you get started with open source contributions:

- [Set up Git](https://docs.github.com/en/get-started/quickstart/set-up-git)
- [Fork a repo](https://docs.github.com/en/get-started/quickstart/fork-a-repo)
- [Contributing to projects](https://docs.github.com/en/get-started/quickstart/contributing-to-projects)

## Bugs / Issues

We don't like bugs, and are therefore grateful for any possibility to fix them.
Please report any problems by
[opening an issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-an-issue).
Screenshots as well as minimal working examples are highly appreciated, as they ease the understanding of the problem.

## Workflow: Fork -> Modify -> Test -> Pull Request

The main goal of the project is the reuse of research code to increase the reliability of research results and to accelerate and simplify further research.
This objective implies the need for continuous extension and improvement.
As a consequence, code contributions of any kind are welcome.

Please

- **fork** the repository,
- **modify** and extend the code in your personal fork,
- run **tests**,
- run `pre-commit` to ensure code style,
- open a **pull request** to incorporate your changes into original the project after review.

## Run tests

See [test/README.md](./test/README.md)

## Format with [`pre-commit`][pre_commit]

```bash
pip install pre-commit
pre-commit install
```

Manually run `pre-commit` with

```bash
pre-commit run -a
```

[pre_commit]: https://pre-commit.com
