From f5b819d6ff253b6ac542fd47adf7a23bbd4a3dee Mon Sep 17 00:00:00 2001
From: markus holzer <markus.holzer@fau.de>
Date: Mon, 28 Jun 2021 18:31:49 +0200
Subject: [PATCH] Added contribution

---
 CONTRIBUTING.md | 85 +++++++++++++++++++++++++++++++++++++++++++++++++
 MANIFEST.in     |  1 +
 README.md       |  6 ++--
 3 files changed, 90 insertions(+), 2 deletions(-)
 create mode 100644 CONTRIBUTING.md

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 000000000..10945f027
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,85 @@
+# Contributing
+
+Contributions to pystencils are always welcome, and they are greatly appreciated!
+A list of open problems can be found [here]( https://i10git.cs.fau.de/pycodegen/pystencils/-/issues).
+Of course, it is also always appreciated to bring own ideas and problems to the community!
+
+
+Please submit all contributions to the official [GitLab repository](https://i10git.cs.fau.de/pycodegen/pystencils).
+There also exists a GitHub repository, which is only a mirror to the GitLab repository.
+
+You can contribute in many different ways:
+
+## Types of Contributions
+
+### Report Bugs
+
+Report bugs at [https://i10git.cs.fau.de/pycodegen/pystencils/-/issues](https://i10git.cs.fau.de/pycodegen/pystencils/-/issues).
+
+For pystincls, it is often necessary to provide the python and [SymPy](https://www.sympy.org/en/index.html) versions used and hardware information like the
+processor architecture and the compiler version used to compile the generated kernels.
+
+### Fix Issues
+
+Look through the GitLab issues. There are different tags indicating the status of the issues.
+The "bug" tag indicates problems with pystencils while the "feature" tag is a possibility to contribute own ideas to pystencils.
+
+### Write Documentation
+
+The documentation of pystencils can be found [here](https://pycodegen.pages.i10git.cs.fau.de/pystencils/). Jupyter notebooks are used to provide an
+interactive start to pystencils. It is always appreciated if new document notebooks are provided
+since this helps others a lot.
+
+## Get Started!
+
+Ready to contribute? Here's how to set up `pystencils` for local development.
+
+1. Fork the `pystencils` repo on GitLab.
+2. Clone your fork locally:
+```bash
+    $ git clone https://i10git.cs.fau.de/your-name/pystencils
+```
+3. Install your local copy into a virtualenv. It is also recommended to use anaconda or miniconda to manage the python environments.
+```bash
+    $ mkvirtualenv pystencils
+    $ cd pystencils/
+    $ pip install -e .
+```
+4. Create a branch for local development:
+```bash
+    $ git checkout -b name-of-your-bugfix-or-feature
+```
+   Now you can make your changes locally.
+
+5. When you're done making changes, check that your changes pass flake8 and the
+   tests
+```bash
+    $ flake8 pystencils
+    $ py.test -v -n $NUM_CORES -m "not longrun" .
+   
+```
+
+   To get all packages needed for development a requirenments list can be found [here](https://i10git.cs.fau.de/pycodegen/pycodegen/-/blob/master/conda_environment_dev.yml). This includes flake8 and pytest.
+
+6. Commit your changes and push your branch to GitHub::
+```bash
+    $ git add .
+    $ git commit -m "Your detailed description of your changes."
+    $ git push origin name-of-your-bugfix-or-feature
+```
+7. Submit a merge request on GitLab.
+
+## Merge Request Guidelines
+
+Before you submit a merge request, check that it meets these guidelines:
+
+1. All functionality which is implemented through this merge request should be covered by unit tests. These are implemented in `pystencil_tests`
+2. If the merge request adds functionality, the docs should be updated. Put
+   your new functionality into a function with a docstring.
+
+## Tips
+
+To run a subset of tests:
+```bash
+$ py.test my_test.py
+```
diff --git a/MANIFEST.in b/MANIFEST.in
index 456fe8d83..90981715c 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,6 +1,7 @@
 include README.md
 include COPYING.txt
 include AUTHORS.txt
+include CONTRIBUTING.md
 global-include *.pyx
 include versioneer.py
 include pystencils/_version.py
diff --git a/README.md b/README.md
index 144028bb6..bd171e2b2 100644
--- a/README.md
+++ b/README.md
@@ -59,8 +59,10 @@ All options:
 
 Options can be combined e.g.
 ```bash
-pip install pystencils[interactive,gpu,doc]
-```    
+pip install pystencils[interactive, gpu, doc]
+```
+
+pystencils is also fully compatible with Windows machines. If working with visual studio, a pycuda makes sure to run example files first to ensure that pycuda can find the compiler's executable.
 
 Documentation
 -------------
-- 
GitLab