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).

To install Appium related dependencies, simply run:

$ make bootstrap

Step 3: Activate virtual environment

$ source .venv/bin/activate

Step 4: Make changes

To try out e2e tests, you can use the example in tests/e2e/test_example.py. The given test runs against the Wikipedia app.

$ pytest tests/e2e/test_example.py

Note

Prior to running the above test, you might want to build the Wikipedia iOS project. Simply run: make demo.build or e2e demo build. The app will be placed under tmp/apps/example.app

Step 5: Format changes

$ make format

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

Step 6: Run unit tests

$ make test.unit # <-- unit tests

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.