This folder contains all of the Gradio UI and component source code.
This folder is managed as 'monorepo' a multi-package repository which make dependency management very simple. In order to do this we use pnpm as our package manager.
Make sure pnpm is installed by following the installation instructions for your system.
You will also need node which you probably already have
Install all dependencies:
pnpm iThis will install the dependencies for all packages and link any local packages
To develop locally, open two terminal tabs from the root of the repository.
Run the python test server, from the root directory:
cd demo/kitchen_sink
python run.pyThis will start a development server on port 7860 that the web app is expecting.
Run the web app:
pnpm devRun the build:
pnpm buildThis will create the necessary files in js/app/public and also in gradio/templates/frontend.
The repos currently has two quality checks that can be run locally and are run in CI.
Formatting is handled by prettier to ensure consistent formatting and prevent style-focused conversations. Formatting failures will fails CI and should be reoslve before merging.
To check formatting:
pnpm format:checkIf you have formatting failures then you can run the following command to fix them:
pnpm format:writeWe use TypeScript to provide static types to javascript code. These checks are also run in CI.
to typecheck the code:
pnpm ts:checkCurrently the following checks are run in CI:
- Format check (
pnpm format:check) - Build css (
pnpm css) - Build client (
pnpm build) - Type check (
pnpm ts:check) - Unit tests (
pnpm test:run)
pip install -r demo/outbreak_forecast/requirements.txt
pip install -r demo/stream_video_out/requirements.txt
pnpm exec playwright install chromium firefox
pnpm exec playwright install-deps chromium firefox
pnpm --filter @gradio/utils --filter @gradio/theme package
pnpm test:browser:full