Tuesday, February 5, 2013

Question concerning pull requests

We have received a first pull request to our project (not related to translations, wich we process differently via excellent webtranslateit service. That's actually big news, because it's first ever code submitted to our project. Fairly speaking, code is pretty small and easy, but in raises one very important question... rights for code and application store rules. 

So far, we own all rights to all published code, so while releasing it to public under GNU GPLv3 license we still can distribute this code under any license we like. This is very handy if we'll need to submit our app to some (evil) appstore that requires some evil DRM features that would be incompatible with GNU GPLv3 terms - we can just say that all rights to publish this code is our own, and that despite code published on Github we publish this very instance of an app under our own evil proprietary license. 

We won't have this option if we just accept code from our contributors under GPL license. And we don't want to rely on 'trust' in Google that it won't change Google Play developer terms that it won't be incompatible with GNU GPLv3 (we also don't want to see our app pulled from store because of complaints by some contributors - such things did happen in the past and it wasn't pretty).

Xabber Contributor Agreement?

Many companies avoid these kind of problems by enforcing all contributors sign some form of contributor agreement (most famously Mozilla Comitter's Agreement, and (infamously) Oracle Contributor Agreement). 

An agreement like this would grant us sufficient rights to code so we won't have to worry about problems like we've covered above and would also make us carry quite a burden of administrative work processing & storing all the legal papers. That would also make contributors less likely to submit code to us and we'll also look evil to many-a-developers. 

We'll also be able to screw community in grand way like Oracle did with OpenOffice.org, but all we can do now is to promise not to.

What do you think of it? Should we have such agreement to ensure future of Xabber in various appstores, or should we just accept all the code under GNU GPLv3 and not bother about possible GooglePlay problems?

Please use comments below or just mention @Xabber_XMPP on Twitter. We need your opinion.

GNU GPLv3 is incompatible with Apple Appstore terms and we'll definitely have to think of something similar to solve this problem when we release Xabber for iOS (wich we plan to later this year, btw, work is already in process).