Change is a routine in software development. Like any system, libraries also evolve over time. As a consequence, clients are compelled to update and, thus, benefit from the available API improvements. However, some of these API changes may break contracts previously established, resulting in compilation errors and behavioral changes. In this paper, we study a set of questions regarding API breaking changes. Our goal is to measure the amount of breaking changes on real-world libraries and its impact on clients at a large-scale level. We assess (i) the frequency of breaking changes, (ii) the behavior of these changes over time, (iii) the impact on clients, and (iv) the characteristics of libraries with high frequency of breaking changes. Our large-scale analysis on 317 real-world Java libraries, 9K releases, and 260K client applications shows that (i) 14.78% of the API changes break compatibility with previous versions, (ii) the frequency of breaking changes increases over time, (iii) 2.54% of their clients are impacted, and (iv) systems with higher frequency of breaking changes are larger, more popular, and more active. Based on these results, we provide a set of lessons to better support library and client developers in their maintenance tasks.
Globus Compute wth IRI Workflows - GlobusWorld 2024
Historical and Impact Analysis of API Breaking Changes: A Large-Scale Study
1. Historical and Impact Analysis of API
Breaking Changes: A Large-Scale Study
Laerte Xavier, Aline Brito, André Hora, Marco Tulio Valente
Federal University of Minas Gerais, Brazil
SANER 2017
7. 7
Breaking Changes
Elements removal
Method signature changes
Non-Breaking
Changes
Changes in deprecated elements
Elements addition
Elements deprecationField changes
(Dig and Johnson, ICSM, 2006)
8. 8
Related Work
Hora and Valente, ICSME, 2015
Hora et al., CSMR, 2014
Henkel and Diwan, ICSE, 2005
Raemaekers et al., ICSM, 2012
API Evolution Change Impact
Brito et al., SANER, 2016
McDonnel et al., ICSE, 2013
9. Trabalhos Relacionados
Hora and Valente, 2015;
Hora et al., 2014;
Henkel and Diwan, 2005.
Raemaekers et al., 2012;
Evolução de APIs Impacto de Mudanças
Brito et al., 2016;
McDonnel et al., 2013.
Open Questions
9
To what extent are clients affected by
API breaking changes?
10. Trabalhos Relacionados
Hora and Valente, 2015;
Hora et al., 2014;
Henkel and Diwan, 2005.
Raemaekers et al., 2012;
Evolução de APIs Impacto de Mudanças
Brito et al., 2016;
McDonnel et al., 2013.
To what extent are clients affected by
API breaking changes?
Open Questions
10
Is this a problem only faced by newer
libraries?
11. 11
RQ1: What is the frequency of API breaking changes?
RQ2: How do API breaking changes evolve over time?
RQ3: What is the impact of API breaking changes in
client applications?
RQ4: What are the characteristics of libraries with high
and low frequency of breaking changes?
16. 16
RQ1: What is the frequency of API breaking changes?
RQ2: How do API breaking changes evolve over time?
RQ3: What is the impact of API breaking changes in
client applications?
RQ4: What are the characteristics of libraries with high
and low frequency of breaking changes?
23. 23
RQ1: What is the frequency of API breaking changes?
RQ2: How do API breaking changes evolve over time?
RQ3: What is the impact of API breaking changes in
client applications?
RQ4: What are the characteristics of libraries with high
and low frequency of breaking changes?
32. 32
RQ1: What is the frequency of API breaking changes?
RQ2: How do API breaking changes evolve over time?
RQ3: What is the impact of API breaking changes in
client applications?
RQ4: What are the characteristics of libraries with high
and low frequency of breaking changes?
37. 37
RQ1: What is the frequency of API breaking changes?
RQ2: How do API breaking changes evolve over time?
RQ3: What is the impact of API breaking changes in
client applications?
RQ4: What are the characteristics of libraries with high
and low frequency of breaking changes?
44. Trabalhos Relacionados
Hora and Valente, 2015;
Hora et al., 2014;
Henkel and Diwan, 2005.
Raemaekers et al., 2012;
Evolução de APIs Impacto de Mudanças
Brito et al., 2016;
McDonnel et al., 2013.
To what extent are clients affected by
API breaking changes?
Open Questions
44
Is this a problem only faced by newer
libraries?
47. 47
Libraries often break backward compatibility
Breaking changes frequency increases over time
Most breaking changes do not have a massive
impact on clients
48. 48
Libraries often break backward compatibility
Breaking changes frequency increases over time
Most breaking changes do not have a massive
impact on clients
Development and social coding measures
are associated with API breaking changes
49. 49
Would you need tools to
measure the impact of
breaking changes?
As an API developer...
50. 50
Would you use stability
metrics to choose an API?
Would you need tools to
measure the impact of
breaking changes?
As an API developer...
As an API client...
51. Historical and Impact Analysis of API
Breaking Changes: A Large-Scale Study
Laerte Xavier, Aline Brito, André Hora, Marco Tulio Valente
Federal University of Minas Gerais, Brazil
SANER 2017