Ahmed Zerouali is a postdoctoral on the joint Belgian FNRS-FWO Excellence of Science project SECOASSIST and a research fellow at the Software Languages Lab of the Vrije Universiteit Brussel in Belgium. His research focuses mainly on empirical software engineering, in particular software evolution, mining software repositories and software analytics. He has authored and reviewed research papers published in top software engineering conferences as well as in major journals such as EMSE, TSE, JSEP, SCICO etc.
Frequently, reusable packages for major programming languages and operating systems are available in public package repositories where they are developed and evolved together within the same environment. Developers rely on package management tools to automate deployments, specifying which package releases satisfy the needs of their applications. However, these specifications may lead to deploying package releases that are outdated or undesirable because they do not include bug fixes, security fixes, or new functionality. In contrast, automatically updating to a more recent release may introduce incompatibility issues. Moreover, while this delicate problem is important at the level of individual packages, it becomes even more relevant at the level of large distributions of software packages where packages depend, directly or indirectly, on a large number of other packages.
The goal of this presentation is to show how to capture this delicate balance between the need of updating to the ideal release and the risk of having breaking changes by presenting the measurement of technical lag, a concept that quantifies to which extent a deployed collection of packages is outdated with respect to the ideal deployment. Then, we empirically analyze its evolution in npm.