scieee AI-readable full text Open interactive document viewer

Online Appendix for "The Invisible Hand of AI Libraries Shaping Open Source Projects and Communities"

Esposito, Matteo; Janes, Andrea; Lenarduzzi, Valentina; Taibi, Davide

Full text

The Invisible Hand of AI Libraries Shaping Open Source Projects and Communities Online Appendix Matteo Espositoa, Andrea Janesb, Valentina Lenarduzzia,c, Davide Taibia,c aUniversity of Oulu, Finland, bFree University of Bozen-Bolzano, Italy, cUniversity of Southern Denmark, Vejle, Denmark [email protected], [email protected], v[email protected], da[email protected] I. SOFTWARE METRICS Software metrics provide quantitative insights into various aspects of software design, implementation, and maintainability [1]. They help developers and project managers assess code quality, identify potential issues, and improve software reliability and performance [1]. Regarding such metrics, Table I presents those that can be collected using the ”full metric” parameter in the SciTool’s Understand static analysis tool. These metrics, including cyclomatic complexity, line counts, and class coupling, measure different dimensions of code, such as its complexity, readability, cohesion, and interdependencies, offering a comprehensive view of software quality. II. REPOSITORY METRICS Repository metrics provide valuable insights into the activity, health, and community engagement of a software project hosted on platforms like GitHub. These metrics help developers, maintainers, and stakeholders understand the level of collaboration, issue resolution, and code evolution in the repository. The table below lists key repository metrics, their descriptions, and their classifications according to [2]–[5]. REFERENCES [1] M. Esposito and D. Falessi, “Uncovering the hidden risks: The importance of predicting bugginess in untouched methods,” in 2023 IEEE 23rd International Working Conference on Source Code Analysis and Manipulation (SCAM). IEEE, 2023, pp. 277–282. [2] M. D’Ambros, M. Lanza, and R. Robbes, “An extensive comparison of bug prediction approaches,” in 2010 7th IEEE working conference on mining software repositories (MSR 2010). IEEE, 2010, pp. 31–41. [3] G. Bavota and B. Russo, “Four eyes are better than two: On the impact of code reviews on software quality,” in 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, 2015, pp. 81– 90. [4] Y. Bugayenko, “Cam: A collection of snapshots of github java repositories together with metrics,” arXiv preprint arXiv:2403.08488, 2024. [5] GitHub, Inc., GitHub Documentation, 2025. [Online]. Available: https://docs.github.com/en TABLE I SOFTWARE METRICS GATHERED WITH SCITOOLS’UNDERSTAND. ACRONYM:LLANGUAGE:JJAVA,PPYTHON,BBOTH;GGRANULARITY:CCLASS,FFUNCTION,MMETHOD,PRPROJECT Name Description L G AvgCountLineBlank Average number of blank lines per method or function. B M AvgCountLineCode Average number of lines of code per method or function. B M AvgCyclomatic Average cyclomatic complexity of methods/functions within a class or file. B C/F AvgCountLineComment Average number of comment lines per method or function. B M CountClassBase Number of immediate base classes a class inherits from. B C CountClassCoupled Number of unique classes that a class is directly coupled to. B C CountClassDerived Number of classes that directly inherit from a given class. B C CountDeclClass Number of class declarations within a file or namespace. B F CountDeclFunction Number of function declarations within a file or namespace. P F CountDeclInstanceMethod Number of instance method declarations within a class. B C CountDeclInstanceVariablePrivate Number of private instance variable declarations within a class. B C CountDeclMethod Number of method declarations within a class. B C CountLineBlank Number of blank lines in the code (readability metric). B F CountLineCode Number of lines containing executable code. B F CountLineComment Number of lines containing comments in the code. B F CountStmt Total number of statements in the code. B F Cyclomatic Cyclomatic complexity of a single method or function. B M MaxCyclomatic Maximum cyclomatic complexity among all methods/functions. B C/F MaxInheritanceTree Maximum depth of the inheritance tree for a class. B C MaxNesting Maximum nesting level of control structures. B M PercentLackOfCohesion Lack of cohesion in a class (higher = lower cohesion). B C SumCyclomatic Sum of cyclomatic complexities of all methods/functions. B C/F TABLE II REPOSITORY METRICS CLASSIFICATION. ACRONYMS:AMACTIVITY;CEM - COMMUNITY ENGAGEMENT;ITM - ISSUE TRACKING;PRM - PULL REQUEST;RMM - RELEASE MANAGEMENT;WM - WORKFLOW;TM - TECHNOLOGY METRICS. Metric Name Description Group Branches Number of branches in the repository. AM Closed Issues Number of issues that have been resolved or closed. ITM Closed Pulls Number of pull requests that have been merged or closed. PRM Comments Total number of comments on issues and pull requests. ITM Commits Total number of commits made in the repository. AM Contributors Number of unique contributors who have contributed to the repository. CEM Dependencies Number of external dependencies listed in the repository. RMM Forks Number of times the repository has been forked. CEM Issues Total number of issues in the repository (open and closed). ITM Languages Programming languages used in the repository, measured by lines of code. TM Open Issues Number of currently open issues in the repository. ITM Open Pulls Number of currently open pull requests. PRM Pulls Total number of pull requests (open and closed). PRM Releases Total number of releases published in the repository. RMM Star Count Number of stars the repository has received. CEM Subscribers Number of people subscribed to repository notifications. CEM Tags Total number of tags created in the repository. AM Topics Topics or keywords associated with the repository. TM Watchers Number of users watching the repository. CEM Workflows Number of workflows configured for CI/CD in the repository. WM