Academia.eduAcademia.edu

Outline

npm Packages as Ingredients: A Recipe-based Approach

Proceedings of the 14th International Conference on Software Technologies

https://doi.org/10.5220/0007966805440551

Abstract

The sharing and growth of open source software packages in the npm JavaScript (JS) ecosystem has been exponential, not only in numbers but also in terms of interconnectivity, to the extend that often the size of dependencies has become more than the size of the written code. This reuse-oriented paradigm, often attributed to the lack of a standard library in node and/or in the micropackaging culture of the ecosystem, yields interesting insights on the way developers build their packages. In this work we view the dependency network of the npm ecosystem from a "culinary" perspective. We assume that dependencies are the ingredients in a recipe, which corresponds to the produced software package. We employ network analysis and information retrieval techniques in order to capture the dependencies that tend to co-occur in the development of npm packages and identify the communities that have been evolved as the main drivers for npm's exponential growth.

References (12)

  1. Abdalkareem, R., Nourry, O., Wehaibi, S., Mujahid, S., and Shihab, E. (2017). Why do developers use trivial packages? an empirical case study on npm. In Proc. of the 11th Joint Meeting on Foundations of Software Engineering, pages 385-395, NY, USA. ACM.
  2. Bastian, M., Heymann, S., and Jacomy, M. (2009). Gephi: An Open Source Software for Exploring and Ma- nipulating Networks. In Proc. of the Third Interna- tional AAAI Conference on Weblogs and Social Me- dia, ICWSM 2009, pages 361-362, Menlo Park, CA, USA. AAAI Press.
  3. Bogart, C., Kästner, C., Herbsleb, J., and Thung, F. (2016). How to break an api: Cost negotiation and community values in three software ecosystems. In Proceedings of the 2016 24th ACM SIGSOFT International Sym- posium on Foundations of Software Engineering, FSE 2016, pages 109-120, New York, NY, USA. ACM.
  4. Chatzidimitriou, K. C., Papamichail, M. D., Diamantopou- los, T., Tsapanos, M., and Symeonidis, A. L. (2018). Npm-miner: An infrastructure for measuring the qual- ity of the npm registry. In Proc. of the 15th Interna- tional Conference on Mining Software Repositories, MSR '18, pages 42-45, New York, NY, USA. ACM.
  5. Decan, A., Mens, T., and Claes, M. (2016). On the topology of package dependency networks: A comparison of three programming language ecosystems. In Procced- ings of the 10th European Conference on Software Ar- chitecture Workshops, ECSAW '16, pages 21:1-21:4, New York, NY, USA. ACM.
  6. Girvan, M. and Newman, M. E. J. (2002). Com- munity structure in social and biological networks. Proceedings of the National Academy of Sciences, 99(12):7821-7826.
  7. Haney, D. (2016). NPM & left-pad: Have we forgotten how to program? https://www.davidhaney.io/npm-left- pad-have-we-forgotten-how-to-program/. Accessed: 2019-01-16.
  8. Kikas, R., Gousios, G., Dumas, M., and Pfahl, D. (2017). Structure and evolution of package dependency net- works. In Proceedings of the 14th International Con- ference on Mining Software Repositories, MSR '17, pages 102-112, Piscataway, NJ, USA. IEEE Press.
  9. Salton, G. and Buckley, C. (1988). Term-weighting ap- proaches in automatic text retrieval. Information pro- cessing & management, 24(5):513-523.
  10. Teng, C.-Y., Lin, Y.-R., and Adamic, L. A. (2012). Recipe recommendation using ingredient networks. In Pro- ceedings of the 4th Annual ACM Web Science Con- ference, WebSci '12, pages 298-307, New York, NY, USA. ACM.
  11. Williams, J. and Dabirsiaghi, A. (2014). The unfortunate reality of insecure libraries. Technical report, Contrast Security.
  12. Wittern, E., Suter, P., and Rajagopalan, S. (2016). A look at the dynamics of the javascript package ecosystem. In Proceedings of the 13th International Conference on Mining Software Repositories, MSR '16, pages 351- 361, New York, NY, USA. ACM.