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