Skip to content

Instantly share code, notes, and snippets.

@rv602
Last active September 9, 2023 20:22
Show Gist options
  • Save rv602/7933965fe6e418584b8d533716316a4b to your computer and use it in GitHub Desktop.
Save rv602/7933965fe6e418584b8d533716316a4b to your computer and use it in GitHub Desktop.

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 and 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. The main ones are : -

  • 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 recreate this project using 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 hosted - 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 and is deployed on Vercel.

    ( will update soon )

  2. Auth provider

    For simplicity sake, this project uses the Github OAuth 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 setup instructions can be found in the INSTRUCTIONS.md file.

Mentors : -

  1. Dr Bradly Alicea
  2. Jesse Parent
  3. Ankit Grover
@jesparent
Copy link

attaching to OREL-group/GSoC#27

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