Contributing

You are more than welcome to contribute to the project in various ways:

  • Implement features

  • Fix bugs

  • Write tests

  • Write documentation

The following section describes the development workflow when contributing to the project.

Development Workflow

Step 1: Clone the project

Step 2: Install dependencies

$ make install

This step install necessary dependencies and creates a virtual environment (in .venv directory).

Step 3: Activate virtual environment

$ source .venv/bin/activate

Step 4: Make changes

Step 5: Format changes

$ make format

This step formats the code with autoflake, isort, black, etc.

Step 6: Run tests (unit tests and integration tests)

$ make test

Alternatively, you can run unit tests and integration tests separately.

$ make test.py # <-- unit tests
$ make test.integration.ios # <-- integration tests (iOS)

Step 7: Commit changes and create pull requests

Conventions

Branch name

If creating branches on the main/original repo (when not using forks), please prefix the branch with your name such as chris/my_working_branch. This way, we know to whom a branch belongs.

Commit message

It is good to reflect the type of the change in the commit message. Let’s use this simple convention as follows.

<CHANGE-TYPE>: <Summary of the change>

As follows are some examples of the commit message:

FEAT: Detect number of parallel runners
CHORE: Update default timeout of build jobs
FIX: Crashed tests are not detected
REFACTOR: Test retry logic
DOC: Update Contributing guidelines

Pull request (PR)

For PR title, let’s use the same convention with commit message.