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