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

Christian Kühnel via llvm-dev llvm-dev at lists.llvm.org
Tue Nov 3 02:01:00 PST 2020


Hi Renato,

Thx for clarifying this!

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.
>

Just to be clear: If a patch modified something in /llvm and causes a
failing test (in ninja check-all) in something Tier 2 (e.g. polly), this
would count as a failed pre-merge test. Is that what you wanted to have?


> 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.
>

How would someone from a Tier 2 project find out that an in-flight patch
breaks their Tier 2 project? How should they be notified? How long should
the owner of the patch wait before they land it anyway?

At the moment pre-merge testing is only reporting results back to
Phabricator. AFAIK there is no notification mechanism beyond that.


> 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.
>

If you want people (and tools) to behave differently on tier 1 vs. tier 2
projects, it should be clear in which category something falls. I agree,
the policy should be something generic and high-level so we don't have to
change it all the time. However at any given time it should be clear on
what the tiers are. If I look at a file in the monorepo, I would like to
have an easy way to find out which tier it belongs to.

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.
>

For pre-merge testing, we're only using CMake in the monorepo, so that
already has a very narrow scope and excludes some tier 2 projects.
With "experimental" you mean code that matches a ".*/experimental/.*" path
regex?


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


More information about the llvm-dev mailing list