# Contributing

A big welcome and thank you for considering contributing to [H & D](https://h-d-gmbh.de/) open
source projects!
We love your input! We want to make contributing to this project as easy and transparent as
possible, whether it's:

- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features

Reading and following these guidelines will help us make the process easy and effective for everyone
involved.

## General contribution information

Contributions are made to this repo via issues, discussions and pull requests (PRs).
A few general guidelines:

- To report security vulnerabilities, please write a mail to
  [our team](mailto:contact-oss@h-d-gmbh.de?subject=%5BINCIDENT%5D%20quick-microservice-rs%20-%20)
  and do not report it via issues or discussions.
- Search for existing issues, discussions and PRs before creating your own.
- Provide a detailed description and all necessary information required for your concern.
- For non-trivial changes, create a [discussion][discussions] first.
- PRs must address a single concern in the least number of changed lines as possible.
- Changes to the code are introduced using the [GitHub flow][github-flow].

### Discussions

[Discussions][discussions] are an informal way to talk about changes or to ask questions about the
project.

[Discussions][discussions] are also great to start a conversation about a planned change and to get
other opinions/solutions for them.

### Issues

[Issues][issues] are the formal way to report bugs or request new features.

To work efficiently with [issues], all the necessary information must be added in the description.
Adding a description of how to reproduce a bug or what the expectations for a new feature are does
help, too.

It is considered a good practice to first open an issue and give the team time to respond, before
proposing changes for it.

### Pull Requests (PRs)

Changes are introduced using pull requests with aforementioned [GitHub flow][github-flow]. \
Here is a quick overview over the workflow:

1. Fork the project
2. Clone your fork
3. Create a branch for your changes
4. Make your changes
5. Push your changes to your fork
6. Create a pull request

An ongoing effort is to ensure your fork is up-to-date and that your changes are made on top of the
latest changes in the upstream project.

<!-- link references -->

[discussions]: https://github.com/hd-gmbh-dev/quick-microservice-rs/discussions
[issues]: https://github.com/hd-gmbh-dev/quick-microservice-rs/issues
[github-flow]: https://docs.github.com/en/get-started/using-github/github-flow
