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 lint
to find lint/formatting errors before committing. (They will run anyways)
Caution
These tests run by creating multiple applications on the supertokens-core, and should not be run on actual core instances.
Use the Docker compose.yml
file to run the required containers for tests.
- Install
docker
- Docker Desktop is convenient to install and use, and includes a Docker Engine.
- Docker Engine is the minimum requirement to spin up containers required for tests.
- To run all tests, use
make test
.- NOTE: This starts up a docker container, and is required for tests to run.
- Set
SUPERTOKENS_CORE_VERSION
to pull a certain image, defaults tolatest
.
- To run individual tests
docker compose up --wait; 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