My first contributions
Like I said on Being part of a free software community, part of the application process of the Outreach Program for Women was to make a little contribution to the projects of interest.
At the beginning I only got involved with GNOME and later, when I heard that it was possible to participate in more than one project, I internalize with OpenStack.
Such organizations as big and complex are composite of projects, each one with its goal, and teams with different competences that work on them. In this case, I was interested to work on GNOME Shell and on OpenStack Horizon. Now I’ll let you know what are they about ;)
Getting in touch
First of all, I had to get in touch with the project’s coordinators to obtain the right guidance to start working. For this, IRC (Internet Relay Chat) is the preferred choice in which each organization has it network and/or channel.
GNOME has it network at irc.gnome.org, and each project has it channel. In the case of GNOME Shell, #gnome-shell. Also there are other channels with broader objectives as #gnome-love and #gnome-university for beginners, #gnome-women and #opw for the women in GNOME and women in the Outreach Program for Women.
OpenStack is hosted on irc.freenode.org and it’s organized the same way. Horizon Project has it place on #openstack-horizon and, #openstack and #openstack-dev for general purposes.
GNOME Shell is, no more no less, the core of the graphic user interface (UX) of GNOME’s desktop environment. Windows, menus, docks and other components that make the main aspect of GNOME are part of this interesting project.
As some of you will know, GNOME did a radical change less than two years ago and the community is working really hard to improve it every day even more.
Right now there are plenty of ideas and tasks that can be a good starting point for those who want to get involved.
Those who are interested on GNOME Shell can take a look at Every Detail Matters, an initiative that aims to get designers and developers together in order to identify and fix those little details that make the difference.
With the help from Marina (marina) – GNOME Shell developer – I chose a bug and began working.
The contribution itself was very simple: I worked on the messages tray, adding an adequate message when it is empty so that avoid confusion on new users. You can find more details at Bugzilla.
The challenge, as a matter of fact, was to establish the development environment, get used to the workflow, maintain a good communication with more experienced developers and learn, at least minimum, the structure and style of the code that brings GNOME to life.
OpenStack provides a graphical interface for users and administrators to access, provision and automate cloud-based resources. This is known as dashboard.
The dashboard is just one way to interact with OpenStack resources. Developers can automate access or build tools to manage their resources using the native OpenStack API.
That said, Horizon is a canonical implementation of OpenStack’s Dashboard, which provides a web based user interface present in the last versions (starting from Essex) of this software.
OpenStack Horizon is also constantly growing and there are always new changes and fixes proposed with the goal of improving and providing a more complete solution.
Through IRC I contacted OpenStack’s community, and with some help from Anne (annegentle) I could met Julie (jpitch), my mentor, and Anita (anteaya) and Lau (ladquin), who are also interns in OpenStack. Awesome people, all of them, with much knowledge, enthusiasm, desire to work, learn and help. You can’t ask more from a team.
Anne and Julie made our quest easier suggesting us some bugs to work on, and following Anita’s advises – who was already involved with OpenStack from a while -, Lau and I could establish all the necessary to start.
On this occasion the bug also consisted on a simple change, a low hanging fruit as is known in the slang: I basically had to add an extra control to show the adequate value in the case of unlimited resources. For more details visit OpenStack Review.
The biggest difficulty here also was centered on learning about the workflow, the community and the code.
Even though the free software communities have certain forms in common, all of them have their philosophy, tools and ways of doing things that characterizes them.
What is left
As always happens to me, I reached the deadline with no extra time. On December 3rd I sent my application letter with my fingers crossed.
Waiting for the decision of the organization committee, I could meditate… “If I don’t get the internship… Does it was wasted time?”
The automatic response was no. The acquired learning until that moment and the people I had the change to meet worth that time and much more.
To be a better developer only takes practice, here I could go further than that: I learned to perform correctly on a community with thousands of people, to trust on my judgment and to overcome the fear of failure; I also could feel the great satisfaction of contributing to a widely used software system, with users all around the world. And that is priceless.