2021-12-17 00:25:09 +08:00
# Contributing to Gradio
2022-01-20 06:02:18 +08:00
Prequisites:
* Python 3.7+
* Node 16.0+ (optional for backend-only changes, but needed for any frontend changes)
2021-12-29 13:00:01 +08:00
More than 30 awesome developers have contributed to the `gradio` library, and we'd be thrilled if you would like be the next `gradio` contributor! You can start by forking or cloning the repo (https://github.com/gradio-app/gradio.git) and creating your own branch to work from.
2021-12-28 02:41:42 +08:00
Next, to install the local development version of Gradio:
* Navigate to the `/gradio` subfolder and run `pip install -e .` .
When installing locally, you may also need to build the front end:
* Navigate to the `/frontend` subfolder and run `npm install` .
2021-12-29 18:49:35 +08:00
* Then run `npm run build` (or `npm run build:win` on Windows).
* Then you can run `npm run start` to start a local development server (on port 3000 by default) that responds to any changes in the frontend
2021-12-17 00:25:09 +08:00
### Structure of the Repository
It's helpful to know the overall structure of the repository so that you can focus on the part of the source code you'd like to contribute to
2021-12-29 12:56:42 +08:00
* `/gradio` : contains the Python source code for the library
2021-12-29 13:00:01 +08:00
* `/gradio/interface.py` : contains the Python source code for the core `Interface` class (**start HERE!**)
2021-12-29 12:56:42 +08:00
* `/frontend` : contains the HTML/JS/CSS source code for the library
* `/test` : contains Python unit tests for the library
* `/demo` : contains demos that are used in the documentation as well as for integration tests
2021-12-17 00:25:09 +08:00
* `/website` : contains the code for the Gradio website (www.gradio.app). See the README in the `/website` folder for more details
2020-06-19 00:59:45 +08:00
### Continuous Integration and Testing
2021-12-29 13:00:01 +08:00
All PRs must pass the continuous integration tests before merging. To test locally, you can run `python -m unittest` from `/` (the directory where you cloned this repo).
2020-06-19 00:59:45 +08:00
2021-12-29 13:00:01 +08:00
## Submitting PRs
2020-06-19 00:59:45 +08:00
All PRs should be against `master` . Direct commits to master are blocked, and PRs require an approving review
2021-12-08 09:20:50 +08:00
to merge into master. By convention, the Gradio maintainers will review PRs when:
* An initial review has been requested, and
2021-12-17 00:25:09 +08:00
* A maintainer (@abidlabs, @aliabid94 , @aliabd , @AK391 , or @dawoodkhan82 ) is tagged in the PR comments and asked to complete a review
2020-06-19 00:59:45 +08:00
We ask that you make sure initial CI checks are passing before requesting a review.
2021-12-08 09:20:50 +08:00
One of the Gradio maintainers will merge the PR when all the checks are passing.
2021-12-28 10:22:58 +08:00
2021-12-28 10:23:15 +08:00
*Could these guidelines be clearer? Feel free to open a PR to help us faciltiate open-source contributions!*