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-pythonandsupertokens-rootshould exist side by side within the same parent directory. - Create a virtual environment for the
supertokens-pythonproject and activate it. - Install the project dependencies
make dev-install - Add git pre-commit hooks
make set-up-hooks
- Open the
supertokens-pythonproject in your IDE and you can start modifying the code. - Use
make lintto 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_VERSIONto 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)?synciomodules of that recipe. - Make sure the corresponding
RecipeImplementationtakes type imports from theinterfaces.pyfile 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
APIImplementationtakes type imports from theinterfaces.pyfile 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