-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathMakefile
More file actions
88 lines (70 loc) · 2.76 KB
/
Makefile
File metadata and controls
88 lines (70 loc) · 2.76 KB
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
83
84
85
86
87
88
.PHONY: all install install-dev lock rm graph sync sync-dev uninstall venv run type-check lint lint-check format format-check style fix help
SHELL := bash
# Extract all arguments after the make target (e.g. for 'make install foo --bar' returns 'foo --bar').
ARGS = $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
SUBPROJECTS = "./agents/mabool/api" "./libs/common" "./libs/di" "./libs/dcollection" "./libs/chain" "./libs/config"
# Default target
all: help
# Lock dependencies
lock:
uv lock $(ARGS)
# Remove virtual environment
rm:
rm -rf .venv
# Generate dependency graph
graph:
uv tree $(ARGS)
# Sync virtual environment with uv.lock
sync:
uv sync --all-packages $(ARGS)
# Sync virtual environment with uv.lock and install development dependencies
sync-dev:
uv sync --all-packages --dev $(ARGS)
# Create virtual environment
venv:
uv venv -p 3.12.8
MODE ?= par
# Type checking
type-check: sync-dev
@source ./dev/make/make_foreach.sh && make_foreach $(MODE) $(SUBPROJECTS) type-check
# Linting
lint: sync-dev
@source ./dev/make/make_foreach.sh && make_foreach $(MODE) $(SUBPROJECTS) lint
# Linting checking
lint-check: sync-dev
@source ./dev/make/make_foreach.sh && make_foreach $(MODE) $(SUBPROJECTS) lint-check
# Formatting
format: sync-dev
@source ./dev/make/make_foreach.sh && make_foreach $(MODE) $(SUBPROJECTS) format
# Format checking
format-check: sync-dev
@source ./dev/make/make_foreach.sh && make_foreach $(MODE) $(SUBPROJECTS) format-check
# Style check
style: sync-dev
@source ./dev/make/make_foreach.sh && make_foreach $(MODE) $(SUBPROJECTS) style
# Style check with auto-fix
fix: sync-dev
@source ./dev/make/make_foreach.sh && make_foreach $(MODE) $(SUBPROJECTS) fix
%:
@:
help::
@echo "Common commands:"
@echo " make lock - Lock dependencies"
@echo " make clean - Remove virtual environment"
@echo " make graph - Generate dependency graph"
@echo " make sync - Sync virtual environment with uv.lock"
@echo " make sync-dev - Sync virtual environment with uv.lock, including development dependencies"
@echo " make venv - Create virtual environment"
@echo ""
@echo "Development commands:"
@echo " make style - Run format check, lint and type-check"
@echo " make type-check - Run pyright type checker"
@echo " make lint - Run Ruff linter"
@echo " make format - Format code"
@echo " make format-check - Check formatting with Ruff"
@echo ""
@echo "NOTE: by default all Development commands will run in parallel, capturing all stdout/stderr and only"
@echo " saying which (if any) sub projects have failed. You can choose to run the subtasks sequentially"
@echo " and see the stdout/stderr of the subprojects by setting 'MODE=seq'"
@echo " For Example:"
@echo " make format-check MODE=seq"