Dependency Update Adoption Patterns in the Maven Software Ecosystem
Baltasar Berretta, Augustus Thomas, Heather Guarnera
TL;DR
This paper tackles the problem of understanding dependency update adoption in the Maven ecosystem. It employs the Goblin framework to construct a Neo4J-based Maven Central Dependency Graph and defines two adoption metrics: adoption lifespan (time between first and last adoption) and adoption reach (number of downstream dependents). By analyzing a large-scale dataset (~7.5 million package versions across ~380k artifacts and >30 million edges) and focusing on semantic change size and maintenance rate, the study finds that adoption lifespans follow a log-normal distribution with $μ=7.05$, $σ=0.785$, while adoption reach follows exponential decay. Larger semantic changes correlate with more dependents and longer adoption lifespans, whereas highly maintained packages tend to exhibit shorter adoption windows; low and medium maintenance rates are associated with more widespread adoption of various releases. These findings offer practical guidance for maintainers and consumers on migration planning and the value of tooling to manage dependency updates.
Abstract
Regular dependency updates protect dependent software components from upstream bugs, security vulnerabilities, and poor code quality. Measures of dependency updates across software ecosystems involve two key dimensions: the time span during which a release is being newly adopted (adoption lifespan) and the extent of adoption across the ecosystem (adoption reach). We examine correlations between adoption patterns in the Maven software ecosystem and two factors: the magnitude of code modifications (extent of modifications affecting the meaning or behavior of the code, henceforth called ``semantic change") in an upstream dependency and the relative maintenance rate of upstream packages. Using the Goblin Weaver framework, we find adoption latency in the Maven ecosystem follows a log-normal distribution while adoption reach exhibits an exponential decay distribution.
