Dear CS10-Gitlab-users, on Thursday, Feb 3 there will be maintenance. That will lead to a downtime of the CS10-Gitlab-service including Subversion and Mattermost chat from 09:30. This might take the whole day since we don't know how long it is going to take. We are sorry for the inconvenience! Best regards, CS10-Admin-Team

Commit f5b819d6 authored by Markus Holzer's avatar Markus Holzer
Browse files

Added contribution

parent ea0be709
# Contributing
Contributions to pystencils are always welcome, and they are greatly appreciated!
A list of open problems can be found [here](
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](
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 [](
For pystincls, it is often necessary to provide the python and [SymPy]( 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]( 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:
$ git clone
3. Install your local copy into a virtualenv. It is also recommended to use anaconda or miniconda to manage the python environments.
$ mkvirtualenv pystencils
$ cd pystencils/
$ pip install -e .
4. Create a branch for local development:
$ 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
$ 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]( This includes flake8 and pytest.
6. Commit your changes and push your branch to GitHub::
$ 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:
$ py.test
include include
include COPYING.txt include COPYING.txt
include AUTHORS.txt include AUTHORS.txt
global-include *.pyx global-include *.pyx
include include
include pystencils/ include pystencils/
...@@ -59,8 +59,10 @@ All options: ...@@ -59,8 +59,10 @@ All options:
Options can be combined e.g. Options can be combined e.g.
```bash ```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 Documentation
------------- -------------
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment