[llvm-dev] RFC: Dealing with out of tree changes and the LLVM git monorepo

Justin Bogner via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 31 15:02:50 PDT 2018


Tom Stellard <tstellar at redhat.com> writes:
>> On 10/31/2018 10:39 AM, Justin Bogner wrote:
>>> Tom Stellard <tstellar at redhat.com> writes:
>>>> On 10/31/2018 09:22 AM, Justin Bogner via llvm-dev wrote:
>>>>> Hi all,
>>>>>
>>>>> I've spent some time in the last couple of days trying to figure out how
>>>>> to adopt the [LLVM git monorepo prototype] for an out of tree backend.
>>>>> TLDR: I'm not convinced that this prototype is the right approach to
>>>>> converting to the monorepo, and I have a possible alternative.
>>>>>
>>>>
>>>> I think it's too late at this point to start considering alternative 
>>>> monorepo layouts.  We're already behind in getting the current monorepo
>>>> up and running, and I think discussing and implementing an alternative
>>>> will take too long and put our goal of moving off SVN by next year's
>>>> development meeting at risk.
>>> 
>>> The layout here is not at all different, only the process by which the
>>> repo is generated. I strongly believe that a history preserving
>>> conversion is very important if we want to avoid making porting
>>> out-of-tree work horribly disruptive.
>>
>> The process is actually what I'm concerned about here, much more so than
>> the physical layout of the repo.  It takes time to discuss, develop
>> and debug a new process for automatically syncing from SVN to a new git
>> repository.  We've already gone through all these steps with the existing
>> monorepo, so switching to something else at this point would be a step
>> backwards in my opinion.

I appreciate the amount of effort you and others have put in to get us
this far, but in my opinion these steps are not quite complete. A lot of
people have just started actually trying to merge with the monorepo
prototype since it was announced that it's intended to be the official
one last week. While there's certainly been a lot of discussion about
the monorepo in general in the last couple of years, I really hadn't
seen much serious discussion in public about the actual conversion until
the "New LLVM git repository conversion prototype" thread earlier this
month.

Just to elaborate a bit on why I think this is important, I think the
difference between the two approaches to conversion have to do with what
we consider the real source of truth in our repository history. The
current prototype rebuilds everything with SVN as a source of truth and
throws out the official git mirrors, which sounds nice in theory, but
has pragmatic problems. The reality is that a lot of people have been
basing work off the git mirrors for a number of years now, so throwing
away that history causes real world problems.

Mehdi AMINI <joker.eph at gmail.com> writes:
> At this point we can still consider it, I highly doubt that waiting a few
> weeks would jeopardize the one year deadline (that is really not that
> ambitious).
>
> What we should do though in my opinion is go with strict deadlines: i.e.
> every stage of discussion should be open for a very limited time.
> The current linear repo has the edge, but we for example we could leave
> this "zipper" proposal open for the next 1 week (or 2 if you want) as an
> RFC. Unless this alternative gets a high traction then we should close and
> move with the linear history repo.
>
> After almost two years of more or less stagnation, I feel it'd be
> unfortunate to rush right now on what I perceive as important design point
> (especially for downstream users) like this one.

I agree with this. I'd appreciate if we give this a bit of time for
other people to weigh in - I suspect others are hitting the same issues
as I in trying to integrate with this version of the monorepo.


More information about the llvm-dev mailing list