GSoC ’21 — The Conclusion

Ritik Malik
5 min readAug 21, 2021

Finally, it’s an end to the beautiful 3 month long journey of Google Summer of Code with the CHAOSS Community! This blog serves to summarize my experience.

It all started with a minor typo fixing in the website and now we’ve our own new repository for our M.A.R.S. project! We manage to accomplish all the proposed goals well in time. It has been such a memorable experience attending all the mentor mentee meetings, the weekly community calls and the various working group meetings!

About M.A.R.S.

CHAOSS metrics have been defined to provide an in-depth view into the various features of an open-source project. The metrics are also a key input to help organizations strategically invest their resources.

M.A.R.S. (Metrics Automated Release System) aim is to automate & improve the metric release process. Keeping in mind the ever evolving CHAOSS, the system is scalable and flexible enough for easy tweaking in the future.

The final outcome is generation of reports for the metrics and their translations counterparts respectively.

Summary of Coding Periods —

Coding Period 1:

  • Initially me and Yash had some different approaches to the project. Soon we realized that merging them would be the best choice. My idea was to the yml file structure while he proposed to use the LaTeX tree structure.
  • Then we decided to rename our project to MARS! And started making templates for the focus-areas tex files.
  • We created these standard templates (for focus-area READMEs and the metric markdowns) which resides in the governance repository.
  • Then we decided that it would be best if we could containerize the project with Docker to make it cross platform.
  • Finally we’re able to generate a prototype PDF release, with dynamic 3 level Table of Contents, and also included Focus-areas tables in the report.
  • The basic Docker implementation was done and we were able to launch to MARS on Linux and Mac OS/X
  • Alongside, we were also working on standardization of all the Working Group Repositories. For the Docker part, we also made an automation script.

Then we had our 1st evaluations, which we passed!

Glimpses of M.A.R.S. automation script

Coding Period 2:

  • We found some issues with Docker in Mac and tried to fix them.
  • Then we had a basic user testing from new contributors and the mentors. And we renamed a few scripts for more descriptive names.
  • We made some great progress in the standardization of WGs.
  • The last 3 weeks were pretty busy and crucial for MARS. We made separate yml config and cover files for translations. We implemented the translation system for MARS along with a language menu.
  • For translations we made a new Docker image on DockerHub since the Chinese characters needed a separate package in LaTeX.
  • Then we focused on the documentation part and creating translation guidelines for the community handbook.
  • The mentors then suggested some brilliant ideas and we merged the English and translation scripts and made it more dynamic. This was the new MARS model.
  • The 2nd phase of user testing failed! The Docker automation script had some issues and we made some drastic changes in our approach.
  • The mentors were finally able to produce the release PDF and we even had quite a few live demos for the same.
M.A.R.S. Output: The English Release PDF

You can refer to my previous blogs for more detailed weekly reports.

Overall, the process was a great success for CHAOSS and will help a lot in during the biannual release process!

Future Scope

The MARS project is designed keeping in mind the current and future demands as the CHAOSS Project grows. Certain features, however, can be added to increase flexibility and simplify the release process. Some of them are listed below.

Suggestions for MARS

  • Use of one Dockerfile for Linux as well as Mac OS.
  • Support to run the scripts on Windows OS.
  • Incorporate file formats other than markdown.
  • Provide support for the release of metrics in languages that may be housed in a separate repository in future
  • Provide support for tables in markdown format.
  • Remove the metrics template’s one-line gap rule between text and images.
  • Auto detect and warn the use of HTML in metric markdowns.

Suggestions for Translations Process

  • Automatically create an issue in the translations repo whenever a metric is updated (GitHub Actions)
  • Maintain a database for individual metrics to keep track of their update status
  • Use of translations-tools such as Weblate to provide version control.

Things I Learned

GSoC has been a good opportunity to improve my technical and communication skills. I learned to:

  • Adapt with teams across different timezones
  • Understanding and implementing the opinion and suggestions of different stakeholders in the project
  • Studying the workflow of projects and possible customization that can be made
  • Analyzing different approaches to solve a problem along with their pros and cons
  • Writing clean and well-commented code
  • Understanding, reviewing and modifying others’ code
  • Implementing checks and error handling to alert the user in case of any malfunctioning.
  • Working with different tools such as Git, Gitbook, Python, Docker, Shell, LaTeX, Pandoc, Lucidchart and many more.
  • Effectively communicating the project details by writing weekly blogs and sending updates to the whole community

I’m truly thankful to —

Ria Gupta and Venu Vardhan Reddy Tekula for helping and advising me before and during this journey

My partner Yash Prakash for being an awesome companion on our way to MARS

All the mentors — Georg Link, Kevin Lumbard, Matt Germonprez, and Jaskirat Singh for their constant support and guidance during and even before the project

The entire CHAOSS Community for their welcoming support

GSoC with the CHAOSS Community has taught me a lot about how an organization works and gave me exposure to the industry. I would be happy to contribute to it as an active member!

Some Useful Links

--

--