qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 11/15] qemu-common: move scripts/qapi


From: Peter Maydell
Subject: Re: [PATCH v2 11/15] qemu-common: move scripts/qapi
Date: Thu, 11 Aug 2022 11:22:40 +0100

On Thu, 11 Aug 2022 at 11:09, Marc-André Lureau
<marcandre.lureau@gmail.com> wrote:
> On Thu, Aug 11, 2022 at 1:05 PM Markus Armbruster <armbru@redhat.com> wrote:
>> Your moves tear closely related code apart.  This is going to be a drag
>> for developers in general and maintainers in particular.
>>
>> Ergonomics suffer when related code is in multiple places.  Having to
>> switch between directories and remember where is what will a constant
>> low-level pain.  Things that used to be simple & quick, like git-grep
>> qapi/*.c, become more involved.
>>
>
> It's inevitable when a project grows. QEMU is already a very large project. 
> Over the years, we have structured the project, by moving things and 
> splitting in subdirectories. Imho, this is actually helpful in many ways, and 
> we got used to it easily hopefully.

I agree with this. But generally we've tried to do that by
having the subdirectory splitting and naming match the
structure of the codebase. The exception, which I strongly
dislike, is that contrib/ is a grabbag of random stuff.
subprojects/ is starting to feel like it is also turning
into "place where random stuff ends up"...

> Do you see fundamental reasons why qemu-ga or (qemu-img, qemu-nbd, 
> storage-daemon, virtiofsd, vhost-user-*, *helper, ivshmem* etc) need to be 
> tight to qemu code, release and management process? I am not saying it's time 
> to move them out of qemu project, but I believe it's helpful to have code 
> that is structured and can be compiled indepently.
>
> And by having "standalone" subprojects, we can more easily evolve in new 
> directions, without touching the rest of the projects.

As Markus says, your branch ends up moving most of qobject into
qemu-common/. We are never going to let that out of QEMU proper,
because we are never going to allow ourselves to be tied to API
compatibility with it as an external library. So anything that
needs qobject is never going to leave the QEMU codebase. Which
means that there's not much gain from shoving it into subproject/
IMHO.

If there's stuff that is reasonably independent then it may be
worth disentangling from our build process, but it has to be
actually independent, or made that way, first, I think. And,
as with libslirp, there needs to be a clear beneficiary who
would want to take that independent-sub-thingy and use it
entirely distinctly from QEMU.

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]