mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-10-12 11:10:03 +00:00
Run UI quality checks on webv2 and generate contracts with an independent locked API package. Retain legacy type imports and bundle packaging; update generation commands, tests and ownership docs.
134 lines
4.5 KiB
Makefile
134 lines
4.5 KiB
Makefile
# simple Makefile with scripts that are otherwise hard to remember
|
|
# to use, run from the repo root `make <command>`
|
|
|
|
SHELL := /bin/bash
|
|
|
|
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-legacy-install Install legacy frontend dependencies"
|
|
@echo "frontend-legacy-build Build the legacy frontend for --web-legacy"
|
|
@echo "frontend-test Run the frontend test suite once"
|
|
@echo "frontend-dev Run the frontend in developer mode on localhost:5173"
|
|
@echo "frontend-legacy-dev Run the legacy frontend development server"
|
|
@echo "frontend-api-install Install shared API generation dependencies"
|
|
@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"
|
|
|
|
# Runs ruff, fixing any safely-fixable errors and formatting
|
|
ruff:
|
|
cd invokeai && uv tool run [email protected] format
|
|
|
|
# Runs ruff, fixing all errors it can fix and formatting
|
|
ruff-unsafe:
|
|
ruff check . --fix --unsafe-fixes
|
|
ruff format
|
|
|
|
# Runs mypy, using the config in pyproject.toml
|
|
mypy:
|
|
mypy scripts/invokeai-web.py
|
|
|
|
# Runs mypy, ignoring the config in pyproject.toml but still ignoring missing (untyped) imports
|
|
# (many files are ignored by the config, so this is useful for checking all files)
|
|
mypy-all:
|
|
mypy scripts/invokeai-web.py --config-file= --ignore-missing-imports
|
|
|
|
# Run the unit tests
|
|
test:
|
|
pytest ./tests
|
|
|
|
# Install the pnpm modules needed for the front end
|
|
frontend-install:
|
|
rm -rf invokeai/frontend/webv2/node_modules
|
|
cd invokeai/frontend/webv2 && pnpm install
|
|
|
|
# Build the frontend
|
|
frontend-build:
|
|
cd invokeai/frontend/webv2 && pnpm build
|
|
|
|
# Compatibility aliases and explicit legacy commands
|
|
frontendv2-install: frontend-install
|
|
|
|
frontend-legacy-install:
|
|
rm -rf invokeai/frontend/webv1/node_modules
|
|
cd invokeai/frontend/webv1 && pnpm install
|
|
|
|
# Build the legacy frontend
|
|
frontendv2-build: frontend-build
|
|
|
|
frontend-legacy-build:
|
|
cd invokeai/frontend/webv1 && pnpm build
|
|
|
|
# Run the frontend test suite once
|
|
frontend-test:
|
|
cd invokeai/frontend/webv2 && pnpm test
|
|
|
|
# Run the frontend in dev mode
|
|
frontend-dev:
|
|
cd invokeai/frontend/webv2 && pnpm dev
|
|
|
|
# Run the legacy frontend in dev mode
|
|
frontendv2-dev: frontend-dev
|
|
|
|
frontend-legacy-dev:
|
|
cd invokeai/frontend/webv1 && pnpm run dev
|
|
|
|
# Install the shared contract generation tools
|
|
frontend-api-install:
|
|
pnpm -C invokeai/frontend/api install --frozen-lockfile
|
|
|
|
# Generate the OpenAPI Schema for the app
|
|
frontend-openapi:
|
|
cd invokeai/frontend/api && \
|
|
python ../../../scripts/generate_openapi_schema.py > openapi.json && \
|
|
pnpm format:openapi
|
|
|
|
frontend-typegen:
|
|
set -o pipefail; cd invokeai/frontend/api && python ../../../scripts/generate_openapi_schema.py | pnpm typegen
|
|
|
|
frontend-lint:
|
|
pnpm -C invokeai/frontend/webv2 lint
|
|
|
|
# Tag the release
|
|
wheel:
|
|
cd scripts && ./build_wheel.sh
|
|
|
|
# Tag the release
|
|
tag-release:
|
|
cd scripts && ./tag_release.sh
|
|
|
|
# Generate the OpenAPI Schema for the app
|
|
openapi:
|
|
python scripts/generate_openapi_schema.py
|
|
|
|
# Install the pnpm modules needed for the docs site
|
|
docs-install:
|
|
cd docs && pnpm install
|
|
|
|
# Serve the astro starlight docs site w/ live reload
|
|
docs-dev:
|
|
cd docs && pnpm run dev
|
|
|
|
docs-build:
|
|
cd docs && DEPLOY_TARGET='custom' pnpm run build
|
|
|
|
docs-preview:
|
|
cd docs && pnpm run preview
|