{"action":"created","issue":{"url":"https://api.github.com/repos/neovim/neovim/issues/3036","labels_url":"https://api.github.com/repos/neovim/neovim/issues/3036/labels{/name}","comments_url":"https://api.github.com/repos/neovim/neovim/issues/3036/comments","events_url":"https://api.github.com/repos/neovim/neovim/issues/3036/events","html_url":"https://github.com/neovim/neovim/issues/3036","id":95762212,"number":3036,"title":"Neovim CLA disallows incorporation of code licensed under Apache/MIT/etc when submitter is not the author","user":{"login":"colbyrussell","id":10376674,"avatar_url":"https://avatars.githubusercontent.com/u/10376674?v=3","gravatar_id":"","url":"https://api.github.com/users/colbyrussell","html_url":"https://github.com/colbyrussell","followers_url":"https://api.github.com/users/colbyrussell/followers","following_url":"https://api.github.com/users/colbyrussell/following{/other_user}","gists_url":"https://api.github.com/users/colbyrussell/gists{/gist_id}","starred_url":"https://api.github.com/users/colbyrussell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colbyrussell/subscriptions","organizations_url":"https://api.github.com/users/colbyrussell/orgs","repos_url":"https://api.github.com/users/colbyrussell/repos","events_url":"https://api.github.com/users/colbyrussell/events{/privacy}","received_events_url":"https://api.github.com/users/colbyrussell/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/neovim/neovim/labels/license","name":"license","color":"f7c6c7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-07-17T23:14:27Z","updated_at":"2015-07-18T22:45:43Z","closed_at":null,"body":"Take some existing code licensed under Apache 2.0 or MIT or some other permissive license, incorporate it somehow into your personal repo, then submit a pull request for the changes.  Does the Neovim CLA allow this?  No.\r\n\r\nIt's section 3 here which is problematic.  It's the same flaw that makes the (well-intentioned) [NASA Open Source Agreement](https://en.wikipedia.org/wiki/NASA_Open_Source_Agreement) incompatible with \"actual\" licenses—including, e.g., the GPL.  It requires that the contributions be the submitters' own code, which rules out the above scenario.\r\n\r\nThis section exists because:\r\n\r\n1. You don't want some contributor introducing legally conflicting code because they found it on the 'net and think that makes it public domain.\r\n2. You don't want anyone introducing legally conflicting code when their work arrangement stipulates that all their work belongs to their employer but their employer hasn't actually signed off on open sourcing this contribution (in which case you get their employer to sign the CLA)\r\n\r\nNotice how [MPL 2.0 section 2.5](https://www.mozilla.org/MPL/2.0/#representation) handles this.  It simply requires that the submitter assert that if the patches contain any third-party code, then the code must be conflict-free.\r\n\r\nThis should be fixed in one of two ways:\r\n\r\n1. Amend section 3 of the Neovim CLA to address this similar to the way the MPL does, or\r\n2. Get rid of the CLA altogether.  Anyone doing #1 from above can't exactly be trusted to begin with, so it's not actually any use there, and otherwise, the project operating in contradiction of its own CLA is proof that nobody is reading it anyway, which means the only real effect it has is to introduce unnecessary process and friction for contributors."},"comment":{"url":"https://api.github.com/repos/neovim/neovim/issues/comments/122602717","html_url":"https://github.com/neovim/neovim/issues/3036#issuecomment-122602717","issue_url":"https://api.github.com/repos/neovim/neovim/issues/3036","id":122602717,"user":{"login":"colbyrussell","id":10376674,"avatar_url":"https://avatars.githubusercontent.com/u/10376674?v=3","gravatar_id":"","url":"https://api.github.com/users/colbyrussell","html_url":"https://github.com/colbyrussell","followers_url":"https://api.github.com/users/colbyrussell/followers","following_url":"https://api.github.com/users/colbyrussell/following{/other_user}","gists_url":"https://api.github.com/users/colbyrussell/gists{/gist_id}","starred_url":"https://api.github.com/users/colbyrussell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colbyrussell/subscriptions","organizations_url":"https://api.github.com/users/colbyrussell/orgs","repos_url":"https://api.github.com/users/colbyrussell/repos","events_url":"https://api.github.com/users/colbyrussell/events{/privacy}","received_events_url":"https://api.github.com/users/colbyrussell/received_events","type":"User","site_admin":false},"created_at":"2015-07-18T22:45:43Z","updated_at":"2015-07-18T22:45:43Z","body":"I'm not making up a definition for \"Contribution\"; I'm reading the definition as it appears in the CLA.\r\n\r\nWere it not defined there, I still wouldn't make one up.  I would defer to the Apache 2.0.  Were it not defined there either, I still wouldn't make one up.  I would defer to its definition in contemporary open source licenses, which I would use to guide my interpretation.  Neither of these approaches would be compatible with the interpretation that Contributions exclude modifications that incorporated third-party code.  It's only in the second case (interpretation via general legal use) that there would be leeway.\r\n\r\nFortunately, we don't have to do either of those, since as I mention there's an explicit definition in the CLA itself, at the first occurrence of the word \"Contribution\".\r\n\r\nThis is the revision of the CLA I'm referencing: https://docs.google.com/forms/d/1u54bpbwzneDIRltFx1TGi2evKxY3w0cOV3vlpj8DPbg/viewform"}}