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>,
"Warner Losh" <imp@bsdimp.com>, "Beraldo Leal" <bleal@redhat.com>,
"Kyle Evans" <kevans@freebsd.org>,
"Thomas Huth" <thuth@redhat.com>,
"Reinoud Zandijk" <reinoud@netbsd.org>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Cleber Rosa" <crosa@redhat.com>,
"Ryo ONODERA" <ryoon@netbsd.org>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Ani Sinha" <ani@anisinha.ca>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>
Subject: Re: [RFC PATCH v3 00/20] configure: create a python venv and ensure meson, sphinx
Date: Wed, 26 Apr 2023 12:32:02 -0400 [thread overview]
Message-ID: <CAFn=p-a9Nz446twKediLqu-dzox7X_27MG+=mxDEBAdj+uehFQ@mail.gmail.com> (raw)
In-Reply-To: <1f69da1d-ef7a-40f9-7116-fdd572962543@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2094 bytes --]
On Wed, Apr 26, 2023, 5:08 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
> On 4/26/23 10:53, Daniel P. Berrangé wrote:
> > I think it'd be useful for support purposes if the configure
> > script summary printed details of how we setup the venv.
> > eg perhaps a summary for each python module of whether we
> > added it to the venv, or relied on te site packages:
> >
> > python venv: meson (site), sphinx (venv), avocado (venv)
>
OK, I'll try to work this out.
At the moment "already had the package" or "installed it from vendored
source" is the same pip call, so it's hard to differentiate post-hoc
without some further analysis.
One reason this is hard is because I don't have a good method for quickly
determining "Do we already have $package that fulfills $depspec" except by
invoking pip, and that's costly, 500ms at the absolute fastest I have yet
managed. 1.2s in more typical cases. Owowowow.
So, for speed, I combine "do we already have it" and "can we install it
from vendored source" into a single call to amortize pip startup cost.
With Python 3.8+ I might be able to inspect the package post-hoc to find
where it's installed to and determine if it came from system packages or
not.
It's easy to tell the user if we used PyPI or not, though.
I'll experiment.
> Yes, I agree John did a great job with the errors but a little more work
> is needed to cleanup of mkvenv.py's logging of the "good" case.
In the good case, it worked! you should be happy! :D
(kidding.)
The
> installation case is already covered by "pip install"'s output, but we
> need to have something like:
>
> mkvenv: Creating {isolated|non-isolated} virtual environment [based on
> /home/pbonzini/myvenv]
>
"based on ..." for nested venv case only?
> and when creating the console-scripts shims:
>
> mkvenv: Found avocado v90.0
>
Sure. Up to the user at that point to figure out if we used that package or
not.
e.g. "found meson 0.5.0" might occur even if we require >=1.0.
Simple to implement, though.
> Paolo
>
>
[-- Attachment #2: Type: text/html, Size: 3898 bytes --]
next prev parent reply other threads:[~2023-04-26 16:33 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-24 20:02 [RFC PATCH v3 00/20] configure: create a python venv and ensure meson, sphinx John Snow
2023-04-24 20:02 ` [RFC PATCH v3 01/20] python: update pylint configuration John Snow
2023-04-25 16:38 ` Daniel P. Berrangé
2023-04-24 20:02 ` [RFC PATCH v3 02/20] python: add mkvenv.py John Snow
2023-04-24 20:02 ` [RFC PATCH v3 03/20] mkvenv: add console script entry point generation John Snow
2023-04-24 20:02 ` [RFC PATCH v3 04/20] mkvenv: Add better error message for missing pyexpat module John Snow
2023-04-24 20:02 ` [RFC PATCH v3 05/20] mkvenv: generate console entry shims from inside the venv John Snow
2023-04-24 20:02 ` [RFC PATCH v3 06/20] mkvenv: work around broken pip installations on Debian 10 John Snow
2023-04-24 20:02 ` [RFC PATCH v3 07/20] mkvenv: add nested venv workaround John Snow
2023-04-24 20:02 ` [RFC PATCH v3 08/20] mkvenv: add ensure subcommand John Snow
2023-04-24 20:02 ` [RFC PATCH v3 09/20] tests/docker: add python3-venv dependency John Snow
2023-04-25 16:42 ` Daniel P. Berrangé
2023-04-24 20:02 ` [RFC PATCH v3 10/20] tests/vm: Configure netbsd to use Python 3.10 John Snow
2023-04-25 16:43 ` Daniel P. Berrangé
2023-04-24 20:02 ` [RFC PATCH v3 11/20] tests/vm: add py310-expat to NetBSD John Snow
2023-04-25 16:45 ` Daniel P. Berrangé
2023-04-25 16:57 ` John Snow
2023-04-24 20:02 ` [RFC PATCH v3 12/20] scripts/make-release: download meson==0.61.5 .whl John Snow
2023-04-24 20:02 ` [RFC PATCH v3 13/20] configure: create a python venv unconditionally John Snow
2023-04-24 20:02 ` [RFC PATCH v3 14/20] configure: use 'mkvenv ensure meson' to bootstrap meson John Snow
2023-04-24 20:35 ` Warner Losh
2023-04-24 20:41 ` John Snow
2023-04-24 21:20 ` Warner Losh
2023-04-24 20:02 ` [RFC PATCH v3 15/20] configure: add --enable-pypi and --disable-pypi John Snow
2023-04-24 20:02 ` [RFC PATCH v3 16/20] tests: Use configure-provided pyvenv for tests John Snow
2023-04-24 20:02 ` [RFC PATCH v3 17/20] configure: move --enable-docs and --disable-docs back to configure John Snow
2023-04-24 20:02 ` [RFC PATCH v3 18/20] mkvenv: add diagnose() method for ensure() failures John Snow
2023-04-24 20:02 ` [RFC PATCH v3 19/20] configure: use --diagnose option with meson ensure John Snow
2023-04-24 20:02 ` [RFC PATCH v3 20/20] configure: bootstrap sphinx with mkvenv John Snow
2023-04-25 17:17 ` [RFC PATCH v3 00/20] configure: create a python venv and ensure meson, sphinx Daniel P. Berrangé
2023-04-25 17:22 ` John Snow
2023-04-25 17:34 ` John Snow
2023-04-25 18:10 ` Daniel P. Berrangé
2023-04-25 18:58 ` John Snow
2023-04-26 8:21 ` Daniel P. Berrangé
2023-04-26 8:35 ` Paolo Bonzini
2023-04-25 18:03 ` Daniel P. Berrangé
2023-04-26 8:05 ` Paolo Bonzini
2023-04-26 8:49 ` Paolo Bonzini
2023-04-26 16:16 ` John Snow
2023-04-26 19:10 ` Paolo Bonzini
2023-04-26 8:53 ` Daniel P. Berrangé
2023-04-26 9:08 ` Paolo Bonzini
2023-04-26 16:32 ` John Snow [this message]
2023-04-26 19:23 ` Paolo Bonzini
2023-05-01 19:20 ` John Snow
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-a9Nz446twKediLqu-dzox7X_27MG+=mxDEBAdj+uehFQ@mail.gmail.com' \
--to=jsnow@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=ani@anisinha.ca \
--cc=berrange@redhat.com \
--cc=bleal@redhat.com \
--cc=crosa@redhat.com \
--cc=imp@bsdimp.com \
--cc=kevans@freebsd.org \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=reinoud@netbsd.org \
--cc=ryoon@netbsd.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).