Craig McClanahan wrote:
On 3/19/06, Jonathan Revusky <[EMAIL PROTECTED]> wrote:
You say this as if it is the most obvious thing in the world. But is it?
I am quite skeptical. You take as a given that commit privileges have to
be closely guarded, like a high priesthood guards the inner sanctum.
In the general case of *all* open source projects, you can make a case like
this. Each project makes their own decisions about how committer status is
"earned" or "granted" or whatever.
Yes, that is of course correct. But err.... I don't see your point here....
Apache projects have their own individual personalities, but all of them
conform to some core operating principles[1] that bind us together. Of
particular interest to this thread is how you get to become a committer --
they are nominated, and elected, by the other committers on that project.
This has a few interesting implications:
* People who contribute a lot, in a positive way, tend to get nominated
and voted in.
Yes, but if you can only become a committer by having contributed a lot,
but the only sure way of being able to contribute is by becoming a
committer, doesn't this present a kind of catch 22?
(I know that you have to get the attention and interest of an existing
contributor, but if the existing contributors are being obstructionist
or just plain lazy, and you have no mechanism for addressing this...)
* People who have radical ideas, but contribute in a positive way,
can get nominated and voted in (depends on the individual community,
but Struts committers are by no means monolithic in their beliefs :-).
* People who simply make noise will never get nominated, and therefore
never get voted in. (Even if nominated, Apache's rules state that
a single -1 from a PMC member is a black ball -- in practice, that means
nobody who is likely to get vetoed is going to get nominated, to save that
person embarassment).
Well, I have heard this line before, I guess. I have certain
observations to make.
First of all, these voting procedures have certain inherent problems.
There is a positional problem. I don't know if you've ever studied game
theory, but in many games (poker is the prime example that people would
be familiar with) the order in which people act is quite important in
the game's strategy. For example, if there were the question of somebody
becoming a committer and you, say, were to vote +1 initially, other
people might be loath to vote -1 subsequently having seen that you were
in favor. Of course, if they were to vote before you and not know your
view, maybe they would have voted -1. And certainly, I think it's safe
to say that if everybody voted with a secret ballot mechanism, then
there are many conditions under which they would vote differently than
if the vote was public. Have any of these issues been discussed and
analyzed in a serious way?
Secondly, it is important in democracy that people can choose their
leaders by a vote. However, it seems to me that the more important
feature of a democracy is actually those people can be voted out at a
later point. The fact that voters can turf them out is a major
constraint on elected officials that a dictator, say, is not constrained
by. So what are the rules regarding somebody losing their committer
status? You say that they become committers by contributing (though
again, this is a toughie since it can be hard to contribute if you can't
commit) but if somebody does not contribute for a long period of time,
is there not a certain argument (by basic symmetry, I guess) that they
should lose committer status?
A third point that I must make in this context is that, though, in the
above, I am criticizing the "electoral democracy" aspects of this, I
actually don't subscribe to the idea that an open source project is a
one man-one vote democracy of any sort anyway. For example, in the
FreeMarker project, the opinion of somebody who has made some tiny
contribution to the code (and is thus a "committer") cannot be
considered equal to mine, when simply most of the current core code base
was written by me. And thus, the idea that this person's vote is equal
to mine strikes me as absurd. It would be equally absurd if I joined
another project, and after making a nominal contribution, considered
that my vote was equal to that of someone who had written, say, 80% of
the code.
So, the nuance is that I personally don't take the voting idea that
seriously anyway, since I don't think open-source *really* works this
way. However, if you are going to take all this voting procedural stuff
seriously (and from the pages you point me to, it seems you do) it
should be examined seriously and I have asked certain key questions
above, I think.
At Apache, committers are a self-selected meritocracy.
Well, isn't this a vacuous statement? Isn't it the case that elitits
invariably define the elite in question as including themselves?
Frankly, it seems to me that what you are describing is more of a mutual
admiration club than a genuine meritocracy.
If you cannot
convince existing committers that you belong, then you don't belong. Deal
with it. Or go away.
Well, this, I think is a key problem here -- the idea that somebody who
wants to contribute his time and energies is in some supplicant
position, begging to be let in. The would-be committer must curry favor
with the existing committers to be allowed the privilege (!) of donating
his time and energies for free.
Now, if the committers identify a talented individual, given that the
idea is for them to donate their time, wouldn't it actually make more
sense for them to be currying favor with that person, trying to get them
to contribute?
Note that convincing can take a while, and sometimes involves creating an
entirely revolutionary branch of the code someplace. But it almost always
requires more code than words.
Hmm... look.... the tone of your response is quite arrogant. Other
people have surely noted that. I think the arrogance is misplaced and
you should adopt a more humble approach to this whole question. I shall
strive to explain why in a completely non-moralistic way.
Let me explain by analogy. There are different theories or dogmas about
how to raise children: "spare the rod and spoil the child" and blah
blah. But the fact is that nobody knows for sure what all the "best
practices" for bringing up a child is. There are probably various valid
approaches and ways of looking at things and it may also be that
different cultures handle issues differently in ways that work in their
cultural context.... And so on...
I mean, it's a very complex thing and there are a lot of imponderables.
I would argue that this is a topic that people should be flexible and
open-minded about and approach with a certain humility.
We have our opinions and our intuitions and so on, but we simply do not
know. Not for sure. People have raising children since time immemorial
but nobody knows for sure what the "best practices" are. And it may be
that there is no way that is correct in all cases, since each child is
different and each situation is different.
Meanwhile, people have been running open source projects for a very
limited period of time. Compared to child-raising there is a complete
lack of experience and genuine knowledge about what the right way of
doing it is. And it may be that based on the personalities and
interpersonal dynamics and so on, that approaches that would bear fruit
in one case would not bear fruit in another.
I believe that Socrates said that the first step to knowledge is to
recognize that you know nothing. When we talk about such issues like the
best way to raise a child or the best way to run an OSS project, we are
facing a certain void. We are at the outer limits of real, genuine human
knowledge, since we just don't really know for sure. This is why the
overall arrogant tone of your post on this is, IMHO, extremly misplaced.
I will go out further on a limb here and just say what the discerning
reader knows that I am thinking: your arrogance in this spot reflects
immaturity and a lack of wisdom. A more mature and wiser individual
would approach the topic of this conversation with much more humility.
Craig
PS: A perhaps subtle aspect of the rules is that nomination is about
people. In my voting practice (and I suspect I am not alone in the Struts
world), hiding behind one or more fake email identities is a guaranteed -1
Well, I would not advocate giving commit privileges to somebody who
refuses to disclose who they are. However, this is a red herring as
regards the topic of conversation. I guess this is just an off-topic
swipe at this Dakota Jack guy that has nothing to do with what was being
discussed here.
... because we vote on people, not on ideas. Fortunately, that's never been
an issue ... no committer on any Apache project I've been a part of has ever
nominated such an identity. But you can take it as a given that no such
nomination will succeed here as long as I am a voting member of the Struts
community.
This seems like a red herring to me. Was anybody proposing this?
[1] Start at <http://www.apache.org/foundation/how-it-works.html> and follow
the links on the right margin for details.
Thanks, I have seen that page before actually. It raises various
questions though, some of which I brought up above.
Regards,
Jonathan Revusky
--
lead developer, FreeMarker project, http://freemarker.org/
FreeMarker group blog: http://freemarker.blogspot.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]