Skip to content

Instantly share code, notes, and snippets.

@rv602
Last active October 22, 2023 16:26
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 rv602/9bd5c469e635075ffd27995514b5c24a to your computer and use it in GitHub Desktop.
Save rv602/9bd5c469e635075ffd27995514b5c24a to your computer and use it in GitHub Desktop.
Google Summer of Code 2023 Final Submission

OREL - Open Source Sustainability Project

Introduction

As demonstrated by many organisations, open-source communities can do great things. But this is only true if the contributor community is able to maintain public goods such as the software codebase and institutional knowledge over time despite contributor turnover.

The goal of this project is to develop tools and techniques for managing and maintaining open-source projects.

The formal description of this project can be found here.

This project aims to incorporate a combination of Agent-based modelling and Reinforcement learning approach to explore and analyse the sustainability of open-source communities.

Screenshot-2023-08-04-at-8-56-32-PM

Previous Work

This project was a part of Google Summer of Code 2022 as well, where it was developed on NetLogo - a multi-agent programmable modelling environment. (Click here to view the previous year's project).

Screenshot-2023-08-04-at-9-24-52-PM

There are several limitations in the Netlogo platform that hinder the long term viability of this project. Few of them are as follows : -

  • It uses its own language called nlogo, so it's not really expandable and developer friendly.
  • The Q-learning plugin in Netlogo does not save the training data post every session, so the models do not improve over time
  • Feeding the models data and parameters from various platforms like Github would be much more feasible in Python
  • Python provides many more libraries to analyse and visuallise the data obtained from the simulations

GSoC 2023

Hence, this summer I have attempted to move this project to Mesa - an Agent-based simulation library which uses Python, as developing with Python opens a door to a lot of creativity and extensive libraries.

This project consists of a website, where there are Mesa models embedded - in the form of playgrounds. They help in tweaking the parameters and give a picture on how the sustainability of an open-source community looks like in the long run.

The goal of the project is to develop RL models to cater the key challenges faced in open-source-sustainability, such as Contributor retention, promotion of Contributor ️→ Admin etc.

Tech Stack

  1. Website

    The website for this project is developed using the Next.js framework

  2. Auth provider

    For simplicity sake, this project uses the Github GraphQL API to fetch data and insights of a given project of a particular user. This data can then be plugged-in to the models to explore and analyse the sustainability of a project.

  3. Agent-based Models

    Mesa - an Apache2 licensed agent-based modelling (or ABM) framework in Python has been used for developing ABMs for this project. Mesa has been prescribed as the framework to develop ABMs for this project, as development in Python opens the door to creativity and extensibility.

    Feel free to clone this repository, raise any issue and make contribute towards this project. The project can be found at Orthogonal Lab's official Github over here.

Blockers : -

I tried to incorporate Reinforcement learning into the dynamics of the simulations, but it was a bit trickier than I expected. I did try to work around my way by writing some custom python scripts but they didn’t seem feasible for the long term health of the project.

Mesa, the framework which was used to develop the Agent-based Models doesn’t have an inbuilt library for varying the dynamics of the simulations via RL. This was there on their official idea list for the Google Summer of Code 2023, and I was counting on that library to be developed so that integrating RL into the project would become very seamless.

I also looked into the openAI-gym library, as they had a lot of in-built RL models. Unfortunately they didn’t seem very extensible and suitable for the needs of this project so it seemed like a better idea to just wait for the official RL library from the Mesa team.

Future Scope : -

The next phase of this project would be to plug-in RL to control the dynamics of the simulation and get a better picture about the sustainability of the open-source projects.

I would be getting in touch with the Mesa team to try and get to know the release date of the RL library so that the timeline of the project can be devised accordingly.

If you would like to learn more about the project, feel free to contact me and join the Orthogonal Lab's official Slack channel too.

Mentors : -

  1. Dr Bradly Alicea
  2. Jesse Parent
  3. Ankit Grover
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment