If you spot a problem with the docs, search if an issue already. If a related issue doesn't exist, you can open a new issue.
Scan through our existing issues to find one that interests you. If you find an issue to work on, make sure that no one else is already working on it, so you can get assigned. After that, you are welcome to open a PR with a fix.
You can find a list of good first issues which can help you better understand code base of the project.
To start contributing you should fork this repository and only after that clone your fork. If you accidentally forked this repository you can fix it any time by this command:
# for user-login
git remote --set-url origin https://github.com/your-github-name/quinn.git
# for private keys way
git remote --set-url origin git@github.com:your-github-name/quinn.git
After cloning the project you should install all the dependencies. We are using poetry
as a build tool. You can install poetry
by following this instruction.
You can create a virtualenv with poetry
. The recommended version of Python is 3.9
:
poetry env use python3.9
After that you should install all the dependencies including development:
make install_deps
To run spark tests you need to have properly configured Java. Apache Spark currently supports mainly only Java 8 (1.8). You can find an instruction on how to set up Java here. When you are running spark tests you should have JAVA_HOME
variable in your environment which points to the installation of Java 8.
This project uses pytest
and chispa
for running spark tests. Please run all the tests before creating a pull request. In the case when you are working on new functionality you should also add new tests.
You can run test as following:
make test
This project follows the PySpark style guide. All public functions and methods should be documented in README.md
and also should have docstrings in sphinx format
:
"""[Summary]
:param [ParamName]: [ParamDescription], defaults to [DefaultParamVal]
:type [ParamName]: [ParamType](, optional)
...
:raises [ErrorType]: [ErrorDescription]
...
:return: [ReturnDescription]
:rtype: [ReturnType]
"""
We are using isort
, black
and ruff
as linters. You can find instructions on how to set up and use these tools here:
When you're finished with the changes, create a pull request, also known as a PR.
- Don't forget to link PR to the issue if you are solving one.
- As you update your PR and apply changes, mark each conversation as resolved.
- If you run into any merge issues, checkout this git tutorial to help you resolve merge conflicts and other issues.
- MrPowers
- ...