Subject: RE: Nobody is THE one making contribution

From: Felipe Contreras <[email-masked]>
Date: Wed, 23 Dec 2020 09:51:44 -0600

Junio C Hamano wrote:
> Felipe Contreras <[email-masked]> writes:
> 
> >> > But I'm not going to pretend I'm fine with a change I disagree with; I'm
> >> > not. Especially when nobody is paying me to do this.
> >> ...
> >> >> The community needs to do its part in making you and everyone else
> >> >> feel welcome. At the same time you need to do your part in making
> >> >> contributors, especially the new ones, feel welcome and appreciated.
> >> >> Being overly critical can turn developers away from the project.
> >> >
> >> > Who are you talking about? I'm the one who made the contribution.
> >> 
> >> What does the "change you disagree with" you mention above refer to?
> >> Changes suggested by reviewers to add per-tool knob?
> >
> > Yes.
> 
> If so, please realize that this is a team effort.

Yes, but different people in a team have different roles. There's the
maintainers, the contributors, the reviewers, the translators, etc.

> You are not THE one making contribution.

When I'm sending a patch, I have the role of "contributor".

That doesn't mean the people revieweing the patch aren't making a
contribution as well, but traditionally they are not the ones being
assigned the role of "contributor".

In your own release notes [1] you say:

  New contributors whose contributions weren't in v2.29.0 are as
  follows.

Presumably these are the people who contributed patches, not reviews.

> If you are not fine with a change others will make on top of what
> you did, well, tough.

Yes, I know.

I don't know why you feel the need to explain that to me. I have been
contributing to open source projects for more than 20 years.

> It's not like by sending a patch you lick a corner of the cake and
> make it untouchable by others.

No, but just because others have an opinion that doesn't mean I must
have the same opinion as others.

Take judicial panels as an analogy. A group of judges must arrive at an
opinion [2], and sometimes they do without problems; all of them agree,
which is called an "unanimous opinion". Sometimes not everyone agrees,
in which case it's called a "majority opinion". When not everyone
agrees, a judge is perfectly entitled to write his or her "dissenting
opinion", which is a disagreement with the "majority opinion".

When there's a dissenting opinion, the court still moves forward with
the majority opinion, the dissenting opinion is written down for the
record.

When I express my dissenting opinion I'm not saying nobody should write
a patch on top of mine. Of course they can. Anybody can take my code and
do whatever they want with it (as long as they don't violate the license
of the project).

What they cannot do is add my Signed-off-by line to code I don't agree
with.

> Just as you said, you can agree to disagree and move on.

Yes, with my disagreement stated for the record. Just like dissenting
opinions in judicial panels.

> Once a rough concensus is reached that the work on top of what you did
> is a good direction to go, it would not get us anywhere to repeat the
> same opinion over and over again to block it.

I am not repeating the same opinion over and over, I am responding to
the comments of others, with an argument they fail to address.

If person A doesn't address my argument, and person B doesn't address my
argument, and person C comes along with comments that warrant the repeat
of the argument; I'm going to repeat the argument.

Nobody has addressed the argument.

It is the fault of person A that didn't address my argument that I had
to repeat it to person B, and so on. Not mine.

Cheers.

[1] https://lore.kernel.org/git/[email-masked]/
[2] https://en.wikipedia.org/wiki/Judicial_opinion#Kinds_of_judicial_opinions

-- 
Felipe Contreras