python: mkvenv: add ensuregroup command
commit71ed611cd47d961e1897721d7d002ffb498221d4
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 8 Aug 2023 08:03:42 +0000 (8 10:03 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 28 Aug 2023 07:55:36 +0000 (28 09:55 +0200)
treea38c6821c99269bf242059c30d9ed33cc77bbb5d
parent0f1ec0705b92b79e5e5f69bed236639dae67d312
python: mkvenv: add ensuregroup command

Introduce a new subcommand that retrieves the packages to be installed
from a TOML file. This allows being more flexible in using the system
version of a package, while at the same time using a known-good version
when installing the package.  This is important for packages that
sometimes have backwards-incompatible changes or that depend on
specific versions of their dependencies.

Compared to JSON, TOML is more human readable and easier to edit.  A
parser is available in 3.11 but also available as a small (12k) package
for older versions, tomli.  While tomli is bundled with pip, this is only
true of recent versions of pip.  Of all the supported OSes pretty much
only FreeBSD has a recent enough version of pip while staying on Python
<3.11.  So we cannot use the same trick that is in place for distlib.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
python/scripts/mkvenv.py
python/setup.cfg
pythondeps.toml [new file with mode: 0644]