Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

When and How to Make Breaking Changes: Policies and Practices in 18 Open Source Software Ecosystems

Published: 23 July 2021 Publication History

Abstract

Open source software projects often rely on package management systems that help projects discover, incorporate, and maintain dependencies on other packages, maintained by other people. Such systems save a great deal of effort over ad hoc ways of advertising, packaging, and transmitting useful libraries, but coordination among project teams is still needed when one package makes a breaking change affecting other packages. Ecosystems differ in their approaches to breaking changes, and there is no general theory to explain the relationships between features, behavioral norms, ecosystem outcomes, and motivating values. We address this through two empirical studies. In an interview case study, we contrast Eclipse, NPM, and CRAN, demonstrating that these different norms for coordination of breaking changes shift the costs of using and maintaining the software among stakeholders, appropriate to each ecosystem’s mission. In a second study, we combine a survey, repository mining, and document analysis to broaden and systematize these observations across 18 ecosystems. We find that all ecosystems share values such as stability and compatibility, but differ in other values. Ecosystems’ practices often support their espoused values, but in surprisingly diverse ways. The data provides counterevidence against easy generalizations about why ecosystem communities do what they do.

References

[1]
Pietro Abate, Roberto DiCosmo, Ralf Treinen, and Stefano Zacchiroli. 2011. MPM: A modular package manager. In Proceedings of the International Symposium on Component Based Software Engineering (CBSE’11). ACM Press, New York, 179–188.
[2]
Rabe Abdalkareem. 2017. Reasons and drawbacks of using trivial npm packages: The developers’ perspective. In Proceedings of the 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE’17). ACM, New York, NY, 1062–1064.
[3]
Cyrille Artho, Kuniyasu Suzaki, Roberto Di Cosmo, Ralf Treinen, and Stefano Zacchiroli. 2012. Why do software packages conflict? IEEE International Working Conference on Mining Software Repositories, 141–150.
[4]
Anat Bardi and Shalom H. Schwartz. 2003. Values and behavior: Strength and structure of relations. Personal. Soc. Psychol. Bull. 29, 10 (2003), 1207–1220.
[5]
Gabriele Bavota, Gerardo Canfora, Massimiliano Di Penta, Rocco Oliveto, and Sebastiano Panichella. 2015. How the Apache community upgrades dependencies: An evolutionary study. Empir. Softw. Eng. 20, 5 (2015), 1275–1317.
[6]
Christopher Bogart, Christian Kästner, James Herbsleb, and Ferdian Thung. 2016. How to break an API: Cost negotiation and community values in three software ecosystems. In Proceedings of the International Symposium Foundations of Software Engineering (FSE’16). ACM Press, New York.
[7]
Christopher Bogart, Anna Filippova, James Herbsleb, and Christian Kastner. 2017. Culture and Breaking Change: A Survey of Values and Practices in 18 Open Source Software Ecosystems.
[8]
Shawn A. Bohner and Robert S. Arnold. 1996. Software Change Impact Analysis. IEEE Computer Society Press, Los Alamitos, CA.
[9]
Virginia Braun and Victoria Clarke. 2006. Using thematic analysis in psychology. Qualit. Res. Psychol. 3, 2 (2006), 77–101.
[10]
A. Brito, L. Xavier, A. Hora, and M. T. Valente. 2018. Why and how Java developers break APIs. In Proceedings of the IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER’18). 255–265.
[11]
Javier Luis Cánovas Izquierdo and Jordi Cabot. 2015. Enabling the definition and enforcement of governance rules in open source systems. Proceedings of the International Conference on Software Engineering (ICSE’15). 505–514.
[12]
Jaepil Choi and Heli Wang. 2007. The promise of a managerial values approach to corporate philanthropy. J. Bus. Ethics 75, 4 (2007), 345–359.
[13]
Juliet Corbin and Anselm Strauss. 2014. Criteria for evaluation. In Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory (3rd ed.). Sage Publications, Inc.
[14]
Bradley E. Cossette and Robert J. Walker. 2012. Seeking the ground truth: A retroactive study on the evolution and migration of software libraries. In Proceedings of the International Symposium Foundations of Software Engineering (FSE’12). ACM Press, New York, 55.
[15]
John W. Creswell and J. David Creswell. 2014. Research Design: Qualitative, Quantitative, and Mixed Methods Approaches (4th ed.). Sage Publications.
[16]
Mary Crossan, Daina Mazutis, and Gerard Seijts. 2013. In search of virtue: The role of virtues, values and character strengths in ethical decision making. J. Bus. Ethics 113, 4 (2013), 567–581.
[17]
Laura Dabbish, Colleen Stuart, Jason Tsay, and Jim Herbsleb. 2012. Social coding in GitHub: Transparency and collaboration in an open software repository. In Proceedings of the Conference on Computer Supported Cooperative Work (CSCW’12). 1277–1286.
[18]
Barthélémy Dagenais and Martin P. Robillard. 2010. Creating and evolving developer documentation: Understanding the decisions of open source contributors. In Proceedings of the ACM International Symposium on Foundations of Software Engineering. 127–136.
[19]
Cleidson R. B. de Souza and David F. Redmiles. 2008. An empirical study of software developers’ management of dependencies and changes. In Proceedings of the International Conference on Software Engineering (ICSE’08).
[20]
Cleidson R. B. De Souza and David F. Redmiles. 2009. On the roles of APIs in the coordination of collaborative software development. Comput. Supp. Coop. Work 18, 5-6 (2009), 445–475.
[21]
Alexandre Decan, Tom Mens, Maëlick Claes, and Philippe Grosjean. 2016. When GitHub meets CRAN: An analysis of inter-repository package dependency problems. In Proceedings of the International Conference on Software Analysis, Evolution, and Reengineering. 493–504.
[22]
Alexandre Decan, Tom Mens, and Maëlick Claes. 2017. An empirical comparison of dependency issues in OSS packaging ecosystems. In Proceedings of the International Conference on Software Analysis, Evolution, and Reengineering (SANER’17).
[23]
Dedoose. 2016. Version 7.0.23. Web Application for Managing, Analyzing, and Presenting Qualitative and Mixed Method Research Data. SocioCultural Research Consultants, LLC, Los Angeles, CA. Retrieved from www.dedoose.com
[24]
Jim des Rivières. 2005. API First. Retrieved from http://www.eclipsecon.org/2005/presentations/EclipseCon2005_12.2APIFirst.pdf.
[25]
Jim des Rivières. 2007. Evolving Java-based APIs. Retrieved from https://wiki.eclipse.org/Evolving_Java-based_APIs.
[26]
Jens Dietrich, David J. Pearce, Jacob Stringer, and Kelly Blincoe. 2019. Dependency versioning in the wild. In Proceedings of the Conference on Mining Software Repositories (MSR’19). 349–359.
[27]
Don A. Dillman, Jolene D. Smyth, and Leah Melani Christian. 2014. Internet, Phone, Mail, and Mixed-mode Surveys: The Tailored Design Method. John Wiley & Sons.
[28]
Alexander Eck. 2018. Coordination across open source software communities: Findings from the rails ecosystem. In Tagungsband Multikonferenz Wirtschaftsinformatik (MKWI’18). 109–120.
[29]
Stephen G. Eick, Todd L. Graves, Alan F. Karr, J. S. Marron, and Audris Mockus. 2001. Does code decay? Assessing the evidence from change management data. IEEE Trans. Softw. Eng. 27, 1 (Jan. 2001), 1–12.
[30]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston, MA.
[31]
R. Stuart Geiger. 2017. Summary analysis of the 2017 GitHub open source survey. CoRR abs/1706.02777 (2017).
[32]
Gemnasium. 2017. Gemnasium. Retrieved on 28 April, 2021 from https://web.archive.org/web/20180324121439/https://gemnasium.com/.
[33]
Mohammad Gharehyazie, Baishakhi Ray, and Vladimir Filkov. 2017. Some from here, some from there: Cross-project code reuse in GitHub. In Proceedings of the IEEE International Working Conference on Mining Software Repositories. 291–301.
[34]
GitHub, Inc. 2017. Open Source Survey 2017. Retrieved from http://opensourcesurvey.org/2017/ on 4/28/2021.
[35]
The Neighbourhoodie Software GmbH. 2017. Greenkeeper.io. Retrieved on 28 April, 2021 from https://web.archive.org/web/20180224075015/https://greenkeeper.io/.
[36]
Johannes Henkel and Amer Diwan. 2005. CatchUp!: Capturing and replaying refactorings to support API evolution. In Proceedings of the International Conference on Software Engineering (ICSE’05). ACM Press, New York, 274–283.
[37]
Steven Hitlin and Jane Allyn Piliavin. 2004. Values: Reviving a dormant concept. Ann. Rev. Sociol. 30, 1 (2004), 359–393.
[38]
Reid Holmes and Robert J. Walker. 2010. Customized awareness: Recommending relevant external change events. In Proceedings of the International Conference on Software Engineering (ICSE’10). ACM Press, New York, 465–474.
[39]
Daqing Hou and Xiaojia Yao. 2011. Exploring the intent behind API evolution: A case study. In Proceedings of the Working Conference on Reverse Engineering (WCRE’11). IEEE Computer Society, Los Alamitos, CA, 131–140.
[40]
Marco Iansiti and Roy Levien. 2004. The Keystone Advantage: What the New Dynamics of Business Ecosystems Mean for Strategy, Innovation, and Sustainability. Harvard Business Press, Boston, MA.
[41]
Javier Luis Cánovas Izquierdo and Jordi Cabot. 2015. Enabling the definition and enforcement of governance rules in open source systems. In Proceedings of the International Conference on Software Engineering (ICSE’15). IEEE, 505–514.
[42]
Steven J. Jackson, David Ribes, Ayse G. Buyuktur, and Geoffrey C. Bowker. 2011. Collaborative rhythm: Temporal dissonance and alignment in collaborative scientific work. In Proceedings of the Conference on Computer Supported Cooperative Work (CSCW’11). 245–254.
[43]
Slinger Jansen and Michael A. Cusumano. 2013. Defining software ecosystems: A survey of software platforms and business network governance. In Software Ecosystems: Analyzing and Managing Business Networks in the Software Industry. Edward Elgar Publishing.
[44]
Puneet Kapur, Brad Cossette, and Robert J. Walker. 2010. Refactoring references for library migration. In Proceedings of the International Conference on Object-oriented Programming, Systems, Languages and Applications (OOPSLA’10). ACM Press, New York, 726–738.
[45]
Smitha Keertipati, Sherlock A. Licorish, and Bastin Tony Roy Savarimuthu. 2016. Exploring decision-making processes in Python. In Proceedings of the International Conference on Evaluation and Assessment in Software Engineering. ACM, 43.
[46]
Riivo Kikas, Georgios Gousios, Marlon Dumas, and Dietmar Pfahl. 2017. Structure and evolution of package dependency networks. In Proceedings of the 14th International Conference on Mining Software Repositories (MSR’17). IEEE Press, Piscataway, NJ, 102–112.
[47]
Daniel Le Berre and Pascal Rapicault. 2009. Dependency management for the eclipse ecosystem: Eclipse P2, metadata and resolution. In Proceedings of the International Workshop on Open Component Ecosystems (IWOCE’09). 21–30.
[48]
Mario Linares-Vásquez, Gabriele Bavota, Carlos Bernal-Cárdenas, Massimiliano Di Penta, Rocco Oliveto, and Denys Poshyvanyk. 2013. API change and fault proneness: A threat to the success of Android apps. In Proceedings of the European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE’13). ACM Press, New York, 477–487.
[49]
Cristina V. Lopes, Petr Maj, Pedro Martins, Vaibhav Saini, Di Yang, Jakub Zitny, Hitesh Sajnani, and Jan Vitek. 2017. DéjàVu: A map of code duplicates on GitHub. Proc. ACM Program. Lang. 1, OOPSLA (2017), 1–28.
[50]
Mircea F. Lungu. 2009. Reverse Engineering Software Ecosystems. Ph.D. Dissertation. University of Lugano.
[51]
Fabio Mancinelli, Jaap Boender, Roberto Di Cosmo, Jerome Vouillon, Berke Durak, Xavier Leroy, and Ralf Treinen. 2006. Managing the complexity of large free and open source package-based software distributions. 199–208.
[52]
Konstantinos Manikas. 2016. Revisiting software ecosystems research: A longitudinal literature study. J. Syst. Softw. 117 (2016), 84–103.
[53]
Michael Mattsson and Jan Bosch. 2000. Stability assessment of evolving industrial object-oriented frameworks. J. Softw. Maint.: Res. Pract. 12, 2 (2000), 79–102.
[54]
Tyler McDonnell, Baishakhi Ray, and Miryung Kim. 2013. An empirical study of API stability and adoption in the Android ecosystem. In Proceedings of the International Conference on Software Maintenance (ICSM’13). IEEE Computer Society, Los Alamitos, CA.
[55]
T. Mens. 2016. An ecosystemic and socio-technical view on software maintenance and evolution. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution (ICSME’16). 1–8.
[56]
David G. Messerschmitt, Clemens Szyperski et al. 2005. Software Ecosystem: Understanding an Indispensable Technology and Industry. MIT Press Books.
[57]
Audris Mockus. 2009. Amassing and indexing a large sample of version control systems: Towards the census of public soruce code history. In Proceedings of the IEEE Conference on Mining Software Repositories (MSR’09).
[58]
Emerson Murphy-Hill, Thomas Zimmerman, and Nachiappan Nagappan. 2014. Cowboys, ankle sprains, and keepers of quality: How is video game development different from software development? In Proceedings of the International Conference on Software Engineering (ICSE’14).
[59]
Linda Northrop, Peter Feiler, Richard P. Gabriel, John Goodenough, Rick Linger, Tom Longstaff, Rick Kazman, Mark Klein, Douglas Schmidt, Kevin Sullivan, and Kurt Wallnau. 2006. Ultra-large-scale Systems: The Software Challenge of the Future. Software Engineering Institute.
[60]
Siobhán O’Mahony and Fabrizio Ferraro. 2007. The emergence of governance in an open source community. Acad. Manag. J. 50, 5 (2007), 1079–1106.
[61]
Jeroen Ooms. 2013. Possible directions for improving dependency versioning in R. R Journal 5, 1 (2013), 1–9.
[62]
Klaus Ostermann, Paolo G. Giarrusso, Christian Kästner, and Tillmann Rendel. 2011. Revisiting information hiding: Reflections on classical and nonclassical modularity. In Proceedings of the European Conference on Object-oriented Programming (ECOOP’11) (Lecture Notes in Computer Science), Vol. 6813. Springer-Verlag, Berlin, 155–178.
[63]
David L. Parnas. 1972. On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 12 (1972), 1053–1058.
[64]
Raphael Pham, Leif Singer, Olga Liskin, Fernando Figueira Filho, and Kurt Schneider. 2013. Creating a shared understanding of testing culture on a social coding site. In Proceedings of the International Conference on Software Engineering (ICSE’13). IEEE Computer Society, Los Alamitos, CA, 112–121.
[65]
Tom Preston-Werner. 2013. Semantic Versioning 2.0.0. Retrieved from http://semver.org.
[66]
Steven Raemaekers, Arie van Deursen, and Joost Visser. 2012. Measuring software library stability through historical version analysis. In Proceedings of the International Conference on Software Maintenance (ICSM’12). IEEE Computer Society, Los Alamitos, CA, 378–387.
[67]
Steven Raemaekers, Arie Van Deursen, and Joost Visser. 2014. Semantic versioning versus breaking changes: A study of the Maven repository. In Proceedings of the International Working Conference on Source Code Analysis and Manipulation (SCAM’14). IEEE Computer Society, Los Alamitos, CA, 215–224.
[68]
Romain Robbes, Mircea Lungu, and David Röthlisberger. 2012. How do developers react to API deprecation? The case of a smalltalk ecosystem. In Proceedings of the International Symposium Foundations of Software Engineering (FSE). ACM Press, New York.
[69]
RStudio Team. 2015. RStudio: Integrated Development for R.Technical Report. RStudio, Inc., Boston MA. Retrieved from www.rstudio.com
[70]
Edgar H. Schein and Peter Schein. 2017. Organizational Culture and Leadership (5th ed.). Wiley.
[71]
Shalom H. Schwartz. 1992. Universals in the content and structure of values: Theoretical advances and empirical tests in 20 countries. Adv. Exper. Soc. Psychol. 25 (1992), 1–65.
[72]
Leif Singer, Fernando Figueira Filho, and Margaret-Anne Storey. 2014. Software engineering at the speed of light: How developers stay current using Twitter. In Proceedings of the International Conference on Software Engineering (ICSE’14). 211–221.
[73]
Ian Sommerville. 2010. Software Engineering (9th ed.). Pearson Addison Wesley.
[74]
Diomidis Spinellis. 2012. Package management systems. IEEE Softw. 29, 2 (2012), 84–86.
[75]
Adam Stakoviak, Andrew Thorp, and Isaac Schleuter. 2013. The Changelog. Retrieved from https://changelog.com/101/.
[76]
Peri Tarr, Harold Ossher, William Harrison, and Stanley M. Sutton, Jr.1999. N degrees of separation: Multi-dimensional separation of concerns. In Proceedings of the International Conference on Software Engineering (ICSE’99). IEEE Computer Society, Los Alamitos, CA, 107–119.
[77]
The LibreOffice Design Team. 2017. What Open Source Means To LibreOffice Users. Retrieved from https://design.blog.documentfoundation.org/2017/09/13/open-source-means-libreoffice-users/.
[78]
The Rust Team. 2021. The Cargo Book. Retrieved on 28 April, 2021 from https://doc.rust-lang.org/cargo/faq.html#why-do-binaries-have-cargolock-in-version-control-but-not-libraries.
[79]
Jonathan Tuner. 2016. State of Rust Survey 2016. Retrieved from https://blog.rust-lang.org/2016/06/30/State-of-Rust-Survey-2016.html.
[80]
A. Turon and N. Matsakis. 2014. Stability as a Deliverable (The Rust Programming Language Blog). Retrieved from https://blog.rust-lang.org/2014/10/30/Stability.html.
[81]
Ivo van den Berk, Slinger Jansen, and Lútzen Luinenburg. 2010. Software ecosystems. In Proceedings of the European Conference on Software Architecture (ECSA’10). 127–134.
[82]
Bill Venners. 2003. The Philosophy of Ruby: A Conversation with Yukihiro Matsumoto, Part I. Retrieved from http://www.artima.com/intv/rubyP.html.
[83]
Jonathan Wareham, Paul B. Fox, and Josep Lluís Cano Giner. 2014. Technology ecosystem governance. Organiz. Sci. 25, 4 (2014), 1195–1215.
[84]
Mark Weiser. 1984. Program slicing.IEEE Trans. Softw. Eng. 10, 4 (1984), 352–357.
[85]
Joel West. 2003. How open is open enough?: Melding proprietary and open source platform strategies. Res. Polic. 32, 7 (2003), 1259–1285.
[86]
Joel West and Siobhán O’Mahony. 2008. The role of participation architecture in growing sponsored open source communities. Industr. Innov. 15, 2 (2008), 145–168.
[87]
Hadley Wickham. 2015. Releasing a Package. O’Reilly Media, Sebastopol, CA. Retrieved from http://r-pkgs.had.co.nz/release.html.
[88]
Wei Wu, Foutse Khomh, Bram Adams, Yann Gaël Guéhéneuc, and Giuliano Antoniol. 2015. An exploratory study of API changes and usages based on Apache and Eclipse ecosystems. Empir. Softw. Eng. (2015), 1–47.
[89]
Wei Wu, Foutse Khomh, Bram Adams, Yann-Gaël Guéhéneuc, and Giuliano Antoniol. 2016. An exploratory study of API changes and usages based on Apache and Eclipse ecosystems. Empir. Softw. Eng. 21, 6 (2016), 2366–2412.
[90]
Laerte Xavier, Aline Brito, Andre Hora, and Marco Tulio Valente. 2017. Historical and impact analysis of API breaking changes: A large-scale study. In Proceedings of the IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER’17). IEEE, 138–147.
[91]
Yihui Xie. 2013. R Package Versioning. Retrieved from http://yihui.name/en/2013/06/r-package-versioning/.
[92]
Robert A. Yin. 2013. Case Study Research: Design and Methods (5th ed.). Sage Publications.

Cited By

View all
  • (2025)Bridging the language gap: an empirical study of bindings for open source machine learning libraries across software package ecosystemsEmpirical Software Engineering10.1007/s10664-024-10570-530:1Online publication date: 1-Feb-2025
  • (2024)Ten simple rules for building and maintaining a responsible data science workflowPLOS Computational Biology10.1371/journal.pcbi.101223220:7(e1012232)Online publication date: 18-Jul-2024
  • (2024)Automatic Library Migration Using Large Language Models: First ResultsProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3690746(427-433)Online publication date: 24-Oct-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 30, Issue 4
Continuous Special Section: AI and SE
October 2021
613 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/3461694
  • Editor:
  • Mauro Pezzè
Issue’s Table of Contents
This work is licensed under a Creative Commons Attribution-ShareAlike International 4.0 License.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 July 2021
Accepted: 01 January 2021
Revised: 01 December 2020
Received: 01 August 2019
Published in TOSEM Volume 30, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Software ecosystems
  2. collaboration
  3. dependency management
  4. qualitative research
  5. semantic versioning

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)873
  • Downloads (Last 6 weeks)137
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2025)Bridging the language gap: an empirical study of bindings for open source machine learning libraries across software package ecosystemsEmpirical Software Engineering10.1007/s10664-024-10570-530:1Online publication date: 1-Feb-2025
  • (2024)Ten simple rules for building and maintaining a responsible data science workflowPLOS Computational Biology10.1371/journal.pcbi.101223220:7(e1012232)Online publication date: 18-Jul-2024
  • (2024)Automatic Library Migration Using Large Language Models: First ResultsProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3690746(427-433)Online publication date: 24-Oct-2024
  • (2024)Dependency-Induced Waste in Continuous Integration: An Empirical Study of Unused Dependencies in the npm EcosystemProceedings of the ACM on Software Engineering10.1145/36608231:FSE(2632-2655)Online publication date: 12-Jul-2024
  • (2024)Understanding the Impact of APIs Behavioral Breaking Changes on Client ApplicationsProceedings of the ACM on Software Engineering10.1145/36437821:FSE(1238-1261)Online publication date: 12-Jul-2024
  • (2024)Temporal Autoregressive Matrix Factorization for High-Dimensional Time Series Prediction of OSSIEEE Transactions on Neural Networks and Learning Systems10.1109/TNNLS.2023.327132735:10(13741-13752)Online publication date: Oct-2024
  • (2024)Signing in Four Public Software Package Registries: Quantity, Quality, and Influencing Factors2024 IEEE Symposium on Security and Privacy (SP)10.1109/SP54263.2024.00215(1160-1178)Online publication date: 19-May-2024
  • (2024)Microservice API Evolution in Practice: A Study on Strategies and ChallengesJournal of Systems and Software10.1016/j.jss.2024.112110215(112110)Online publication date: Sep-2024
  • (2024)An exploratory study of software artifacts on GitHub from the lens of documentationInformation and Software Technology10.1016/j.infsof.2024.107425169:COnline publication date: 2-Jul-2024
  • (2024)How Many Web APIs Evolve Following Semantic Versioning?Web Engineering10.1007/978-3-031-62362-2_25(344-359)Online publication date: 17-Jun-2024
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media