I'm not sure I agree with the no-code standard. I agree with minimal code, but I think an incubator should be established enough to be discussed concretely (e.g. "what is" vs "ideals").
I hear what you’re saying, but I think we can handle this as part of the approval process. We can bounce of things that qualitatively don’t feel credible and give guidance there, but can still be receptive if something seems like a promising direction.
I have to say that I agree with Philip here, and saying "we can handle
this as part of the process" feels like a cop-out to me. Part of the
point of writing up a document like this is to establish and document
expectations, and this is an important expectation to establish.
Sure, I can see that concern. The document does exactly this, by laying out requirements like "Must be generally aligned with the mission of the LLVM project to advance compilers, languages, tools, runtimes, etc.”
Anything in a policy has to be written to have the right level of rigidity. Too rigid and you bounce of potentially good ideas that could be molded into something workable with community discussion and coaching. Too loose and there is no value. The major problem of being too loose is that you can create scale problems: When we have hundreds of requests, each needs to be discussed individually. Writing things down in a more rigid way reduces the cost of that.
In this case, I don’t expect to have hundreds of requests or for scalability to be a problem. Furthermore, we don’t have a lot of experience here. Once we get a few requests and if we hit scale problems, we can codify the best practices we discover along the way into a more rigid description over time.
To clarify, the key underlying issue here is that there is no reason
to make incubation a free-for-all (people can always create repos on
GitHub), but if it's not a free-for-all, then a decision must be made
somehow. The question is: what grounds is that decision going to be
RFC’s as described in the writing. This is generally how the LLVM community makes decisions for all the things.
The fewer concrete artefacts we have to make a decision, the more
people will form their opinions based on soft, clique-ish factors such
as whether they like the person making the proposal, whether they
consider them to "already be part of the community", what company or
university they work for (if any), and so on. Clique-ishness is the
opposite of inclusivity, so I feel very strongly that the expectation
should be having at least _some_ basic artefacts here. There might be
the rare legitimate exception to this rule, but that is nicely
captured by making it a "Should" rule.
You seem very afraid of “abuse” here. Given the way the LLVM community dynamics work, I see no reason to design around the possibility of abuse. If a problem arises in practice, we can revise our approach.
Along similar lines, having some sort of manifesto / development plan
/ whatever really should be a Must. Writing something like that up is
an incredibly low bar, and if people can't even be bothered to do
*that*, well... Having that Must next to "there Should be a prototype"
also helps clarify the expectations.
I agree, upgraded to ‘must’ thanks!
As I mentioned before, I'd advocate for the notion of a sponsor (an existing LLVM contributor) for each incubator. I'd have that a must on the incubator list.
Yes, this is a good idea. The problem here is “how do we decide who qualifies as a sponsor?”. I don’t know a good way to say that - someone with N years of LLVM experience, M patches, …? How does this get explained?
Do we really need that? It feels to me like this is much more
something that could be handled as part of the approval process. If
nobody from "the community" (whatever that means) is in favor of the
incubation, then it's not going to happen. So kind of by definition
you need at least one person speaking in favor
Yes, I don’t think this should be a requirement. It is too difficult to nail down as I tried to convey.
Thank you for the feedback Nicolai!