qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 09/12] python: add 'make check-dev' invocation


From: Wainer dos Santos Moschetta
Subject: Re: [PATCH v2 09/12] python: add 'make check-dev' invocation
Date: Tue, 29 Jun 2021 14:34:47 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1


On 6/29/21 1:42 PM, John Snow wrote:
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
+

I gave `make check-dev` a try and `tests/flake8.sh` failed, because it is checking the python sources from the $QEMU_VENV_DIR itself.

Either we keep $QEMU_VENV_DIR outside (as in the v1 series) or ...

  diff --git a/python/tests/flake8.sh b/python/tests/flake8.sh
  index 51e0788462..1cd7d40fad 100755
  --- a/python/tests/flake8.sh
  +++ b/python/tests/flake8.sh
  @@ -1,2 +1,2 @@
   #!/bin/sh -e
  -python3 -m flake8
  +python3 -m flake8 qemu/

... to ensure flake8 parses only the files from the 'qemu' directory (btw, this is how tests/pylint.sh is configured). I prefer the later.

  .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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]