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

Stefan Teleman via llvm-dev llvm-dev at lists.llvm.org
Sat Dec 5 20:45:56 PST 2020


On Sat, Dec 5, 2020 at 11:17 PM Mehdi AMINI <joker.eph at gmail.com> wrote:

> Right, thanks for that.
> I noted that you object about the principle of adding build system files by itself (which is something mentioned in the policy as stated above). I haven't noted though a particular concern of your that would be specific about Bazel or anything specific that is proposed here.

Yes, that is correct. We have a disagreement on principle, not a
disagreement about implementation details.

The consensus seems to be that these infrastructure build files can
reside in the LLVM tree because they (a) aren't harmful, (b) there is
a policy in place that constrains the community's expectations about
levels of involvement and support and, overall, this infrastructure
overhead will manage itself safely and sanely according to the policy.

That seems true in theory, based on the current policy, and assuming
everything goes according to plan.

In real life, things sometimes don't go according to plan. What I mean
by that is: there will be (inevitably) bitrot. Meaning, some of these
build infrastructure files will become orphans, with no clear
maintainer. This happens even with LLVM components that are classified
as Tier 1 - for example LLVM backends. I remember there was a
discussion here, somewhat recently, about one of the LLVM backends
becoming unmaintained, and therefore somewhat of an orphan (I can't
remember exactly which backend right now).

When this happens, it automatically becomes an overhead on the active
community. Someone has to spend time tracking down the last known
owner, and inquire about the state of the component: Is it still
maintained? Is it still of interest? If <person-X> can't be the
official maintainer any longer, can they recommend an alternate
<person-Y> that can take over? Should we keep it in-tree? Should we
get rid of it? etc etc etc. Then comes the ensuing discussion with the
community about what to do with the orphan.

To make it short: by now, all of this has become 100% overhead. It has
very little to do with LLVM (or clang or MLIR  or anything)
development.

So my question (and the basis for my opposing view of not keeping
infrastructure build files in-tree): Why incur the risk of
(inevitable) overhead?

------


-- 
Stefan Teleman
stefan.teleman at gmail.com


More information about the llvm-dev mailing list