Recently, I was asked by my fellow GNOME friends to write how did I transitioned from nothing to a GNOME contributor. The intention is to motivate people to engage. I don’t think my story is that exciting, but, well, why not? If someone gets motivated and start contributing, goal achieved. But beware: there ain’t any TL;DR here. it’s just a long story.
So, where should I start?
From Childhood to Early Contributions
My relationship with computers began at early age, since I was literate by my parents using an old computer we gained from a relative. I remember searching “how to create exe files” around 2004, and that search result yelled me a Yahoo! Answers question with “you need to learn a programming language. Start with C”.
And so I did.
My first app was a command line calculator. Moving to Linux was a natural step. And that introduced me to GNOME, and Gtk+. By that time, Gtk+ was still 2.6. I did some small apps for personal use, like an app to track new habits. Unfortunately, those apps are long gone.
And that’s how it all started.
Fast forward some years and, one day, while using a GNOME app (can’t remember which one!), I saw an unstranslated string! I researched a bit and found out that I could translate and contribute to the Brazilian Portuguese translation team. This was 2012, GNOME 3 was just released, everybody were still very angry, things were very confusing.
My first upstream contributions back to the end of 2012, fixing and adding some missing translations.
At that time, there was one project that draw my attention: a new, unreleased app called GNOME Calendar. It was under heavy development in a branch called ui-review, no packages were available… and yet, I simply loved it. The developer, Erick Perez, is highly skilled. This app was a hidden gem.
Unfortunately, development of Calendar stalled and I spent more than 1 year checking the logs almost every day, waiting for changes.
They never came.
… and GNOME Calendar
“This project was too good to die”, I thought. “I have to do somthing.” First, I tried to finish the design specs of Calendar. You can still find it in my DeviantArt page (click here to check it out).
Then I ran Gedit, opened some files and started hacking Calendar. My very first work was on the Week view prototype we had in there. The video of this new feature is still available:
Notice that the second article of this blog talks about that 🙂
Erick saw that, sent me an email, I attached some patches to Bugzilla, and this is how I officially started contributing to GNOME. At the same year, GNOME Calendar had its first release ever – and this makes the third article of this blog.
GNOME Foundation and Google Summer of Code
After increasing my contribution rate at GNOME Calendar, Erick suggested me to get a Foundation membership. In Januray 2015, I applied and was accepted (yay!!). At the same year, I decided to apply for a Google Summer of Code project at Nautilus. The mentor was Carlos Soriano.
The GSoC project was very successfull, and not only Nautilus received the improvements, but also Gtk+ itself. This is when the “Other Locations” view was introduced, and a big code refactor landed (and allowed Nautilus to improve much more!)
Fun fact: while organizing the tasks of the GSoC, I couldn’t find any personal task manager for GNOME that satisfied me. I took one week and create GNOME To Do to organize my tasks.
With that done, the only step left was presenting that work at GUADEC.
GUADEC and Endless
The presentation at GUADEC was good enough, and meeting the people behind GNOME was one of the most remarkable experiences in my life. At that GUADEC, I met Cosimo, who works at Endless. I remember he downloading the new Gtk+ version and saying “look at this cute ‘Other Locations’ button!” (!!!) 🙂
A few weeks after that, I was contacted by Endless, where I am up to this day. Here at Endless, I’m lucky enough to be able to work upstream almost by default. I’m also happy to be able to make GNOME (through Endless OS) reach more people around the world.
New Control Center, more features in Calendar and To Do, and some other surprises I’ll write about in the future 🙂
8 thoughts on “How I became a GNOME contributor”
Amazing story! thanks for share it (:
I’m glad to read who people start and, in your case, became a great member of the community. thanks again! keep coding !
Thank you for the kind words 🙂
I’m happy to be part of such a great community that is GNOME. Couldn’t ask for more.
There is an interesting fact about your story and that I’ve seen elsewhere: if a project is active and works reasonably well, someone doesn’t see the need to contribute to it. On the other hand if a project languishes, if there are bugs or missing translations, and almost no activity, someone who cares about the project will start to contribute and become a maintainer.
Good point. I’m curious to know whether you think this is a good or a bad thing.
I think it just happens naturally, not on purpose. The typical scenario is that a maintainer doesn’t have the time/funding/willingness to work on the project anymore, so the project starts to languish: more compilation warnings start to appear, sometimes there are regressions due to a change in an underlying library, a new major version of a library is released and the project is not ported to it, etc. Or simply a certain feature contained a bug since the beginning but it was never fixed. Then someone wants to fix a bug and starts contributing.
If it happens naturally, it is not a bad thing. We can not blame someone for not contributing to a free software, people/companies can join/leave whenever they want. If there is no funding, there is no funding. If someone contributes during his/her free time, we can certainly not blame him/her.
It can become a bad thing if it is done on purpose, some kind of strategy for finding a new maintainer without paying him/her. The “power of the community”, relying on people working during their free time to reduce costs. Or waiting that another company starts maintaining the project. I don’t know if it is often applied, and anyway if it is applied nobody will tell it publicly.
Great blog post, thanks for sharing (and for all your amazing work). Would love to contribute to Gnome as well, maybe one day I’ll make my first contribution too