Skip to content

Month: January 2014

Contributing to Open Source – The Good and The Bad

I am not a big contributor to Open Source. If you don’t count the random code that I have written in my blog and host on GitHub, I have only made two real contributions. But the difference between these two is so big, and the way they ended is so different, that I had to write about this.

My first contribution was to the scribe-java project, which is a Simple OAuth library for Java hosted at GitHub. I was trying to access the Mendeley API from Java and searching for an OAuth library, found scribe. But it was missing a Mendeley handler. So I cloned the repository on th 11/09/2013, added my small changes (one file, ~50 LOC), created a pull request, got reviewed and some changes were required, did the changes and on the 13/09/2013 my changes were already part of the main branch. Fast, no hassles. Makes you want to contribute more.

The second contribution started as an Eclipse Bug/Enhancement – Why not add a search box to the Eclipse properties view? Very fast I was answered that the best way for this to happen was to do this myself. So I cloned the Eclipse UI repository on the 15/02/2013 and after some coding, pushed my changes on the 17/02/2013. Two days after I got a comment in the bug asking me to make some changes in the implementation. I was also told that if the change is more than 250 lines we need to do a CQ (whatever that is) and the deadline has passed so this may have to way. No problem! So after asking some more clarifications on how the code was expected to look, I went back, did some more fixes, and pushed again on the 21/02/2013. This time I got more comments, which started making things harder. First, the Eclipse UI must compile against Java JDK 1.4! WHAT? 1.4 is EOL!!! Why is eclipse still supporting it? But hell, who cares? I’m contributing here :-). Oh, but in 1.4 the String class does not have a contains(String) method. What am I to do? Easy! the Java code is open everywhere, so I can copy the code that is currently used in Java! Code, code, build, and push, on the 11/03/2013.

Oh… seems that the Java code is GPL… so it can’t be used in Eclipse (which is EPL). Need to make some small changes, from:

indexOf(s.toString()) > -1

To

indexOf(s.toString()) >= 0

You see the difference? This is a COMPLETELY different way to search for a String inside another String. I hate lawyers! But I’m doing something good! I’m contribution to Open Source! Code, code, and Push on 12/03/2013.

After waiting for one month, I updated the bug asking what happened. Seems that the train for Eclipse Kepler was off, and my change would have to wait for the next train. And “we don’t have time to check it right now, but will get to this later”.

On the 12/12/2013, I was asked to sign a CLA (legal stuff transferring the code to the Eclipse Foundation). Cool! My code is finally going in!

Wrong. A new round of reviews started. More questions, why use this, why do that.

It’s been more than half a year since the commit. I don’t work every day on the Eclipse UI code and it took me two days just to get my whole environment back. And I’m being asked to do some more changes, to be consistent with other code. Sorry, but I have other things to do now. Maybe I’ll get to this in 6 months.