|
From: | Paolo Bonzini |
Subject: | Re: [PATCH v2 6/7] CI: Stop building docs on centos8 |
Date: | Fri, 10 Feb 2023 19:27:41 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 |
On 2/10/23 18:15, Peter Maydell wrote:
Right. All of these things together seem to say: * Python is not an unreasonable thing for the project to depend on * CentOS 8 is not an unreasonable distro for us to want to continue to support * Therefore we should continue to work with the Python that ships with CentOS 8... [snip]We don't have to drop python 3.6. It is a choice because of a desire to be able to use some shiny new python features without caring about back compat. Similarly we don't have to use the new meson which drops support for python 3.6, it is again a choice because we want to rely on some new meson features. QEMU could easily carry on supporting python 3.6 until the affected distros drop out ofo our support matrix, but we would have to opt out of using certain new features, or put more effort into back compat. Personally I'm still on the side of carrying on supporting 3.6 per our distro support policy, but if broad consensus is to drop 3.6 I'm not going push back anymore.This is really where I'm at as well -- we set our distro support policy, and we know that means that sometimes we have to deal with continuing to support older versions of dependencies even when it might be easier for us if we could require newer versions.
There are four possibilities:* we change the support policy and stop supporting CentOS 8 and SLE 15, not a good idea since a lot of people have not migrated to CentOS 9 yet.
* we keep supporting Python 3.6 until CentOS 8 and SLE 15 stop being supported. This means several more years since SLE 16 hasn't even been released.
* we support Python 3.6 just for building documentation, i.e. we are careful not to use Python 3.7+ features in our Sphinx extensions but are free to use them elsewhere. CentOS 8 users can install sphinx from either RPMs (which will use Python 3.6) or pip (which will use Python 3.8).
* we only support Python 3.7+, which means CentOS 8 CI and users have to either install Sphinx from pip or disable documentation.
The only difference between the last two is documentation and CI configuration. The code is exactly the same.
I'm reluctant to say that Python gets a special derogation from that policy.
Note that its not the Python runtime but the Python dependencies, for which we already install avocado and some Python development tools in a virtual environment. So, the questions are:
* to what extent can we rely on pip packages (preinstalled by the user) instead of the distro packages?
* to what extent should QEMU install its own dependencies via pip in a virtual environment instead of requiring the user to preinstall them?
Right now the answers for both are "avocado gets an exception for tests/, Python development tools such as mypy get an exception for python/".
The Python 3.7+ series (not this one by John) currently adds "sphinx gets an exception to the first answer only".
In the future I would like to unify virtual environment generation for tests/ and python/ and move it to configure. If desirable, this would make it possible to implement something like "the user need not care about Python dependencies, configure can (but need not) install them all via pip". Distros would still package the dependencies, but users would have a slightly easier time building QEMU.
Thanks, Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |