Skip to content

Instantly share code, notes, and snippets.

@ritik-malik
Last active August 6, 2022 10:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ritik-malik/5a1a48bb966892824d7da31fc12ede50 to your computer and use it in GitHub Desktop.
Save ritik-malik/5a1a48bb966892824d7da31fc12ede50 to your computer and use it in GitHub Desktop.
Google Summer of Code '21 with CHAOSS - Final Report
gsoc logo
MARS logo

Metrics Automated Release System

Google Summer of Code '21 with CHAOSS - Final Report ☀️

CONTENTS

Student Developer Info

Why MARS

CHAOSS metrics are sorted into different focus areas. Each working group has different focus areas and each focus area defines various metrics in it. These metrics are documented as markdown files which are directly pulled from their respective repositories and rendered into the wordpress website.

During the biannual metric release, these metrics are PDF printed manually, modified with tampermonkey user scripts, and saved individually. Then the front matter is prepared which consists of a cover page and CHAOSS contributors. Finally all the above PDFs are combined together using PDFsam basic and the final release is appended with the MIT license.

The above process is quite time consuming and requires manual work. There is an obvious need for an alternative metric release process which should be fully automated and flexible enough for tweaking, in the future of the ever evolving CHAOSS. Since we expect more metrics and Working Groups in future, the manual effort will only keep increasing.

Equal importance would be given to the appearance/look and feel of the PDF as the current one seems to be using every default setting possible.

About MARS

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.

Workflow

Usage

M.A.R.S. supports Linux (Debian based) and MacOS based systems only.

Currently, it can be used to generate the reports of English, Spanish and Chinese version of the metrics that exist in the working groups and translations repositories.

There are two ways to run M.A.R.S:

  • Using Docker
  • Using Python virtual environment

Refer to this README to know more details about its usage.

Communication and Work Management

  • Weekly video calls over Google meet were scheduled with the mentors
  • A separate CHAOSS slack channel was made for our project to resolve any doubts, suggestions and comments for faster coordination.
  • The complete project is hosted on the MARS repository under the CHAOSS organization on Github.
  • Weekly blogs and updates via CHAOSS mailing list were provided in the community to ensure everyone was updated with the project.

Pull Requests & Issues

chaoss/MARS

  • #1: updated README
  • #6: added support for focus-areas tables in WG.tex
  • #7: added separate output dir & datetime nomenclature for PDF
  • #9: Support for Linux (debian based) & Mac/OS X
  • #11: Add support for non-root user to run Docker & Create README.md
  • #18: updated README and yml file
  • #19: Restructring MARS to accommodate English & translations in 1 single system
  • #21: added support for chinese in Docker
  • #22: Adding new color scheme to MARS
  • #23: update the main README and added GIF for MARS demo
  • #26: update README and MARS workflow
  • #30: Added support for MARS in Mac OS/X
  • #32: Added Dockerfiles for Linux and Mac
  • #34: Updated all READMEs and fixed typos
  • #35: Update GIFs and yml file

chaoss/website

  • #566: Fixed typos in About page
  • #574: Automated Typo fixer
  • #584: added GSoD students to mentorship page
  • #606: added link to WG app ecosystem
  • 🔒 #572: Automation script for fixing typos
  • 🔒 #604: Error in website home page

chaoss/community-handbook

  • #16: autofixed typos : task 5/5
  • #18: Added WG repo template
  • #22: added Translations Guide SVG image
  • 🔒 #15: WG repository template

chaoss/wg-common

  • #108: autofixed typos : task 1/5
  • #109: fixed redirection of metric.md
  • #115: Fixing minor issues
  • #117: removed template-folder
  • #120: standardize focus-areas READMEs
  • #126: renamed focus-areas and fixed metrics
  • #130: complete standardization of wg-common
  • #134: added focus-areas README standard template
  • 🔒 #111: Inconsistency in referring images
  • 🔒 #114: Standardizing wg-common repository

chaoss/wg-diversity-inclusion

  • #355: autofixed typos : task 4/5

chaoss/wg-evolution

  • #401: autofixed typos : task 2/5

chaoss/wg-value

  • #139: autofixed typos : task 3/5
  • #142: standardizing WG-value repository structure

chaoss/wg-risk

  • #123: fixed typos automatically
  • #124: Restructured the WG-risk according to the guidelines
  • 🔒 #125: Old metrics

chaoss/governance

  • #272: removing dot-slash notation
  • #280: added focus-areas template
  • 🔒 #276: Templates for focus-areas READMEs in WGs

chaoss/metrics

  • #189: added file-name-convention
  • #191: updated the metric template with rules for images

chaoss/translations

  • #45: renamed wg-common focus-areas and updated README
  • #46: standardizing Spanish wg-common
  • #47: standardizing Spanish wg-risk
  • #57: added extra level of focus-areas

Weekly Updates

GSoC Acceptence Time Duration Blog
GSoC acceptance blog May 17, 2021 link
Coding Period 1 Time Duration Blog Notes
Week 1 June 7 - June 13, 2021 link link
Week 2 June 14 - June 20, 2021 link link
Week 3 June 21 - June 27, 2021 link link
Week 4 June 28 - July 4, 2021 link link
Week 5 July 5 - July 11, 2021 link link
Coding Period 2 Time Duration Blog Notes
Week 6 July 12 - July 18, 2021 link link
Week 7 July 19 - July 25, 2021 link link
Week 8 July 26 - Aug 1, 2021 link link
Week 9 Aug 2 - Aug 8, 2021 link link
Week 10 Aug 9 - Aug 15 link link
GSoC Conclusion Time Duration Blog
GSoC Conclusion blog Aug 21, 2021 link

Maintainers

Mentors

Students

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 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.

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 customizations that can be made
  • Analysing 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

Acknowledgments

It would not have been possible for me to participate and work on this project without the assist and help of many people. I would like to thank -

  • Ria Gupta and Venu Vardhan Reddy Tekula for guiding me through the initial process of application, and even during the project. Their advices were very helpful to me
  • Yash Prakash for being an awesome companion on our way to M.A.R.S.
  • 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
  • All my family and friends for encouraging & motivating me throughout this project

Footnotes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment