From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Kevin Wolf" <kwolf@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"John Snow" <jsnow@redhat.com>,
qemu-devel <qemu-devel@nongnu.org>,
"Cleber Rosa" <crosa@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Thomas Huth" <thuth@redhat.com>,
"Beraldo Leal" <bleal@redhat.com>,
"Michael Roth" <michael.roth@amd.com>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
Qemu-block <qemu-block@nongnu.org>,
"Hanna Reitz" <hreitz@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>
Subject: Re: [PATCH v2 6/7] CI: Stop building docs on centos8
Date: Thu, 16 Feb 2023 11:06:28 +0000 [thread overview]
Message-ID: <Y+4ONA/D+uUV9klZ@redhat.com> (raw)
In-Reply-To: <87k00iv0ut.fsf@pond.sub.org>
On Thu, Feb 16, 2023 at 02:46:18AM +0100, Markus Armbruster wrote:
> Daniel P. Berrangé <berrange@redhat.com> writes:
>
> > On Tue, Feb 14, 2023 at 09:52:44PM +0100, Paolo Bonzini wrote:
> >> Il mar 14 feb 2023, 18:26 Kevin Wolf <kwolf@redhat.com> ha scritto:
> >>
> >> > Am 14.02.2023 um 15:03 hat Paolo Bonzini geschrieben:
> >> > > In the case of Python the issue is not the interpreter per se, though
> >> > > there are a couple new feature in Python 3.7 that are quite nice (for
> >> > > example improved data classes[1] or context variables[2]). The main
> >> > > problem as far as I understood (and have seen in my experience) is
> >> > > linting tools. New versions fix bugs that caused false positives, but
> >> > > also become more strict at the same time. The newer versions at the
> >> > > same time are very quick at dropping support for old versions of
> >> > > Python; while older versions sometimes throw deprecation warnings on
> >> > > new versions of Python. This makes it very hard to support a single
> >> > > version of, say, mypy that works on all versions from RHEL8 and SLE15
> >> > > to Fedora 38 and Ubuntu 23.04.
> >> >
> >> > Why do we have to support a single version of mypy? What is wrong with
> >> > running an old mypy version with old Python version, and a newer mypy
> >> > with newer Python versions?
> >> >
> >> > Sure, they will complain about different things, but it doesn't feel
> >> > that different from supporting multiple C compilers in various versions.
> >> >
> >>
> >> It's more like having to support only C++03 on RHEL 8 and only C++20 in
> >> Fedora 37, without even being able to use a preprocessor.
> >>
> >> For example old versions might not understand some type annotations and
> >> will fail mypy altogether, therefore even with newer versions you can't
> >> annotate the whole source and have to fall back to non-strict mode.
> >
> > In terms of back compatibility, is there a distinction to be
> > made between mypy compat and the python runtime compat ?
> >
> > If we add annotations wanted by new mypy, and old mypy doesn't
> > understand them, that's not a huge problem. We can simply declare
> > that we don't support old mypy, and skip the validation tests if
> > old mypy is installed.
>
> In theory, type hints are transparent at run time. In practice, use of
> modern type hints is known to break 3.6 at run time. I don't remember
> the details offhand, but John should be able to dig them up if you're
> interested.
>
> So, it should not be a problem, but it is.
Ok, this is a pretty compelling motivating factor for dropping
3.6, as it is clear demonstration that we're being held back
by the unfortunate lack of runtime compatibility.
For most of the other problems we can simply mandate a new
enough version of the add on tool, but if using new mypy
requires annotations that break at runtime on 3.6 that's
a painful blocker.
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 :|
next prev parent reply other threads:[~2023-02-16 11:07 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é [this message]
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é
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+4ONA/D+uUV9klZ@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.