Need to do something

Daniel Vainsencher daniel.vainsencher at gmail.com
Fri Oct 14 08:31:19 UTC 2005



Andreas Raab wrote:
> Daniel Vainsencher wrote:
> 
>> I've been reading this for a while, and not really understanding what 
>> this is all about. I just want to understand what exactly is digging 
>> you..
> 
> 
> In the simplest terms possible: What's digging me is that if we want to 
> solve the harvesting problem we need to scale it.
Oh, I agree with that. Just don't happen to agree there is any problem 
with what Stef and Marcus are doing. Only problem is they feel they have 
to make some quota, and other people apparently feel they have to get 
permission before they can help. (Guys, you have permission. Really)

 > And if we want to
 > scale it we need maintainers,
Maintainers, in my book, are people that produce lines of MC versions of 
their packages in some public repository, such that these are what 
everyone starts from, because its clear that those versions are the 
best. Some packages are maintained, some aren't.

> and maintainers need to be able to take 
> ownership of their respective code. And that the current harvesting 
> process actively destroys that sense of ownership.
I don't see how it is possible to destroy the sense of ownership that 
I'm talking about. Either you're the person who's versions people want, 
or you're not. Maybe you're sharing. Only way someone can change that is 
being more active than you, and that is rarely a bad thing, isn't it? 
(if you think the chess example is such a case, I talk about it later)

> What code ownership means is simply that the person or group is 
> responsible for the code. That includes the power to make decisions 
> about that code, its design and its implementation, that includes the 
> responsibility to fix (or reject) bugs, that includes the ability to 
> decide about style issues.
Well, we happen to have a license that doesn't give you power to have 
exclusive power. So any programmer can make decisions about code, 
design, style and implementation. And any bundler (like Marcus or you 
guys for iSqueak) can decide which version of stuff to take, and what 
adjustments to make to that. Of course bundlers can't afford to make big 
changes to many specific packages, therefore it is impossible for them 
to really compete with any maintainers.

Therefore, absolutely nothing about the current process stops 
maintainers from exerting sufficient control of their packages - all 
they need to do is be active enough, and then of course bundlers will 
take their versions.

And of course bundlers have the right and need to make adjustments to 
fit version to their release. That their job? so what if a maintainer 
can't put a version into the release repository, who cares? that's not 
the official repository for the package, it just happens to be what that 
bundler is releasing, who cares about that?

> But you are missing the point. Of course I can ignore other people's 
> patches. That's just what I've been doing for the last couple years. But 
> the point of this discussion is not how to *ignore* other people's 
> patches but how to *care* for them, e.g., deal with harvesting in a 
> better way.
Yes, I'm just saying that all that that takes is the maintainers need to 
be active. If maintainers feel that they are blocked by someone else 
integrating something they dont like, then they are simply 
misunderstanding MC. What was integrated, can be easily unintegrated 
(*), and that's the bundlers problem. All the maintainer has to do is 
produce the version that is best, by merging in only what is an 
improvement.

If he's nice, then he can throw people a clue when they're thrashing, to 
reduce the general noise level. If he does, he might even find he's 
getting listened to, and we'll earn more clueful contributors. Nobody 
can stop you from doing this, and nobody can force you to do it.

If enough people just do it, bundlers will have an easy life.

> This is so frustrating. 
Don't have a cow, man :-)

> You are actually making my point
Not a problem, since we mostly agree

> without even 
> recognizing it:
That's your opinion

> Yes, if we *HAD* a maintainer, then this maintainer 
> *COULD* make the decision if he were allowed to do that. But for the 
> stuff that's in the image we *don't* have any maintainers, and except 
> from Marcus and Stefane *nobody* can actually do anything! 
Really? wow, I had no idea! and there I was, thinking that I'd posted 
new versions of the kernel package to a public repository, and anyone 
can decide to take that instead of the official repository. I must be 
completely mistaken, because I didn't get any permission from anyone, so 
they must not really be there in that inbox for anyone to use. Hey guys, 
why didn't you tell me Marcus and Stef are masters of the universe, 
that's so unfair :-D

> And if indeed 
> you *first* send the patch to the maintainer then all is well but that's 
> *not* what has happened in the harvesting process; instead changes got 
> committed *right over the head* of the people responsible for the code.
Look, I agree it would be useful if Marcus had told people "have you 
shown the chess stuff to Andreas?". Of course this would probably have 
happened if you'd asked for it to happen. But it certainly isn't 
necessary. You're making a greek tragedy of what should be a minuscule 
inefficiency. Next time you put out a great new version of the package 
you're maintaining, and it completely ignores the changes john doe made, 
its the bundlers job to solve it. If there are no conflicts, he can play 
stupid and just merge. If there are conflicts, he might have to think, 
and at that point probably have you and mr. doe bang heads and put out 
something he can use. Or he might decide he's just undoing the other 
guys stuff and merging in yours and be done with it.

Please explain to me how anything about this scenario bothers the 
genuine, "putting out a version a month" maintainer.

> The problem is that all of what you write is pure theory that doesn't 
> exist today. 
Sure it exists. MC is an example. Avi maintains it. Bert occasionally 
contributes, at some periods, more frequently than Avi. Then Marcus 
might merge Berts stuff "over Avi's head". If Avi really dislikes a 
change, he can merge and undo, or ignore and forge on, and Marcus can do 
what he wants. No fuss, no muss. Wow, we even have multiple maintainers, 
and it works, even with that meddlesome "official" repository. No problem.

> We have no maintainers, but even if we had, they wouldn't 
> have access to their own code, and where we indeed have maintainers with
> access to their code their ownership of that code gets simply ignored. 
Ownership seems like an empty concept to me in our context. If you're 
really maintaining the package, anyone is a fool to ignore you, and 
we're not seeing that (welcome to show me an example). If you're not 
really maintaining the package, having your name up somewhere and having 
to go through you is just drag when someone wants to do the work (see 
case of xfree86).

You might think you're entitled to veto someone elses refactorings by 
ignoring them, I happen to disagree. You want a say, you'll have to say 
it, or at least release versions. Other wise we must assume you either 
don't care or agree.

> Sigh. I'm tired now.
Always fun to cross keyboards... :-D

(*) to undo a version - Suppose B,C descend from A, I bundler had A, 
merged B, and now decided C is good, and B is bad. So I load A, adopt B, 
merge C, and save as D. Publish D as the next official version. IIUC, 
when people merge it in, it undoes the B changes, and installs those of 
C, with perfectly good ancestry records, so merges will continue to work 
well in the future.

Daniel




More information about the Squeak-dev mailing list