What I wish I knew before contributing to Open Source

Let starts with facts so that you can build your own opinion.

On July 25, 2015 I joined the Harvey team, looking for a simple OS.

I contributed to Harvey OS for about six months, the best way I could.
You can see my 175 contributions listed here
And all my mails to the project are here.

If you read the various threads you will see that, when I care about something, I’m pretty used to fighting for it. Politely, but strongly.

When we do not agree, I cannot accept compromises: I want syntheses.
And I’m used to play Scopa, not Poker: there’s no way to bluff, with me.

Unfortunately, this approach didn’t work in Harvey.
Indeed, after a lot of hard nightly work and several technical debates, I was asked to fork the project.

And so my own Plan 9 fork was born. And I saw that it was a good thing! :-)

Later I knew that Harvey addressed some of the issues I had fought for, and I was happy about that. Intelligent people can change opinion.
I was naive enough to think that, after adopting the tools I proposed months before, they might have understood why I argued so much.

Then I mostly forgot about Harvey for a while, till the begin of 2017 when they joined the Software Freedom Conservancy: Karen Sandler wrote a mail to all previous Harvey’s contributors, ready to answer to developers’ questions and concerns about the new Harvey status as a member.

I asked if something was going to change about my older contributions to Harvey. It was relevant to me because I used a lot of the code and changes that I contributed to Harvey for my own Plan 9 fork.

She replied (emphasis mine):

Sorry for my delay in responding! I had three conferences last week and through the weekend (the first in Brazil and the second two in Brussels last night).
I can confirm that joining Conservancy doesn’t change the licensing of old code. If you validly take code under a particular license, you still have the right to use it so long as you comply with that license. Even were the code to be relicensed under other terms later, you’d still have your original license. (Although we are happy to do it when asked, Conservancy doesn’t hold copyrights in most of its projects. We do help our member projects deal with relicensing if for some reason it’s necessary but on a special case by case basis after much analysis and consideration.)
hope this helps!

So far so good! I forgot Harvey again.

On fall a friend of mine (another geek, you know) asked me about my Plan 9 fork, but I told him it was just an unstable toy. 
Since he already knew 9front but was looking for something different, I suggested him to give Harvey a try.

We met again on New Year’s Eve, and geeks as we are, we started talking about the differences between the various Plan 9 forks.

At one point he said: “Giacomo I was curious about your code, but grep cannot find your name in Harvey”.
“Strange!”, I replied, “maybe they moved to better solutions, after all”.
“Or maybe you are not worthy! Just like 9front’s guys!” he joked.

Two day later, I checked the Harvey code base and I noticed that actually, no mention of my name was present, but still a lot of my code was there.

I was sure it was a simple mistake and I opened a Github issue to get it fixed.

NOTE: I have to link the WaybackMachine’s archive, because the way the issue was addressed broke most of the references in the issues. 
And most of Harvey’s forks on Github. They git rebased the main repo!
You can play the game of differences by comparing the linked pages in the archive to those in the original issue.

Now, if you just want facts, read the whole Github issue and stop here.

I can assure you it will be instructive… but I won’t waste your time explaining here how to define a CONST(a) macro or how many ways exist to design a process scheduling API.

Let me just say that there are always several ways to address a problem.

There is no such thing like FLOSS

When I was a young idealist I used to look at Richard Stallman as a hero.

To my eyes, he was the man who discovered Free Software and hacked a license to protect its core values: trust and respect.

Indeed, the freedoms imposed by the GPL are designed to ensure that developers trust and respect each other.
Like in the early hacking communities.

Growing, I became more cynical, and I lost interest about these topics. 
I started to use terms like Open Source and Free Software interchangeably.
After all, who does really care about definitions?

Well, the way Harvey managed this affair taught me a valuable lesson.

There is no such thing like FLOSS.

Free Software and Open Source Software are completely different things.

Free Software feels proud of each person that contributes.
Whatever the license, a Free Software community will be very happy to add your name to their code base. Because you studied and changed the code.
You made it useful. You are a sign of honor. 
They trust you. And respect you.

On the other hand, Open Source managers are eager to take your code.
But while your code becomes their asset, your copyright is a liability.

Beware of this, if you are going to donate your time and skills to some hyped Open Source project leaded by some big firm.