The following report summarizes the work done during Google Summer of Code 2021 along with the results, scope for improvements and future work. This also serves as the final project report with all the contributions.
- Name: Yash Prakash
- Email: [email protected]
- Github Username: yash2002109
- LinkedIn: https://www.linkedin.com/in/yash-prakash-25326a164/
- University: Indian Institute of Technology (BHU), Varanasi
- Organization: CHAOSS
- Project Title: Automate Metrics Release and Process Improvement
- Project Link: github.com/chaoss/MARS
- Project Tracker: github.com/yash2002109/gsoc-21
Ever since I attended the first workshop on open-source projects, I have actively been on the lookout for opportunities to contribute and interact with people. The best part is that not only do I get to learn a lot and make new friends, but also the fact that I’m able to collaborate on projects which have a global impact.
I learned about CHAOSS while looking for organizations that participated in GSoC'21. I have been actively contributing to the CHAOSS project since March 2021. I received the GSoC project acceptance on May 17, and that is when I realized that it was going to be an unforgettable summer.
CHAOSS metrics are created to give an in-depth look at the various aspects of an open-source project. The metrics are extremely valuable since, as an open-source project gets more prominent, it becomes increasingly difficult to keep track of its demands, implementation, and future requirements. These metrics are a crucial component in assisting organisations in establishing smart resource allocation decisions.
The metrics are released biannually in the form of a report. These metrics exist in the form of markdown files that are compiled together to generate the release report. Additionally, CHAOSS also translates the metrics into different languages to increase global accessibility.
The majority of the work in this project focuses on extracting raw data in the form of markdowns, processing it, and then outputting a single PDF file containing all the required information.
- Automate the English metrics release process to create PDF from Github markdown files.
- Develop a process to ensure the translations and release of metrics in different languages.
- Automate the process of report generation for the translated versions of the metric markdowns.
The following flowchart summarizes the workflow of the project:
For more details, refer to the main project README.
- Weekly video conferences over Google Meet were used as the primary mode of communication with the mentors
- The CHAOSS slack workspace was used to resolve any doubts, suggestions and comments instead of Github Issues for faster coordination.
- The complete project is hosted on the MARS repository under the CHAOSS organization on Github.
- Weekly blogs and updates were provided in the community to ensure everyone was updated with the project.
- ✔ #2: Add automation system (English) for further development & review
- ✔ #3: Shift automation system from dev branch to main
- ✔ #4: Change subsidiary filenames and fix headings in TOC
- ✔ #5: Fix bug in table generation and minor code improvements
- ✔ #8: Fix bugs in image copying & nested list levels.
- ✔ #10: Include front and end matter docs to the PDF
- ✔ #12: Update README.md and Create CONTRIBUTING.md
- ✔ #13: Add error messages and summary
- ✔ #14: Fix bug and Update active user input
- ✔ #20: Add support for translations (Python venv)
- ✔ #24: Add README for language support & Minor code changes
- ✔ #25: Update YAML file and change order of TOC
- ✔ #27: Modify code to enhance readability
- ✔ #28: Rename directories & Remove inessential files
- ✔ #29: Merge 'english_release.py' and 'translations_release.py' to 'metric_release.py'
- ✔ #31: Divide table_templates.py into common templates & word-translations.yml
- ✔ #33: Reformat and clean scripts
- ✔ #12: Added Images & Fixed their links
- ❌ #13: Sample PR for Restructuring the Repository
- ✔ #14: Sample PR for Restructuring the Repository
- ✔ #17: Restructured Chinese translations & Added images
- ✔ #18: Restructured Spanish translations & Added images
- ✔ #30: Standardize Chinese WG-Common metrics & READMEs
- ✔ #31: Add placeholder READMEs & create 'focus-areas' directory in WG-DEI translations(Chinese)
- ✔ #32: Add placeholder READMEs & create 'focus-areas' directory in WG-Evolution translations(Chinese)
- ✔ #33: Add placeholder READMEs & create 'focus-areas' directory in WG-Value translations(Chinese)
- ✔ #34: Add placeholder READMEs & create 'focus-areas' directory in WG-Risk translations(Chinese)
- ✔ #60: Standardize Spanish WG-DEI
- ✔ #61: Standardize Spanish WG-Evolution
- ✔ #62: Standardize Spanish WG-Value
- ⊙ #29: Guidelines for Metric Translations and Release
- ⊙ #39: Placeholder README files in some translations
- ✔ #278: Add templates for standardization of files in each WG
- ⊙ #277: Standardization of files in each WG repo
- ✔ #571: Fixed Hyperlink
- ✔ #583: Fixed wrong question for 'contributor location' metric
- ✔ #629: Rename contributors.md to chaoss-contributor-list.md & Change headings
- ✔ #645: Create latest release notes and decrease heading levels (MARS)
- ⊙ #608: Header overlapping with navigation menu on metrics webpage
- ✔ #110: Updated LICENSE Year
- ✔ #112: Renamed images and updated links to images
- ✔ #121: Update README.md to follow new template
- ✔ #116: Standard Structure for README.md in each WG repo
- ✔ #123: Inconsistency in focus area goals
- ✔ #355: Standardized Repo Structure
- ✔ #364: Standardize focus area READMEs
- ✔ #365: Rename images and add spaces
- ⊙ #358: Standard Structure for README.md in each WG repo
- ✔ #406: Standardized Repo Structure
- ✔ #407: Delete inessential metric folders & Update README.md
- ✔ #413: Fix minor issues in metrics for proper display of PDF (MARS)
- ✔ #414: Standardize & remove extra content from focus-area READMEs
- ⊙ #408: Standard Structure for README.md in each WG repo
- ✔ #131: Modify metrics to follow updated template
- ⊙ #133: Add source file for table image
- ⊙ #128: Standard Structure for README.md in each WG repo
- ✔ #140: Updated LICENSE Year & Fixed Capitalizations
- ✔ #145: Replace HTML tags and tables
- ✔ #143: Standard Structure for README.md in each WG repo
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.
- Use of one Dockerfile for Linux as well as MacOS.
- 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.
- Autodetect and warn the use of HTML in metric markdowns.
- 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.
Throughout the duration of the project, I have grown a lot. Participating in GSoC has definitely improved my interpersonal and technical skills. Here are some of the prominent ones:
- Collaborating with different teams across different time zones.
- Understanding and implementing the opinion and suggestions of different stakeholders in the project
- Studying the workflow of projects and possible customizations that can be made
- Analysing different approaches to solve a problem along with their pros and cons
- Making a simple and easy to follow process that can easily be understood and followed by the community members.
- Writing clean and well-commented code
- Understanding and reviewing code written by someone else and modifying it.
- Implementing checks and error handling to alert the user in case of any malfunctioning.
- Realizing that a strict timeline is not necessary to successfully complete a project.
- Working with different tools such as DVCS (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
The project would not have been possible without the ongoing support of many people. I would especially like to thank
- Ritik Malik for being a fantastic partner and coding together with me.
- Georg Link, Kevin Lumbard, Matt Germonprez, and Jaskirat Singh for discussing, suggesting improvements and patiently answering my questions about the project.
- CHAOSS community for discussing the project during community calls and being so appreciative about it.
- Srijan Misra Sir and COPS-IIT(BHU) for their continuous guidance and help.
- Friends and family for their encouragement and assistance throughout this project.
Hey Yash,

the meeting minutes doc link you provided is open for everyone to edit- it'll be better if you change the link to "just view" and not "edit"