EVOL Lab logo EVOL Lab

EVOL Lab / Projects / Reuse and Maintenance Practices

Current project Ecosystem mining EMSE 2022

Reuse and Maintenance Practices among Divergent Forks

This project studies software families that emerge when developers fork reusable systems for different customers, markets, or environments. It examines how those related variants actually maintain shared code over time inside major ecosystems.

Project image for Reuse and Maintenance Practices among Divergent Forks
Illustrative ecosystem view of software families, code propagation paths, and maintenance relationships across related forked variants.

Overview

Fork-based reuse is widespread in software ecosystems, but relatively little is known about how those related systems maintain shared ancestry once they begin to diverge. This project identifies and studies software families maintained across Android, .NET, and JavaScript ecosystems to understand their reuse and maintenance practices.

The study mined 38 Android families, 526 .NET families, and 8,837 JavaScript families that existed both on official distribution platforms and on GitHub. It then analyzed their characteristics and code-propagation practices, showing that direct integration with Git outside GitHub pull requests was more common than expected and that cross-family integration remained limited overall.

What the project focuses on

  • Finding software families embedded inside major package ecosystems.
  • Measuring how code is propagated and maintained across divergent forks.
  • Comparing integration practices across Android, .NET, and JavaScript.
  • Providing empirical grounding for tooling that supports families rather than isolated repositories.

Key takeaways

  • Shows that software families are abundant in real ecosystems, especially JavaScript.
  • Finds limited code integration across families despite shared ancestry.
  • Highlights the need for better maintenance support for ecosystem-scale reuse.

Why it matters

Software reuse does not end when a fork is created. By understanding how families evolve in the wild, the lab can design tools and theories that reflect actual maintenance behavior instead of idealized workflows.