开发者指南

在贡献代码之前,请先打开源文件,读一下我们的贡献者指南文档。我们非常欢迎你对文档和代码的提高。

代码库使用一个单库。我们使用 Lerna 作为管理内部模块依赖的工具,他能更加容易的去开发协调多个模块。运行的命令是使用 npm,而不是 lerna

开发工具

因为项目支持多 Node 版本,所以推荐使用一个版本管理工具,例如 nvm

安装完 Node 后运行下面的命令:

  1. npm install

会安装完所有必要的模块

测试

单元测试

可使用下面的命令,来执行所有的单元测试:

  1. npm run test

可使用下面的命令,在开发的过程中监听变化持续运行单元测试:

  1. npm run tdd

Linting

我们使用 gts 来保证新代码符合我们的代码规范。

在提交代码之前,请确保没有 lint 报错。  使用下面命令来检查 lint 问题:

  1. npm run lint

使用下面命令来修复 lint 问题:

  1. npm run lint:fix

持续集成

We rely on CircleCI 2.0 for our tests. If you want to test how the CI behaves locally, you can use the CircleCI Command Line Interface as described here: https://circleci.com/docs/2.0/local-jobs/

我们依靠 CircleCI 2.0 来做持续集成。如果你想在本地测试 CI,你可以使用 CircleCI 命令行界面,可以阅读文档使用https://circleci.com/docs/2.0/local-jobs/

安装 circleci CLI 后,只需运行以下命令之一:

  1. circleci build --job lint
  2. circleci build --job node8
  3. circleci build --job node10
  4. circleci build --job node11
  5. circleci build --job node12
  6. circleci build --job node12-browsers

文档

我们使用 typedoc 来生成 api 文档。

使用下面的命令生成文档:

  1. npm run docs

文档的输出路径在 packages/opentelemetry-api/docs/out 下。