qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Thomas Huth" <thuth@redhat.com>,
	qemu-devel@nongnu.org, "John Snow" <jsnow@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Beraldo Leal" <bleal@redhat.com>,
	"Michael Roth" <michael.roth@amd.com>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	qemu-block@nongnu.org, "Hanna Reitz" <hreitz@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Kevin Wolf" <kwolf@redhat.com>
Subject: Re: [PATCH v2 0/7] Python: Drop support for Python 3.6
Date: Fri, 17 Feb 2023 10:01:28 +0000	[thread overview]
Message-ID: <Y+9QeFzvdG4j9aMO@redhat.com> (raw)
In-Reply-To: <87zg9cirti.fsf@pond.sub.org>

On Fri, Feb 17, 2023 at 10:06:49AM +0100, Markus Armbruster wrote:
> Thomas Huth <thuth@redhat.com> writes:
> 
> > On 15/02/2023 20.05, Markus Armbruster wrote:
> >> The discussion under PATCH 6 makes me think there's a bit of confusion
> >> about the actual impact of dropping support for Python 3.6.  Possibly
> >> because it's spelled out in the commit message of PATCH 7.  Let me
> >> summarize it in one sentence:
> >> 
> >>      *** All supported host systems continue to work ***
> >> 
> >> Evidence: CI remains green.
> >
> > The CI remains green since one of the patches disabled the building of the 
> > docs on CentOS 8. That's not how I'd describe "continue to work", at least 
> > not in the same extend as before.
> 
> Thus the exception ...
> 
> >> On some supported host systems, different packages need to be installed.
> >> On CentOS 8, for instance, we need to install Python 3.8.13 or 3.9.16
> >> instead of 3.6.8.  Let me stress again: same repository, different
> >> package.  No downsides I can see.
> 
> ... right here:
> 
> >> The *one* exception is Sphinx on CentOS 8.  CentOS 8 does not ship a
> >> version of Sphinx that works with Python 3.7 or newer.  This series
> >> proposes to simply stop building the docs there, unless the user
> >> provides a suitable version of Sphinx (which is easy enough with pip).
> >
> > I think we've all understood that. The thing that you obviously did not 
> > understood: This breaks our support statement.
> > I'm pretty sure that you could also build the whole QEMU suite successfully 
> > on an ancient CentOS 7 or Ubuntu 18.04 system if you manually install a 
> > newer version of GCC and some of the required libraries first. But that's 
> > not how we understand our support statement.
> >
> > Sure, you can argue that you can use "pip install" to get a newer version of 
> > Sphinx on RHEL 8 / CentOS 8 to continue building the docs there - but is 
> > that really that much different from installing a newer version of GCC and 
> > libraries on an ancient distro that we do not officially support anymore? 
> > I'd say no. You also have to consider that not every build host has access 
> > to the internet, maybe some companies only have an internal mirror of the 
> > distro packages in their intranet (I remember some discussion about such a 
> > case in the past) - so while you were perfectly fine to build the whole of 
> > QEMU on a CentOS 8 there before this change, you could now not build parts 
> > of QEMU anymore there due to the missing possibility to run "pip install" 
> > without full internet connection.
> >
> > And sure, you can argue that it's "just" the documentation. But IMHO that's 
> > still an essential part of the QEMU build, and it used to work before, so it 
> > feels wrong to cut that now out. And also, if we start with the 
> > documentation now, what's next? If for example scripts/shaderinclude.py 
> > stops working with Python 3.6, do we then simply say: "Oh, it's fine, you 
> > can still build all the other targets that work without this script, just 
> > not the ones anymore that need it"?
> 
> My view on all this is a bit more pragmatic.
> 
> For a human developer, the difference between "dnf install
> python-sphinx" and "pip install sphinx" is, in my opinion, close to
> negligible.  Really no comparison to "git-clone GCC and bootstap it".
> You seem to disagree with that.

The command for installing the package is certainly not
significantly different.

What I think is lacking with pip is what happens after that
point - the ongoing management of the installed packages, or
rather than lack thereof.

If doing user installs, my $HOME/.local/lib ends up with multiple
orphaned previously installed versions. After each python version
upgrade, pip ceases to report about existance previously installed
bits at all, alone ever upgrade them.

Then there is the issue that pip will refuse to install a package,
if it already exists either from pip or the distro install, even
if the version that already exists doesn't satisfy the version
required. This would impact if the user has 'flake8'  N installed,
and QEMU wanted version N+1 installed, both using the same python
runtime version.

This is not the situation we're in with centos8/docutils, but
it is plausible in future once we decide we'll no longer rely
on exclusively on distro provided python packages, and instead
use pip if we ever want a newer version of something.


The python answer to this IIUC, is to use virtualenvs to isolate
everything. If we use keep the virtualenv under the QEMU build
root, then any time you clean your build root the virtualenv
content needs re-populating. At least pip has the sense to use
a cache, so $HOME/.cache/pip keeps a copy of everything you've
previously downloaded (presumably they age out the cache at
some time/size?), to avoid spending time re-loading all the
time. 


NB, I'm not saying the above is a blocker against use of pip.
Just that there are real differences between use of pip and
the distro packaging tools, beyond the initial install command.


If we're going to use pip, then using virtualenvs looks likely
to be very desirable to avoid conflicts between versions of
pkgs QEMU wants vs what the user might already have installed,
as well as to avoid leaving cruft behind in $HOME/.local/lib.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



  parent reply	other threads:[~2023-02-17 10:02 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-10  0:31 [PATCH v2 0/7] Python: Drop support for Python 3.6 John Snow
2023-02-10  0:31 ` [PATCH v2 1/7] python: support pylint 2.16 John Snow
2023-02-10  0:31 ` [PATCH v2 2/7] python: drop pipenv John Snow
2023-02-10  0:31 ` [PATCH v2 3/7] configure: Look for auxiliary Python installations John Snow
2023-02-10  7:39   ` Thomas Huth
2023-02-10 10:45   ` Paolo Bonzini
2023-02-10 15:28     ` John Snow
2023-02-10 15:53       ` Peter Maydell
2023-02-10 16:17       ` Paolo Bonzini
2023-02-10 16:21         ` John Snow
2023-02-10 16:26           ` Paolo Bonzini
2023-02-10 19:56       ` Eric Blake
2023-02-10  0:31 ` [PATCH v2 4/7] configure: Add nice hint to Python failure message John Snow
2023-02-10  7:45   ` Thomas Huth
2023-02-10 19:19     ` John Snow
2023-02-10  0:31 ` [PATCH v2 5/7] DO-NOT-MERGE: testing: Add Python >= 3.7 to Centos, OpenSuSE John Snow
2023-02-10  0:31 ` [PATCH v2 6/7] CI: Stop building docs on centos8 John Snow
2023-02-10  7:06   ` Philippe Mathieu-Daudé
2023-02-10 10:41   ` Peter Maydell
2023-02-10 16:01     ` John Snow
2023-02-10 16:32       ` Peter Maydell
2023-02-10 16:51         ` Daniel P. Berrangé
2023-02-10 17:15           ` Peter Maydell
2023-02-10 18:27             ` Paolo Bonzini
2023-02-15 12:30               ` Daniel P. Berrangé
2023-02-14  7:40           ` Markus Armbruster
2023-02-14  8:35             ` Thomas Huth
2023-02-14  9:59               ` Alex Bennée
2023-02-14 12:10               ` Daniel P. Berrangé
2023-02-16  1:08                 ` Markus Armbruster
2023-02-16 11:00                   ` Daniel P. Berrangé
2023-02-14 10:33             ` Peter Maydell
2023-02-14 11:03             ` Kevin Wolf
2023-02-15 19:17               ` Markus Armbruster
2023-02-14 11:48             ` Daniel P. Berrangé
2023-02-14 14:03               ` Paolo Bonzini
2023-02-14 14:17                 ` Daniel P. Berrangé
2023-02-14 17:26                 ` Kevin Wolf
2023-02-14 20:52                   ` Paolo Bonzini
2023-02-15 10:38                     ` Kevin Wolf
2023-02-15 11:35                     ` Daniel P. Berrangé
2023-02-16  1:46                       ` Markus Armbruster
2023-02-16 11:06                         ` Daniel P. Berrangé
2023-02-17 22:49                   ` John Snow
2023-02-20  8:51                     ` Markus Armbruster
2023-02-16 11:12                 ` Daniel P. Berrangé
2023-02-16 10:40               ` Markus Armbruster
2023-02-10 17:55         ` John Snow
2023-02-10 18:09           ` Peter Maydell
2023-02-10 20:31             ` Paolo Bonzini
2023-02-10  0:31 ` [PATCH v2 7/7] Python: Drop support for Python 3.6 John Snow
2023-02-10 10:04 ` [PATCH v2 0/7] " Markus Armbruster
2023-02-14 18:35 ` John Snow
2023-02-15 10:53   ` Kevin Wolf
2023-02-15 19:05 ` Markus Armbruster
2023-02-16 10:17   ` Peter Maydell
2023-02-16 12:31     ` Markus Armbruster
2023-02-16 10:58   ` Thomas Huth
2023-02-17  9:06     ` Markus Armbruster
2023-02-17  9:56       ` Thomas Huth
2023-02-17 15:37         ` Peter Maydell
2023-02-17 15:41           ` Daniel P. Berrangé
2023-02-17 10:01       ` Daniel P. Berrangé [this message]
2023-02-17 20:46     ` John Snow
2023-02-20  6:16       ` Thomas Huth
2023-02-20 19:56         ` John Snow
2023-02-21 12:00           ` Thomas Huth
2023-02-17 11:37 ` Proposed way forward " Daniel P. Berrangé
2023-02-17 13:46   ` Thomas Huth
2023-02-17 13:52     ` Daniel P. Berrangé
2023-02-17 14:40   ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y+9QeFzvdG4j9aMO@redhat.com \
    --to=berrange@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=armbru@redhat.com \
    --cc=bleal@redhat.com \
    --cc=crosa@redhat.com \
    --cc=hreitz@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=michael.roth@amd.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    --cc=wainersm@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).