-
Notifications
You must be signed in to change notification settings - Fork 10
/
Makefile
161 lines (121 loc) · 2.94 KB
/
Makefile
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
.PHONY: all develop ruff test lint clean doc format
.PHONY: clean clean-build clean-pyc clean-test coverage dist docs install lint lint/flake8
# The package name
PKG=flask_tailwind
all: ruff test lint
#
# Setup
#
develop: install-deps activate-pre-commit configure-git
install-deps:
@echo "--> Installing dependencies"
pip install -U pip setuptools wheel
poetry install
activate-pre-commit:
@echo "--> Activating pre-commit hook"
pre-commit install
configure-git:
@echo "--> Configuring git"
git config branch.autosetuprebase always
#
# testing & checking
#
ruff:
ruff check src tests
test-all: test test-readme
test: ## run tests quickly with the default Python
@echo "--> Running Python tests"
pytest --ff -x -p no:randomly
@echo ""
test-randomly:
@echo "--> Running Python tests in random order"
clean-test: ## remove test and coverage artifacts
rm -fr .tox/
rm -f .coverage
rm -fr htmlcov/
rm -fr .pytest_cache
lint/flake8: ## check style with flake8
echo "Not running flake8 for now"
# flake8 src tests
lint/black: ## check style with black
black --check src tests
lint: lint/flake8 lint/black ## check style
test-with-coverage:
@echo "--> Running Python tests"
pytest --cov $(PKG)
@echo ""
test-with-typeguard:
@echo "--> Running Python tests with typeguard"
pytest --typeguard-packages=${PKG}
@echo ""
vagrant-tests:
vagrant up
vagrant ssh -c /vagrant/deploy/vagrant_test.sh
#
# Various Checkers
#
lint: lint-py lint-js lint-rst lint-doc
lint-ci: lint
lint-all: lint lint-bandit
lint-py:
@echo "--> Linting Python files /w flake8"
@make lint/flake8
mypy src tests
# python -m pyanalyze --config-file pyproject.toml src
@echo ""
lint-rst:
# @echo "--> Linting .rst files"
# -rst-lint *.rst
# @echo ""
lint-doc:
@echo "--> Linting doc"
@echo "TODO"
#sphinx-build -W -b dummy docs/ docs/_build/
#sphinx-build -b dummy docs/ docs/_build/
@echo ""
lint-js:
echo "TODO"
#
# Formatting
#
format: format-py format-js
format-py:
black src tests
isort src tests
# docformatter -i -r src
format-js:
echo "TODO"
#
# Everything else
#
install:
poetry install
doc: doc-html doc-pdf
doc-html:
sphinx-build -W -b html docs/ docs/_build/html
doc-pdf:
sphinx-build -W -b latex docs/ docs/_build/latex
make -C docs/_build/latex all-pdf
clean:
rm -f **/*.pyc
find . -type d -empty -delete
rm -rf *.egg-info *.egg .coverage .eggs .cache .mypy_cache .pyre \
.pytest_cache .pytest .DS_Store docs/_build docs/cache docs/tmp \
dist build pip-wheel-metadata junit-*.xml htmlcov coverage.xml
tidy: clean
rm -rf .tox .nox .dox .travis-solo
rm -rf node_modules
rm -rf instance
update-pot:
# _n => ngettext, _l => lazy_gettext
python setup.py extract_messages update_catalog compile_catalog
update-deps:
pip install -U pip setuptools wheel
poetry update
poetry export -o requirements.txt
publish: clean
git-cliff > CHANGELOG.md
-git commit -m "Update changelog" CHANGELOG.md
git push --tags
poetry build
twine upload dist/*