The static properties of code repositories, e.g., lines of code, dependents, dependencies, etc. can be readily scraped from code hosting platforms such as GitHub, and from package management systems such as npm for JavaScript; Although no less important, information related to the dynamic properties of programs, e.g., number of tests in a test suite that pass or fail is less readily available. This dynamic information could be immensely useful to researchers conducting corpus analyses, as it would give them the ability to differentiate projects based on properties of the projects that can only be observed by running them. In this paper, we present npm-filter, an automated tool that can download, install, build, test, and run custom user scripts over the source code of JavaScript projects available on npm, the most popular JavaScript package manager. We outline this tool, describe its implementation, and show that npm-filter has already been useful in developing evaluation suites for multiple JavaScript tools.
翻译:代码库的静态属性,例如代码线、 受扶养人、 依赖性等,可以很容易地从 GitHub 等代码主机平台和 JavaScript npm 等软件包管理系统中切除; 虽然同样重要的是, 与程序动态属性有关的信息, 例如测试套件中通过或失败的测试数, 不太容易获得。 这种动态信息对于进行物理分析的研究人员非常有用, 因为这会使他们有能力根据项目特性区分项目, 只有运行这些功能才能观察到。 在本文中, 我们提供了 npm- 过滤器, 这是一种自动工具, 可以下载、 安装、 构建、 测试和运行在 npm 上最受欢迎的 JavaScript 项目源代码上的自定义用户脚本。 我们概述了这个工具, 描述其实施情况, 并显示 npm- 过滤器在开发多个 JavaScript 工具的评价套件方面已经非常有用 。