Browse Source

python/mkvenv: add 'tooling' and 'functests' dependency groups

'tooling' contains depedencies required to run various tools (like
qmp-shell) as well as dependencies required to run "make check", and as
such, we promise that these dependencies can be sourced from the user's
distribution repository or from vendored packages so that "make check"
can be executed offline in an isolated build environment.

In contrast, pygdbmi is only needed for functional tests and not tests
in general; we do not make the same offline/isolated guarantees for
functional tests, and this dependency group is allowed to fetch
dependencies from PyPI at runtime.

For the time being, amend the "check-venv" target to install both
dependency groups, to avoid a duplicate dependency between them. By the
end of this series, however, "check-venv" will be eliminated in favor of
always installing "tooling" at configure time and allowing "functests"
to be installed on-demand as needed by meson/ninja.

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-ID: <20260218213416.674483-5-jsnow@redhat.com>
Signed-off-by: John Snow <jsnow@redhat.com>
master
John Snow 1 month ago
parent
commit
5b798e6da6
  1. 10
      pythondeps.toml
  2. 2
      tests/Makefile.include

10
pythondeps.toml

@ -31,6 +31,14 @@ meson = { accepted = ">=1.10.0", installed = "1.10.0", canary = "meson" }
sphinx = { accepted = ">=3.4.3", installed = "6.2.1", canary = "sphinx-build" }
sphinx_rtd_theme = { accepted = ">=0.5", installed = "1.2.2" }
[testdeps]
# This test group is for dependencies required to run various tooling
# and tests that should always be installed at configure time. It should
# only include dependencies that can be guaranteed via configure from
# system packages, or python packages we vendor.
[tooling]
"qemu.qmp" = { accepted = ">=0.0.5", installed = "0.0.5" }
# This test group is for functional tests, and can include dependencies
# fetched from PyPI.
[functests]
pygdbmi = { accepted = ">=0.11.0.0", installed = "0.11.0.0" }

2
tests/Makefile.include

@ -108,7 +108,7 @@ quiet-venv-pip = $(quiet-@)$(call quiet-command-run, \
$(TESTS_VENV_TOKEN): $(SRC_PATH)/pythondeps.toml
$(call quiet-venv-pip,install -e "$(SRC_PATH)/python/")
$(MKVENV_ENSUREGROUP) $< testdeps
$(MKVENV_ENSUREGROUP) $< tooling functests
$(call quiet-command, touch $@)
check-venv: $(TESTS_VENV_TOKEN)

Loading…
Cancel
Save