Hi Spark Development Community,

Since Spark 3 has shipped I've been going through some of the PRs and I've
noticed some PRs have been merged with pending -1s with technical reasons,
including those from committers. I'm bringing this up because I believe we,
as PMC, committers and contributors, do not currently have a consistent
understanding, and I believe we should develop one. The foundation level
guidance is at
https://www.apache.org/foundation/voting.html#votes-on-code-modification.



It is my belief that we should not be merging code with -1s from active
committers, -1 is a very strong signal and generally a sign that we should
step back and try and build consensus around the change. Looking at how the
httpd project (e.g. the original Apache project) handles it
https://httpd.apache.org/dev/guidelines.html#voting it seems to be that
once a -1 from a committer is received we can no longer use our regular
lazy consensus mechanism for the change, and we then need to have a vote or
get the -1 resolved with the person who placed it.



Now of course, if the -1s aren't following the guidelines that's a
different story (e.g. no technical reason provided), but regardless a -1
from a committer to me would require a public vote on dev@ following the
foundation's voting guidelines.



I believe, especially in the Spark project, committers have demonstrated
sufficient merit and they are qualified to vote on code changes so a -1
should block merging, however in talking with other ASF projects there are
a variety of ways of handling this. The unanimous opinion from the
different folks I talked with is that any technical disagreement should be
considered before moving on. Just waiting a few days and merging the code
is not a valid solution. In the context of how much work and history we've
chosen to require Spark committers to demonstrate, most folks seem to
believe that committers in the Spark project would be qualified voters for
these purposes.



In general I expect -1s to continue to be relatively rare in the Spark
community, and if this is no longer the case I believe we should take the
areas where we are seeing more -1s and have a broader discussion to give us
the opportunity to build consensus prior to making any further non-bugfix
changes in those components/areas. Most folks from other projects seemed to
share this concern as well.


One of the things that was also brought up in this context is some projects
require -1s to provide an alternative suggestion as well as the technical
objection. That could be something we, as a project, could adopt if were
concerned with over use of -1s.



Sincerely,



Holden



P.S.



I know this may be a sensitive topic, and we're all under more stress than
usual right now. I appreciate everyone's patience while we discuss this. I
know I find this a sensitive topic as well given the seemingly inconsistent
standards. I'm tired of having people ask me to wait on PRs that have been
open for more than a month and merging their own code with pending
substantial issues raised by qualified members of the community.



I'm not saying that the actions taken were necessarily wrong, just that I
believe reaching a common understanding here is crucial to the healthy
functioning of the project.



I have not included any specific examples of this since this is the public
list and I believe discussions involving individuals does not belong on dev@.
If we want to discuss the specific situations that I noticed from the Spark
3 release, we can fork that conversation to private@.



For any ASF members you can also find the discussion with folks from other
projects and their views on that mailing list and get at the details.


-- 
Twitter: https://twitter.com/holdenkarau
Books (Learning Spark, High Performance Spark, etc.):
https://amzn.to/2MaRAG9  <https://amzn.to/2MaRAG9>
YouTube Live Streams: https://www.youtube.com/user/holdenkarau

Reply via email to