There are a lot of different ways to contribute to Appium. 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.
Fork the project, make a change, and send a pull request! Please have a look at our Style Guide before getting to work. Please make sure the unit and functional tests pass before sending a pull request; for more information on how to run tests, keep reading!
Make sure you read and follow the setup instructions in the README first. Then, have a look at our running from source doc for more information on how to get set up to run tests and start slinging code.
Before we accept your contribution of code, you will need to e-sign our Contributor License Agreement. Please let us know you've done so in your pull request!
You can help us manage our issue tracker! All you need is enough familiarity with Appium to try and reproduce bugs. We triage issues by having conversations with the issue creator and then either closing the issue or moving it into the Bugs or Features milestone. We use these buckets as the backlogs for our upcoming releases.
We use this "algorithm" for triaging issues, which anyone can jump in and follow:
- If issue is a feature request, discuss amongst Appium devs.
- If we decide to build it, add to the Features milestone.
- If we decide not to build it, just close.
- If issue is a bug report, attempt to verify
- If it's a duplicate, close with link to bug already reported.
- If it ultimately can't be verified, close until we have enough information to verify (e.g., in most cases we need a full set of Appium logs to help diagnose an issue).
- If the user hasn't provided enough information, keep asking for enough information to verify.
- If it's a verified new bug, add it to the Bugs milestone.
- If we have been waiting for a reply from the user for over 3 weeks, close.
If you're interested in joining our triage rotation, contact @jlipps or @imurchie.
We can always use help on our forums at discuss.appium.io! Hop on over and see if there are any questions that you can answer.
Just use the GitHub issue tracker to submit your bug reports and feature requests. If you are submitting a bug report, please remember to include:
- Your complete Appium log (as a gist---do NOT paste the whole thing into the issue description). This will tell us the exact version of Appium and the exact capabilities you are using, so you don't have to.
- Your relevant client code, if you are able to share it (again a gist is most useful).
- Any other information helpful in trying to reproduce your issue.
In general, the less work we have to do to reproduce a bug, the faster we will fix it. So please include as much information as possible up front!