I want to respond to a couple of things that I'm hearing:
First, the C4 process is our inspiration and our starting point but we are not implementing C4. We're taking our first steps to define our own process and live by it. Our process is documented in CONTRIBUTING.md. That document and the process are subject to change through the very process it defines.
We will not be able to automatically apply this process retroactively to existing PRs and issues. Toponaming is in-process and we're just going to have to muddle through. This is going to take time. We're going to make mistakes.
We can (and SHOULD) start improving the existing issues to more cleanly and narrowly define problems.
GeneFC wrote: ↑Mon Nov 07, 2022 3:00 pm
The challenge from all of this recent discussion is "who defines what constitutes a problem?".
We do. Collectively. That's the entire point of an issue/problem. To define and establish consensus on the problem before implementing a solution.
The process tries to avoid the value judgments in the PR but it does NOT avoid those judgments in the Issue. We should be opinionated on the issue. We should debate vigorously about what the problem is and what a solution should look like. We should push that definition to be as narrow as possible.
GeneFC wrote: ↑Mon Nov 07, 2022 4:48 pm
adrianinsaval wrote: ↑Mon Nov 07, 2022 4:38 pm
Yes, C4 states that if you dislike the PR about this you should make a PR of your own rather than advocate for not merging that one
Battle of the PRs is exactly what should be avoided by applying "judgement." It is hard to believe that any successful FOSS project could work under that model.
And yet, projects do work under this model. If everyone is acting like adults and seeking the best outcome for the project, PR battles are extremely rare. When it happens, it's because the problem wasn't properly defined.
Werner's comments above are spot-on. For smaller changes, merging is not a problem. For larger PRs with design problems, merging could be a mistake. But that's a hard call to make, even for really experienced developers. So simply punting it to the maintainers and asking them to use 'judgment' isn't good enough. We need some guidelines.
I think the proposed solution that Werner and I discussed above is a good starting place. I've
created an issue about that and will make a PR amending the policy.
adrianinsaval wrote: ↑Mon Nov 07, 2022 2:28 pm
this is brings us back to the previous point about requiring an issue before making a PR, if one makes a PR directly without creating an issue can the value of the contribution then be discussed in the PR? or do we then ask that an issue be created for such discussion?
This is really tempting. As a developer trying to "eat the dog food" myself for the last few weeks I've seen it first-hand. I stumbled across some small problem. It's a single-line fix. To go and create an issue, then code the solution, then create the PR seems like too much work and artificial. I don't have a good answer. Maybe there's some size below which a PR only is ok. I would suggest that we NOT answer this one just yet. Let's try living with the problem a little while before we propose a solution.
I will say that while doing a PR only is very tempting, it's also dangerous. The entire point of the process is to have two different conversations. One about the problem and one about the solution. By allowing PR-only discussions, you are saying that those are the same discussion. They're not.