Frank W. Zammetti wrote:
Welcome Jonathan!  Better late than never :)

Jonathan Revusky wrote:

I think here we have to agree to disagree. I see there being a responsibility involved that you don't. It isn't like anyone can just come along and contribute, contrary to what we might want people to believe, because there is a barrier to entry, namely those already involved. AND THAT IS FINE. In fact, it *has* to be that way because the alternative is just opening up commit privileges to SVN to anyone and everyone, and clearly *that* isn't a good idea :)



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.


Yes, I do think it has to be guarded. I can think of two good reasons: outright malice and bad code.

I think outright malice is quite rare. In fact, so rare as to be almost a non-problem. Have you actually run across this?

As for bad code, this is more likely. However, bad code that actually does something can be refactored into something better. At least it's a starting point. If it's so bad that nothing of value can be salvaged, you can always just roll it back.

I mean, this is a basic difference between software and other fields. If you just let anybody work on a construction project, and people did bad work, well, it can range from difficult to impossible to revert to the original state that the project was in before that work was done. In software, you have something completely malleable, and you can always just revert to some known state of the code at a given point in time.

So how much damage can anybody really do?


I am inclined to believe there are some people who would actively try to corrupt the code in some way simply because they have an axe to grind with the project.

Well, we should be empirical about this. If we're trading notes about how to run open source projects, it should be based on actual experiences, not just idly speculating on what could happen, right? How many cases of outright malice have you run into?

This could be very subtle, maybe introducing pieces of license-incompatible code. I don't imagine this would be wide-spread, I think the majority of people would behave themselves just fine, but to ignore the bad parts of human nature would be folly, and I think given the opportunity to add anything they wanted, the bad part would surface at some point.

There could also be innocent mistakes made, like committing things that you think are license-compatible that really aren't. This could happen at any time obviously, but if you guard the commit rights, my hope is that you only grant the rights to people you believe understand how to avoid these mistakes more times than not.

Well, I have to admit that I was thinking in terms of being pretty open about letting people commit code to the repository, but I meant *their* code. I don't think the problem of somebody saying: "Hey, I wrote these classes that do X over the weekend." and it not being true, that they actually plagiarized them from somewhere else, that this is very frequent. But again, this would be a case of bad faith that one would class along with the malice issue, right?

And again, I don't think bad faith or malice on the part of people is that common a problem.


Also, I think there has to be some check on the quality of the code coming in. Especially when your talking about something like Struts that a lot of people base big, important projects on, I don't think it would be wise to let any Java beginner commit code without it being scrutinized.

I never said that the code people commit should not be scrutinized! Most certainly it should be.

There are better places to "get your legs" than something like Struts. And plus, it is important to me at least that any committer on any project have a basic understanding of the overall code base, not just a small part to be sure the committed code fits with the overall code base.

Well, you can always review what they did. Your comments almost would lead a casual observer to think that you are unaware that any changes people make can be backed out. And quite easily.

I am not talking about an individual who makes a targeted contribution here or there, I'm talking about a permanent committer who can commit whatever they want at any time (subject to veto by other committers).


There is a third reason too actually: does the code at least somewhat jive with where the project is going? This was part of the debate all along... there has to be a balance between being open-minded and accepting new ideas, and just accepting anything that comes along. A good example is the SetupItems contribution I offered last year. While it doesn't represent a major paradigm shift or anything like that, the fact is that with Struts 1.3 in the pipeline, and chain being arguably a better solution to the same problem, it was, I feel, reasonable to say that the contribution maybe shouldn't have come in. I thought it was a good contribution, I in fact know a fair number of people took it and incorporated it on their own, but it was kind of superfluous with the chain refactoring coming, and so in a sense didn't jive with where Struts was going.

What is the basis for really believing this? The idea, AFAICS (you can clarify) is that if you let "anyone and everyone" commit code, they will commit all kinds of low-quality stuff willy-nilly.


Yes, I believe this is part of the risk.

Frank, I do not know all the answers, but here is what I suspect. If you just give commit access to anybody who asks for it -- as revolutionary an idea as that may sound to you -- most likely the sky will *not* fall in.

That the person who wants the commit access actually does malicious things -- I suspect this will just about never happen. That, when you review some of the code, you have objections to it, this can happen, but is not the end of the world.

You have the pros and the cons. Lowering the barrier to entry has the pros that you have a much better chance of getting fresh blood in the project. Keeping barriers high leads to what we observe around here.

I suspect the latter is the greater danger.



 > My own experience

running open-source projects has been that the vast majority of times that you give somebody commit rights to the code repository, they simply do nothing -- good or bad.


In fact, my own experience would echo that. But I'm not sure that says giving commit privileges is inherently safe...

Crossing the street is not inherently safe. OTOH, that, when crossing the street some homicidal maniac decides to run you over just for the hell of it -- this could happen, but quite rarely.

I say the malice thing is just not going to happen that much. Consider this. Despite your being a wonderful guy (I'm sure) somebody has a grudge against you. Is that person going to: (i) do nothing, 'cause he's got a life (ii) get on your mailing list and write an email entitled "Frank is an asshole" or (iii) dissimulate his grudge against you, pretend he's on your side and ask for CVS access all nice and then do malicious things.

I conjecture that (i) is 100 times more likely than (ii) which is in turn 100 times more likely than (iii)

What do you think?


maybe it just says people tend to get a little gun-shy when they are given extra power :)

 > When they do something, they are typically

quite conservative initially since they are aware that they are new kids on the block and the others are watching closely.


I agree, that is generally true. But would it be a good idea to open up the repository to just *anyone*?

Well, this is an empirical question. I have stated publicly that our policy with FreeMarker is basically to give commit access to anybody who asks for it. (YOu may note that there aren't that many developers on our project, which would seem to contradict this, but the thing is that I tend to remove people who, after a 6 months or more, haven't done anything, simply because I think the list should reflect people who actually have done something.

 That's what I was talking about.
Certainly some people wouldn't be conservative at first, they would jump right in, and without some sort of vetting process you can't be sure what will get in. Sure, you could always back it out if you had to, but that seems like cleaning up a nuclear meltdown rather than having safety regulations before-hand to avoid it in the first place :) (Sorry, just watched The West Wing)

I do not seriously see how restoring the code repository to some known state in the past is comparable to cleaning up a nuclear meltdown.

But it's an empirical question anyway, subject to an empirical test. Give commit privileges to anybody who wants them and see if the sky falls in. My conjecture is that it won't.



BTW, as regards the overall topic of discussion, I don't know whether JSF will be the next big thing or not. I have not the foggiest idea. OTOH, I do have an opinion about the Action/Shale cohabitation. My opinion, looking at the Struts community and website and the rest with newbie eyes is that this is disastrous. I think that any project has to have some coherent message and a person who visits your website and starts looking at the mail archive and so on has to be able to figure out quite quickly "WTF is struts" and to have such an incoherent message due to this Action/Shale bifurcation seems very negative. It just seems complicated and confused.


I think it is fair to say you are not alone in that opinion. What can be done about it, other than voicing the concern, I don't know. And heck, those that hold that opinion *could* be wrong.

Yes, that is always a possibility. But somehow I doubt it.

Besides, it's unlikely. The last time I was wrong about something was in the late 1980's. :-)



Well, to put it another way, if I were assigned the task of evaluating different things in this space, and Struts was one of them, it is very unlikely that I would settle on it. I would almost certainly end up opting for a non-schizophrenic alternative.

I don't know how other people see things. This is just my honest reaction. I have no vested interest in this.


I think it is fair to say that some people see no problem, others see a potentially big problem. Aside from that, I'm not sure any conclusion can be drawn :)

Well, that's not true, Frank. A conclusion can be drawn since it's an empirically resolvable question. You can replicate (roughly) the same experiment enough times to draw a pretty definitive conclusion. I don't say my own experience is enough to be definitive. But so far, my experience suggests that the fears you express about letting people commit code are not very well founded. In particular, the malice issue is pretty much an ersatz problem, I think. Also, that people start committing oodles of low quality code all of a sudden doesn't seem to happen either.

Jonathan Revusky
--
lead developer, FreeMarker project http://freemarker.org/
FreeMarker group blog, http://freemarker.blogspot.com/


Regards,

Jonathan Revusky


Frank



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to