👍🎉 Thank you very much for taking the time to contribute! 🎉👍
This is how you can setup your development environment for flowpipe:
git clone https://github.com/PaulSchweizer/flowpipe.git
cd ./flowpipe
python -m venv venv
pip install -r requirements-dev.txt
pre-commit install
# Run the tests to confirm that your setup is complete
python setup.py develop
pytest ./tests
Please don't hesitate to submit any questions as tickets on github! Please also note that we have set of examples and a readme so you might be able to find answers in there as well.
Same as for questions, please submit your feature requests, ideas and bug reports as tickets on github. Any such contribution is very much appreciated as it helps to improve this project further.
Please fork the repo, create a branch for your changes and submit a pull request. Pull requests should follow the below conventions. Also note that we are always squashing when merging the PRs so don't worry about the number of commits on your PR.
We want to keep this library backwards compatible to python 2.7 for now. The reason is that I know of two users who still run this package in a python 2.7 environment and I would like to provide support for them (until they have switched to py3). With that being said, we also aim for compatibility with python 3.6+.
We have an extensive, reliable test suite and we want to keep it that way, so please write sufficient tests for your contributions.
We also want to keep the coverage at 100%. If there are good reasons for not covering parts of the code, please explicitely exclude them either via # pragma: no cover
directly in the code or by specifying it in the .coveragerc file.
The tests have to pass on travis (py2.7 and py3.6).
- We use black
- For docstrings please use the google style
Currently there is no specific release policy enacted, so please state in your Pull Request whether you'd need a new PyPi release after the merge and we will release it.
To perform a release as a collaborator, follow this recipe:
- On the master branch, update the version number in
pyproject.toml
anddocs\conf.py
. - Tag the commit and push the tag.
- Commit and push that change.
- On the github page, navigate to "Releases" and "Draft a new release".
- Enter the required info for a new release. Make sure the version number you give here is the same as in setup.py!
- Click "Publish release", and the CI pipeline will automatically build a new release and push it to PyPi via github actions (see publish.yml).
If you have made some contributions already and want to become more involved in the project please don't hesitate to ask about becoming a collaborator.