Re: stringng-cherrypick r12764

From: Alex Rousskov <rousskov_at_measurement-factory.com>
Date: Wed, 02 Oct 2013 09:28:57 -0600

On 10/02/2013 06:23 AM, Kinkie wrote:
> On Fri, Sep 27, 2013 at 7:12 PM, Alex Rousskov
> <rousskov_at_measurement-factory.com> wrote:
>> On 09/27/2013 03:52 AM, Amos Jeffries wrote:
>>
>>> As for this code specifically I see the unit tests in StringNG as having
>>> three authors with various parts by each of us three.
>>
>> Please keep in mind that a code author is not always a code copyright
>> holder. If you decide to go down this path, please make sure you list
>> copyright holders.

> as a lets-meet-halfway proposal, how about changing from "(C)
> someone" to "Main author: someone"

Hi Kinkie,

    If you think "main author" is a middle-ground solution, then you do
not understand the problems I am trying to solve. "Main author" is even
worse than the existing "author" or "(C)" lines! This is probably my
fault: Apparently, I did not explain the rationale for my request well.

There are several problems associated with the current approach:

* A specific "author" or "(C)" line implies that others are not the
authors or copyright holders of the code that follows. That is sometimes
false at the commit time and usually false as the committed code lives
on. Both "at commit time" and "after commit" aspects are important here.

* Once an author/(C) line is added, it becomes morally difficult to
remove even when information there is no longer true because removing
such a line may be perceived as a direct attack on somebody's
contribution and associated rights. This thread is a case in point, and
we are not even talking about committed code developed by a single
person here. Squid code is full of stale (C) and author lines that are
very misleading if not plain wrong.

* Once a single line is added, it becomes more difficult for others to
add their claim if they are adding a little bit to the existing large
work. Many of us would feel bad about adding "author" or (C) lines for
adding a method or two to an existing class, for example. This makes the
information in the first added line stale faster.

* Once multiple lines are added, it becomes difficult for others to
resist carving their name too, and the misleading list of claims starts
growing.

The "main author" solution is even worse because it would make removal
of that line (and adding the second line) even harder, while carrying
most of the other problems associated with "author" or (C) lines.

A correct label that does not cause most of these problems would be
something like

  One of the original authors: ...

or

  One of the creators: ...

but it looks silly, and I doubt many folks would be happy with that. And
it certainly does not solve all the problems anyway.

It is sad that many think that a source code file of a large project is
an appropriate place to claim their legal or moral rights, especially in
an open source environment. That fundamentally flawed idea is at the
core of all these problems. The best solution I know about is to place
all those claims in a file dedicated to such claims, with whatever
details the claimant feels are appropriate.

If the amount of your resistance is a good predictor, we will have to
live with these problems forever. If so, it would be doubly wrong to
force you, a key contributor, to be a rare exception. You are still free
to add whatever claims you want, preferably using a format already used
in many other Squid sources. As you know, my request has never been a
blocker for your merge.

I will still propose to add a standardized boilerplate to Squid sources
in a few days (I need to finish the code adding it), along with several
related maintenance changes. I believe its reviewed/adjusted version
will be accepted, but I suspect it will not replace all the misleading
author/(C) lines, unfortunately. Adding a standardized boilerplate would
still be better than maintaining the current status quo IMO.

Alex.
Received on Wed Oct 02 2013 - 15:29:24 MDT

This archive was generated by hypermail 2.2.0 : Wed Oct 02 2013 - 12:00:10 MDT