Thanks for the input and feedback from the community. Here I'd like to clarify 
some questions.

For @areusch 
>  As the RFC stands now, a committer could simply go and -1 each following PR 
> if they wanted to

Note that the reviews of each PR are brought to their own context, and we 
anticipate grounded constructive actionable comments, such as adding test 
coverage here/there. The module establishment part can be into subjective 
discussions that are less grounded, and community empowerment becomes more 
critical in such cases.

An S0 module only has things to do with its scope. We can expect a well-scoped 
module to benefit from more open-mindedness in evaluating module establishment. 
S0 modules are not temporal because every module is subject to depreciation 
with different levels of consideration. We also anticipate that if the S0 
module continues to be helpful to the users in its well-scoped fashion, it is 
totally fine to remain at S0 if changing to S1 is not necessary for the use 
cases in mind. The change to S1 only has things to do with changes in the scope 
of impact but not how functional the module is, etc.

For @slyubomirsky 
> some parties indicate up front that they are resolutely opposed to ever 
> permitting an S0 module to become S1

We also like to come back to the fact that it is impossible to cover all 
aspects in the beginning. e.g., TorchFX, as of now, does not anticipate the 
usage of TorchDynamo and other cases, and that was the reasoning. We value 
grounded discussions with technical reasonings. Stating that blank statement 
upfront is unlikely a welcoming move to the overall community, such a 
hypothetical statement also does not align with the community over code 
principle (and blank -1 that is not grounded does not carry weight). 
Additionally, everyone is supposed to [wear the project 
hat](https://tvm.apache.org/docs/contribute/committer_guide.html?highlight=committer#independent-project-management).
 A statement that is based on the interest of a party (and not directly the 
project), although essential to consider, does not carry binding weight. Having 
the S0 module evolve provides opportunities for community members to have more 
grounded cases and help the community collectively work towards goals that 
would help S1 conversations – while continuing to provide value already through 
S0-level empowerment. Everyone will evaluate the conversations at the point of 
S1 proposal and provide grounded discussions.

> I guess this is a question about having the hard discussion up front or later.

In the OSS project, we all know that it is not possible to get evidence of all 
perspectives in the very beginning. For example, nobody proposed TorchFX to 
become the backbone of PyTorch compilation when it was introduced. It is also 
impossible to have grounded conversations to sort everything out in that first 
stage. Different decisions are made at different time points with different 
sets of evidence at that time point. 


@mbaret 
> Again I don't think the Torch-MLIR/TOSA example is relevant here, they are 
> different projects under separate governance.

Great point. We mistake the TorchMLIR here. There are similar sets of in-tree 
computational graph dialects that we intended to refer to – both TOSA and 
Linalg for example are in the MLIR tree and serve as computational graph 
dialects.

> This has been pointed out by others already, but this process does create a 
> risk of modules getting 'stuck' in S0 should they subsequently get blocked on 
> S1 transition (or even stuck in S1 if we can't get consensus for S2).

Note that these things happen at different time points and certainly have 
different considerations. This is also common practice in many ML projects. 
Take PyTorch as an example, the criteria for accepting TorchFX for example, is 
certainly much higher than deprecating TorchScript in favor of TorchFX – as of 
now there is no deprecation of TorchScript but nevertheless FX thrives as part 
of the core PyTorch compiler. 

We should also note that we have different sets of evidence at different points 
due to the nature of developments, and everyone in the community is bound to 
evaluate this updated evidence accordingly. For example, when TorchFX got 
started it was not intended for the main torch compilation flow, but as the 
project evolves and Dynamo is built up, it is now clear that it helps as part 
of the core PyTorch compiler stack.

In short, it is common practice in OSS projects to bring an open perspective to 
different scopes of impact of a module and evaluate them accordingly.

> There are other OSS compiler projects which maintain a high-bar to merge new 
> modules directly (LLVM/MLIR comes to mind) so it'd be good to explain why 
> we're taking an alternative (but still valid) approach.

The overall suggestion over S0 is not about lowering the bar to code itself. In 
that regard, we still come up with the statement of "an S0-module should show a 
clear positive fit to some(but not all) aspects of the project and clear 
cohesion to some of the existing modules." It mainly comes back to the scope of 
impact and level of open-mindedness when evaluating the related modules.

The goal of the RFC process is to clarify that and follow this practice with 
motivations also outlined in G1 and also empower the community members who 
clearly voiced their needs for such empowerment. 

> This is a lower threshold than I've seen in similar projects (which typically 
> adopt majority or 2/3rds majority). Do we have a particular justification for 
> this number?

Thank you for bringing this up. 2/3 majority decision normally applies to S1/S2 
level decisions that have a bigger scope of impact. This is mainly considering 
different levels of open-mindedness people normally apply to decisions due to 
the difference in terms of scope of impact.


-- 
Reply to this email directly or view it on GitHub:
https://github.com/apache/tvm-rfcs/pull/95#issuecomment-1285347175
You are receiving this because you are subscribed to this thread.

Message ID: <apache/tvm-rfcs/pull/95/c1285347...@github.com>

Reply via email to