An Empirical Study for Source Code Incompatibility Between Versions of Java Open-Source Software
摘要
Java open-source software (JOSS) generally has the problem of incompatible source code during version iterations, which brings many challenges to developers. This article deeply analyzes the incompatible changes between adjacent versions from Jedis 3.5.0 to 3.6.3, and proposes specific solutions for each type of incompatibility problem. By comparing changes in method signatures, variable assignments, method calls, control flow statements, and return values or output values, it is found that there are a large number of incompatibility issues between Jedis versions. Among them, there are 46 incompatible changes between Jedis 3.5.2–3.6.0 versions, and 25 and 23 incompatible changes between Jedis 3.6.0–3.6.1 versions and 3.6.1–3.6.2 versions respectively. These incompatibility issues bring a relatively high adaptation cost to developers using Jedis. For these incompatibility problems, this article provides specific solutions respectively. In general, the analysis results show that even for Minor and Patch version updates, Jedis still has many compatibility issues, and developers need to carefully evaluate the risks of version upgrades. The coping strategies proposed in this article provide theoretical guidance and practical reference for version management of JOSS.