[llvm-dev] Policy on support tiers, take 2

Renato Golin via llvm-dev llvm-dev at lists.llvm.org
Tue Nov 3 01:02:35 PST 2020


On Tue, 3 Nov 2020 at 07:40, Christian Kühnel <kuhnel at google.com> wrote:

> 1) How should pre-merge testing behave differently on tier 1 vs. 2
> projects?
> Do we want the builds/tests to pass on broken tier 2 projects?
>

Hi Christian,

My view is that we shouldn't change how we test, either pre merge or post
merge. If we have official tests for something already, those must pass.

The idea of tiers is to reduce the burden of maintenance of sections of the
code for both the sub-community that cares about it and the rest of the
community that doesn't.

So, whatever we already have a pre-merge test for, is IMO tier 1. If they
are causing grief and are not seen to be core components by the large LLVM
community, then as we "demote" them to tier 2, we also remove them from the
noisy testing (on both pre/post merge).

Tier 2 testing is the responsibility of the sub-community that cares about
it. If they want pre-merge tests for those, they're responsible for making
sure the fixes are proposed as soon as possible for the patches in flight.
None of those pre-commit tests should warn the rest of the community, or it
would get hard to know which bot results we should "respect", especially
for newcomers.

2) How can we automatically detect the tiers of the projects in the
> pre-merge build scripts? If we want to treat them differently we somehow
> need to be able to distinguish these in the repo.
>

It should be very simple to do that, but my second take had the mistake of
listing projects by name. Others have suggested we don't do that and let
the boundaries be more subtle. I very much like that.

The idea is that there are concepts of tiers, and what goes in/out will
change with time, depending on how big a sub-community a particular piece
of code has, or on its experimental status, or if/when incubator projects
move into the monorepo.

Initially, everything outside of the mono-repo is tier 2, which matches the
incubator policy quite well. Inside the monorepo, there are a few rules of
what's tier 2 (experimental, non-CMake build systems, editor/tools config,
non-essential scripts), with everything else in tier 1.

With the requirement of "being tested with a noisy bot" in tier 1,
everything that is already noisy-tested now is in tier 1. If we want to
demote something, we need to be explicit about it and allow the creation of
a sub-community to form.

Makes sense?

cheers,
--renato
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201103/bb915781/attachment.html>


More information about the llvm-dev mailing list