From 2a30f62ba86c8beb724d6e0b1166fd7d848780f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerhard=20St=C3=B6bich?= Date: Mon, 7 Jun 2021 10:04:55 +0200 Subject: [PATCH] chore: move api into peer dependency (#522) * chore: move api into peer dependency * fix peer-api-check script --- .github/workflows/peer-api.yaml | 22 ++++++++++++ .../package.json | 5 ++- .../auto-instrumentations-node/package.json | 5 ++- .../auto-instrumentations-web/package.json | 5 ++- .../opentelemetry-host-metrics/package.json | 5 ++- .../package.json | 5 ++- .../opentelemetry-test-utils/package.json | 9 +++-- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 5 ++- .../package.json | 3 +- .../package.json | 3 +- .../package.json | 5 ++- .../package.json | 7 ++-- .../package.json | 3 +- scripts/peer-api-check.js | 36 +++++++++++++++++++ 32 files changed, 174 insertions(+), 34 deletions(-) create mode 100644 .github/workflows/peer-api.yaml create mode 100644 scripts/peer-api-check.js 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 a41691fb18..b949a1c434 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": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@types/mocha": "8.2.2", "@types/node": "14.17.2", "@types/sinon": "9.0.11", @@ -56,7 +60,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "0.20.0", "@opentelemetry/resources": "^0.20.0" } } diff --git a/metapackages/auto-instrumentations-node/package.json b/metapackages/auto-instrumentations-node/package.json index f4f7cfc5fc..b15b2bd9b0 100644 --- a/metapackages/auto-instrumentations-node/package.json +++ b/metapackages/auto-instrumentations-node/package.json @@ -26,7 +26,11 @@ "bugs": { "url": "https://github.com/open-telemetry/opentelemetry-js-contrib/issues" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@types/mocha": "7.0.2", "@types/node": "14.17.2", "@types/sinon": "9.0.11", @@ -40,7 +44,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/instrumentation-dns": "^0.20.0", "@opentelemetry/instrumentation-express": "^0.20.0", diff --git a/metapackages/auto-instrumentations-web/package.json b/metapackages/auto-instrumentations-web/package.json index a0f5f2dbb2..28ee90bb10 100644 --- a/metapackages/auto-instrumentations-web/package.json +++ b/metapackages/auto-instrumentations-web/package.json @@ -27,8 +27,12 @@ "bugs": { "url": "https://github.com/open-telemetry/opentelemetry-js-contrib/issues" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { "@babel/core": "7.14.3", + "@opentelemetry/api": "0.20.0", "@types/mocha": "8.2.2", "@types/node": "14.17.2", "@types/sinon": "9.0.11", @@ -55,7 +59,6 @@ "webpack-merge": "5.7.3" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/instrumentation-document-load": "^0.20.0", "@opentelemetry/instrumentation-fetch": "^0.20.0", diff --git a/packages/opentelemetry-host-metrics/package.json b/packages/opentelemetry-host-metrics/package.json index 39a26de6aa..78e3343cf8 100644 --- a/packages/opentelemetry-host-metrics/package.json +++ b/packages/opentelemetry-host-metrics/package.json @@ -41,7 +41,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@types/mocha": "8.2.2", "@types/node": "14.17.2", "@types/sinon": "9.0.11", @@ -55,7 +59,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/api-metrics": "^0.20.0", "@opentelemetry/core": "^0.20.0", "@opentelemetry/metrics": "^0.20.0", diff --git a/packages/opentelemetry-id-generator-aws-xray/package.json b/packages/opentelemetry-id-generator-aws-xray/package.json index d02bd1b79b..78ec65d5fa 100644 --- a/packages/opentelemetry-id-generator-aws-xray/package.json +++ b/packages/opentelemetry-id-generator-aws-xray/package.json @@ -51,7 +51,11 @@ "LICENSE", "README.md" ], + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@types/mocha": "8.2.2", "@types/node": "14.17.2", "@types/sinon": "9.0.11", @@ -75,7 +79,6 @@ "webpack": "4.46.0" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/core": "^0.20.0" } } diff --git a/packages/opentelemetry-test-utils/package.json b/packages/opentelemetry-test-utils/package.json index 397a8045cf..c308421aa9 100644 --- a/packages/opentelemetry-test-utils/package.json +++ b/packages/opentelemetry-test-utils/package.json @@ -23,14 +23,17 @@ "url": "https://github.com/open-telemetry/opentelemetry-js/issues" }, "homepage": "https://github.com/open-telemetry/opentelemetry-js#readme", + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@types/node": "14.17.2", "gts": "3.1.0", "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "0.20.0", - "@opentelemetry/core": "0.20.0", - "@opentelemetry/tracing": "0.20.0" + "@opentelemetry/core": "^0.20.0", + "@opentelemetry/tracing": "^0.20.0" } } diff --git a/plugins/node/opentelemetry-instrumentation-aws-lambda/package.json b/plugins/node/opentelemetry-instrumentation-aws-lambda/package.json index 0abb900c74..304358ed14 100644 --- a/plugins/node/opentelemetry-instrumentation-aws-lambda/package.json +++ b/plugins/node/opentelemetry-instrumentation-aws-lambda/package.json @@ -40,7 +40,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/core": "0.20.0", "@opentelemetry/node": "0.20.0", "@types/mocha": "7.0.2", @@ -54,7 +58,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/propagator-aws-xray": "^0.20.0", "@opentelemetry/resources": "^0.20.0", diff --git a/plugins/node/opentelemetry-instrumentation-bunyan/package.json b/plugins/node/opentelemetry-instrumentation-bunyan/package.json index 025eb40e04..d595058e6d 100644 --- a/plugins/node/opentelemetry-instrumentation-bunyan/package.json +++ b/plugins/node/opentelemetry-instrumentation-bunyan/package.json @@ -41,7 +41,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -59,7 +63,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.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 588711cc3c..d328d2ece9 100644 --- a/plugins/node/opentelemetry-instrumentation-dns/package.json +++ b/plugins/node/opentelemetry-instrumentation-dns/package.json @@ -40,7 +40,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/core": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -59,7 +63,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", "semver": "^7.3.2" diff --git a/plugins/node/opentelemetry-instrumentation-express/package.json b/plugins/node/opentelemetry-instrumentation-express/package.json index 1b7cb4aa06..7083db4ae1 100644 --- a/plugins/node/opentelemetry-instrumentation-express/package.json +++ b/plugins/node/opentelemetry-instrumentation-express/package.json @@ -41,7 +41,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -57,7 +61,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/core": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", diff --git a/plugins/node/opentelemetry-instrumentation-generic-pool/package.json b/plugins/node/opentelemetry-instrumentation-generic-pool/package.json index d1bd753037..47b03983f5 100644 --- a/plugins/node/opentelemetry-instrumentation-generic-pool/package.json +++ b/plugins/node/opentelemetry-instrumentation-generic-pool/package.json @@ -40,7 +40,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -58,7 +62,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", "@types/generic-pool": "^3.1.9" diff --git a/plugins/node/opentelemetry-instrumentation-graphql/package.json b/plugins/node/opentelemetry-instrumentation-graphql/package.json index d2a94117c7..8cd35db62e 100644 --- a/plugins/node/opentelemetry-instrumentation-graphql/package.json +++ b/plugins/node/opentelemetry-instrumentation-graphql/package.json @@ -42,7 +42,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/tracing": "0.20.0", "@types/mocha": "8.2.2", "@types/node": "14.17.2", @@ -56,7 +60,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.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 17a4e48d70..7b305a8a50 100644 --- a/plugins/node/opentelemetry-instrumentation-hapi/package.json +++ b/plugins/node/opentelemetry-instrumentation-hapi/package.json @@ -40,8 +40,12 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { "@hapi/hapi": "20.1.3", + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -57,7 +61,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.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 291eb7b1a7..013ffe482b 100644 --- a/plugins/node/opentelemetry-instrumentation-ioredis/package.json +++ b/plugins/node/opentelemetry-instrumentation-ioredis/package.json @@ -43,7 +43,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/test-utils": "^0.20.0", @@ -61,7 +65,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", "@types/ioredis": "4.26.4" diff --git a/plugins/node/opentelemetry-instrumentation-koa/package.json b/plugins/node/opentelemetry-instrumentation-koa/package.json index a49a83c96f..ea8acf9b8e 100644 --- a/plugins/node/opentelemetry-instrumentation-koa/package.json +++ b/plugins/node/opentelemetry-instrumentation-koa/package.json @@ -42,8 +42,12 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { "@koa/router": "9.4.0", + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -59,7 +63,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/core": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", diff --git a/plugins/node/opentelemetry-instrumentation-mongodb/package.json b/plugins/node/opentelemetry-instrumentation-mongodb/package.json index d21ec44a99..ee0e06bdc3 100644 --- a/plugins/node/opentelemetry-instrumentation-mongodb/package.json +++ b/plugins/node/opentelemetry-instrumentation-mongodb/package.json @@ -42,7 +42,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -58,7 +62,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", "@types/mongodb": "3.6.17" diff --git a/plugins/node/opentelemetry-instrumentation-mysql/package.json b/plugins/node/opentelemetry-instrumentation-mysql/package.json index 36fdc7f50f..aa8fb50b01 100644 --- a/plugins/node/opentelemetry-instrumentation-mysql/package.json +++ b/plugins/node/opentelemetry-instrumentation-mysql/package.json @@ -40,7 +40,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/test-utils": "^0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -56,7 +60,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.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 4727f72579..b814a4d445 100644 --- a/plugins/node/opentelemetry-instrumentation-net/package.json +++ b/plugins/node/opentelemetry-instrumentation-net/package.json @@ -41,7 +41,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", "@types/mocha": "7.0.2", @@ -57,7 +61,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0" } diff --git a/plugins/node/opentelemetry-instrumentation-pg/package.json b/plugins/node/opentelemetry-instrumentation-pg/package.json index fad0d1abef..ac411251f7 100644 --- a/plugins/node/opentelemetry-instrumentation-pg/package.json +++ b/plugins/node/opentelemetry-instrumentation-pg/package.json @@ -46,7 +46,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/test-utils": "^0.20.0", @@ -65,7 +69,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", "@types/pg": "8.6.0", diff --git a/plugins/node/opentelemetry-instrumentation-pino/package.json b/plugins/node/opentelemetry-instrumentation-pino/package.json index a7d9508ef3..01a3e675bf 100644 --- a/plugins/node/opentelemetry-instrumentation-pino/package.json +++ b/plugins/node/opentelemetry-instrumentation-pino/package.json @@ -41,7 +41,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -61,7 +65,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@types/pino": "6.3.8", "semver": "^7.3.5" diff --git a/plugins/node/opentelemetry-instrumentation-redis/package.json b/plugins/node/opentelemetry-instrumentation-redis/package.json index a7f93f4235..b3b40e8ca9 100644 --- a/plugins/node/opentelemetry-instrumentation-redis/package.json +++ b/plugins/node/opentelemetry-instrumentation-redis/package.json @@ -42,7 +42,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/test-utils": "^0.20.0", @@ -60,7 +64,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", "@types/redis": "2.8.29" diff --git a/plugins/node/opentelemetry-instrumentation-restify/package.json b/plugins/node/opentelemetry-instrumentation-restify/package.json index 647d391e28..7d035f363d 100644 --- a/plugins/node/opentelemetry-instrumentation-restify/package.json +++ b/plugins/node/opentelemetry-instrumentation-restify/package.json @@ -40,7 +40,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -56,7 +60,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/core": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", diff --git a/plugins/node/opentelemetry-instrumentation-router/package.json b/plugins/node/opentelemetry-instrumentation-router/package.json index 00e38fec96..60c4e57ef2 100644 --- a/plugins/node/opentelemetry-instrumentation-router/package.json +++ b/plugins/node/opentelemetry-instrumentation-router/package.json @@ -40,7 +40,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -58,7 +62,6 @@ "typescript": "4.3.2" }, "dependencies": { - "@opentelemetry/api": "0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0" } diff --git a/plugins/node/opentelemetry-instrumentation-winston/package.json b/plugins/node/opentelemetry-instrumentation-winston/package.json index 4d507dff13..00b5e88ef8 100644 --- a/plugins/node/opentelemetry-instrumentation-winston/package.json +++ b/plugins/node/opentelemetry-instrumentation-winston/package.json @@ -41,7 +41,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-async-hooks": "0.20.0", "@opentelemetry/node": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -60,7 +64,6 @@ "winston2": "npm:winston@2.4.5" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0" } } diff --git a/plugins/web/opentelemetry-instrumentation-document-load/package.json b/plugins/web/opentelemetry-instrumentation-document-load/package.json index d6d03fbda4..d9bc1ccb42 100644 --- a/plugins/web/opentelemetry-instrumentation-document-load/package.json +++ b/plugins/web/opentelemetry-instrumentation-document-load/package.json @@ -46,8 +46,12 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { "@babel/core": "7.14.3", + "@opentelemetry/api": "0.20.0", "@types/mocha": "8.2.2", "@types/node": "14.17.2", "@types/sinon": "10.0.2", @@ -74,7 +78,6 @@ "webpack-merge": "5.7.3" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/core": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", diff --git a/plugins/web/opentelemetry-instrumentation-user-interaction/package.json b/plugins/web/opentelemetry-instrumentation-user-interaction/package.json index b859372c77..242f678e88 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.3", + "@opentelemetry/api": "0.20.0", "@opentelemetry/context-zone-peer-dep": "0.20.0", "@opentelemetry/instrumentation-xml-http-request": "0.20.0", "@opentelemetry/tracing": "0.20.0", @@ -80,12 +81,12 @@ "zone.js": "0.11.4" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/core": "^0.20.0", "@opentelemetry/instrumentation": "^0.20.0", "@opentelemetry/web": "^0.20.0" }, "peerDependencies": { + "@opentelemetry/api": "^0.20.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 83682cb510..82267f90c0 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.3", + "@opentelemetry/api": "0.20.0", "@opentelemetry/propagator-b3": "0.20.0", "@types/mocha": "7.0.2", "@types/node": "12.20.14", @@ -81,10 +82,10 @@ "webpack-merge": "5.7.3" }, "peerDependencies": { + "@opentelemetry/api": "^0.20.0", "react": "^16.13.1 || ^17.0.0" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/context-zone": "^0.20.0", "@opentelemetry/core": "^0.20.0", "@opentelemetry/semantic-conventions": "^0.20.0", diff --git a/propagators/opentelemetry-propagator-aws-xray/package.json b/propagators/opentelemetry-propagator-aws-xray/package.json index 35729c424f..a4add3e33c 100644 --- a/propagators/opentelemetry-propagator-aws-xray/package.json +++ b/propagators/opentelemetry-propagator-aws-xray/package.json @@ -45,7 +45,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@types/mocha": "8.2.2", "@types/node": "14.17.2", "@types/webpack-env": "1.16.0", @@ -67,7 +71,6 @@ "webpack": "4.46.0" }, "dependencies": { - "@opentelemetry/api": "^0.20.0", "@opentelemetry/core": "^0.20.0" } } diff --git a/propagators/opentelemetry-propagator-grpc-census-binary/package.json b/propagators/opentelemetry-propagator-grpc-census-binary/package.json index 25cc946043..823d9105c3 100644 --- a/propagators/opentelemetry-propagator-grpc-census-binary/package.json +++ b/propagators/opentelemetry-propagator-grpc-census-binary/package.json @@ -41,7 +41,11 @@ "publishConfig": { "access": "public" }, + "peerDependencies": { + "@opentelemetry/api": "^0.20.0" + }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@types/mocha": "7.0.2", "@types/node": "14.17.2", "codecov": "3.8.2", @@ -53,8 +57,5 @@ "ts-loader": "8.3.0", "ts-mocha": "8.0.0", "typescript": "4.3.2" - }, - "dependencies": { - "@opentelemetry/api": "^0.20.0" } } diff --git a/propagators/opentelemetry-propagator-ot-trace/package.json b/propagators/opentelemetry-propagator-ot-trace/package.json index 558139313d..e6343614a2 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": { + "peerDependencies": { "@opentelemetry/api": "^0.20.0" }, "devDependencies": { + "@opentelemetry/api": "0.20.0", "@types/mocha": "8.2.2", "@types/node": "14.17.2", "@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..63196c362a --- /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`); +}