@eclipse-dash/nodejs-wrapper

中文文档
0.0.1发布于 2024/01/29EPL-2.0零依赖近 30 天下载 2.4万

破折号许可证的节点.js包装器,使JS/TS Eclipse基金会项目更容易进行许可证检查

中文使用文档
文档目录6 节
  1. 运行时间要求
  2. 如何安装和使用
  3. 配置文件
  4. 微调结果: 排除文件
  5. GitHub 工作流程
  6. 鸣谢

Eclipse 破折号许可证节点

这个包装器可以方便地整合和运行 Eclipse Dash 许可证 Eclipse 基金会项目存储器中的工具,包括本地和GitHub上的CI(即Pull Evolutions). 这样做是及早捕获任何不兼容或许可证不明确的3PP组件的最佳办法。 可以选择, dash-licenses 可以运行在 automatic IP review mode,以 Eclipse Foundation Gitlab 为例,自动创建 IP Check 门票,每3PP 组件中有一个失败的门票,供进一步检查. 这些入场券往往可以在几分钟内自动获得批准.

运行时间要求

  • 调用 bash
  • node.js 已安装 node 可执行文件在路径中
  • 在 Linux (测试) 上, 可能使用 Windows 子系统为 Linux (WSL) 在 mac 和 Windows 上工作
  • 要运行 dash-licenses:JDK或JRE 11或以后安装 java 可执行文件在路径中
  • 要运行 dash-licenses 内 自动审查模式数字 :
    • 由Eclipse项目参与者在Eclipse Foundation Gitlab上生成的 PAT(个人访问托肯)
    • 本地运行: PAT 需要设置在环境变量中 DASH_TOKEN例如. export DASH_TOKEN=<PAT>
    • GitHub 工作流程运行: PAT 需要设置为 GitHub 密钥,然后在 GitHub 工作流程中用于定义环境变量 DASH_TOKEN注: GitHub 对于来自叉子的 PR , 无法获取机密. 这意味着"自动IP审查模式"不能被用在GitHub上,用于来自非承诺者的PR或来自来自来自分叉中分支的被承诺者的PR.

如何安装和使用

从此寄存器生成的 npm 软件包包含 dash-licenses-wrapper.js 使用脚本 dash-licenses under-the-hood,一个使用包和一些示例配置文件的 GitHub 工作流程实例.

要将此软件包作为“ devdependency” 安装到您的项目中, 请根据项目 npm 客户端使用您项目根部的以下命令之一 :

# yarn:
# note: if prompted to do so, you may need to add option "--ignore-workspace-root-check"
yarn add @eclipse-dash/nodejs-wrapper --dev

# npm:
npm install @eclipse-dash/nodejs-wrapper --save-dev

安装后,您可以从 repo 根进行许可证检查,其命令如下:

  # using yarn lock file as input (default)
  npx dash-licenses-wrapper

  # using npm lock file as input
  npx dash-licenses-wrapper --inputFile=./package-lock.json

要得到帮助 使用包装,做:

  npx dash-licenses-wrapper --help

可选择添加一个或多个 scripts 项目根中的条目 package.json那叫"包装" 和通缉犯辩论 例如:

"scripts": {
  "license:check": "npm run dash-licenses-wrapper --inputFile=./package-lock.json",
  "license:check:review": "npm run dash-licenses-wrapper --inputFile=./package-lock.json --review --project=ecd.cdt-cloud",

可以使用配置文件,而不是在 CLI 上添加所有想要的选项或 scripts 输入。 关于配置文件的细节,见下文一节.

npx dash-licenses-wrapper --configFile=./configs/license-check-config.json

配置文件

可以使用配置文件 。 其中所定义的值将覆盖包设默认值,自身会被CLI所覆盖.

dashLicensesConfig.json数字 :

{
    "project": "ecd.theia",
    "review": true,
    "inputFile": "./package-lock.json",
    "batch": "50",
    "timeout": "240",
    "exclusionsFile": "configs/license-check-exclusions.json",
    "summaryFile": "dash-licenses-summary.txt"
}

配置文件可以这样使用 :

 npx dash-licenses-wrapper --configFile=configs/dashLicensesConfig.json

微调结果: 排除文件

dash-licenses 目的是帮助Eclipse基金会的项目管理他们的3PP的许可证方面,而不是绝对的"真理仲裁者". 因此,一个项目可能希望一些据报需要更多审查的依赖性立即被"忽略". 这意味着 dash-licenses 将仍然处理这些,但包件不会把它们算作未通过检查。 如果只报告被排除在外的 3PP dash-licenses 由于需要进一步检查, 包装将返回一个成功状态代码.

这个 exclusions file 包含每行一个依赖性,并附有一个可选的注释,可用于跟踪排除依赖性的理由,从而避免许可证检查失败. 例如,在审查中但据信拥有相容许可证的依赖性方面,这一点可能是有益的.

{
  "<3PP as reported by dash-licenses>": "<comment>",
  "<another 3PP>": "<comment>"
}

实例情景:一个重要的拉动请求(PR)增加了3PP的依赖性,项目认为其许可证是相容的,但为此 dash-licenses 不同意(例如因为得分低). 依赖性被提交IP团队进行进一步分析,但不能被自动批准,很快. 在此期间,为了避免延迟合并重要的公关或合并,并使得"License Check"的CI工作失败,直到依赖关系得到正式批准,可以将其添加到其中 exclusions file数字 :

假设项目排除文件是 configs/license-check-exclusions.json

添加以下条目: 第一个字段是所报的 3PP dash-licenses 而第二个字段是一个可选的注释,可以用来跟踪排除依赖性不成功许可证检查的原因. 例如:

"npm/npmjs/-/<some dependency>/1.2.3": "We believe this dependency is license-compatible. Under review by the IP team to confirm: https://gitlab.eclipse.org/eclipsefdn/emo-team/iplab/-/issues/555555",

然后可以使用 CLI 参数调用包装器 --exclusions 指着 exclusions 文件, 像这样 :

npx dash-licenses-wrapper --inputFile=./package-lock.json --exclusions=configs/license-check-exclusions.json

排除文件 : <repo_root>/dependency-check-baseline.json

GitHub 工作流程

目录中提供了运行许可证检查的示例工作流程 examples (默认情况下) node_modules/@eclipse-dash/nodejs-wrapper/examples/license-check-workflow.yml) (中文(简体) ). 它可以复制到 GitHub 项目的目录 <repo root>/.github/workflows 并适应给定项目.

如果项目增加了 scripts 在根中输入 package.json 以运行许可证检查,该检查可用于代替 npx dash-licenses-wrapper [...]. e.g. (中文(简体) ). yarn license:check [...]。 。 。 .

运行效率很高 dash-licenses 内 review cI中模式,可以自动创建 IP 检查票,每个3PP 组件有一个失败检查. 要做到这一点,一个承诺者(拥有写入权限的用户)需要设置一个包含 Eclipse Foundation Gitlab PAT 的 GitHub 秘密,并在工作流程中使用它,以便环境可变 DASH_TOKEN 被设定与它。 请注意,出于安全原因,GitHub只允许在PR作者是罪犯时使用这个秘密. 如果不是那样的话 包装器会掉到不使用 review 模式,IP票应当根据需要手动打开.

鸣谢

这项工作的基础是: Eclipse Theia 主 git 仓库爱立信等人的作品. 主要为脚本 检查 3pp 许可证.js。 。 。 .

版本与发布记录

@eclipse-dash/nodejs-wrapper 共发布 1 个版本,首次发布于 2024/01/29;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.1latest2024/01/292 年前

关于 @eclipse-dash/nodejs-wrapper 的常见问题

@eclipse-dash/nodejs-wrapper 是什么?

破折号许可证的节点.js包装器,使JS/TS Eclipse基金会项目更容易进行许可证检查

如何安装 @eclipse-dash/nodejs-wrapper?

在项目目录运行 npm install @eclipse-dash/nodejs-wrapper,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 dash-licenses-wrapper,可以用 npx dash-licenses-wrapper 直接运行。

@eclipse-dash/nodejs-wrapper 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/eclipse-dash__nodejs-wrapper 是否存在。

@eclipse-dash/nodejs-wrapper 可以商用吗?

@eclipse-dash/nodejs-wrapper 使用 EPL-2.0 许可。声明的许可为 EPL-2.0,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@eclipse-dash/nodejs-wrapper 的下载量有多少?

根据 npm 官方下载统计,@eclipse-dash/nodejs-wrapper 在 2026/10/13 – 2026/11/11 这 30 天内被下载 23,890 次,日均约 796 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@eclipse-dash/nodejs-wrapper 还在维护吗?

最新版本 0.0.1 发布于 2024/01/29(2 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/01/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。