[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 11/15] python: add 'make check-dev' invocation
From: |
John Snow |
Subject: |
[PATCH v3 11/15] python: add 'make check-dev' invocation |
Date: |
Tue, 29 Jun 2021 17:43:19 -0400 |
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>
---
python/Makefile | 35 +++++++++++++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
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/
--
2.31.1
- [PATCH v3 03/15] python: Remove global pylint suppressions, (continued)
- [PATCH v3 03/15] python: Remove global pylint suppressions, John Snow, 2021/06/29
- [PATCH v3 04/15] python: Re-lock pipenv at *oldest* supported versions, John Snow, 2021/06/29
- [PATCH v3 05/15] python: README.rst touchups, John Snow, 2021/06/29
- [PATCH v3 07/15] python: rename 'venv-check' target to 'check-pipenv', John Snow, 2021/06/29
- [PATCH v3 08/15] python: update help text for check-tox, John Snow, 2021/06/29
- [PATCH v3 06/15] python: Add no-install usage instructions, John Snow, 2021/06/29
- [PATCH v3 09/15] python: Fix .PHONY Make specifiers, John Snow, 2021/06/29
- [PATCH v3 10/15] python: only check qemu/ subdir with flake8, John Snow, 2021/06/29
- [PATCH v3 11/15] python: add 'make check-dev' invocation,
John Snow <=
- Re: [PATCH v3 11/15] python: add 'make check-dev' invocation, Wainer dos Santos Moschetta, 2021/06/30
- [PATCH v3 12/15] python: Update help text on 'make check', 'make develop', John Snow, 2021/06/29
- [PATCH v3 13/15] python: Update help text on 'make clean', 'make distclean', John Snow, 2021/06/29
- [PATCH v3 14/15] python: remove auto-generated pyproject.toml file, John Snow, 2021/06/29
- [PATCH v3 15/15] python: Fix broken ReST docstrings, John Snow, 2021/06/29