c03f57fd5b
This reverts commit e8e4298fea
.
ensuregroup allows to specify both the acceptable versions of avocado,
and a locked version to be used when avocado is not installed as a system
pacakge. This lets us install avocado in pyvenv/ using "mkvenv.py" and
reuse the distro package on Fedora and CentOS Stream (the only distros
where it's available).
ensuregroup's usage of "(>=..., <=...)" constraints when evaluating
the distro package, and "==" constraints when installing it from PyPI,
makes it possible to avoid conflicts between the known-good version and
a package plugins included in the distro.
This is because package plugins have "==" constraints on the version
that is included in the distro, and, using "pip install avocado==88.1"
on a venv that includes system packages will result in an error:
avocado-framework-plugin-varianter-yaml-to-mux 98.0 requires avocado-framework==98.0, but you have avocado-framework 88.1 which is incompatible.
avocado-framework-plugin-result-html 98.0 requires avocado-framework==98.0, but you have avocado-framework 88.1 which is incompatible.
But at the same time, if the venv does not include a system distribution
of avocado then we can install a known-good version and stick to LTS
releases.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1663
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
33 lines
1.4 KiB
TOML
33 lines
1.4 KiB
TOML
# This file describes Python package requirements to be
|
|
# installed in the pyvenv Python virtual environment.
|
|
#
|
|
# Packages are placed in groups, which are installed using
|
|
# the ensuregroup subcommand of python/scripts/mkvenv.py.
|
|
# Each group forms a TOML section and each entry in the
|
|
# section is a TOML key-value list describing a package.
|
|
# All fields are optional; valid fields are:
|
|
#
|
|
# - accepted: accepted versions when using a system package
|
|
# - installed: fixed version to install in the virtual environment
|
|
# if a system package is not found; if not specified,
|
|
# the minimum and maximum
|
|
# - canary: if specified, use this program name to present more
|
|
# precise error diagnostics to the user. For example,
|
|
# 'sphinx-build' can be used as a bellwether for the
|
|
# presence of 'sphinx' in the system.
|
|
|
|
[meson]
|
|
# The install key should match the version in python/wheels/
|
|
meson = { accepted = ">=0.63.0", installed = "0.63.3", canary = "meson" }
|
|
|
|
[docs]
|
|
sphinx = { accepted = ">=1.6", installed = "5.3.0", canary = "sphinx-build" }
|
|
sphinx_rtd_theme = { accepted = ">=0.5", installed = "1.1.1" }
|
|
|
|
[avocado]
|
|
# Note that qemu.git/python/ is always implicitly installed.
|
|
# Prefer an LTS version when updating the accepted versions of
|
|
# avocado-framework, for example right now the limit is 92.x.
|
|
avocado-framework = { accepted = "(>=88.1, <93.0)", installed = "88.1", canary = "avocado" }
|
|
pycdlib = { accepted = ">=1.11.0" }
|