aboutsummaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2021-06-29 17:43:19 -0400
committerJohn Snow <jsnow@redhat.com>2021-06-30 21:55:43 -0400
commit2c24d52d06af855a9b2a69c38cd4b747c848b1e1 (patch)
tree81651c15188bf80eb81c55e2cc4e0b30e79e40c8 /python
parent0d52c19a599a45c800fb58f3ad359f6472a18e3f (diff)
python: add 'make check-dev' invocation
This is a *third* way to run the Python tests. Unlike the first two (check-pipenv, check-tox), this version does not require any specific interpreter version -- making it a lot easier to tell people to run it as a quick smoketest prior to submission to GitLab CI. Summary: Checked via GitLab CI: - check-pipenv: tests our oldest python & dependencies - check-tox: tests newest dependencies on all non-EOL python versions Executed only incidentally: - check-dev: tests newest dependencies on whichever python version ('make check' does not set up any environment at all, it just runs the tests in your current environment. All four invocations perform the exact same tests, just in different execution environments.) Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Willian Rampazzo <willianr@redhat.com> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Message-id: 20210629214323.1329806-12-jsnow@redhat.com [Maintainer edit: added .dev-venv/ to .gitignore. --js] Acked-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Acked-by: Willian Rampazzo <willianr@redhat.com> Signed-off-by: John Snow <jsnow@redhat.com>
Diffstat (limited to 'python')
-rw-r--r--python/.gitignore1
-rw-r--r--python/Makefile35
2 files changed, 34 insertions, 2 deletions
diff --git a/python/.gitignore b/python/.gitignore
index 272ed223a8..c8b0e67fe6 100644
--- a/python/.gitignore
+++ b/python/.gitignore
@@ -14,3 +14,4 @@ qemu.egg-info/
# virtual environments (pipenv et al)
.venv/
.tox/
+.dev-venv/
diff --git a/python/Makefile b/python/Makefile
index d34c4e35d9..8f8e1999c0 100644
--- a/python/Makefile
+++ b/python/Makefile
@@ -1,3 +1,5 @@
+QEMU_VENV_DIR=.dev-venv
+
.PHONY: help
help:
@echo "python packaging help:"
@@ -14,6 +16,11 @@ help:
@echo " Requires: Python 3.6 - 3.10, and tox."
@echo " Hint (Fedora): 'sudo dnf install python3-tox python3.10'"
@echo ""
+ @echo "make check-dev:"
+ @echo " Run tests in a venv against your default python3 version."
+ @echo " These tests use the newest dependencies."
+ @echo " Requires: Python 3.x"
+ @echo ""
@echo "make develop: Install deps for 'make check', and"
@echo " the qemu libs in editable/development mode."
@echo ""
@@ -22,6 +29,9 @@ help:
@echo "make pipenv"
@echo " Creates pipenv's virtual environment (.venv)"
@echo ""
+ @echo "make dev-venv"
+ @echo " Creates a simple venv for check-dev. ($(QEMU_VENV_DIR))"
+ @echo ""
@echo "make clean: remove package build output."
@echo ""
@echo "make distclean: remove venv files, qemu package forwarder,"
@@ -38,9 +48,30 @@ pipenv: .venv
check-pipenv: pipenv
@pipenv run make check
+.PHONY: dev-venv
+dev-venv: $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate
+$(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate: setup.cfg
+ @echo "VENV $(QEMU_VENV_DIR)"
+ @python3 -m venv $(QEMU_VENV_DIR)
+ @( \
+ echo "ACTIVATE $(QEMU_VENV_DIR)"; \
+ . $(QEMU_VENV_DIR)/bin/activate; \
+ echo "INSTALL qemu[devel] $(QEMU_VENV_DIR)"; \
+ make develop 1>/dev/null; \
+ )
+ @touch $(QEMU_VENV_DIR)
+
+.PHONY: check-dev
+check-dev: dev-venv
+ @( \
+ echo "ACTIVATE $(QEMU_VENV_DIR)"; \
+ . $(QEMU_VENV_DIR)/bin/activate; \
+ make check; \
+ )
+
.PHONY: develop
develop:
- pip3 install -e .[devel]
+ pip3 install --disable-pip-version-check -e .[devel]
.PHONY: check
check:
@@ -56,4 +87,4 @@ clean:
.PHONY: distclean
distclean: clean
- rm -rf qemu.egg-info/ .venv/ .tox/ dist/
+ rm -rf qemu.egg-info/ .venv/ .tox/ $(QEMU_VENV_DIR) dist/