I have been contributing to OpenStack for more than a year and have given a couple of talks with different people on contributing to OpenStack. What I found while helping people contribute to OpenStack was one of the biggest hurdles to contributing to open source for people was the getting started phase – the logins to be created, documents to be signed, how to pick the first easy bug, etc. OpenStack has a lot of great documentation and resources to help new comers with the same, and in fact has an irc channel dedicated for the sole purpose of welcoming new comers.
Last weekend, I decided that it was time to get out of my comfort zone and experience what it was like to get started with an open source project all over again. I had heard lot of great things about Twisted, and had been playing around with a bit, so it was not a difficult choice.
Twisted, like OpenStack has a lot of great documentation on how to get started contributing. But like any new project, it takes a little while to get accustomed to the new terminology being used. Twisted has lots of getting started links , which is great but sometimes can be a little overwhelming to a new comer(like any other project again). Below are the steps I followed to getting started, with the help of the extremely helpful #twisted-dev community.
Twisted is *very simple* to get signed up with. Just create a login and viola! you are ready to create tickets and submit patches. So I went ahead and created my login.
Finding a bug
Next step was for me to pick an easy bug/task to work on. I ended up clicking the View Tickets link on the twisted webpage and mulled over a little about Active tickets vs Unassigned tickets and how to find the low hanging fruit tickets. In twisted, the tickets have keywords, and the key to finding the low hanging fruit is to search based on the ‘easy‘ keyword.
Having previous experience with python and working in open source helped me quickly locate an easy bug to work on. If you have not contributed to open source before, a quick tip is to pick a really simple bug for your first contribution. The first commit/patch is to help you understand the process that open source project follows. I went ahead and picked ticket 6785 which was to remove a deprecated function and assigned myself to the ticket to express my intent on working on the ticket.
Working with the codebase
After picking the ticket, it was time to start hacking. I have been predominantly working with github for past few years and all the Twisted instructions were svn based. They did have a page for github users, but I was in for the authentic experience, so I stuck to using svn There are a number of plugins in svn to help make the process easier, but I decided to keep my first experience simple. I followed the step by step instructions in contributors documentation. This was the next point where I experienced a significant difference in the contribution process between OpenStack and Twisted. OpenStack uses gerrit for reviews and submitting patches and in Twisted you directly upload the patches as files.
Submitting a patch
So I went ahead and uploaded my patch file to the ticket. The patchsets have their own naming convention and they should be assigned to a branch (more details in the contributing to Twisted link). An important point is while specifying your branch name it is essential to specify the branches path along with the name of your branch. For example, the name of the branch in my ticket was : branches/remove-closeStdin-6785. Then the tests are run against the branch your patch is in. Like OpenStack has Jenkins to run tests, Twisted has BuildBot to run the tests on the patch submitted. By talking to the developers in the #twisted-dev channel I discovered that only a core contributor of Twisted could trigger the tests against the branch.
One feature which I thought was pretty neat in Twisted was the news files. While working on my first patch, which was to remove a deprecated function, I found out that Twisted has news files. In case you are adding/removing/changing a functionality, information about it goes in the news folder, which is later compiled and sent as a synopsis of updates to the members of the community.
Waiting for reviews
Right now I have submitted the third patchset for my first bug and I am waiting for the reviewers to take a look at it. One point to note is that if you want your patch to get reviewed, you need to add ‘review’ as a keyword to your ticket.
I hope to update this post with more details about how the patch gets reviewed and merged once I have completed the process. Watch this space for more
And thanks to the Twisted community for being great with the new comers!