[llvm-dev] RFC: Contributing Bazel BUILD files in the "peripheral" support tier

Chris Tetreault via llvm-dev llvm-dev at lists.llvm.org
Wed Dec 9 09:32:17 PST 2020


I second escalating to the LLVM proposal process. The support policy allows for alternate build systems, and imposes clear requirements on them, but it does not give carte blanche approval to any alternate build system that anybody wants to add. It seems to me that Tom disagrees on principle against adding extra build systems. Maybe there exists a build system that would be compelling enough for him to be ok with it? I don’t know, I’m not a mind reader.

I think this proposal could answer a few questions:


  1.  should this Bazel build system be added?
  2.  How permissive should we be of secondary build systems?

There’s a broad spectrum between “we don’t actually want to allow extra build systems after all, kick GN out, and amend the support policy” and “anyone can add any build system they want with no oversight”. It would be good to get a definitive answer on this so that we don’t have to repeat this exercise.

I agree with the notion that “these battles of will are just the worst”. Geoffrey did his part in raising the RFC, and reraising it after the support policy was implemented. Clearly we’re reached an impasse. At some point, either the yes coalition or the no coalition will decide that they have better things to do or decide that they don’t want to cause further strife, and just give up. But it shouldn’t have to come to that.

Thanks,
   Christopher Tetreault

From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Stella Laurenzo via llvm-dev
Sent: Tuesday, December 8, 2020 11:21 PM
To: Geoffrey Martin-Noble <gcmn at google.com>
Cc: LLVM Dev <llvm-dev at lists.llvm.org>
Subject: [EXT] Re: [llvm-dev] RFC: Contributing Bazel BUILD files in the "peripheral" support tier

+1 to making this a pitch - This thread seems deadlocked to me (with plenty of evidence that everyone is acting in what they see is in the best interests of the community and having a legitimate disagreement). In my experience, as well, when a discussion gets to this phase and there is still a strong objection by one or two parties still willing to make it (which can be exhausting to hold such lines), there are almost always more people who share the viewpoint but don't want to get involved. Best to follow a real process towards resolution when things get to that level. I dislike discussions of attrition and would welcome a process for resolving this one. We feel uncomfortably close to attempting to "get this through on a technicality" (full disclosure: I would benefit from such an outcome), and I don't think that would be a success -- it is alienating. We've got a process for deciding such things. Let's use it and then live with the outcome.

On Tue, Dec 8, 2020 at 4:01 PM Geoffrey Martin-Noble via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
Thanks everyone. I will move forward with a pitch as part of the proposal process.

The reason I reopened this as an RFC was because I thought the more general questions should have been resolved as part of the discussion in Renato's support policy RFC and that therefore this would not necessarily be controversial to the point we couldn't resolve it as part of an RFC. (In particular, some people said their objections were resolved by the existence of an explicit policy). Apologies that that took this thread in a direction that lost focus.

On Tue, Dec 8, 2020 at 12:40 PM Eric Christopher <echristo at gmail.com<mailto:echristo at gmail.com>> wrote:
+Geoffrey Martin-Noble<mailto:gcmn at google.com>  and +Tom Stellard<mailto:tstellar at redhat.com>

In my effort to smooth the process out here I spoke with Tom offline and we've agreed that a pitch proposal seems to be the best way forward.  From our discussion I believe that he disagrees with adding unsupported build systems to llvm and what methodology we should use to determine their or similar multiple versions of functionality inclusion (please do correct me if I'm wrong here). I think it makes sense to limit the discussion in the pitch to adding unsupported build systems.

My personal take on this and why I've been helping shepherd this along:

I believe that we should be enabling other people to do work in llvm as long as

 a) it doesn't impact maintainability of the core system (open to debate in some ways),
 b) they have a history/desire to be responsible maintainers, and
 c) it's easy enough to remove if it becomes an issue.

and that doing this helps llvm be used more easily in other projects; thus helping see it's inclusion in more projects, a goal of the project as a whole.

Thanks!

-eric

On Sun, Dec 6, 2020 at 7:07 AM Renato Golin <rengolin at gmail.com<mailto:rengolin at gmail.com>> wrote:
On Sun, 6 Dec 2020 at 04:38, Mehdi AMINI <joker.eph at gmail.com<mailto:joker.eph at gmail.com>> wrote:
It isn't clear to me what makes you say that? You may not have been involved with it and you may haven't been paying attention at the time, but it seems unfair to claim that it didn't have scrutiny or it went in without the usual proper consideration.
In particular it has been discussed on llvm-dev@ like any other proposal, and the thread was pretty long: http://lists.llvm.org/pipermail/llvm-dev/2018-October/127342.html ; it also went further with a lightning talk **and** a round-table during a llvm dev meeting.

Sorry, scrutiny was the wrong word. I meant "trouble". This proposal seems to be having a lot of trouble that GN should have had too. The biggest push back is about adding new build systems, not Bazel versus GN versus CMake.

There seems to be a conflict here about adding a secondary build system. The first could be always thought of as an exception, but the second looks very much like a pattern. The way I see it, from one side there's people worried about maintenance and proliferation of code that is not directly related to the LLVM project (like build systems, editor files, etc) and from the other side, there's people saying this has been happening for a long time.

I tried to solve that by starting the support policy, but not with the intent to validate the inclusion of GN/Bazel, just to help the discussion move to a consensus. I regret having written GN and Bazel by name, which only now I realise they could be used as leverage for one side of the discussion. It was not my intention, and I don't think we should ignore the issues just because GN has been included already, either.

My support for moving this to a document (not necessarily a proposal) is because for most of the original discussion around Bazel, throughout the discussion about the support policy and now the retake on Bazel's inclusions, Tom's points haven't been addressed completely. There seems to be more discussion around semantics, history and precedence than the actual technical details. I'm guilty of that, too, while trying to solve the conflict, and I apologise if the support policy has created more confusion than it solved.

I think laying out the issues in a document and discussing the technical aspects over it would make things easier, not harder. If the support policy needs to be amended to clarify that, so be it. We need to document what happens and what we want to happen, not fix some version of the past as a golden standard for the future.

But as I always say: whatever works. If you want to continue discussing in this thread, by all means, do go on.

cheers,
--renato
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201209/6d418fa4/attachment.html>


More information about the llvm-dev mailing list