We're so excited you're interested in helping with SuperTokens! We are happy to help you get started, even if you don't have any previous open-source experience 😊
- Take a look at How to Contribute to an Open Source Project on GitHub
- Go through the SuperTokens Code of Conduct
- Check our Github Issues to see if someone has already answered your question.
- Join our community on Discord and feel free to ask us your questions
You will need to setup the supertokens-core in order to run the supertokens-python
tests, you can setup supertokens-core
by following this guide
Note: If you are not contributing to the supertokens-core
you can skip steps 1 & 4 under Project Setup of the supertokens-core
contributing guide.
- Fork the supertokens-python repository.
- Clone the forked repository in the parent directory of the previously setup
supertokens-root
.supertokens-python
andsupertokens-root
should exist side by side within the same parent directory. - Create a virtual environment for the
supertokens-python
project and activate it. - Install the project dependencies
make dev-install
- Add git pre-commit hooks
make set-up-hooks
- Open the
supertokens-python
project in your IDE and you can start modifying the code. - Use
make check-lint
andmake format
to find lint/formatting errors before committing. (They will run anyways)
- Navigate to the supertokens-root repository.
- Start the testing environment
./startTestEnv --wait
and ensure the test environment is up and running. - Open a new terminal and navigate to the
supertokens-python
respositry. - Use
export SUPERTOKENS_PATH=path/to/supertokens-root
(MANDATORY) - To run all tests, while ensuring the test environment is running on a different terminal, use
make test
. - To run individual tests, use
INSTALL_DIR=../supertokens-root pytest ./tests/path/to/test/file.py::test_function_name
OR use your IDE's in-built UI for running python tests. You may read VSCode Python Testing and PyCharm Testing for more info.
- Before submitting a pull request make sure all tests have passed.
- Reference the relevant issue or pull request and give a clear description of changes/features added when submitting a pull request.
- Make sure the PR title follows conventional commits specification.
SuperTokens is made possible by a passionate team and a strong community of developers. If you have any questions or would like to get more involved in the SuperTokens community you can check out:
Additional resources you might find useful:
- Make sure all CRUD operations are available via the
(a)?syncio
modules of that recipe. - Make sure the corresponding
RecipeImplementation
takes type imports from theinterfaces.py
file of that recipe. This is so that if a user wants to copy / paste that code into their project, they can do so via the normal import statement.
- Make sure the corresonding
APIImplementation
takes type imports from theinterfaces.py
file of that recipe. This is so that if a user wants to copy / paste that code into their project, they can do so via the normal import statement.
This will generate the API docs in a folder called docs
make build-docs