Format mymoney headers according to the KDE guidelines
AbandonedPublic

Authored by wojnilowicz on May 19 2018, 11:27 AM.

Details

Summary

Purpose of this patch is to tidy up source code headers. Right now we've
got three different types of headers (accountsviewproxymodel.cpp,
payeeidentifier.cpp, kcurrecycalculator.cpp). This patch will
standardize them to one according to
https://community.kde.org/Policies/Licensing_Policy#GPL_Header

Moreover, there are some names in the headers, which have not event
touched the file, so it's false authorship. Those names has been
removed. List of the names to remove has been taken from:

  1. CVS logs (http://kmymoney2.cvs.sourceforge.net/),
  2. git logs,
  3. CVS mailing list

(https://sourceforge.net/p/kmymoney2/mailman/kmymoney2-developer/)

  1. CVS stats

(http://kmymoney2.sourceforge.net/kmymoney2-stats/authors.html)

After removing some names, the headers look a bit bald :) so I've added some of the authors, that actually contributed to the files.
There were also two contributors, who didn't have their accounts:

  1. Carlos Eduardo da Silva
  2. Alessandro Russo

so I left them where they were, as they were only in few spots.

Diff Detail

Repository
R261 KMyMoney
Lint
Lint Skipped
Unit
Unit Tests Skipped
wojnilowicz requested review of this revision.May 19 2018, 11:27 AM
wojnilowicz created this revision.

Wow. Don't you think that "kicking somebody off the project" seems a little harsh? In the end, those people claimed their authorship through adding their names to the headers (and that's what -when push comes to shove- really matters), not through comments on a mailing list or cvs commits. To me, removing someone who did potentially contribute (and, honestly speaking, why would someone add him/herself to the headers of the source files if they didn't?) in any form (technically this could have been verbally expressed advice, review or anything that happened offline before checking the code in) is (in lack of better words) morally questionable and, at the very least, just rude. How would you feel if in a year or two someone removes your name arguing that he or she doesn't see you as a valid author/contributor because of some kind of self defined metric (cvs commits, in this case)? In your opinion - what is the improvement (to the code, the application, the project, or anything) or gain resulting from removing those people?

NOTE: I think it is important to have this discussion, but I do not intend for it to block or delay committing these changes. Even if there is eventual agreement for a different handling of author names, it can be handled with a separate commit at that time.

Moreover, there are some names in the headers, which have not event touched the file, so it's false authorship. Those names has been removed. List of the names to remove has been taken from:

Item 3 should probably say "KMM Sourceforge developer mailing list, not CVS mailing list. It seems there was a CVS list, but it appears empty. The developer list starts June 17, 2001, but there was already a working software at that point. There was a 0.1-190400 release 18 April 2000. When do the CVS logs actually start?)
First, please let's be clear: you do not have absolute knowledge of who contributed to the files. That is the underlying problem. You are making the assumption that anyone who contributed would have done so by committing a file or change to the version control system in use at the time, or perhaps be explicitly mentioned in the mailing list. While that is not a totally unreasonable assumption, it may or may not be absolutely correct. As I said before, and I don't know if you understand, a lack of proof that something happened is not proof that it did not happen. It is quite possible (even if not likely) that two people worked on a file, sharing by email, but only one checked the final result into the system. You can say there is no evidence that someone contributed to a file, but you cannot say there is any evidence he did not contribute.
One question on wording: you say the list of names to remove was taken from the sources you list. Do you really mean the list of names to NOT remove? Am I right that you removed names that were NOT on any of those lists?

After removing some names, the headers look a bit bald :) so I've added some of the authors, that actually contributed to the files. There were also two contributors, who didn't have their accounts:

How do you know who "actually contributed" to which files, especially if they did not have commit access to CVS? Again, that it the basic question, when adding or removing author names from a file.
Another question - in the other review, you mentioned that any name removed as author from source files would at least be mentioned as an early contributor, so we would not totally remove them from recognition. Has this been done?
Now - in defense of these changes: I accept that the names in the header of a source file should be authors of that file - people who actually wrote at least some of the code. People who contributed ideas, design, review comments, and the like, but not actual code, get listed in the documentation and in "About" listings.
I do have a personal guess about how so many files all ended up with the same list of authors: I suspect the original set of files written and checked into the original CVS repository for KMM did not have any consistent headers or list of authors. At some point, someone made all the headers consistent, and the team agreed on the list of authors to use for all files. This is only a guess - and I would love to hear from someone who was part of the team at that point. I do not know if it might have been mentioned in the mailing list, or if anyone has any emails from before the mailing list was set up. However, even if my guess is correct, it only means that list of people contributed to the project - it says nothing about who should be listed as an author of which file.
So - my personal opinion is to go ahead with these changes, as long as any name removed as author from file headers is still given credit in the "About" dialog and the documentation, and we continue to look (even if at very low priority) for more definitive data about the details of original authorship.

Wow. Don't you think that "kicking somebody off the project" seems a little harsh? In the end, those people claimed their authorship through adding their names to the headers (and that's what -when push comes to shove- really matters), not through comments on a mailing list or cvs commits. To me, removing someone who did potentially contribute (and, honestly speaking, why would someone add him/herself to the headers of the source files if they didn't?) in any form (technically this could have been verbally expressed advice, review or anything that happened offline before checking the code in) is (in lack of better words) morally questionable and, at the very least, just rude. How would you feel if in a year or two someone removes your name arguing that he or she doesn't see you as a valid author/contributor because of some kind of self defined metric (cvs commits, in this case)? In your opinion - what is the improvement (to the code, the application, the project, or anything) or gain resulting from removing those people?

I agree with you that kicking somebody off the project is not very moral act. I wouldn't want to be kicked out myself. I don't want to do this and I think, that I'm not doing that, what you are accusing me of.

The topic seems a little bit hot and I think because of some misconceptions going on here:

  1. people added their names to the headers either by themselves or asking someone else to add it for them,
  2. people contributed to the files,

ad 1)
First, it's worth reading my comment here. We can see the pattern of the same names in the same order and without years of contribution in many files. That fact tells us that this is rather a leftover from copying a .cpp and .h file to create a totally new .cpp and .h file (which I often do myself if I want to start new code). While creating a new .cpp and .h file you should remove old authors except you do e.g. refactoring work.

There is also file like this
Where we can see Kevin Tambascio with an email ipwizard@users.sourceforge.net which belongs to Thomas Baumgart :) It's an example of obvious no order in the headers.

ad 2)
There are several names in mymoney directory (yes, only several names contributed really much to KMyMoney) which are totally off the headers, so I added them. Those are: Ace Jones, Alvaro Soliverez, Kevin Tambascio. You can observe how many names popped out in mymoneystoragemgr.cpp

I contribute to KMyMoney for over 2 years and I could share with you what I've experienced. No one gives authorship for an advice and I'm not expecting this. There is no huge traffic from mail contributors neither. If authorship couldn't be established like in Carlos's and Alessandro's case, then they're left as they were.

Those all facts tells us that nobody paid much attention to "authorship management" in the past. That's bad because you have impression (and stand by that firmly) that random group of people initially wrote KMyMoney, while real contributors remain in shade.
Moreover that's a sign of bad quality if:

  1. you've got more than one version of headers in your code,
  2. you don't know real (those who contributed the most) contributor names,
  3. you don't know contribution dates.

As for the "removing by self defined metric":
I'm not checking contributions by hand. I use an algorithm and after that I manually review files and logs from that algorithm to know if it worked well. Initially I only wanted to remove names, but as I started to remove them, something was not right, so I started to look for real contributors and I found them, so I added them.

wojnilowicz added a comment.EditedMay 19 2018, 8:37 PM

NOTE: I think it is important to have this discussion, but I do not intend for it to block or delay committing these changes. Even if there is eventual agreement for a different handling of author names, it can be handled with a separate commit at that time.

That's what I want to hear :) I want to get more achievable ways in determining authorship.
It's not that hard to get logged as an author and if there is no sign of a person in any log, then he didn't belong there and there is not worth to keep him.

There was a 0.1-190400 release 18 April 2000.

Could you direct me to that release? I would love to review it manually.

When do the CVS logs actually start?)

First commit on CVS dates on 2001/03/07

One question on wording: you say the list of names to remove was taken from the sources you list. Do you really mean the list of names to NOT remove? Am I right that you removed names that were NOT on any of those lists?

I do not understand you here, so please ask again If my explanation doesn't answer your question.

Let's say that in mymoneyxxx.cpp there are following names:
Javier Campos Morales <javi_c@users.sourceforge.net>
Felix Rodriguez <frodriguez@users.sourceforge.net>
John C <thetacoturtle@users.sourceforge.net>
Thomas Baumgart <ipwizard@users.sourceforge.net>
Kevin Tambascio <ktambascio@users.sourceforge.net>
Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>

after removing names that didn't contribute to the file only two names remain:
Thomas Baumgart <ipwizard@users.sourceforge.net>
Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>

so I search who did contribute to that file but was not initially on the list and I ended up with:
Michael Edwardes <mte@users.sourceforge.net>
Tony Bloomfield <tonybloom@users.sourceforge.net>
Ace Jones <acejones@users.sourceforge.net>
Thomas Baumgart <ipwizard@users.sourceforge.net>
Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>

How do you know who "actually contributed" to which files, especially if they did not have commit access to CVS? Again, that it the basic question, when adding or removing author names from a file.

That's rare, that someone did not have commit access and was in the headers (only two names in mymoney directory) The rest of the names (15 form CVS) were identified on the list as active and direct contributors.

Another question - in the other review, you mentioned that any name removed as author from source files would at least be mentioned as an early contributor, so we would not totally remove them from recognition. Has this been done?

I didn't promise that. It seems to me like belittling someone's contribution.

At some point, someone made all the headers consistent, and the team agreed on the list of authors to use for all files.

I repeat: That's not right in terms of authorship. The negative term for that is ghost authorship.

However, even if my guess is correct, it only means that list of people contributed to the project - it says nothing about who should be listed as an author of which file.

Here comes CVS and GIT

So - my personal opinion is to go ahead with these changes, as long as any name removed as author from file headers is still given credit in the "About" dialog and the documentation, and we continue to look (even if at very low priority) for more definitive data about the details of original authorship.

I think, that's a good idea. There is a "Thanks To" tab in KMyMoney and we could gather all those people, put them there and describe as "patches sent". I like that :)

As this is not a really good forum for this type of discussion, I hope I can be sufficiently brief here, and perhaps we can continue the discussion on the dev mailing list.

To find the initial release, follow the link you posted for the mailing list, click the link for "files," then select KMyMoney. That gives a list of all releases made from SourceForge. A direct link is: https://sourceforge.net/projects/kmymoney2/files/KMyMoney/

Regarding my question about the list of names, it was just about the wording of the initial description. I understand the actual procedure you used.

I think we all agree that going forward, a name should be added as an author only if the person made a concrete contribution to that file. This discussion is about what to do about a name added "long ago" where we do not have any direct evidence of contribution. The question is whether it is OK to remove that name or not. Some think it is not only OK, but necessary. Others still have reservations. The fact that there is a set of names that appears identically in many files does make it likely that they were added at the same time, or just by copy/paste. We have different opinions about is whether it is correct to assume that none of them contributed to those files without specific evidence, such as having checked the file into CVS (or later git.)

It is certainly true now that getting credentials to commit to git is not very difficult. Unfortunately, that is completely irrelevant to this discussion, since we were not present at the time these files were created and modified. As I said before, and I don't know if you simply disagree, or if you don't understand, but just because someone is not mentioned in the CVS log, does not mean he did not contribute to the file. Yes, someone who contributed is very likely to be in the log. But there are valid reasons it might not happen, even if they are unlikely. Saying that not being in the log means "it is not worth to keep him" is a judgement call, and some of us disagree. I think there is an important difference between leaving in a name of someone who did not contribute (possibly misleading, given undeserved credit) and removing the name of someone who did contribute (removing direct credit.) You think the first is worse, I am more concerned about the second. The only reason I am not actually objecting to these commits is that at least some form of credit remains in other forms (docs and about).

On that topic, I hope we agree that no name be totally removed from the project by these edits. I have no idea why you think that would belittle anyone. I think removing someone's name from the project would be far worse. Names are being removed from the list of authors in specific source code files. If names which are present in one or more other files, nothing else should be needed, assuming that all authors are already listed in some appropriate section of contributors. However, if a removed name is not present in any other source file, then it should definitely be added to the docs and about lists, if not already present. I don't care whether it is a part of the "Thanks To" or a separate list, but I think something like "Contributions to early versions of the program" would work, possibly with "but we do not have details about specific topic or files." Think about what if one of these people shows up at a KDE meeting next year, and says "Oh, I used to work on KMyMoney." Will you be comfortable showing him how he is remembered?

Łukasz,

The topic seems a little bit hot and I think because of some misconceptions going on here:

  1. people added their names to the headers either by themselves or asking someone else to add it for them,
  2. people contributed to the files,

In my POV, the problem is that we can't really distinguish 1) from 2) anymore. While your assumption that people without traces in cvs or on the mailing list may not be valid authors is probably not the worst metric someone could come up with it is, in the end, still just speculation.

First, it's worth reading my comment here. We can see the pattern of the same names in the same order and without years of contribution in many files. That fact tells us that this is rather a leftover from copying a .cpp and .h file to create a totally new .cpp and .h file (which I often do myself if I want to start new code). While creating a new .cpp and .h file you should remove old authors except you do e.g. refactoring work.

I had read that but I don't necessarily come to the same conclusion as you. I agree, it might be a copy&paste situation. It might also be an indication of someone making changes to a file and someone else checking the file into version control. The point is - we don't know for sure.
This is not just hypothetical. For instance, in kmymoney/mymoney/mymoneybudget.h you booted out Darren Gould and replaced by Ace Jones. The commit message that Ace wrote does, however, credit Darren as well - which, to me, sounds like he is the true author of the file and Ace took care of committing to the repo.
There may or may not be more cases like these; I did not go through each and every change and double checked.

I contribute to KMyMoney for over 2 years and I could share with you what I've experienced. No one gives authorship for an advice and I'm not expecting this. There is no huge traffic from mail contributors neither. If authorship couldn't be established like in Carlos's and Alessandro's case, then they're left as they were.

While this might be a valid observation in the last two years, it is probably not representative for the time when development on kmm initially started. This seems to have been almost twenty years ago - think back, most people (at least in europe) did not even have access to the internet back then - they might very well have had someone else take care of committing code they modified offline themselves. That doesn't make them second rate authors (or even non-authors) though.

Those all facts tells us that nobody paid much attention to "authorship management" in the past. That's bad because you have impression (and stand by that firmly) that random group of people initially wrote KMyMoney, while real contributors remain in shade.
Moreover that's a sign of bad quality if:

  1. you've got more than one version of headers in your code,
  2. you don't know real (those who contributed the most) contributor names,
  3. you don't know contribution dates.

I'm not arguing the "we should have uniform headers" point; this appears to be common sense to me - it's only the "we remove people whose contribution we're unsure of" topic that I am concerned about. Removing people we have incomplete information about and just assuming they didn't contribute at all just does not seem fair to me.

I'm not checking contributions by hand. I use an algorithm and after that I manually review files and logs from that algorithm to know if it worked well. Initially I only wanted to remove names, but as I started to remove them, something was not right, so I started to look for real contributors and I found them, so I added them.

That's what I assumed. I didn't mean that you manually went through the files but rather that the "only people with CVS or mailing list activity are true authors" metric is somewhat arbitrary.

I didn't promise that. It seems to me like belittling someone's contribution.

I beg to differ. For me, an "early" contribution is not a "bad"/"minor"/"insignificant" contribution. To me, it just indicates the contribution was done at a point in time before changes/authorship was tracked in more detail. Leaving somebody off the list who did contribute, however, is probably as belittling as possible. The "early" section might not be that bad of a compromise...

I repeat: That's not right in terms of authorship. The negative term for that is ghost authorship.

Agreed. However: Removing true authors from the list is not right in terms of authorship either and is actually discrediting those people while ghost authorship does not hurt anyone.

Another problematic example is kmymoney/mymoney/mymoneyinstitution.cpp where you removed Michael Edwardes. The first comment for this file in CVS is by Thomas and says "[...] renamed MyMoneyBank to MyMoneyInstitution, also all references[...]".
When you look into the 0.3.1 release on the sourceforge page that Jack linked, you'll find that the original mymoneybank.cpp does only list Michael in the header - he seems to be a legit contributor to this file if not the initial author.
This also kind of disproves your "Let's be real, if someone had an account in cvs for commiting code, then he wouldn't ask someone else for commiting it for them. You can see proofs of any work on cvs stats, mailing list and logs, that I linked above." argument in D12836.

As this is not a really good forum for this type of discussion, I hope I can be sufficiently brief here, and perhaps we can continue the discussion on the dev mailing list.

I think it's a good forum for this discussion. The patch will be sent with a reference to this review.

This discussion is about what to do about a name added "long ago" where we do not have any direct evidence of contribution. The question is whether it is OK to remove that name or not. Some think it is not only OK, but necessary.

I think that we all agree that it's not OK to remove names that has been added "long ago" and contributed. I think we should find a way to find them and keep them. I will review initial releases (beyond CVS) to get wider perspective on that. I believe it's a very few names.

It is certainly true now that getting credentials to commit to git is not very difficult. Unfortunately, that is completely irrelevant to this discussion, since we were not present at the time these files were created and modified.

But someone was present at that time and contributed the code. That's all the trace we need. If he didn't mention original author, then he made it bad for him. That's not that I'm now making it bad for him now.

I think there is an important difference between leaving in a name of someone who did not contribute (possibly misleading, given undeserved credit) and removing the name of someone who did contribute (removing direct credit.) You think the first is worse, I am more concerned about the second.

I'm not in favor of paralyzing situation where you don't know what to do. Authorship should be clear and unquestionable.

I have no idea why you think that would belittle anyone.

By marking a contributor a distinguishing tag. It shouldn't matter. All contributions are equal. No matter if it's 1000 or 100 lines of code.

Think about what if one of these people shows up at a KDE meeting next year, and says "Oh, I used to work on KMyMoney." Will you be comfortable showing him how he is remembered?

I would say that's glad to hear :) then ask him on what part he had worked and finally I would make sure he's still on the list of authors.

While your assumption that people without traces in cvs or on the mailing list may not be valid authors is probably not the worst metric someone could come up with it is, in the end, still just speculation.

I see here another misconception that you both perpetuate, namely:
People are booted out of the headers because they aren't present in CVS.
That's not true. I do not boot anyone on the basis that he isn't in the CVS. That's the "metric" (as you called it) you can apply only to names who had an account in CVS. They've contributed directly through CVS, so they can be identified by CVS logs.
There is no such way to identify contributors who didn't have an account. Those are contributors like Alessandro Russo, but their contributions don't seem to be excessively large, so they should be left alone. I think that's fair.

For instance, in kmymoney/mymoney/mymoneybudget.h you booted out Darren Gould and replaced by Ace Jones. The commit message that Ace wrote does, however, credit Darren as well - which, to me, sounds like he is the true author of the file and Ace took care of committing to the repo.

You are 100% right. You showed me an obvious flaw :) That's how I expect it to be here. I did not intend to kick Darren out. I will look into that matter so that I can understand why he has been thrown away an I'll improve my algorithm so that no such thing will happen in the future. I see that he is originaly missing from .cpp file and that's not right as well.

Removing people we have incomplete information about and just assuming they didn't contribute at all just does not seem fair to me.

With information from 0.3.1 release we should be all covered and have complete information. See my answer at the bottom

I beg to differ. For me, an "early" contribution is not a "bad"/"minor"/"insignificant" contribution.

For me neither and I see no need to mark someone as early contributor.

Another problematic example is kmymoney/mymoney/mymoneyinstitution.cpp where you removed Michael Edwardes. The first comment for this file in CVS is by Thomas and says "[...] renamed MyMoneyBank to MyMoneyInstitution, also all references[...]".

Those renames are the worst. They need to be processed by hand. I'm already prepared for that and will look into it.

Agreed. However: Removing true authors from the list is not right in terms of authorship either and is actually discrediting those people while ghost authorship does not hurt anyone.

On that basis you could say: once in (rightfully or not) never out. That's not how well managed source code should look like.

When you look into the 0.3.1 release on the sourceforge page that Jack linked, you'll find that the original mymoneybank.cpp does only list Michael in the header - he seems to be a legit contributor to this file if not the initial author.
This also kind of disproves your "Let's be real, if someone had an account in cvs for commiting code, then he wouldn't ask someone else for commiting it for them. You can see proofs of any work on cvs stats, mailing list and logs, that I linked above." argument in D12836.

You are right. That's my error. More files need to be processed to not lose Michael's contributions.
However when you look at 0.3.1 from 2001-02-28 you can see that sole author is Michael :) so every other author should appear in CVS or GIT in some way.

  1. add Darren Gould name in every file he contributed,
  2. include contributions before 2001-03-07,
  3. include authors that were only in .h files and not in .cpp files.

No we should be more certain of authorship state.

Łukasz,

[...] That's the "metric" (as you called it) you can apply only to names who had an account in CVS. They've contributed directly through CVS, so they can be identified by CVS logs. [...]

Hmm, isn't that logic flawed even for people who did have CVS though? Couldn't someone have sent patches (and therefore be a legit contributor) to a file before getting CVS access and never have touched the file again later on? Plus, again, some of this was in the early 2000's when people were sitting on crappy dial up connections (if at all) - so even having an account for the repo does not necessarily mean they always had the possibility to check in their changes themselves...
Fernando Vilas seems to be an example for this kind of situation; there is, for example a CVS commit by Tony Bloomfield crediting Fernando on 2007-05-10 11:09, even though Fernando did have CVS access himself later on.
Another example is kmymoney/mymoney/mymoneyinvesttransaction.h (+.cpp) which seems to have contributions by Michael Edwardes, checked in by Kevin Tambascio (see commit messages for rev. 1.1 from 2002/02/03 17:18:55)

And, what about changes by user A to a file that got moved (including the credits) to another file during refactoring by user B later on? This seems to be the case with mymoneyaccountloan.cpp (+.h), which used to be part of mymoneyaccount.cpp (Michael Edwardes?). You'd almost have to analyze every single line of code in every commit to make sure you're not removing a legit contributor.

Then, there are also cases where one user checked files into the repo, the header reflects another user and the Changelog.txt credits the same name as the header: kmymoney/mymoney/mymoneysplit.cpp, CVS revision 1.9 from 2003/09/15 19:01:31, commit by Thomas, changelog entry by Thomas, credits Michael (Edwardes?).

On that basis you could say: once in (rightfully or not) never out. That's not how well managed source code should look like.

Yes and no :). If someone did not contribute to a file (as in "beyond reasonable doubt") there's no point in keeping them. The problem though is that you can't really prove that, so you're making assumptions that may or may not be correct. I, personally, would rather keep 5 people with unclear contribution status than removing one true author .

On a more general note: Not sure whether I'm completely following your "add back people who contributed but were not credited in the headers" approach - for instance, there's CVS commits by user "woro" (Wolfgang Rohdewald) to kmymoney/mymoney/mymoneyfinancialcalculator.cpp but he doesn't show up in your patch. I'm not really concerned about cases like these because Wolfgang didn't add himself to the headers in the first place, but thought you might want to know that your algorithm doesn't seem to catch all instances of "lost authorship". Maybe I just misunderstood your approach though.
Another example is kmymoney/mymoney/mymoneyprice.cpp (Tony Bloomfield, CVS rev. 1.2.2.1 from 2005/09/28 10:31:52)
Or kmymoney/mymoney/storage/mymoneystoragemgr.h and kmymoney/mymoney/storage/mymoneystoragemgr.cpp - Fernando Vilas - git commit d6081ed0.

wojnilowicz added a comment.EditedMay 20 2018, 3:50 PM

Hmm, isn't that logic flawed even for people who did have CVS though? Couldn't someone have sent patches (and therefore be a legit contributor) to a file before getting CVS access and never have touched the file again later on?

It could possibly happen but I scan commits for an author and a committer.

Plus, again, some of this was in the early 2000's when people were sitting on crappy dial up connections (if at all) - so even having an account for the repo does not necessarily mean they always had the possibility to check in their changes themselves...

So how did those changes travelled to the repository? Through conventional post in an envelope on a diskette? :) That's like generating problems, where there is no problem.

Fernando Vilas seems to be an example for this kind of situation; there is, for example a CVS commit by Tony Bloomfield crediting Fernando on 2007-05-10 11:09, even though Fernando did have CVS access himself later on.

That's exactly one line patch. What are you trying to prove? Are you really want to hunt authorship to a single letter? That's impractical and not what this patch is all about. Fernando is already on mymoneystoragesql.cpp so no lost authorship.

Another example is kmymoney/mymoney/mymoneyinvesttransaction.h (+.cpp) which seems to have contributions by Michael Edwardes, checked in by Kevin Tambascio (see commit messages for rev. 1.1 from 2002/02/03 17:18:55)

Michael's contribution doesn't concern mymoneyinvesttransaction.h (+.cpp) so no lost authorship.

And, what about changes by user A to a file that got moved (including the credits) to another file during refactoring by user B later on? This seems to be the case with mymoneyaccountloan.cpp (+.h), which used to be part of mymoneyaccount.cpp (Michael Edwardes?). You'd almost have to analyze every single line of code in every commit to make sure you're not removing a legit contributor.

That has to be analysed manually. I forgot about that file and will fix it.

Then, there are also cases where one user checked files into the repo, the header reflects another user and the Changelog.txt credits the same name as the header: kmymoney/mymoney/mymoneysplit.cpp, CVS revision 1.9 from 2003/09/15 19:01:31, commit by Thomas, changelog entry by Thomas, credits Michael (Edwardes?).

In that change log, that you are referring to, there has been written:
"* added case insensitive account names as suggested by Michael"

You are certainly nitpicky. That way we could say that a random man on a street should definitely be on the authors' list because he suggested that e.g. KMM logo should be yellow. It's too fine grained for me.

I'm not taking you seriously. If you don't want to help, then please stop being a drag by being nitpicky.

On a more general note: Not sure whether I'm completely following your "add back people who contributed but were not credited in the headers" approach - for instance, there's CVS commits by user "woro" (Wolfgang Rohdewald) to kmymoney/mymoney/mymoneyfinancialcalculator.cpp but he doesn't show up in your patch. I'm not really concerned about cases like these because Wolfgang didn't add himself to the headers in the first place, but thought you might want to know that your algorithm doesn't seem to catch all instances of "lost authorship". Maybe I just misunderstood your approach though.
Another example is kmymoney/mymoney/mymoneyprice.cpp (Tony Bloomfield, CVS rev. 1.2.2.1 from 2005/09/28 10:31:52)
Or kmymoney/mymoney/storage/mymoneystoragemgr.h and kmymoney/mymoney/storage/mymoneystoragemgr.cpp - Fernando Vilas - git commit d6081ed0.

Did I say that I've added all contributors? You can do it yourself and feel how it's to contribute in contrast to harshly criticize.

Łukasz,

So how did those changes travelled to the repository? Through conventional post in an envelope on a diskette? :)

Are you seriously questioning that people in distributed teams worked on software before the internet? I certainly remember passing sourcecode around on floppy disks and CDs myself. This was a pain in the neck and I'm sort of jealous of you if you didn't have to go through that. Just because you didn't does not mean noone did, though.

That's like generating problems, where there is no problem.

One could say the same thing about removing (potential) contributor's names from the headers (no offense!).

That's exactly one line patch. What are you trying to prove? Are you really want to hunt authorship to a single letter? That's impractical and not what this patch is all about. Fernando is already on mymoneystoragesql.cpp so no lost authorship.

Your contradicting yourself: "All contributions are equal. No matter if it's 1000 or 100 lines of code.". You said that, not even 24h ago. If 100 lines is ok to be mentioned, but 1 line is not, what's the threshold? And are you going to remove people's names (including yourself?) for short commits going forward as well? Are fifty one-line-commits worth less than one fifty-line-commit?
It's not about that specific Tony<>Fernando case, it is an example that such cases do seem to exist and your assumption ("Let's be real, if someone had an account in cvs for commiting code, then he wouldn't ask someone else for commiting it for them.") does not apply to all cases.

You are certainly nitpicky. That way we could say that a random man on a street should definitely be on the authors' list because he suggested that e.g. KMM logo should be yellow. It's too fine grained for me.

Again, this was an example. Since you seem to be bothered by examples, let me rephrase that more generically: I'd like to point out that some people might not have been mentioned in commit messages but in some other form of log (e.g. the chhangelog file) - and that relying on the repository's commitlog and/or the mailing list alone might not give you the full view of what was going on.

I'm not taking you seriously. If you don't want to help, then please stop being a drag by being nitpicky.

That escalated quickly - keep your shirt on, man. Your tone of voice is just bluntly rude here. There is absolutely no reason to make this discussion personal.

Did I say that I've added all contributors? You can do it yourself and feel how it's to contribute in contrast to harshly criticize.

Not literally. In my POV, the process you described sort of implied that, though. You did certainly not mention that you filtered out people's names that you deemed not noteworthy.

wojnilowicz added a comment.EditedMay 20 2018, 6:38 PM

Are you seriously questioning that people in distributed teams worked on software before the internet? I certainly remember passing sourcecode around on floppy disks and CDs myself. This was a pain in the neck and I'm sort of jealous of you if you didn't have to go through that. Just because you didn't does not mean noone did, though.

I just don't want to go off topic here. Sorry if I offended you.

That's like generating problems, where there is no problem.

One could say the same thing about removing (potential) contributor's names from the headers (no offense!).

I just don't want to go off topic here.

Your contradicting yourself: "All contributions are equal. No matter if it's 1000 or 100 lines of code.". You said that, not even 24h ago. If 100 lines is ok to be mentioned, but 1 line is not, what's the threshold? And are you going to remove people's names (including yourself?) for short commits going forward as well? Are fifty one-line-commits worth less than one fifty-line-commit?
It's not about that specific Tony<>Fernando case, it is an example that such cases do seem to exist and your assumption ("Let's be real, if someone had an account in cvs for commiting code, then he wouldn't ask someone else for commiting it for them.") does not apply to all cases.

That's not what I meant. Nobody is removing anybody here for commit, which is too short. I won't remove myself or anyone else for that reason but I will not add anyone neither.
My sentence, you are referring to, is true. There is no need for an account if you can't commit code via it. You presented two persons with account from which one includes the other in a commit message. It was not like: I'm committing your big patch my fellow developer. I saw rather short, simple fixes not worth fighting over check-in.

Again, this was an example. Since you seem to be bothered by examples, let me rephrase that more generically: I'd like to point out that some people might not have been mentioned in commit messages but in some other form of log (e.g. the chhangelog file) - and that relying on the repository's commitlog and/or the mailing list alone might not give you the full view of what was going on.

AFAIK, the change log is an extract from commit messages and I scan this log for names as well, so I've got view on that as well.

Did I say that I've added all contributors? You can do it yourself and feel how it's to contribute in contrast to harshly criticize.

Not literally. In my POV, the process you described sort of implied that, though. You did certainly not mention that you filtered out people's names that you deemed not noteworthy.

It seems to me like you don't know how the process goes, so I explain it to you rather straightforward:
Nothing happens by itself. You have to put some work in it. If you want to hunt for oneliner of Tony<>Fernando to include him on the authors' list because he wasn't there before, then you are free to go. In that perspective, your words offend me, because it's not that I shaved off noteworthy but rather gone an extra mile to include the worthy ones.

I've committed it as there is no more feedback regarding missing authors.

wojnilowicz abandoned this revision.May 27 2018, 5:41 PM

I'm a little confused - was this committed or abandoned?

Also - there will be more comments at some point, but as I said earlier, my comments are not intended to block the changes. Even in the very unlikely event we reach agreement that some of the changes should not have been done, they can be reverted later, as we do have the history.