The contributors/maintainers of Apache Mesos were here at HackIllinois, some issues within the project that could be worked on during the hackathon were discussed and we worked with our mentor (Andrew Schwartzmeyer https://github.com/andschwa) to successfully close them. Also, we were interested in distributed computing and DevOps.
What it does
Sachin and Anurag worked together to port mesos-execute link and mesos-master link executables to Windows. The existing source files were not building in the windows environment, and hence the mesos-execute framework could not be tested along with the mesos-master and mesos-agent on a single machine having windows environment. With the existing code, if one wanted to test mesos on a windows machine, the mesos-master and mesos-execute had to be deployed in a virtual machine and the process was a bit cumbersome.
Shubham worked on adding a feature to apply-reviews.py link such that when apply-reviews.py is used on a review that has been submitted already, feedback is provided. Furthermore, Shubham investigated and found that the issue link had already been patched and a better version of code is already present in the repository but the issue is not closed. He closed it as is evident through the above link.
How We built it
For porting mesos-execute and mesos-master to windows, we added preprocessor directives to avoid making calls to system calls that were not supported by the windows kernel. For fixing apply-reviews.py we added a warning lmessage that would inform the reviewer of an already applied review. (https://reviews.apache.org/r/65795/diff/1#index_header).
Challenges We ran into
C++ code takes a long time to build. Building the code on ubuntu VM with 4GB of RAM with 2 GB linux swap. Even then it takes a couple of hours to build the source code for the first time. Also, Apache does not generally accept traditional Git pull requests for bug fixes. They have a separate process to submit code patches and different coding style requirement . Thankfully, the entire process was pretty straight forward with the help of to our mentor who pointed us to the existing code that was solving similar problems.
Accomplishments that we are proud of
One of us had never worked with Mesos and he enjoyed learning about the architecture of the Mesos project. Another team member was attending his first hackathon. We were able to contribute to a high impact project like Apache Mesos by successfully resolving the issues that we were targeting to fix
What we learned
One of us learned about CMake, some of the c++ features like operator overloading that he did not know. He came to know about code linting and coding style requirement to contribute to Apache Mesos. We learned a lot about the source code behind Apache Mesos, we learned about the coding practices that were being followed within the project. We learned on how the commit process works while contributing to Apache projects.
What's next for Apache Mesos
We will continue to understand the mesos architecture in more detail. We plan to work on more bug fixes and contributions