qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: John Snow <jsnow@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	Qemu-block <qemu-block@nongnu.org>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>, "Kevin Wolf" <kwolf@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Beraldo Leal" <bleal@redhat.com>
Subject: Re: [RFC PATCH 0/9] tests: run python tests under the build/tests/venv environment
Date: Fri, 13 May 2022 15:09:25 -0400	[thread overview]
Message-ID: <CAFn=p-ZMJWG66+OysLAQreO8_O4zN2ABnMnJ30dLubUKpFCazA@mail.gmail.com> (raw)
In-Reply-To: <d26567e9-f4b4-ff0c-6312-ad9162adaf90@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2807 bytes --]

On Fri, May 13, 2022, 12:50 PM Paolo Bonzini <pbonzini@redhat.com> wrote:

> On 5/13/22 18:07, Daniel P. Berrangé wrote:
> >> e.g. what if I want to require mypy >= 0.900 for testing, but you have a
> >> system package that requires mypy < 0.700?
> > I would expect us to not require packages that are not present in
> > the distros implied by
> >
> >    https://www.qemu.org/docs/master/about/build-platforms.html
> >
> > if that was absolutely a must have, then gracefully skip tests
> > if the system version wasn't new enough. The user could always
> > pass --python-env=pip if they want to force new enough
> >
>
> Consider that e.g. RHEL RPMs do not do mypy or pylint in %check, because
> the version of the linters in RHEL is usually older than what the
> upstream packages expect.
>
> I don't think it's a good idea for QEMU to support what Red Hat
> packagers decided was a bad idea to support.
>
> Paolo
>

Yeah, I have to insist that due to the way these packages are developed
upstream that it is simply not reasonable to expect that the local package
version will work. pylint changes behavior virtually every single release.
This series itself even has a patch that is playing whackamole to support a
mypy that's brand new while supporting older mypy versions.

It's a huge overhead for little gain.

Far preferable to just say "Oh, your linter version is too old, we can't
run this test locally."

the qemu (and qemu.qmp) packages do not express a runtime/install
dependency on mypy/pylint/isort/flake8/avocado/tox. These packages only get
pulled in for the [devel] option group, and for good reason.

What is really the outlier here is iotest 297, which brings a kind of
meta-test into the same category as functional/regression tests. Supporting
this on default system packages is not on my personal todo list. Moving
this test off to a "make check-python" and deleting iotest 297 might be an
option. This is a test that simply might need to be skipped by an SRPM
build. (it already isn't run, so there's no additional harm by continuing
to not run it.)

If we are running a test suite and we allow pypi via the config, then I
believe we ought to allow the pypi versions to supersede the system ones -
*iff* the system ones are insufficient. I will continue to endeavor to test
a very wide matrix of dependencies, I just have to be honest that I don't
think I will reasonably achieve the full breadth you are asking for here.

For no-internet configs, we may have to accept that some platforms simply
don't have new enough dependencies to run some tests. I don't see this as
violating our build platform promise. I don't believe the build platform
promise ever reasonably extended to a "development platform promise".

--js

>

[-- Attachment #2: Type: text/html, Size: 3869 bytes --]

  reply	other threads:[~2022-05-13 19:10 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-13  0:06 [RFC PATCH 0/9] tests: run python tests under the build/tests/venv environment John Snow
2022-05-13  0:06 ` [RFC PATCH 1/9] python: update for mypy 0.950 John Snow
2022-05-13  8:42   ` Paolo Bonzini
2022-05-13 14:09     ` John Snow
2022-05-13  0:06 ` [RFC PATCH 2/9] tests: add "TESTS_PYTHON" variable to Makefile John Snow
2022-05-13  8:23   ` Paolo Bonzini
2022-05-13  0:06 ` [RFC PATCH 3/9] tests: install "qemu" namespace package into venv John Snow
2022-05-13  8:26   ` Paolo Bonzini
2022-05-13 14:01     ` John Snow
2022-05-13  0:06 ` [RFC PATCH 4/9] tests: silence pip upgrade warnings during venv creation John Snow
2022-05-13  8:27   ` Paolo Bonzini
2022-05-13 14:02     ` John Snow
2022-05-13  0:06 ` [RFC PATCH 5/9] tests: use tests/venv to run basevm.py-based scripts John Snow
2022-05-13  8:33   ` Paolo Bonzini
2022-05-13  0:06 ` [RFC PATCH 6/9] tests: add check-venv as a dependency of check and check-block John Snow
2022-05-13  8:41   ` Paolo Bonzini
2022-05-13 14:12     ` John Snow
2022-05-13 15:34       ` Paolo Bonzini
2022-05-13 16:08         ` John Snow
2022-05-13  0:06 ` [RFC PATCH 7/9] tests: add check-venv to build-tcg-disabled CI recipe John Snow
2022-05-13  8:41   ` Paolo Bonzini
2022-05-13  0:06 ` [RFC PATCH 8/9] iotests: fix source directory location John Snow
2022-05-13  8:35   ` Paolo Bonzini
2022-05-13  0:06 ` [RFC PATCH 9/9] iotests: use tests/venv for running tests John Snow
2022-05-13  8:38   ` Paolo Bonzini
2022-05-13 14:38     ` John Snow
2022-05-13 15:33       ` Paolo Bonzini
2022-05-13 16:00         ` John Snow
2022-05-14 15:55         ` John Snow
2022-05-16  7:41           ` Paolo Bonzini
2022-05-17 23:51             ` John Snow
2022-05-18 10:38               ` Paolo Bonzini
2022-05-13  8:35 ` [RFC PATCH 0/9] tests: run python tests under the build/tests/venv environment Daniel P. Berrangé
2022-05-13  9:45   ` Paolo Bonzini
2022-05-13 10:29   ` Daniel P. Berrangé
2022-05-13 15:55     ` John Snow
2022-05-13 16:07       ` Daniel P. Berrangé
2022-05-13 16:49         ` Paolo Bonzini
2022-05-13 19:09           ` John Snow [this message]
2022-05-13 12:57   ` Kevin Wolf
2022-05-13 15:25   ` John Snow
2022-05-13 10:20 ` Paolo Bonzini
2022-05-13 15:39   ` John Snow
2022-05-13 16:07     ` 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='CAFn=p-ZMJWG66+OysLAQreO8_O4zN2ABnMnJ30dLubUKpFCazA@mail.gmail.com' \
    --to=jsnow@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=bleal@redhat.com \
    --cc=crosa@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=hreitz@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --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).