Not same author of code

2011-10-12
2013-03-08
1 2 > >> (Page 1 of 2)
  • Redhuan D. Oon
    Redhuan D. Oon
    2011-10-12

    I think it is automatic to whoever is committing it, s/he is the 'author' of the commit, thus it must be an honest mistake and it cannot be rectified as above. In such case, wouldn't it be appropriate to put in comments of the origin of the code or work?
    A simple :

    -- Thanks to <author> <revision ###> in <branches/JavaPOS>
    

    at the first line of each file will do.

    I thought this is in the Best Practice - to give rightful credit to rightful contributor(s).

     
  • Hi red1,
    About the "Author"-label, I think it would be better, if it said "Committer", rather than "Author". Then it would be more clear that Victor merely integrated your work into the branch, but is not the origninal author.

    I made a quick check of hgweb (the SF HG-Browser), hg-commandline, tortoise-hg and hg-Eclipse-Plugin, to find out, how the committer of a change is called there:

    *hgweb: "Author" (as pointed out by you)
    *tortoise-hg: also "Author"
    *hg-commandline: "User"
    *hg-Eclipse-Plugin: also "User"

    So, it is never called "Committer", which I think is a pity.

    In such case, wouldn't it be appropriate to put in comments of the origin of the code or work?

    My suggestion would be that the actual author should put this information into the file. Just as is the case with java files.
    Otherwise, integrating/merging would become rather burdensome.

    wdyt?

    Best Regards
    Tobi

     
  • Tony Snook
    Tony Snook
    2011-10-12

    Hi Red1 and Tobi,

    There are ways to get around this issue depending on the source of the original code  and how the code is committed. For example: if you import a patch which has the original author specified into your local repository and then push this to a remote repository, the original author is preserved.
    The original author can also be specified directly by using the -u or -user  option in the hg command line i.e.   hg commit -u "red1" -m "FR1234…." 
    The Eclipse plug-in has a freely editable text box labelled "User to record as the committer" and TortoiseHG has a field called "Committer" in their respective commit dialog.

    Best Regards,
    Tony (tspc)

     
  • Redhuan D. Oon
    Redhuan D. Oon
    2011-10-13

    Thanks Tobi and Tony for your replies explaining that this can be solved by some settings or commit properties. Thinking back i should make some small comment on my work in the migration script itself, but this was not the practice usually as previously we commit directly to trunk and now today it is done via a PMC or maintainer. In Carlos Ruiz kenai repo and also Heng Sin's repo, they also commit work on behalf but our credits are intact and thus i forgot that it is not so in standard SF commit and thought that my name was intentionally replaced. I now believe it is an honest mistake and hope that the proper setting properties can be used as done by Carlos and Heng Sin.

    I actually see Carlos Ruiz distress over his rightful credit as as definitely more serious than mine. What is rightful is important, particularly to protect freedom. But someone should speak up for him. He is not always politically correct when speaking. :)

     
  • Carlos Ruiz
    Carlos Ruiz
    2011-10-13

    Redhuan, PMC/TT/CC/etc are not interested on reviewing this case - if I would do something similar then a case will be started to expel me, but we cannot wait that CC will investigate this *repetitive* case of stealing credit from others.

    When I filed the case on CC, I must push CC to review it and practically I must solve it by myself proposing a solution, and they just annotated the "solution" on a meeting note and didn't take any action after that.

    So, the work you used to do (protect contributors) is lost here  -  I guess I'll need to review the previsions of the GPL about these practices and review if we can stop Victor from stealing.

    __________
    Carlos Ruiz

     
  • Redhuan D. Oon
    Redhuan D. Oon
    2011-10-13

    No confidence in PMC.
    +1 vote

    Greetings from Landshut,
    70km from Munich,
    Germany

     
  • Michael McKay
    Michael McKay
    2011-10-14

    To the community at large on behalf of the Technical Team,

    Concerns over recognition for contributions are important and not really in question.  The ADempiere project has a long history of recognizing contributions of all kinds and this will continue.

    For this case, the Technical Team has taken these matters seriously and analyzed the issue.  Here are the results.

    Old method: SVN

    In the past, we worked with SVN, a centralized Source Code Control System (SCCS).

    In SVN, when a developer thought to have a bug fix, functionality, module etc. he simply committed it; his changes landed directly in the trunk.  Without careful management of the trunk, the code quality can be easily damaged.

    One big disadvantage of SVN is that it cannot depict the changes done to a single file, because it only documents revisions and the files involved. Discovering the extent of the revision requires additional work.

    SVN documents the committer of a revision, independently of who was the author: often the commit originated in a bug tracker, with a suggested fix by a different person than the person who performed the commit of the code.

    In SVN, the revision appears to be authored by the developer who did the commit, not necessarily to the developer who provided the fix.

    With centralized control over the repository, a few committers appear to have made many contributions while others appear to have none regardless of contributions of fixes and features through the tracker.

    Now we have Mercurial

    Mercurial is a distributed SCCS, where developers send changesets from clones to specific branches in the central trunk in order to be compared and tested before being committed. This is a big advantage, because it overcomes the above mentioned systematic error sources of SVN.

    Mercurial documents any change of a file, being it the creation of a file, modification, renaming or moving of it.   It is also possible to "trasplant" changesets from other Mercurial repositories, which allows the inheritance of the changes history of every file of the changeset.  Thus, every file can be tracked down from the actual version to its origin. The change on top is the latest.

    Like in SVN, the actual author of the file is a dimension Mercurial ignores, because it only knows the committer.  

    For an example, see the file ReportStarter.java (image below) where nearly every committer in the project has made a change to the file over the last five years.  I'm currently listed as the “author” / committer when the change was two characters in the file.

    The Present Case

    In the specific case referenced in this thread, red1 created several SQL files and committed them to the old Adempiere SVN repository in revision 16031 on 13 August 2011 as mentioned above.

    globalqss created a Mercurial repository for the files outside of Adempiere. Red1's involvement with the file was not recorded at in the move to the new repository.

    Victor "trasplanted" the files to the official repository and renamed them because the original names (there were SQL files for the java POS) collided with the SQLs sequence at the official Adempiere repository.

    Mercurial has kept the history of all stages of the file from the time the file was added to the initial Mercurial repository to the latest name change.

    Accordingly, the last change (renaming of the file) appears on top when seeing the file. Examining the history of the file, one can see who originally created it and when. See the second attached image below.

    Summary

    In short, Victor acted honestly and correctly, and there is nothing to blame him for. 

    The committer of the revision should not be confused with the original author or the person responsible for the changes included with the revision as the two functions (author/commiter) are not necessarily related.

    Files transplanted from SVN to Mercurial may lose their history unless every change to the file is also transplanted.

    Recognition for the latest contributions must be included in the revision, in the notes to the revision or in the trackers/patches referenced in the notes or it will be lost.

    Recognition for past contributions, even ones that are deleted or over written, will be preserved in the revision history if the above points are followed.

    Lessons Learned for the Community

    Information reduces conflict.  A thorough and cautious investigation can uncover facts and details that lead to understanding.

    Goodwill can be assumed in almost all cases.  We need tolerance and understanding to work as a large group.

    Again, developers in this project should feel that, fundamentally, their contributions are respected, desired and recognized.

    So say we all.

    ***************
    The history of the ReportStarter.java file.

    The history of the sql file originally created by Red1.

     
  • Carlos Ruiz
    Carlos Ruiz
    2011-10-14

    Michael - I think if you're really trying to take this seriously you must at least ask the person making the claim - I've never been asked about.

    There are a lot of misinformation on your answer, for example that mercurial records the committer - no, mercurial is intended to record the author, and you must fill properly the author box (this is specially important for IP issues).

    Second, you don't say a word about the initial case reported by red1 here:
    http://red1.org/adempiere/viewtopic.php?f=32&t=1373

    MY NAME WAS CLEARLY DELETED FROM A JAVA FILE, AND REPLACED BY THE NAME OF ANOTHER DEVELOPER.
    ( funnily the class behaves worst because of this "contribution", but anyways I think the ORIGINAL AUTHOR must be preserved in code - there are previsions about that in the GPL !!! )

    So, if you think that "information reduces conflict" - please try to inform yourself better, I'm open to give you the information you require.

    Cordially,

    Carlos Ruiz

     
  • Banym
    Banym
    2011-10-14

    Hi all,

    this should be taken quite seriously.

    If there are some scripts or code is migrated the source and the author should be named.
    Mistakes can be made but mercurial has functionality for this, too. And if it's not easy to handle then just type it as comment in to the files.

    Now the problem was raised and in future I hope this will not be happen as this is really the base of nearly all open source licenses to keep the initial author.

    Regards,

    Dominik

     
  • Carlos Ruiz
    Carlos Ruiz
    2011-10-14

    Ah, forgot to say:

    > "Again, developers in this project should feel that, fundamentally, their
    > contributions are respected, desired and recognized."

    I don't know if I'm still a "developer in this project" - I try to avoid that - I'm not committing here in this trunk, but I keep being the top committer because of my copied work from iDempiere and globalqss361.

    So, as a "developer in this project" I must express that I'm REALLY FAR from feeling respected or recognized.  I documented four commits on SVN where the credit was not attributed, even on the comments.
    And now in mercurial my name was replaced in a java class, and there are several commits not filling properly the author box.

    Hehehe, and I don't know how can I feel "respected" and "recognized" when I have the 26% of the total commits (the max) of version 3.7.0 and every message from CC or ADeV is saying just "please leave the project"  :-D   Funny, no?

    __________
    Carlos Ruiz

     
  • rsashka
    rsashka
    2011-10-14

    Hi Carlos

    Your comments as always passionate;-) Do not give in to provocations, and be above it. Who would not do that, but hardly anyone to belittle your contribution to the project.

    Dear ADeV

    I am very hurt to see that for a long time, some people who take responsibility for the development of the project, not doing anything to remedy the situation, but only add fuel to the fire fights. All these arguments cause enormous damage to the reputation of the project. What do you divide? You also completely different regions, and world domination will not be any one of the parties.

    Regards,
    Aleksandr Ryabikov

     
  • Michael McKay
    Michael McKay
    2011-10-15

    Guys,

    My apologies if anything in what I said above was taken as an attack.  That was not my intent at all.  It was said to try to foster better relations, not divide, to help, not hurt.  I tried to deal only with the facts and to explain the origins of a single file.  In this single case, I do not feel anything malicious was done by anyone.

    @Carlos, rest assured that I hold you in the highest regard.  You have been of great help to me and to others.  Your contributions are well recognized.  I am sorry that you do not feel this is so.

    In regards your comments on Mercurial and the assignment of users, you are correct that this can be done. I'm not sure that it is the best solution. There are limitations where commits cover works by more than one author, for example.  It also  hasn't been done on all the revisions pulled in from SVN. In these revisions, author might equal committer but not always. The best approach going forward will have to be worked out by all of us.

    For the other cases, we will look at them as well in a separate thread.  Its time to put this one to bed.

    Warmest regards to all,

    Mike.

     
  • Dear community

    AdempiereIdGenerator.java class is the implementation of an interface called IdGenerator dictated by ZK to solve a issue when we try use a Test framework.

    My implementation is original and was totally rewritten, a new tracker was created http://sourceforge.net/tracker/?func=detail&aid=3371649&group_id=176962&atid=879332 tracker.

    http://adempiere.hg.sourceforge.net/hgweb/adempiere/adempiere/rev/01919bf50f30

    you can see that the code is totaly different and that was based on other of my class called PP Product BOM Model, fortunately I forget to remove of  comment allow to prove that I say here.

    The above behavior does not generate of  zk  static id for components, the  static id for components allows that  Sahi Script can be executed recursively but without get a error.

    Since the previous behavior does not serve, I made my own research which resulted in this implementation that is based on the recommendations of this forum http://docs.zkoss.org/wiki/How_to_Test_ZK_Application_with_Selenium. This was documented in the comment my class.

    The new implementation  allows to generate  Sahi script for a non-technical user, which is an important advantage given that allow functional consultants to create functional tests without writing a line of code.

    This is part of an ambitious enterprise, that Technical and Funcional team have to create ADempiere Test Suite that will allow, together with our continuous integration server the creation of releases more stable with an objective more criterion.

    kind regards
    Víctor

     
  • Redhuan D. Oon
    Redhuan D. Oon
    2011-10-15

    Hi Michael McKay,
    I appreciate your reply and sincerity to answer this and i hope you similarly accept my intent to speak my heart and give my side of the picture.

    Now to set some of the facts right. My original script was what it is now as committed by Victor. It was 802_ etc in my branch, but it was renamed first to Pending_ etc and then back to its original name.

    Also, wouldn't the effort to resolve follow some sort of simple arbitration rules? Why play advocate and jury and probably executioner behind some curtain when it is quite simple to be procedurally open even in the process of arbitration? I am not accusing you of that but the words you used culminating in the first line at your Summary gave me some impression that thats the verdict and i am bound to accept it as truth. If i am really off the mark, then my apologies.

    My presentation of this case also points to earlier references of which the aggrieved person will feel it most. I do not share that person's grieve as much simply because i am not the top contributor of code. However i emphatise strongly with him as if i put myself in his shoes i will feel very hurt, offended and betrayed. And also feel disrespected if in spite of all my efforts to bring to attention my grief which has not received much in fact no attention at all, was asked to stop shouting, flaming, gross mis-advertising and ending with the words, "Please leave".

    Can't we calmly assure the person with soothing words, such as "it is regretfully non-intentional and we shall revert it right away. We do honour your work and are unquestionable in our commitment to the open source practice.."?

    Yesterday another concerned citizen of our community skype me asking why 'Carlos suspects there is ill-intent towards him'. I replied by asking to put oneself in his shoes as i stated above. And if after filing your case and waiting for some months and when asking again got the authorities upset and talked down to, what will you do? Won't you try to knock harder on the door asking, "Please! I have a valid right to be heard and addressed and deserve justice"? His shouting and reaction should come as no mystery to anyone who has experience trying to claim insurance from a deaf insurance company. Or claiming from an equally deaf neighbour who just dump his trash onto your lawn, many times over the last few years.

    Greetings from 6 degrees morning of Landshut, Germany.

     
  • Carlos Ruiz
    Carlos Ruiz
    2011-10-15

    About Victor post:

    > My implementation is original and was totally rewritten

    I don't understand your concept of "original" - if some lines below you say also that it was copied from zk forums, and that can be seen from the link you posted.

    > The above behavior does not generate of  zk  static id for components,
    > the  static id for components allows that  Sahi Script can be executed
    > recursively but without get a error.

    Well, this is another way of stealing credit, this time from old PMC, you overwrote a class that old PMC worked hard to make sahi tests work, and now you're claiming to be the author of such initiative.

    Fortunately the old PMC used to document EVERYTHING (very different to behavior of actual teams where external world cannot know what is being discussed or decided).

    So, in defense of the hard work made by the old PMC Team, and in order to restore the proper credits to the old PMC please allow me to summarize the story here:

    1 - On 20100324 meeting the IDGenerator issue was first raised by Ivan Calderon, and discussed and adviced by Heng Sin:
    http://www.adempiere.com/PMC_QA_Meeting_20100324

    2 - On 20100421 PMC discussed the changes required for IDGenerator, Ivan Calderon summarized the goal very well:
    (03:48:25) interopen: as i understand, with the IDGenerator you force the ids to be always the same no matter what browser you use
    http://www.adempiere.com/PMC_QA_Meeting_20100421

    3 - On 20100428 the first version of the generator was committed for tests
    http://www.adempiere.com/PMC_QA_Meeting_20100428

    4 - Then you can see in this *PUBLIC* thread:
    https://sourceforge.net/mailarchive/forum.php?thread_name=4BD21666.7090105%40gmail.com&forum_name=adempiere-p-m-c
    The work behind the versions of the IDGenerator.
    Old PMC worked hard to get a proper version of the IDGenerator and Ivan Calderon used and documented a lot of his sahi work on the wiki.

    So, these statements from Victor are very misleading:

    > The above behavior does not generate of  zk  static id for components, the
    > static id for components allows that  Sahi Script can be executed recursively
    > but without get a error.
    > Since the previous behavior does not serve

    I hope - as discussed in this thread - that is a honest mistake and not a trial to cover, ignore and dismiss the hard work done by old PMC.
    ____________________

    Finally, a little technical assessment from this "outsider" of this project:

    The class that Victor overwrote broke all the work done there - the original class was intended to allow repeatable test cases even on different servers, the fields are identified with the same id on every installation because the id is based on window/tab/field IDs

    The undesirable collateral effect is that iDempiere tests (worked by Ivan Calderon in old PMC, and recently being worked by Dominik and Redhuan) will not be compatible with Adempiere.
    I really don't care if you want to make it compatible or not, I'm just giving you a little free assess about the consequences of dropping the work from old PMC.

    Cordially,

    Carlos Ruiz

     
  • Redhuan D. Oon
    Redhuan D. Oon
    2011-10-17

    Carlos Ruiz,
    You mean to say that your version of ADempiere, the 361 / iDempiere has the IDGenerator correctly implemented and the present ADempiere 370 does not? I need to know because i have to integrate the Web UI testing to the http://jenkins.idempiere.com server. Also is SELENIUM or SAHI better for ZKAjax 3?

     
  • Redhuan D. Oon
    Redhuan D. Oon
    2011-12-01

    @Karsten (PMC Head) and @Mark
    or @McKay @StevenSackett
    or just anyone interested in keeping a clean official version.

    Kindly tell when my October 12 case be attended to?

    The name of author or remarks still not showing me as the author but:

    Or is Carlos correct in his statements above? And what about Victor's reply above? Please rectify or give me hearing date and i will stop shouting.

    Thanks for your kind attention,
    red1

     
  • Mark Ostermann
    Mark Ostermann
    2011-12-02

    Hello Red1.
    This issue has been adressed in out FT/ TT Meeting on Nov. 23rd 2011 too and will be solved:

    http://www.adempiere.com/FT/TT_meeting_minutes_November_23rd_2011

    That's what I meant with "others" in "Credits in Java Code Header in "AdempiereIdGenerator.java" and others ".

    I'm just posting the one line (the discussion about posting the whole FT/ TT Log wikll take place on Dec. 12th)  from chat log that acknowledges this Meeting Minute decision. The TT is working on a solution for this.

    Regards
    Mark

     
  • Mark Ostermann
    Mark Ostermann
    2011-12-02

    @Red1.
    I just want to kindly infom you that Karsten is not "PMC" Head.

    Thanks for your kind attention
    Mark

     
  • Redhuan D. Oon
    Redhuan D. Oon
    2011-12-02

    @Mark,
    Thanks for the update. About PMC Head, Karsten never was? Damn.. where did i read the intel from? I have to recall the Russians from the eastern front and go west.

    Then who is? Don't tell me it is Mexico! No aircraft carrier can reach that. No wonder they have no world war down there.

    Hehe, thanks again Mark
    (Y)

     
  • Mark Ostermann
    Mark Ostermann
    2011-12-02

    Hello Red1,

    Then who is? Don't tell me it is Mexico!

    No Red1. It should say "Then who WAS?"! Don't you remember? It WAS Carlos (Columbia) as PMC Head!
    Just in private: All I remember is that his reign ended up in a total mess for this community. The community decided to have Community Council (CC, voted)/ Technical Team (TT, volunteers) and Functional Team (FT, volunteers) with a division of powers from then and avoid one-man-dictator-shows.

    Here you can learn about CC and the role of Karsten.
    http://www.adempiere.com/Community_Council_Team

    Hehe, hope I was a bit of help to refresh your mind.

    Kind regards.
    Mark

     
  • Redhuan D. Oon
    Redhuan D. Oon
    2011-12-02

    The community decided to have Community Council (CC, voted)/ Technical Team (TT, volunteers) and Functional Team (FT, volunteers) with a division of powers from then and avoid one-man-dictator-shows.

    No wonder we are in a worse mess. (exercising my Freedom of Expression clause as you just did :) ).

     
1 2 > >> (Page 1 of 2)