Abstract
With the deep integration of software collaborative development and social networking, social coding represents a new style of software production and creation paradigm. Because of their good flexibility and openness, a large number of external contributors have been attracted to the open-source communities. They are playing a significant role in open-source development. However, the open-source development online is a globalized and distributed cooperative work. If left unsupervised, the contribution process may result in inefficiency. It takes contributors a lot of time to find suitable projects or tasks from thousands of open-source projects in the communities to work on. In this paper, we propose a new approach called “RepoLike,” to recommend repositories for developers based on linear combination and learning to rank. It uses the project popularity, technical dependencies among projects, and social connections among developers to measure the correlations between a developer and the given projects. Experimental results show that our approach can achieve over 25% of hit ratio when recommending 20 candidates, meaning that it can recommend closely correlated repositories to social developers.
Similar content being viewed by others
References
Allamanis M, Sutton C, 2013. Why, when, and what: analyzing stack overflow questions by topic, type, and code. 10th Working Conf on Mining Software Repositories, p.53–56. https://doi.org/10.1109/MSR.2013.6624004
Anvik J, Hiew L, Murphy GC, 2006. Who should fix this bug? 28th Int Conf on Software Engineering, p.361–370. https://doi.org/10.1145/1134285.1134336
Bacchelli A, Ponzanelli L, Lanza M, 2012. Harnessing stack overflow for the IDE. 3rd Int Workshop on Recommendation Systems for Software Engineering, p.26–30. https://doi.org/10.1109/RSSE.2012.6233404
Bajracharya S, Ossher J, Lopes C, 2009. Sourcerer: an Internet–scale software repository. Int Workshop on Search–Driven Development–Users, Infrastructure, Tools, and Evaluation, p.1–4. https://doi.org/10.1109/SUITE.2009.5070010
Begel A, DeLine R, Zimmermann T, 2010. Social media for software engineering. FSE/SDP Workshop on Future of Software Engineering Research, p.33–38. https://doi.org/10.1145/1882362.1882370
Begel A, Bosch J, Storey MA, 2013. Social networking meets software development: perspectives from GitHub, MSDN, Stack exchange, and Topcoder. IEEE Softw, 30(1):52–66. https://doi.org/10.1109/MS.2013.13
Bhattacharya P, Neamtiu I, 2010. Fine–grained incremental learning and multi–feature tossing graphs to improve bug triaging. IEEE Int Conf on Software Maintenance, p.1–10. https://doi.org/10.1109/ICSM.2010.5609736
Blincoe K, Harrison F, Damian D, 2015. Ecosystems in GitHub and a method for ecosystem identification using reference coupling. IEEE/ACM 12th Working Conf on Mining Software Repositories, p.202–207. https://doi.org/10.1109/MSR.2015.26
Boyd DM, Ellison NB, 2007. Social network sites: definition, history, and scholarship. J Comput–Mediat Commun, 13(1):210–230. https://doi.org/10.1111/j.1083-6101.2007.00393.x
Brandt J, Dontcheva M, Weskamp M, et al., 2010. Examplecentric programming: integrating web search into the development environment. SIGCHI Conf on Human Factors in Computing Systems, p.513–522. https://doi.org/10.1145/1753326.1753402
Canfora G, di Penta M, Oliveto R, et al., 2012. Who is going to mentor newcomers in open–source projects? ACM 20th Int Symp on the Foundations of Software Engineering, Article 44. https://doi.org/10.1145/2393596.2393647
Chen X, Grundy J, 2011. Improving automated documentation to code traceability by combining retrieval techniques. 26th IEEE/ACM Int Conf on Automated Software Engineering, p.223–232. https://doi.org/10.1109/ASE.2011.6100057
Chen X, Qin Z, Zhang Y, et al., 2016. Learning to rank features for recommendation over multiple categories. 39th Int ACM SIGIR Conf on Research and Development in Information Retrieval, p.305–314. https://doi.org/10.1145/2911451.2911549
Dabbish L, Stuart C, Tsay J, et al., 2012. Social coding in GitHub: transparency and collaboration in an open software repository. ACM Conf on Computer Supported Cooperative Work, p.1277–1286. https://doi.org/10.1145/2145204.2145396
Favre JM, Lämmel R, Leinberger M, et al., 2012. Linking documentation and source code in a software chrestomathy. 19th Working Conf on Reverse Engineering, p.335–344. https://doi.org/10.1109/WCRE.2012.43
Grechanik M, Fu C, Xie Q, et al., 2010. A search engine for finding highly relevant applications. ACM/IEEE 32nd Int Conf on Software Engineering, p.475–484. https://doi.org/10.1145/1806799.1806868
Holmes R, Murphy GC, 2005. Using structural context to recommend source code examples. 27th Int Conf on Software Engineering, p.117–125. https://doi.org/10.1109/ICSE.2005.1553554
Jeong G, Kim S, Zimmermann T, 2009. Improving bug triage with bug tossing graphs. 7th Joint Meeting of the European Software Engineering Conf and the ACM SIGSOFT Symp on the Foundations of Software Engineering, p.111–120. https://doi.org/10.1145/1595696.1595715
Kokkoras F, Ntonas K, Kritikos A, et al., 2012. Federated search for open–source software reuse. 38th Euromicro Conf on Software Engineering and Advanced Applications, p.200–203. https://doi.org/10.1109/SEAA.2012.55
Lozano A, Kellens A, Mens K, 2011. Mendel: source code recommendation based on a genetic metaphor. 26th IEEE/ ACM Int Conf on Automated Software Engineering, p.384–387. https://doi.org/10.1109/ASE.2011.6100078
McMillan C, Poshyvanyk D, Grechanik M, 2010. Recommending source code examples via API call usages and documentation. 2nd Int Workshop on Recommendation Systems for Software Engineering, p.21–25. https://doi.org/10.1145/1808920.1808925
Rigby PC, Robillard MP, 2013. Discovering essential code elements in informal documentation. Int Conf on Software Engineering, p.832–841. https://doi.org/10.1109/ICSE.2013.6606629
Storey MA, Treude C, van Deursen A, et al., 2010. The impact of social media on software engineering practices and tools. FSE/SDP Workshop on Future of Software Engineering Research, p.359–364. https://doi.org/10.1145/1882362.1882435
Surian D, Liu N, Lo D, et al., 2011. Recommending people in developers’ collaboration network. 18th Working Conf on Reverse Engineering, p.379–388. https://doi.org/10.1109/WCRE.2011.53
Wang H, Yin G, Xie B, et al., 2014. Research on networkbased large–scale collaborative development and evolution of trustworthy software. Sci Sin Inform, 44(1):1–19. https://doi.org/10.1360/N112013-00128
Wang T, Yin G, Wang H, et al., 2014. Linking stack overflow to issue tracker for issue resolution. 6th Asia–Pacific Symp on Internetware, p.11–14. https://doi.org/10.1145/2677832.2677839
Xie T, Pei J, 2006. Mapo: mining API usages from open source repositories. Int Workshop on Mining Software Repositories, p.54–57. https://doi.org/10.1145/1137983.1137997
Yang C, Fan Q, Wang T, et al., 2016. RepoLike: personal repositories recommendation in social coding communities. 8th Asia–Pacific Symp on Internetware, p.54–62. https://doi.org/10.1145/2993717.2993725
Ye Y, Fischer G, 2002. Information delivery in support of learning reusable software components on demand. 7th Int Conf on Intelligent User Interfaces, p.159–166. https://doi.org/10.1145/502716.502741
Yin G, Wang T, Wang H, et al., 2015. Ossean: mining crowd wisdom in open source communities. IEEE Symp on Service–Oriented System Engineering, p.367–371. https://doi.org/10.1109/SOSE.2015.51
Yu Y, Wang H, Yin G, et al., 2016. Reviewer recommendation for pull–requests in GitHub: what can we learn from code review and bug assignment? Inform Softw Technol, 74:204–218. https://doi.org/10.1016/j.infsof.2016.01.004
Zagalsky A, Barzilay O, Yehudai A, 2012. Example overflow: using social media for code recommendation. 3rd Int Workshop on Recommendation Systems for Software Engineering, p.38–42. https://doi.org/10.1109/RSSE.2012.6233407
Zhou M, Mockus A, 2011. Does the initial environment impact the future of developers? 33rd Int Conf on Software Engineering, p.271–280. https://doi.org/10.1145/1985793.1985831
Zhu J, Shen B, Hu F, 2015. A learning to rank framework for developer recommendation in software crowdsourcing. Asia–Pacific Software Engineering Conf, p.285–292. https://doi.org/10.1109/APSEC.2015.50
Author information
Authors and Affiliations
Corresponding author
Additional information
Project supported by the National Natural Science Foundation of China (Nos. 61432020, 61472430, and 61502512) and the National Key R&D Program of China (No. 2016YFB1000805)
Rights and permissions
About this article
Cite this article
Yang, C., Fan, Q., Wang, T. et al. RepoLike: amulti-feature-based personalized recommendation approach for open-source repositories. Frontiers Inf Technol Electronic Eng 20, 222–237 (2019). https://doi.org/10.1631/FITEE.1700196
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1631/FITEE.1700196