-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
110 lines (84 loc) · 1.83 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
.PHONY: all develop test lint clean doc format
.PHONY: clean clean-build clean-pyc clean-test coverage dist docs install lint lint/flake8
all: lint
#
# Setup
#
## Install development dependencies and pre-commit hook (env must be already activated)
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
#
## Run python tests
test:
@echo "--> Running Python tests"
pytest -x -p no:randomly
@echo ""
test-randomly:
@echo "--> Running Python tests in random order"
pytest
## Lint / check typing
lint:
adt check
#
# Formatting
#
## Format / beautify code
format:
docformatter -i -r src
adt format
#
# Everything else
#
help:
adt help-make
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
## Cleanup repository
clean:
adt 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
## Cleanup harder
tidy: clean
rm -rf .nox
rm -rf node_modules
rm -rf instance
## Update dependencies
update-deps:
pip install -U pip setuptools wheel
poetry update
poetry show -o
pre-commit autoupdate
## Publish to PyPI
publish: clean
git push
git push --tags
poetry build
twine upload dist/*
## Tag release and publish
release: clean
adt bump-version
git push
git push --tags
poetry build
twine upload dist/*