Red Hat Open Source Contest’21

Hitesh Kumar
5 min readJul 9, 2021
Red Hat Open Source Contest Logo
Red Hat Open Source Contest 2021

In this blog, I am going to share my journey of contributing to OpenStack projects till now. I became aware of the Red Hat Open Source Contest (RHOSC) in August 2020 and was excited to participate in the RHOSC for Autumn version, but unfortunately, it was not organized in 2020’s autumn. So, I kept an eye on their website and used to check it almost daily so that I don’t miss its next version. And then finally the website was updated with the next date that is 1st April 2021. I checked it daily but all the links were pointing to old task lists, so asked about RHOSC’s occurrence to Asma Suhani, a mentor in previous editions of RHOSC.

Finally, the project list was made available on 7th April and I looked at the projects and decided to work on OSC-1, Data Driven Forms, because I completed an internship in ReactJS in February and wanted to work on projects related to React. But, unfortunately, there were some issues with the Sign-Up form, and by the time they were resolved the project was already taken by someone else. Then I thought that why not learn something entirely new to me, so I decided to work on something related to testing as that field is entirely alien to me. And that’s how I became a mentee for OSC-5, testr -> stestr migration.

Then, on 12th April 2021, we were given initial instructions by Dominik Hanák and on the same day, I contacted and introduced myself to my mentor Martin Kopec. Then, for few days I worked on setting up my IRC credentials to have chat with my mentor over IRC and we had some discussions regarding how to proceed with the project over the coming days. As I am using macOS, I checked the related documentation and found it outdated as Colloquy is no longer supported on macOS so, as per the guidance of my mentor, I a filed related issue on StoryBoard. Another issue I faced with IRC was that the chat of IRC is not saved, and I thought there might be some cases when I might need to revisit old chat and IRC will not be a good choice in that case. So, I discussed it with my mentor and created a new etherpad for chatting purposes only, and have more formal discussions via email. And we decided to break the project into 3 iterations/tasks.

First, one was to filter out active projects from the list of projects and then amongst the active projects check if any open reviews are available. This was an easy task, and I finished it quickly.

The Second was to create reviews for the projects that didn’t already have any active reviews on Gerrit. It was a major task and took most of the time, so, I’ll explain it in a bit more detail.

Few terms that will be helpful to know beforehand,

  1. tox : tox aims to automate and standardize testing in Python. It is part of a larger vision of easing the packaging, testing, and release process of Python software.
  2. testr : Test repository is a small application for tracking test results. Any test run that can be represented as a subunit stream can be inserted into a repository. It is already used in different OpenStack projects, but as this is no longer maintained (after 2018), so, we had this task to migrate from testr to stestr
  3. ostestr : The ostestr command provides a wrapper around the testr command included in the testrepository package. It’s designed to build on the functionality included in testr and workaround several UI bugs in the short term.
  4. stestr : stestr is a parallel Python test runner designed to execute unittest test suites using multiple processes to split up the execution of a test suite. It also will store a history of all test runs to help in debugging failures and optimizing the scheduler to improve speed. To accomplish this goal it uses the subunit protocol to facilitate streaming and storing results from multiple workers.

I was expected to check each project one-by-one and see if testr is required or not, if it is required then, migrate it from testr are to stestr and update tox and requirement files accordingly, else if it is not required just remove it and make relevant changes.

By the end of the first week of the program, i.e., 19th April, I was able to get a review successfully merged. And from there on, I worked on different repositories, making relevant changes, and continued working for the next 2 months. During this whole time, whenever I faced any challenge, I discussed it with my mentor, Martin, and got clarifications regarding the same. I learned a lot while working on this migration project. However, in the last month of the contest I became inactive due to various college activities, like Internal Assessments, Assignments, Presentations, etc. and hence wasn’t able to work much on the migration project.

There are still some repositories where the migration is not done and no review is created. I am planning to work on those and at least create reviews for all of them before the end of July.

Third and final task under this project was to check the already opened reviews and fix issues with them if any. This will help in successfully merging those reviews. Once I am done with the second task, I’ll take up the final one.

Also, I got some additional tasks from my mentor which I am planning to do after I complete this project, and continue contributing to different open source projects from there onwards.

Thank you Red Hat Research, for providing me with this awesome opportunity to work on your open-source projects via this contest. A big thanks to Martin Kopec, for actively helping me whenever I had doubts, and to Dominik Hanák, for organizing this contest in the best possible way. It has been a phenomenal journey till now and I hope to continue this journey in the future. In my opinion, every developer should at least give a try to contribute to open source projects, believe me, it’s a fulfilling experience and the community is very friendly.

After reading this blog, if anyone got a spark of interest to work on any of the OpenStack open source projects or any other open-source project in general, feel free to reach out to me via LinkedIn or Twitter, in case, you have any doubts, I’ll be more than happy to help.

May the Source be with you!!

--

--

Hitesh Kumar
0 Followers

Software Engineer | Sr. Cyber Security Analyst | Full Stack Web Developer | Open Source Contributor