Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SymPEP Purpose and Process and SymPEP Template #2
SymPEP Purpose and Process and SymPEP Template #2
Changes from 12 commits
188f210
105495c
7947a67
68f0546
e778761
99eebeb
b368841
c1805e9
1b5d58b
1e0c36f
a079ef5
8059500
3660d49
53d4200
2e3ab47
7ecff5c
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just read this "Matplotlib Enhancement Proposals (MEP), inspired by cpython's PEP's but less formal, are design documents for large or controversial changes to Matplotilb." and liked the word "controversial". This may help people defer to a normal PR or mailing list discussion before coming to make a SYMPEP.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is the most significant point that's missing here, and it really deserves more text than just a single word. It isn't clear just what sorts of changes require a SymPEP and which changes can just be an issue or PR. I really think the default should be to not have a SymPEP, at least for codebase changes (process/governance changes are different). This isn't CPython. We don't need a proposal just to add or change anything.
Actually I'm not sure "controversial" is the right word to use here. A very big change may be uncontroversial, at least in principle, but still require a SymPEP because it requires a lot of coordination, or because we need to get everyone on the same page with the details.
Of course, controversial things should be discussed as well, but I'm a little unclear what that means. If something is controversial, shouldn't it just be rejected, because that's by definition a lack of community consensus.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here "consensus" is a very tricky concept. Inherently the idea of working by strict consensus does not scale well up to large groups of people because it implies that any single person has a "veto". I often find this tricky on pull requests because often tangential comments might seem to give a negative opinion but it is not clear how strongly that negative opinion is felt.
Also consensus typically refers only to those who participate visibly in a discussion and often there will be others who do not understand the details of something but might still be affected by it.
I can see that the wording here is careful not to define the decision making process formally and perhaps it is better to keep it that way. I suggest softening the word consensus somehow to allow that it does not strictly require unanimous agreement. Perhaps "broad consensus" or "loose consensus" is better?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've used "tacit consensus" in the past. But I think we actually do operate on a proper full consensus, but that the lead developer (Ondrej, then Aaron, and then now possibly you) could overrule a dissenting vote if full consensus can't actually be achieved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, I think it is best to leave it ambiguous. We have a culture of our method of consensus that is publicly visible. If someone attempts to use/push a different way of consensus that is different than we already do, then people will point to the prior approaches to show how things are done. Worst case is that the lead dev takes control and makes a decision outside of consensus.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see the SymPEP process as basically a replacement for the BDFL style decision making we've had in the past (which hasn't really been necessary for a long time anyway). And if we really did want to formalize some sort of actual governance mechanism, that should be done itself through a SymPEP. But that should not be part of this SymPEP, which is just about the template and process for SymPEPs themselves.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure I see how this is a replacement. Given that we have not defined consensus in an explicit way, this can coexist with BDFL style (which is consensus with fallback on dictator if all else fails). I don't see merging this and accepting it as removing anything about the informal, yet existing, decision making process we already have.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reading through this paragraph again, I agree with Jason. I intentionally left this ambiguous, because the alternative is to outline some rigorous decision making process, which implies some sort of governance which doesn't exist (or at least hasn't been decided on).
In fact, the main point I was trying to make with this paragraph is that a SymPEP should involve every relevant stakeholder, not just the core dev team (whatever that means). That also includes non-SymPy developers such as users of SymPy and downstream dependents.
I would use the term "clear consensus". If something isn't clearly agreed upon, then at best that means the default is to not accept, at least without some further decision making process which isn't defined here.