On 4/26/23 10:21, Daniel P. Berrangé wrote:
So if you already have Sphinx, this should perform an upgrade to the
latest version?
Essentially I meant 'force' to mean*never* use the host python
installation packages. Always install all the deps in the venv,
even if they exist in the host with sufficient version met.
I think this is essentially --enable-isolated-venv. I don't think there
is a usecase for "let the venv use system packages, but override them
with pip right away".
--python=... # runtime used to create venv
--enable-pip-groups=testing,devel,avocado,meson,sphinx
--enable-pip=now # install all python deps now
--enable-pip=on-demand # install qemu.git/meson/sphinx, delay the rest
--enable-pip=no # offline
--{enable,disable}-isolated-venv # let venv use system/distro if disable
This feels like a bit of overkill to me, and would create a hell
of a lot of combinations to test if you expand the matrix of
options.
Yeah, this is a bit overkill. I think we can reduce it to three cases,
corresponding to:
- --enable-pypi --enable-isolated-venv - use pip to install everything,
including for options in "auto" state (e.g. would install sphinx without
--enable-docs)
- --enable-pypi --disable-isolated-venv - use pip to install missing
packages. TBD whether to do so for options in "auto" state or only for
"enabled" (i.e., TBD whether to install sphinx without --enable-docs).
- --disable-pypi (only meaningful for --disable-isolated-venv) - apart
from vendored wheels, just use system site packages (same as QEMU <= 8.0)
I think we want to hash out this detail first, and thus we should leave
online mode out of the non-RFC version. It can be implemented together
with isolated mode.
Paolo