default: help
help:
@echo Developer commands:
@echo
@echo "ruff Run ruff, fixing any safely-fixable errors and formatting"
@echo "ruff-unsafe Run ruff, fixing all fixable errors and formatting"
@echo "mypy Run mypy using the config in pyproject.toml to identify type mismatches and other coding errors"
@echo "mypy-all Run mypy ignoring the config in pyproject.tom but still ignoring missing imports"
@echo "test Run the unit tests."
@echo "frontend-install Install the pnpm modules needed for the frontend"
@echo "frontend-build Build the frontend for localhost:9090"
@echo "frontend-test Run the frontend test suite once"
@echo "frontend-dev Run the frontend in developer mode on localhost:5173"
@echo "frontend-openapi Generate the OpenAPI schema"
@echo "frontend-typegen Generate types for the frontend from the OpenAPI schema"
@echo "frontend-lint Run frontend checks and fixable lint/format steps"
@echo "wheel Build the wheel for the current version"
@echo "tag-release Tag the GitHub repository with the current version (use at release time only!)"
@echo "openapi Generate the OpenAPI schema for the app, outputting to stdout"
@echo "docs-install Install the pnpm modules needed for the docs site"
@echo "docs-dev Serve the astro starlight docs site with live reload"
@echo "docs-build Build the docs site for production"
@echo "docs-preview Preview the docs site locally"
ruff:
cd invokeai && uv tool run ruff@0.11.2 format
ruff-unsafe:
ruff check . --fix --unsafe-fixes
ruff format
mypy:
mypy scripts/invokeai-web.py
mypy-all:
mypy scripts/invokeai-web.py --config-file= --ignore-missing-imports
test:
pytest ./tests
frontend-install:
rm -rf invokeai/frontend/web/node_modules
cd invokeai/frontend/web && pnpm install
frontend-build:
cd invokeai/frontend/web && pnpm build
frontend-test:
cd invokeai/frontend/web && pnpm run test:run
frontend-dev:
cd invokeai/frontend/web && pnpm dev
frontend-openapi:
cd invokeai/frontend/web && \
python ../../../scripts/generate_openapi_schema.py > openapi.json && \
pnpm prettier --write openapi.json
frontend-typegen:
cd invokeai/frontend/web && python ../../../scripts/generate_openapi_schema.py | pnpm typegen
frontend-lint:
cd invokeai/frontend/web/src && \
pnpm lint:tsc && \
pnpm lint:dpdm && \
pnpm lint:eslint --fix && \
pnpm lint:prettier --write
wheel:
cd scripts && ./build_wheel.sh
tag-release:
cd scripts && ./tag_release.sh
openapi:
python scripts/generate_openapi_schema.py
docs-install:
cd docs && pnpm install
docs-dev:
cd docs && pnpm run dev
docs-build:
cd docs && DEPLOY_TARGET='custom' pnpm run build
docs-preview:
cd docs && pnpm run preview