diff --git a/.github/workflows/peer-api.yaml b/.github/workflows/peer-api.yaml new file mode 100644 index 0000000000..171f00fd29 --- /dev/null +++ b/.github/workflows/peer-api.yaml @@ -0,0 +1,22 @@ +name: Ensure API Peer Dependency + +on: + push: + branches: + - main + pull_request: + +jobs: + peer-api-check: + runs-on: ubuntu-latest + container: + image: node:14 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install lerna + run: npm install -g lerna + + - name: Check API dependency semantics + run: lerna exec "node \$LERNA_ROOT_PATH/scripts/peer-api-check.js" diff --git a/detectors/node/opentelemetry-resource-detector-github/package.json b/detectors/node/opentelemetry-resource-detector-github/package.json index d1aff43efa..81ac383de9 100644 --- a/detectors/node/opentelemetry-resource-detector-github/package.json +++ b/detectors/node/opentelemetry-resource-detector-github/package.json @@ -42,7 +42,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@types/mocha": "8.2.2", "@types/node": "14.14.45", "@types/sinon": "9.0.11", @@ -56,7 +60,6 @@ "typescript": "4.2.4" }, "dependencies": { - "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/resources": "^0.19.0" } } diff --git a/examples/dns/package.json b/examples/dns/package.json index 076690f41a..8f8795f2f2 100644 --- a/examples/dns/package.json +++ b/examples/dns/package.json @@ -26,7 +26,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js-contrib/issues" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/exporter-zipkin": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", diff --git a/examples/express/package.json b/examples/express/package.json index a8c031c2f6..f0cb7ebf7e 100644 --- a/examples/express/package.json +++ b/examples/express/package.json @@ -28,7 +28,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/exporter-zipkin": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", diff --git a/examples/grpc-census-prop/package.json b/examples/grpc-census-prop/package.json index 6edf56770b..7c39cc2371 100644 --- a/examples/grpc-census-prop/package.json +++ b/examples/grpc-census-prop/package.json @@ -34,7 +34,7 @@ "@opencensus/instrumentation-grpc": "0.0.21", "@opencensus/nodejs": "0.0.21", "@opencensus/propagation-binaryformat": "0.0.21", - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/core": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/instrumentation-grpc": "^0.19.0", diff --git a/examples/grpc_dynamic_codegen/package.json b/examples/grpc_dynamic_codegen/package.json index e761177b4b..58762df15c 100644 --- a/examples/grpc_dynamic_codegen/package.json +++ b/examples/grpc_dynamic_codegen/package.json @@ -28,7 +28,7 @@ }, "dependencies": { "@grpc/proto-loader": "^0.4.0", - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/exporter-zipkin": "^0.19.0", "@opentelemetry/node": "^0.19.0", diff --git a/examples/hapi/package.json b/examples/hapi/package.json index 0ef6abd0a5..99498e7f06 100644 --- a/examples/hapi/package.json +++ b/examples/hapi/package.json @@ -32,7 +32,7 @@ }, "dependencies": { "@hapi/hapi": "^19.2.0", - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/exporter-zipkin": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", diff --git a/examples/host-metrics/package.json b/examples/host-metrics/package.json index aa5d4c19b0..4004ceb0dc 100644 --- a/examples/host-metrics/package.json +++ b/examples/host-metrics/package.json @@ -26,7 +26,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/core": "^0.19.0", "@opentelemetry/exporter-collector": "^0.19.0", "@opentelemetry/exporter-prometheus": "^0.19.0", diff --git a/examples/ioredis/package.json b/examples/ioredis/package.json index 78a122341e..5e1680df98 100644 --- a/examples/ioredis/package.json +++ b/examples/ioredis/package.json @@ -28,7 +28,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js-contrib/issues" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/instrumentation-ioredis": "^0.15.0", diff --git a/examples/koa/package.json b/examples/koa/package.json index 146b0a950c..c0c89ec191 100644 --- a/examples/koa/package.json +++ b/examples/koa/package.json @@ -32,7 +32,7 @@ }, "dependencies": { "@koa/router": "^9.3.1", - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/exporter-zipkin": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", diff --git a/examples/meta-node/package.json b/examples/meta-node/package.json index 7231eb0364..c26618603a 100644 --- a/examples/meta-node/package.json +++ b/examples/meta-node/package.json @@ -35,7 +35,7 @@ "eslint": "^7.4.0" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/auto-instrumentations-node": "^0.15.0", "@opentelemetry/exporter-collector": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", diff --git a/examples/mongodb/package.json b/examples/mongodb/package.json index de36431718..8fc5d037ab 100644 --- a/examples/mongodb/package.json +++ b/examples/mongodb/package.json @@ -28,7 +28,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js-contrib/issues" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/exporter-zipkin": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", diff --git a/examples/mysql/package.json b/examples/mysql/package.json index f0420d5d9f..cc7f8c1568 100644 --- a/examples/mysql/package.json +++ b/examples/mysql/package.json @@ -28,7 +28,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/exporter-zipkin": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", diff --git a/examples/network/package.json b/examples/network/package.json index 07015b3618..ec726dee6a 100644 --- a/examples/network/package.json +++ b/examples/network/package.json @@ -27,15 +27,15 @@ "url": "https://github.com/open-telemetry/opentelemetry-js-contrib/issues" }, "dependencies": { - "@opentelemetry/api": "^0.18.1", - "@opentelemetry/exporter-jaeger": "^0.18.2", - "@opentelemetry/exporter-zipkin": "^0.18.2", - "@opentelemetry/instrumentation": "^0.18.2", - "@opentelemetry/instrumentation-net": "file:../../plugins/node/opentelemetry-instrumentation-net", + "@opentelemetry/api": "1.0.0-rc.0", + "@opentelemetry/exporter-jaeger": "^0.19.0", + "@opentelemetry/exporter-zipkin": "^0.19.0", + "@opentelemetry/instrumentation": "^0.19.0", + "@opentelemetry/instrumentation-net": "^0.16.0", "@opentelemetry/instrumentation-http": "^0.19.0", - "@opentelemetry/instrumentation-dns": "^0.15.0", - "@opentelemetry/node": "^0.18.2", - "@opentelemetry/tracing": "^0.18.2" + "@opentelemetry/instrumentation-dns": "^0.16.0", + "@opentelemetry/node": "^0.19.0", + "@opentelemetry/tracing": "^0.19.0" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js-contrib#readme", "devDependencies": { diff --git a/examples/postgres/package.json b/examples/postgres/package.json index bd4414b987..49623e56f0 100644 --- a/examples/postgres/package.json +++ b/examples/postgres/package.json @@ -30,7 +30,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/exporter-zipkin": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", diff --git a/examples/redis/package.json b/examples/redis/package.json index b6f1d3a3ec..5a8db346ec 100644 --- a/examples/redis/package.json +++ b/examples/redis/package.json @@ -30,7 +30,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/exporter-zipkin": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", diff --git a/examples/restify/package.json b/examples/restify/package.json index fe4ef15489..ee20a0821e 100644 --- a/examples/restify/package.json +++ b/examples/restify/package.json @@ -28,7 +28,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/exporter-jaeger": "^0.19.0", "@opentelemetry/exporter-zipkin": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", diff --git a/examples/router/package.json b/examples/router/package.json index 80a2b97186..e08243defa 100644 --- a/examples/router/package.json +++ b/examples/router/package.json @@ -28,14 +28,14 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "dependencies": { - "@opentelemetry/api": "^0.18.0", - "@opentelemetry/exporter-jaeger": "^0.18.0", - "@opentelemetry/exporter-zipkin": "^0.18.0", - "@opentelemetry/instrumentation": "^0.18.0", - "@opentelemetry/instrumentation-http": "^0.18.0", + "@opentelemetry/api": "1.0.0-rc.0", + "@opentelemetry/exporter-jaeger": "^0.19.0", + "@opentelemetry/exporter-zipkin": "^0.19.0", + "@opentelemetry/instrumentation": "^0.19.0", + "@opentelemetry/instrumentation-http": "^0.19.0", "@opentelemetry/instrumentation-router": "^0.16.0", - "@opentelemetry/node": "^0.18.0", - "@opentelemetry/tracing": "^0.18.0", + "@opentelemetry/node": "^0.19.0", + "@opentelemetry/tracing": "^0.19.0", "router": "^1.3.5" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme", diff --git a/examples/web/package.json b/examples/web/package.json index 9847616733..2a6226c4d3 100644 --- a/examples/web/package.json +++ b/examples/web/package.json @@ -34,7 +34,7 @@ "webpack-merge": "^4.2.2" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/auto-instrumentations-web": "^0.16.0", "@opentelemetry/context-zone": "^0.19.0", "@opentelemetry/core": "^0.19.0", diff --git a/metapackages/auto-instrumentations-node/package.json b/metapackages/auto-instrumentations-node/package.json index 264e563696..78df82e23f 100644 --- a/metapackages/auto-instrumentations-node/package.json +++ b/metapackages/auto-instrumentations-node/package.json @@ -27,6 +27,7 @@ "url": "https://github.com/open-telemetry/opentelemetry-js-contrib/issues" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@types/mocha": "7.0.2", "@types/node": "14.14.45", "@types/sinon": "9.0.11", @@ -39,8 +40,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/instrumentation-dns": "^0.16.0", "@opentelemetry/instrumentation-express": "^0.16.0", diff --git a/metapackages/auto-instrumentations-web/package.json b/metapackages/auto-instrumentations-web/package.json index 368510dbbc..22990a39d0 100644 --- a/metapackages/auto-instrumentations-web/package.json +++ b/metapackages/auto-instrumentations-web/package.json @@ -29,6 +29,7 @@ }, "devDependencies": { "@babel/core": "7.14.2", + "@opentelemetry/api": "1.0.0-rc.0", "@types/mocha": "8.2.2", "@types/node": "14.14.45", "@types/sinon": "9.0.11", @@ -54,8 +55,10 @@ "webpack-cli": "4.7.0", "webpack-merge": "5.7.3" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/instrumentation-document-load": "^0.16.0", "@opentelemetry/instrumentation-fetch": "^0.19.0", diff --git a/packages/opentelemetry-host-metrics/package.json b/packages/opentelemetry-host-metrics/package.json index 386680ba4e..3972e54dab 100644 --- a/packages/opentelemetry-host-metrics/package.json +++ b/packages/opentelemetry-host-metrics/package.json @@ -42,6 +42,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@types/mocha": "8.2.2", "@types/node": "14.14.45", "@types/sinon": "9.0.11", @@ -54,8 +55,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/api-metrics": "^0.19.0", "@opentelemetry/core": "^0.19.0", "@opentelemetry/metrics": "^0.19.0", diff --git a/packages/opentelemetry-id-generator-aws-xray/package.json b/packages/opentelemetry-id-generator-aws-xray/package.json index c99e6b4d7d..49a9833b4d 100644 --- a/packages/opentelemetry-id-generator-aws-xray/package.json +++ b/packages/opentelemetry-id-generator-aws-xray/package.json @@ -52,6 +52,7 @@ "README.md" ], "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@types/mocha": "8.2.2", "@types/node": "14.14.45", "@types/sinon": "9.0.11", @@ -74,8 +75,10 @@ "typescript": "4.2.4", "webpack": "4.46.0" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/core": "^0.19.0" } } diff --git a/packages/opentelemetry-test-utils/package.json b/packages/opentelemetry-test-utils/package.json index 0f26aaddc9..46f095bcf0 100644 --- a/packages/opentelemetry-test-utils/package.json +++ b/packages/opentelemetry-test-utils/package.json @@ -24,12 +24,15 @@ }, "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme", "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@types/node": "14.14.45", "gts": "3.1.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/core": "0.19.0", "@opentelemetry/tracing": "0.19.0" } diff --git a/plugins/node/opentelemetry-instrumentation-aws-lambda/package.json b/plugins/node/opentelemetry-instrumentation-aws-lambda/package.json index 78f0f7e0fc..0b42885f61 100644 --- a/plugins/node/opentelemetry-instrumentation-aws-lambda/package.json +++ b/plugins/node/opentelemetry-instrumentation-aws-lambda/package.json @@ -41,6 +41,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/node": "0.19.0", "@types/mocha": "7.0.2", "@types/node": "14.14.45", @@ -52,8 +53,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/resources": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", diff --git a/plugins/node/opentelemetry-instrumentation-bunyan/package.json b/plugins/node/opentelemetry-instrumentation-bunyan/package.json index efb46fac7b..11aa9b662f 100644 --- a/plugins/node/opentelemetry-instrumentation-bunyan/package.json +++ b/plugins/node/opentelemetry-instrumentation-bunyan/package.json @@ -42,6 +42,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -58,8 +59,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@types/bunyan": "1.8.6" } diff --git a/plugins/node/opentelemetry-instrumentation-dns/package.json b/plugins/node/opentelemetry-instrumentation-dns/package.json index 8faf3cded2..375b3325ab 100644 --- a/plugins/node/opentelemetry-instrumentation-dns/package.json +++ b/plugins/node/opentelemetry-instrumentation-dns/package.json @@ -41,6 +41,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/core": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -58,8 +59,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", "semver": "^7.3.2" diff --git a/plugins/node/opentelemetry-instrumentation-express/package.json b/plugins/node/opentelemetry-instrumentation-express/package.json index 66785831e9..06bb0c3135 100644 --- a/plugins/node/opentelemetry-instrumentation-express/package.json +++ b/plugins/node/opentelemetry-instrumentation-express/package.json @@ -42,6 +42,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -56,8 +57,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/core": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", diff --git a/plugins/node/opentelemetry-instrumentation-graphql/package.json b/plugins/node/opentelemetry-instrumentation-graphql/package.json index db34570949..3ba3f88ef4 100644 --- a/plugins/node/opentelemetry-instrumentation-graphql/package.json +++ b/plugins/node/opentelemetry-instrumentation-graphql/package.json @@ -43,6 +43,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/tracing": "0.19.0", "@types/mocha": "8.2.2", "@types/node": "14.14.45", @@ -55,8 +56,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@types/graphql": "14.5.0" } diff --git a/plugins/node/opentelemetry-instrumentation-hapi/package.json b/plugins/node/opentelemetry-instrumentation-hapi/package.json index 802cc88c72..8f806b41ce 100644 --- a/plugins/node/opentelemetry-instrumentation-hapi/package.json +++ b/plugins/node/opentelemetry-instrumentation-hapi/package.json @@ -42,6 +42,7 @@ }, "devDependencies": { "@hapi/hapi": "20.1.3", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -56,8 +57,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", "@types/hapi__hapi": "20.0.8" diff --git a/plugins/node/opentelemetry-instrumentation-ioredis/package.json b/plugins/node/opentelemetry-instrumentation-ioredis/package.json index 85f706d961..65fc05ab86 100644 --- a/plugins/node/opentelemetry-instrumentation-ioredis/package.json +++ b/plugins/node/opentelemetry-instrumentation-ioredis/package.json @@ -44,6 +44,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/test-utils": "^0.16.0", @@ -60,8 +61,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", "@types/ioredis": "4.26.3" diff --git a/plugins/node/opentelemetry-instrumentation-koa/package.json b/plugins/node/opentelemetry-instrumentation-koa/package.json index fd2b9998f2..8a06986d52 100644 --- a/plugins/node/opentelemetry-instrumentation-koa/package.json +++ b/plugins/node/opentelemetry-instrumentation-koa/package.json @@ -44,6 +44,7 @@ }, "devDependencies": { "@koa/router": "9.4.0", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -58,8 +59,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", "@types/koa": "2.13.1", diff --git a/plugins/node/opentelemetry-instrumentation-mongodb/package.json b/plugins/node/opentelemetry-instrumentation-mongodb/package.json index 25cbfec7a5..f56a2c54bb 100644 --- a/plugins/node/opentelemetry-instrumentation-mongodb/package.json +++ b/plugins/node/opentelemetry-instrumentation-mongodb/package.json @@ -43,6 +43,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -57,8 +58,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", "@types/mongodb": "3.6.12" diff --git a/plugins/node/opentelemetry-instrumentation-mysql/package.json b/plugins/node/opentelemetry-instrumentation-mysql/package.json index 8e80e96199..af85106db1 100644 --- a/plugins/node/opentelemetry-instrumentation-mysql/package.json +++ b/plugins/node/opentelemetry-instrumentation-mysql/package.json @@ -41,6 +41,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/test-utils": "^0.16.0", "@opentelemetry/tracing": "0.19.0", @@ -55,8 +56,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", "@types/mysql": "2.15.18" diff --git a/plugins/node/opentelemetry-instrumentation-net/package.json b/plugins/node/opentelemetry-instrumentation-net/package.json index c48b51b414..1ca6643547 100644 --- a/plugins/node/opentelemetry-instrumentation-net/package.json +++ b/plugins/node/opentelemetry-instrumentation-net/package.json @@ -42,6 +42,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", "@types/mocha": "7.0.2", @@ -56,8 +57,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0" } diff --git a/plugins/node/opentelemetry-instrumentation-pg/package.json b/plugins/node/opentelemetry-instrumentation-pg/package.json index 81be931013..c0e1aaab80 100644 --- a/plugins/node/opentelemetry-instrumentation-pg/package.json +++ b/plugins/node/opentelemetry-instrumentation-pg/package.json @@ -47,6 +47,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/test-utils": "^0.16.0", @@ -64,8 +65,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", "@types/pg": "7.14.11", diff --git a/plugins/node/opentelemetry-instrumentation-pino/package.json b/plugins/node/opentelemetry-instrumentation-pino/package.json index 5446a8de92..0765f70cd7 100644 --- a/plugins/node/opentelemetry-instrumentation-pino/package.json +++ b/plugins/node/opentelemetry-instrumentation-pino/package.json @@ -42,6 +42,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -60,8 +61,10 @@ "ts-node": "9.1.1", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "semver": "^7.3.5", "@types/pino": "6.3.8" diff --git a/plugins/node/opentelemetry-instrumentation-redis/package.json b/plugins/node/opentelemetry-instrumentation-redis/package.json index cc52363e65..c6fb437f29 100644 --- a/plugins/node/opentelemetry-instrumentation-redis/package.json +++ b/plugins/node/opentelemetry-instrumentation-redis/package.json @@ -43,6 +43,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/test-utils": "^0.16.0", @@ -59,8 +60,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", "@types/redis": "2.8.28" diff --git a/plugins/node/opentelemetry-instrumentation-restify/package.json b/plugins/node/opentelemetry-instrumentation-restify/package.json index 17f35882a3..f68109bd00 100644 --- a/plugins/node/opentelemetry-instrumentation-restify/package.json +++ b/plugins/node/opentelemetry-instrumentation-restify/package.json @@ -41,6 +41,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -55,8 +56,10 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", "@types/restify": "4.3.7" diff --git a/plugins/node/opentelemetry-instrumentation-router/package.json b/plugins/node/opentelemetry-instrumentation-router/package.json index 01f89aae8c..3bda38e15e 100644 --- a/plugins/node/opentelemetry-instrumentation-router/package.json +++ b/plugins/node/opentelemetry-instrumentation-router/package.json @@ -41,6 +41,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -57,8 +58,10 @@ "tslint-microsoft-contrib": "6.2.0", "typescript": "4.1.3" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0" } diff --git a/plugins/node/opentelemetry-instrumentation-winston/package.json b/plugins/node/opentelemetry-instrumentation-winston/package.json index 8046efdecb..9fd4a2ea6f 100644 --- a/plugins/node/opentelemetry-instrumentation-winston/package.json +++ b/plugins/node/opentelemetry-instrumentation-winston/package.json @@ -42,6 +42,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-async-hooks": "0.19.0", "@opentelemetry/node": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -59,8 +60,10 @@ "winston": "3.3.3", "winston2": "npm:winston@2.4.5" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/instrumentation": "^0.19.0" } } diff --git a/plugins/web/opentelemetry-instrumentation-document-load/package.json b/plugins/web/opentelemetry-instrumentation-document-load/package.json index 2a9a1cbda8..3848aa2ada 100644 --- a/plugins/web/opentelemetry-instrumentation-document-load/package.json +++ b/plugins/web/opentelemetry-instrumentation-document-load/package.json @@ -48,6 +48,7 @@ }, "devDependencies": { "@babel/core": "7.14.2", + "@opentelemetry/api": "1.0.0-rc.0", "@types/mocha": "8.2.2", "@types/node": "14.14.45", "@types/sinon": "10.0.0", @@ -73,8 +74,10 @@ "webpack-cli": "4.7.0", "webpack-merge": "5.7.3" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/core": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", diff --git a/plugins/web/opentelemetry-instrumentation-user-interaction/package.json b/plugins/web/opentelemetry-instrumentation-user-interaction/package.json index 1d5227c462..dbe9e18e02 100644 --- a/plugins/web/opentelemetry-instrumentation-user-interaction/package.json +++ b/plugins/web/opentelemetry-instrumentation-user-interaction/package.json @@ -48,6 +48,7 @@ }, "devDependencies": { "@babel/core": "7.14.2", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/context-zone-peer-dep": "0.19.0", "@opentelemetry/instrumentation-xml-http-request": "0.19.0", "@opentelemetry/tracing": "0.19.0", @@ -80,12 +81,12 @@ "zone.js": "0.11.4" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/core": "^0.19.0", "@opentelemetry/instrumentation": "^0.19.0", "@opentelemetry/web": "^0.19.0" }, "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "zone.js": "0.11.4" }, "sideEffects": false diff --git a/plugins/web/opentelemetry-plugin-react-load/package.json b/plugins/web/opentelemetry-plugin-react-load/package.json index 305a1765b9..591ad7f8d7 100644 --- a/plugins/web/opentelemetry-plugin-react-load/package.json +++ b/plugins/web/opentelemetry-plugin-react-load/package.json @@ -48,6 +48,7 @@ }, "devDependencies": { "@babel/core": "7.14.2", + "@opentelemetry/api": "1.0.0-rc.0", "@opentelemetry/propagator-b3": "0.19.0", "@types/mocha": "7.0.2", "@types/node": "12.20.13", @@ -81,10 +82,10 @@ "webpack-merge": "5.7.3" }, "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "react": "^16.13.1 || ^17.0.0" }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/context-zone": "^0.19.0", "@opentelemetry/core": "^0.19.0", "@opentelemetry/semantic-conventions": "^0.19.0", diff --git a/propagators/opentelemetry-propagator-aws-xray/package.json b/propagators/opentelemetry-propagator-aws-xray/package.json index 69849b2d8c..c296c7439c 100644 --- a/propagators/opentelemetry-propagator-aws-xray/package.json +++ b/propagators/opentelemetry-propagator-aws-xray/package.json @@ -46,6 +46,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@types/mocha": "8.2.2", "@types/node": "14.14.45", "@types/webpack-env": "1.16.0", @@ -66,8 +67,10 @@ "typescript": "4.2.4", "webpack": "4.46.0" }, + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" + }, "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0", "@opentelemetry/core": "^0.19.0" } } diff --git a/propagators/opentelemetry-propagator-grpc-census-binary/package.json b/propagators/opentelemetry-propagator-grpc-census-binary/package.json index bf0b17ef42..2eda45cc40 100644 --- a/propagators/opentelemetry-propagator-grpc-census-binary/package.json +++ b/propagators/opentelemetry-propagator-grpc-census-binary/package.json @@ -42,6 +42,7 @@ "access": "public" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@types/mocha": "7.0.2", "@types/node": "14.14.45", "codecov": "3.8.2", @@ -54,7 +55,7 @@ "ts-mocha": "8.0.0", "typescript": "4.2.4" }, - "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0" + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" } } diff --git a/propagators/opentelemetry-propagator-ot-trace/package.json b/propagators/opentelemetry-propagator-ot-trace/package.json index accc0858cd..3a24f697f5 100644 --- a/propagators/opentelemetry-propagator-ot-trace/package.json +++ b/propagators/opentelemetry-propagator-ot-trace/package.json @@ -46,10 +46,11 @@ "publishConfig": { "access": "public" }, - "dependencies": { - "@opentelemetry/api": "^1.0.0-rc.0" + "peerDependencies": { + "@opentelemetry/api": "1.0.0-rc.0" }, "devDependencies": { + "@opentelemetry/api": "1.0.0-rc.0", "@types/mocha": "8.2.2", "@types/node": "14.14.45", "@types/webpack-env": "1.16.0", diff --git a/scripts/peer-api-check.js b/scripts/peer-api-check.js new file mode 100644 index 0000000000..6e359e0473 --- /dev/null +++ b/scripts/peer-api-check.js @@ -0,0 +1,36 @@ +/* + * Copyright The OpenTelemetry Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const fs = require('fs'); +const os = require('os'); +const path = require('path'); + +const appRoot = process.cwd(); + +const packageJsonUrl = path.resolve(`${appRoot}/package.json`); +const pjson = require(packageJsonUrl); + +if (pjson.dependencies && pjson.dependencies["@opentelemetry/api"]) + throw new Error(`Package ${pjson.name} depends on API but it should be a peer dependency`); + +const peerVersion = pjson.peerDependencies && pjson.peerDependencies["@opentelemetry/api"] +const devVersion = pjson.devDependencies && pjson.devDependencies["@opentelemetry/api"] +if (peerVersion) { + if (peerVersion !== devVersion) { + throw new Error(`Package ${pjson.name} depends on peer API version ${peerVersion} but version ${devVersion} in development`); + } + console.log(`${pjson.name} OK`); +}