Skip to content
Snippets Groups Projects
  • Paolo Bonzini's avatar
    c03f57fd
    Revert "tests: Use separate virtual environment for avocado" · c03f57fd
    Paolo Bonzini authored
    This reverts commit e8e4298f.
    
    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: default avatarPaolo Bonzini <pbonzini@redhat.com>
    c03f57fd
    History
    Revert "tests: Use separate virtual environment for avocado"
    Paolo Bonzini authored
    This reverts commit e8e4298f.
    
    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: default avatarPaolo Bonzini <pbonzini@redhat.com>
pythondeps.toml 1.45 KiB
# 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" }