[ I'm going to try and pull a couple thread directions into this one, to avoid explosion :-) ]
On Thu, Nov 6, 2014 at 6:44 PM, Corey Nolet <cjno...@gmail.com> wrote: Note: I'm going to use "you" generically; I understand you [Corey] are not a PMC member, at this time. +1 (non-binding) [for original process proposal] > > Greg, the first time I've seen the word "ownership" on this thread is in > your message. The first time the word "lead" has appeared in this thread is > in your message as well. I don't think that was the intent. The PMC and > Committers have a > The word "ownership" is there, but with a different term. If you are a PMC member, and *cannot* alter a line of code without another's consent, then you don't "own" that code. Your ownership is subservient to another. You are not a *peer*, but a second-class citizen at this point. The term "maintainer" in this context is being used as a word for "lead". The maintainers are a *gate* for any change. That is not consensus. The proposal attempts to soften that, and turn it into an oligarchy of several maintainers. But the simple fact is that you have "some" with the ability to set direction, and those who do not. They are called "leaders" in most contexts, but however you want to slice it... the dynamic creates people with unequal commit ability. But as the PMC member you *are* responsible for it. That is the very basic definition of being a PMC member. You are responsible for "all things Spark". responsibility to the community to make sure that their patches are being > reviewed and committed. I don't see in Apache's recommended bylaws anywhere > that says establishing responsibility on paper for specific areas cannot be > taken on by different members of the PMC. What's been proposed looks, to > me, to be an empirical process and it looks like it has pretty much a > consensus from the side able to give binding votes. I don't at all this > model establishes any form of ownership over anything. I also don't see in > the process proposal where it mentions that nobody other than the persons > responsible for a module can review or commit code. > "where each patch to that component needs to get sign-off from at least one of its maintainers" That establishes two types of PMC members: those who require sign-off, and those who don't. Apache is intended to be a group of peers, none "more equal" than others. That said, we *do* recognize various levels of merit. This is where you see differences between committers, their range of access, and PMC members. But when you hit the *PMC member* role, then you are talking about a legal construct established by the Foundation. You move outside of community norms, and into how the umbrella of the Foundation operates. PMC members are individually responsible for all of the code under their purview, which is then at the direction of the Foundation itself. I'll skip that conversation, and leave it with the simple phrase: as a PMC member, you're responsible for the whole codebase. So following from that, anything that *restricts* your ability to work on that code, is a problem. In fact, I'll go as far as to say that since Apache is a meritocracy, the > people who have been aligned to the responsibilities probably were aligned > based on some sort of meric, correct? Perhaps we could dig in and find out > for sure... I'm still getting familiar with the Spark community myself. > Once you are a PMC member, then there is no difference in your merit. Merit ends. You're a PMC member, and that is all there is to it. Just because Jane commits 1000 times per month, makes her no better than John who commits 10/month. They are peers on the PMC and have equal rights and responsibility to the codebase. Historically, some PMCs have attempted to create variant levels within the PMC, or create different groups and rights, or different partitions over the code, and ... again, historically: it has failed. This is why Apache stresses consensus. The failure modes are crazy and numerous when moving away from that, into silos. >... On Thu, Nov 6, 2014 at 6:49 PM, Matei Zaharia <matei.zaha...@gmail.com> wrote: > So I don't understand, Greg, are the partial committers committers, or are > they not? Spark also has a PMC, but our PMC currently consists of all > committers (we decided not to have a differentiation when we left the > incubator). I see the Subversion partial committers listed as "committers" > on https://people.apache.org/committers-by-project.html#subversion, so I > assume they are committers. As far as I can see, CloudStack is similar. > PMC members are responsible for the code. They provide the oversight, direction, and management. (they're also responsible for the community, but that distinction isn't relevant in this contrasting example) Committers can make changes to the code, with the acknowledgement/agreement/direction of the PMC. When these groups are equal, like Spark, then things are pretty simple. But many communities in Apache define them as disparate. Committers may work on the code (a single area, or all of it), but don't have any direct input into its direction (ie. they're not on the PMC). Within Subversion, we give people commit rights to areas, and let them go wild. But they aren't part of the *whole* project's direction. Maybe just the SWIG bindings, or a migration tool, or a supplemental administrative tool. These are "partial committers", in Subversion's parlance. PMC members, on the other hand, are known historically as "full committers" and have rights over the whole codebase. There are no partitions. There are no component maintainers. Many projects at Apache provide whole-project commit access to people, but don't give them PMC rights. I find that strange, but it is quite common. The trust level is "code" rather than "direction". Subversion trusts people to limited areas, or to the whole project, and (thus) to the project's direction. ... Within this context of those who are responsible and involved with the project, I find it very disconcerting to partition things and tell people "you cannot make any change [even though you're on the PMC, and responsible for it] unless John says it is okay." Historically, Apache allowed fine-grained access control lists over who-could-change-what. Most of those have been removed, as we learned how dangerous they were to a community. How they set up cliques, and leads, and killed the peer relationships. As we've reviewed the relationships and oversight needs, to create a proper legal umbrella for all of our committers, the relationship of PMC members to its codebase has become much more clear. Unfortunately, much of this is historical knowledge, rather than written down. But writing it down makes it sounds like "rules", and proscriptions just never seem to work out right. It is a very hard problem, to share what works (or not) across the communities here at the Foundation. Cheers, -g