-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
85 lines (62 loc) · 2.14 KB
/
Copy pathMakefile
File metadata and controls
85 lines (62 loc) · 2.14 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
PYTHON ?= python
VENV ?= .venv
ifeq ($(OS),Windows_NT)
VENV_BIN := $(VENV)/Scripts
else
VENV_BIN := $(VENV)/bin
endif
PY := $(VENV_BIN)/python
.PHONY: help venv bootstrap install-dev install-docs smoke lint format typecheck test check verify docs-serve docs-build release-doctor docs-i18n ci-doctor release-notes desktop integrate-all
help:
@echo "Targets:"
@echo " bootstrap Create venv + install development dependencies"
@echo " smoke Run fast CLI smoke test"
@echo " check Run lint + mypy + pytest"
@echo " verify Run OCC suite verification"
@echo " docs-serve Serve docs locally with autoreload"
@echo " docs-build Build docs in strict mode"
@echo " release-doctor Validate release metadata consistency"
@echo " docs-i18n Audit EN/ES docs consistency and links"
@echo " ci-doctor Summarize recent failing GitHub Actions runs (requires gh auth)"
@echo " release-notes Generate release notes from CHANGELOG + commits"
@echo " desktop Launch OCC desktop app"
@echo " integrate-all Build EN/ES compendiums + stable default + docs audits"
venv:
$(PYTHON) -m venv $(VENV)
install-dev: venv
$(PY) -m pip install --upgrade pip
$(PY) -m pip install -e ".[dev]"
install-docs: install-dev
$(PY) -m pip install -e ".[docs]"
bootstrap: install-dev
smoke:
$(PY) -m pytest -q tests/test_cli_smoke.py
format:
$(PY) -m ruff check occ tests --fix
lint:
$(PY) -m ruff check occ tests
typecheck:
$(PY) -m mypy occ
test:
$(PY) -m pytest
check: lint typecheck test
verify:
$(PY) -m occ verify
docs-serve: install-docs
$(PY) -m mkdocs serve
docs-build: install-docs
$(PY) -m mkdocs build --strict
release-doctor:
$(PYTHON) scripts/release_doctor.py --strict --no-resolve-doi
docs-i18n:
$(PYTHON) scripts/check_docs_i18n.py --strict
ci-doctor:
$(PYTHON) scripts/ci_doctor.py --limit 12 --workflow CI
release-notes:
$(PYTHON) scripts/generate_release_notes.py
desktop:
$(PYTHON) -m occ.desktop
integrate-all:
$(PYTHON) scripts/build_compendium_pdf.py --lang en --replace-main --audit-lang
$(PYTHON) scripts/build_compendium_pdf.py --lang es --audit-lang
$(PYTHON) scripts/check_docs_i18n.py --strict