File size: 2,925 Bytes
8a37e0a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# simple Makefile with scripts that are otherwise hard to remember
# to use, run from the repo root `make <command>`

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 "update-config-docstring  Update the app's config docstring so mkdocs can autogenerate it correctly."
	@echo "frontend-install         Install the pnpm modules needed for the front end"
	@echo "frontend-build           Build the frontend in order to run on localhost:9090"
	@echo "frontend-dev             Run the frontend in developer mode on localhost:5173"
	@echo "frontend-typegen         Generate types for the frontend from the OpenAPI schema"
	@echo "installer-zip            Build the installer .zip file 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                     Serve the mkdocs site with live reload"

# Runs ruff, fixing any safely-fixable errors and formatting
ruff:
	ruff check . --fix
	ruff 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

# Update config docstring
update-config-docstring:
	python scripts/update_config_docstring.py

# Install the pnpm modules needed for the front end
frontend-install:
	rm -rf invokeai/frontend/web/node_modules
	cd invokeai/frontend/web && pnpm install

# Build the frontend
frontend-build:
	cd invokeai/frontend/web && pnpm build

# Run the frontend in dev mode
frontend-dev:
	cd invokeai/frontend/web && pnpm dev

frontend-typegen:
	cd invokeai/frontend/web && python ../../../scripts/generate_openapi_schema.py | pnpm typegen

# Installer zip file
installer-zip:
	cd installer && ./create_installer.sh

# Tag the release
tag-release:
	cd installer && ./tag_release.sh

# Generate the OpenAPI Schema for the app
openapi:
	python scripts/generate_openapi_schema.py

# Serve the mkdocs site w/ live reload
.PHONY: docs
docs:
	mkdocs serve