diff mbox series

[3/5] python: add Makefile for some common tasks

Message ID 20201027223815.159802-4-jsnow@redhat.com
State New
Headers show
Series python: add linters to gitlab CI | expand

Commit Message

John Snow Oct. 27, 2020, 10:38 p.m. UTC
Add "make venv" to create the pipenv-managed virtual environment that
contains our explicitly pinned dependencies.

Add "make check" to run the python linters [in the host execution

Add "make venv-check" which combines the above two: create/update the
venv, then run the linters in that explicitly managed environment.

make clean: delete miscellaneous build output possibly created by
pipenv, pip, or other python packaging utilities

make distclean: delete the above, and the .venv, too.

Signed-off-by: John Snow <jsnow@redhat.com>
 python/Makefile | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 python/Makefile
diff mbox series


diff --git a/python/Makefile b/python/Makefile
new file mode 100644
index 000000000000..51915eaec3bc
--- /dev/null
+++ b/python/Makefile
@@ -0,0 +1,35 @@ 
+.PHONY: help venv venv-check check clean distclean
+	@echo "python packaging help:"
+	@echo ""
+	@echo "make venv:       Create pipenv's virtual environment."
+	@echo "    NOTE: Requires Python 3.6 and pipenv."
+	@echo "          Will download packages from PyPI."
+	@echo "    HINT: On Fedora: 'sudo dnf install python36 pipenv'"
+	@echo ""
+	@echo "make venv-check: run linters using pipenv's virtual environment."
+	@echo ""
+	@echo "make check:      run linters using the current environment."
+	@echo "    Hint: Install deps with: 'pip install \".[devel]\"'"
+	@echo ""
+	@echo "make clean:      remove build output."
+	@echo ""
+	@echo "make distclean:  remove venv files and everything from 'clean'."
+venv: .venv
+.venv: Pipfile.lock
+	@PIPENV_VENV_IN_PROJECT=1 pipenv sync --dev --keep-outdated
+venv-check: venv
+	@pipenv run make check
+	@pytest
+	rm -rf build/ dist/
+distclean: clean
+	rm -rf qemu.egg.info/ .venv