Skip to content

Contributing

The Appium project would not exist without the many contributions of code, documentation, maintenance, and support from companies and volunteers. As such, we welcome contributions!

There are a lot of different ways to help the project - see below for everything you can do and the processes to follow for each contribution method. Note that no matter how you contribute, your participation is governed by our Code of Conduct.

Join the Discussion Forum

You don't need to know the internals of Appium to be able to contribute! If you have experience with using Appium and feel like sharing your knowledge with others, consider helping out users on the Appium forums at discuss.appium.io. Hop on over and see if there are any questions that you can answer.

Report Bugs or Feature Requests

If you've encountered a bug, or have a cool feature in mind that you think Appium should support, make sure to let us know at our GitHub issue tracker. Please use the appropriate issue form template when creating your issue.

Triage Issues

In addition to creating issues, you can also help us investigate already reported issues. All you need is enough familiarity with Appium to try and reproduce bugs.

You can get started by checking our GitHub issue tracker for issues with labels such as Needs Triage or Needs Info, and leaving relevant comments:

  • If the issue is a duplicate, drop a link to the original issue
  • If the user has not provided enough information (such as Appium logs), ask them for more details
  • If you can reproduce the problem on your own environment, provide all the information that you think would help us track down the cause of the issue

For further information on triaging Appium issues (for any Appium project repository), please contact any member of the Technical Committee.

Contribute Code

We are always open to pull requests for improving the Appium code or documentation!

Info

Developer information may not be kept up to date as frequently as user-facing information, or it may be most relevant in its current form on the online repository, not in this published version. Make sure to check the repo or discuss with maintainers. We would be glad to help new contributors get started!

Start by cloning the repository (we recommend forking it first):

git clone https://github.com/appium/appium.git
cd appium

Info

If you are VS Code user, you can easily check out the project using Runme.

Install dependencies:

npm install

From here on there are several things you can do.

Build the project:

npm run build

Build the project and watch for changes:

npm run dev

Start the locally built Appium server:

npm start

Run various tests:

npm run lint
npm run test:unit
npm run test:types
npm run test:smoke
npm run test:e2e
npm run test:quick # unit and types
npm run test:slow # everything

You can also run tests for specific workspaces, e.g.:

export APPIUM_WORKSPACE=@appium/base-driver
npm run test:unit -w $APPIUM_WORKSPACE

Documentation

The documentation for this project is available in the project repository itself. It is contained in Markdown files, which are built by our documentation system in the @appium/docutils module. This module is based on MkDocs and therefore requires Python to be installed on your system.

Install Python dependencies:

npm run install-docs-deps

After making your changes, you can run the documentation server in dev mode:

npm run dev:docs

You can then view the documentation at http://127.0.0.1:8000/docs/en.