From JIRA to [Submitted]
How to contribute to Mesos
As an open source project I think that Mesos community is key to Mesos success. It was a good experience not only to contribute to an open source project but also to one that has such an easy and welcoming process.
Mesos maintainers are very busy building new features that would fit some specific use cases but it’s crucial to make a meaningful contribution by communicating with them.
In this 2nd blog post I will describe the process from one of my Mesos contributions.
Mesos is an Apache foundation project so one of the tools that it uses to manage issues is JIRA. To begin contributing to Mesos first you could look for an issue already reported on JIRA that has not been assigned to somebody. In my case I assigned myself to MESOS-1390 and as it required another issue I automatically assigned myself to that one too. Those issues were created by my mentor and were related to previous patches I was working on so I knew that they were relevant.
The next step was to start working on the required issue and once the code modifications passed all tests I submitted a Review Request on Review Board so it can be checked out by the community.
In the case of this specific patch it was nice to see one of the Review Board fish trophies(1)
Mesos Review Board has a ReviewBot that checks your code passes all tests and label the patch as good or bad, then the patch get reviewed.
The one I submitted got reviewed by my mentor and we had several chats on how to make it better. Other members of the community also reviewed the request and as they commented I improved the patch.
Once the patch get enough ‘ship it’ labels it gets merged by one of the Mesos committers.
So when this first requirement got merged I returned to the main one that I begun to build in parallel, I adapted it to the new changes and send it to review. A good practice for contributions on open source projects is to make the patch or PR as simple as it can be. It is much better that way to review it and so, to get it committed to the project.
The same process went for my second patch and in the way I found a small modification that could be useful on the 3rd party library, so instead of doing the change directly on the same main patch, I created a JIRA issue (created as sub tack of the main issue) and sent it to review separately.
Once this sub task was merged and all the modifications after comments on reviews were made, I sent my final patch and it got merged.
Each time I created a review request I will post a comment on the corresponding JIRA issue with a link to it.
There are two ways to post a review for Mesos, one is using a shell script available on Mesos support directory, the other is using the review board UI. Along with the review posting script, there is a style checker that can be added to git pre commits rules with a hook, so that each time a commit is done, the style is checked and reviewers have less work on that side.
In the end, I got three patches merged in parallel and learn a lot through review comments and chats with the Mesos community.
It is extremely rewarding to know that my contributions will be part of future releases and that I could help with such a big and powerful project.
(1)They have two kind of trophies, the milestone review number trophy and the fish trophy attributed to review numbers that can be reversed, see more here