# Contributing 

Dear contributors,

This work started at the end of 2020 with the intention to enable our users to use our products more freely. To enable to program you own solutions to current challanges. To create parametric and custom made scripts to unlock full potential of what we offer as company.

That said we created this Client to resemble RFEM as close as possible. To enable inexperienced users to get their solutions up and running ASAP. This also means that we follow certain structure. It is maybe not the most Pythonic API you came across, but it follows our intention well. It is important to note, that it doesn’t mean we prohibit individual solutions. Quite the opposite. You can create forks that suit your needs. We can even share solutions and we will be excited if you decide to work with us. But when contributing to our public Client, please follow the idea as close as possible. We spend a lot of time enhancing it and make it the best experince possible.

We appeciate all your contributions.

## Setup
* Sign into your GitHub account, or [create a free GitHub account](https://github.com/join) if you don't have one.
* Read [license](/LICENSE) of the project
* [Fork](https://github.com/Dlubal-Software/RFEM_Python_Client/fork) the project repository
  This creates a copy of our project repository in your GitHub account.   
  Now, you can update your repository from upstream.
 * Clone repository to your desktop

## Development
* Make your branch  with specified naming - yourGitHubName-FeatureName
* Add your development
* **Do not change anything in automatically generated source code files in our docs**
* Follow [Python standards](https://peps.python.org/pep-0008/). Also using Pylint is great idea 
* We prefer to use DocStrings directly in the code, so that documentation could be generated
* Create Unit Tests for testing your development
* Create example to present newly created feature
* Check your spelling and grammar
* Execute static analysis of the code using for example Pylint
* Update your forked repository from upstream
* Solve possible conflicts
* Create Pull request
* Your code will be reviewed
* Once Pull request is approved code is merged and branch deleted
* We will add you as contributor

Please note we have a [code of conduct](/CODE_OF_CONDUCT.md), please follow it in all your interactions with the project.
