Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Declare singleton-ish packages as peer dependencies #26954

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions packages/a11y/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,10 @@
"types": "build-types",
"dependencies": {
"@babel/runtime": "^7.11.2",
"@wordpress/dom-ready": "file:../dom-ready",
"@wordpress/i18n": "file:../i18n"
"@wordpress/dom-ready": "file:../dom-ready"
},
"peerDependencies": {
"@wordpress/i18n": "^3.16.0"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to make sure I understand properly, when we work locally on the repo, these will use the local versions right and not install things from npm registry?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because @wordpress/i18n is already declared in the root package.json as a file:package/i18n link, there will be a symlink to packages/i18n in node_modules/@wordpress/i18n. The package from NPM registry will never be installed there, because that would directly contradict what the root package.json says.

NPM 6 (and also Yarn) will never try to install any peer dependency. It only checks if someone else installed it into node_modules already, and will check that the semver matches. And because the package is required by the root package.json, and the version field in the symlinked package's package.json matches, it will be happy.

NPM 7 will also find the dependency satisfied by the symlink in root node_modules.

Only if we removed the i18n dependency from the root package.json (or forgot to add a new package there), that's the only case where unwanted things can happen. NPM 6 will issue a warning that peer dependency was not found. And NPM 7 will install it into root node_modules from the NPM registry.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the intention to allow only the same major version of peer dependencies?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, in this case, the a11y package uses the 3.16 version of the i18n API. 3.15 probably lacks some feature that we make use of, so it's not compatible. Version 2 could have completely different API that is not compatible, and 4 might also break everything.

},
"publishConfig": {
"access": "public"
Expand Down
10 changes: 6 additions & 4 deletions packages/annotations/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,16 @@
"react-native": "src/index",
"dependencies": {
"@babel/runtime": "^7.11.2",
"@wordpress/data": "file:../data",
"@wordpress/hooks": "file:../hooks",
"@wordpress/i18n": "file:../i18n",
"@wordpress/rich-text": "file:../rich-text",
"lodash": "^4.17.19",
"rememo": "^3.0.0",
"uuid": "^8.3.0"
},
"peerDependencies": {
"@wordpress/data": "^4.25.0",
"@wordpress/hooks": "^2.10.0",
"@wordpress/i18n": "^3.16.0",
"@wordpress/rich-text": "^3.23.0"
},
"publishConfig": {
"access": "public"
}
Expand Down
4 changes: 3 additions & 1 deletion packages/api-fetch/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,11 @@
"react-native": "src/index",
"dependencies": {
"@babel/runtime": "^7.11.2",
"@wordpress/i18n": "file:../i18n",
"@wordpress/url": "file:../url"
},
"peerDependencies": {
"@wordpress/i18n": "^3.16.0"
},
"publishConfig": {
"access": "public"
}
Expand Down
1 change: 0 additions & 1 deletion packages/babel-plugin-makepot/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
"main": "build/index.js",
"module": "build-module/index.js",
"dependencies": {
"@babel/runtime": "^7.11.2",
"gettext-parser": "^1.3.1",
"lodash": "^4.17.19"
},
Expand Down
1 change: 0 additions & 1 deletion packages/babel-preset-default/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
"@babel/plugin-transform-react-jsx": "^7.10.4",
"@babel/plugin-transform-runtime": "^7.11.5",
"@babel/preset-env": "^7.11.5",
"@babel/runtime": "^7.11.2",
"@wordpress/babel-plugin-import-jsx-pragma": "file:../babel-plugin-import-jsx-pragma",
"@wordpress/browserslist-config": "file:../browserslist-config",
"@wordpress/element": "file:../element",
Expand Down
19 changes: 11 additions & 8 deletions packages/block-directory/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,23 +25,26 @@
"@babel/runtime": "^7.11.2",
"@wordpress/a11y": "file:../a11y",
"@wordpress/api-fetch": "file:../api-fetch",
"@wordpress/block-editor": "file:../block-editor",
"@wordpress/blocks": "file:../blocks",
"@wordpress/components": "file:../components",
"@wordpress/compose": "file:../compose",
"@wordpress/data": "file:../data",
"@wordpress/data-controls": "file:../data-controls",
"@wordpress/edit-post": "file:../edit-post",
"@wordpress/element": "file:../element",
"@wordpress/hooks": "file:../hooks",
"@wordpress/html-entities": "file:../html-entities",
"@wordpress/i18n": "file:../i18n",
"@wordpress/icons": "file:../icons",
"@wordpress/notices": "file:../notices",
"@wordpress/plugins": "file:../plugins",
"@wordpress/url": "file:../url",
"lodash": "^4.17.19"
},
"peerDependencies": {
"@wordpress/block-editor": "^5.1.2",
"@wordpress/blocks": "^6.24.1",
"@wordpress/data": "^4.25.0",
"@wordpress/edit-post": "^3.25.2",
"@wordpress/editor": "^9.24.2",
"@wordpress/hooks": "^2.10.0",
"@wordpress/i18n": "^3.16.0",
"@wordpress/notices": "^2.11.0",
"@wordpress/plugins": "^2.23.0"
},
"publishConfig": {
"access": "public"
}
Expand Down
18 changes: 10 additions & 8 deletions packages/block-editor/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,26 +31,18 @@
"@babel/runtime": "^7.11.2",
"@wordpress/a11y": "file:../a11y",
"@wordpress/blob": "file:../blob",
"@wordpress/blocks": "file:../blocks",
"@wordpress/components": "file:../components",
"@wordpress/compose": "file:../compose",
"@wordpress/data": "file:../data",
"@wordpress/deprecated": "file:../deprecated",
"@wordpress/dom": "file:../dom",
"@wordpress/element": "file:../element",
"@wordpress/hooks": "file:../hooks",
"@wordpress/html-entities": "file:../html-entities",
"@wordpress/i18n": "file:../i18n",
"@wordpress/icons": "file:../icons",
"@wordpress/is-shallow-equal": "file:../is-shallow-equal",
"@wordpress/keyboard-shortcuts": "file:../keyboard-shortcuts",
"@wordpress/keycodes": "file:../keycodes",
"@wordpress/notices": "file:../notices",
"@wordpress/rich-text": "file:../rich-text",
"@wordpress/shortcode": "file:../shortcode",
"@wordpress/token-list": "file:../token-list",
"@wordpress/url": "file:../url",
"@wordpress/viewport": "file:../viewport",
"@wordpress/warning": "file:../warning",
"@wordpress/wordcount": "file:../wordcount",
"classnames": "^2.2.5",
Expand All @@ -70,6 +62,16 @@
"tinycolor2": "^1.4.1",
"traverse": "^0.6.6"
},
"peerDependencies": {
"@wordpress/blocks": "^6.24.1",
"@wordpress/data": "^4.25.0",
"@wordpress/hooks": "^2.10.0",
"@wordpress/i18n": "^3.16.0",
"@wordpress/keyboard-shortcuts": "^1.12.0",
"@wordpress/notices": "^2.11.0",
"@wordpress/rich-text": "^3.23.0",
"@wordpress/viewport": "^2.24.0"
},
"publishConfig": {
"access": "public"
}
Expand Down
24 changes: 13 additions & 11 deletions packages/block-library/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,30 +31,19 @@
"@wordpress/api-fetch": "file:../api-fetch",
"@wordpress/autop": "file:../autop",
"@wordpress/blob": "file:../blob",
"@wordpress/block-editor": "file:../block-editor",
"@wordpress/blocks": "file:../blocks",
"@wordpress/components": "file:../components",
"@wordpress/compose": "file:../compose",
"@wordpress/core-data": "file:../core-data",
"@wordpress/data": "file:../data",
"@wordpress/date": "file:../date",
"@wordpress/deprecated": "file:../deprecated",
"@wordpress/dom": "file:../dom",
"@wordpress/editor": "file:../editor",
"@wordpress/element": "file:../element",
"@wordpress/escape-html": "file:../escape-html",
"@wordpress/hooks": "file:../hooks",
"@wordpress/i18n": "file:../i18n",
"@wordpress/icons": "file:../icons",
"@wordpress/is-shallow-equal": "file:../is-shallow-equal",
"@wordpress/keycodes": "file:../keycodes",
"@wordpress/notices": "file:../notices",
"@wordpress/primitives": "file:../primitives",
"@wordpress/reusable-blocks": "file:../reusable-blocks",
"@wordpress/rich-text": "file:../rich-text",
"@wordpress/server-side-render": "file:../server-side-render",
"@wordpress/url": "file:../url",
"@wordpress/viewport": "file:../viewport",
"classnames": "^2.2.5",
"fast-average-color": "4.3.0",
"lodash": "^4.17.19",
Expand All @@ -64,6 +53,19 @@
"reakit": "1.1.0",
"tinycolor2": "^1.4.1"
},
"peerDependencies": {
"@wordpress/block-editor": "^5.1.2",
"@wordpress/blocks": "^6.24.1",
"@wordpress/core-data": "^2.24.1",
"@wordpress/data": "^4.25.0",
"@wordpress/editor": "^9.24.2",
"@wordpress/hooks": "^2.10.0",
"@wordpress/i18n": "^3.16.0",
"@wordpress/notices": "^2.11.0",
"@wordpress/reusable-blocks": "^1.0.2",
"@wordpress/rich-text": "^3.23.0",
"@wordpress/viewport": "^2.24.0"
},
"publishConfig": {
"access": "public"
}
Expand Down
8 changes: 5 additions & 3 deletions packages/blocks/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,10 @@
"@wordpress/blob": "file:../blob",
"@wordpress/block-serialization-default-parser": "file:../block-serialization-default-parser",
"@wordpress/compose": "file:../compose",
"@wordpress/data": "file:../data",
"@wordpress/deprecated": "file:../deprecated",
"@wordpress/dom": "file:../dom",
"@wordpress/element": "file:../element",
"@wordpress/hooks": "file:../hooks",
"@wordpress/html-entities": "file:../html-entities",
"@wordpress/i18n": "file:../i18n",
"@wordpress/icons": "file:../icons",
"@wordpress/is-shallow-equal": "file:../is-shallow-equal",
"@wordpress/shortcode": "file:../shortcode",
Expand All @@ -48,6 +45,11 @@
"tinycolor2": "^1.4.1",
"uuid": "^8.3.0"
},
"peerDependencies": {
"@wordpress/data": "^4.25.0",
"@wordpress/hooks": "^2.10.0",
"@wordpress/i18n": "^3.16.0"
},
"publishConfig": {
"access": "public"
}
Expand Down
9 changes: 6 additions & 3 deletions packages/components/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,10 @@
"@wordpress/deprecated": "file:../deprecated",
"@wordpress/dom": "file:../dom",
"@wordpress/element": "file:../element",
"@wordpress/hooks": "file:../hooks",
"@wordpress/i18n": "file:../i18n",
"@wordpress/icons": "file:../icons",
"@wordpress/is-shallow-equal": "file:../is-shallow-equal",
"@wordpress/keycodes": "file:../keycodes",
"@wordpress/primitives": "file:../primitives",
"@wordpress/rich-text": "file:../rich-text",
"@wordpress/warning": "file:../warning",
"classnames": "^2.2.5",
"dom-scroll-into-view": "^1.2.1",
Expand All @@ -63,6 +60,12 @@
"tinycolor2": "^1.4.1",
"uuid": "^8.3.0"
},
"peerDependencies": {
"@wordpress/blocks": "^6.24.1",
"@wordpress/hooks": "^2.10.0",
"@wordpress/i18n": "^3.16.0",
"@wordpress/rich-text": "^3.23.0"
},
"publishConfig": {
"access": "public"
}
Expand Down
8 changes: 5 additions & 3 deletions packages/core-data/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,21 @@
"dependencies": {
"@babel/runtime": "^7.11.2",
"@wordpress/api-fetch": "file:../api-fetch",
"@wordpress/blocks": "file:../blocks",
"@wordpress/data": "file:../data",
"@wordpress/data-controls": "file:../data-controls",
"@wordpress/deprecated": "file:../deprecated",
"@wordpress/element": "file:../element",
"@wordpress/i18n": "file:../i18n",
"@wordpress/is-shallow-equal": "file:../is-shallow-equal",
"@wordpress/url": "file:../url",
"equivalent-key-map": "^0.2.2",
"lodash": "^4.17.19",
"rememo": "^3.0.0",
"uuid": "^8.3.0"
},
"peerDependencies": {
"@wordpress/blocks": "^6.24.1",
"@wordpress/data": "^4.25.0",
"@wordpress/i18n": "^3.16.0"
},
"publishConfig": {
"access": "public"
}
Expand Down
4 changes: 3 additions & 1 deletion packages/data-controls/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,11 @@
"dependencies": {
"@babel/runtime": "^7.11.2",
"@wordpress/api-fetch": "file:../api-fetch",
"@wordpress/data": "file:../data",
"@wordpress/deprecated": "file:../deprecated"
},
"peerDependencies": {
"@wordpress/data": "^4.25.0"
},
"publishConfig": {
"access": "public"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,11 @@
"types": "build-types",
"dependencies": {
"json2php": "^0.0.4",
"webpack": "^4.8.3",
"webpack-sources": "^1.3.0"
},
"peerDependencies": {
"webpack": "^4.8.3"
},
"publishConfig": {
"access": "public"
}
Expand Down
6 changes: 4 additions & 2 deletions packages/deprecated/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,10 @@
"react-native": "src/index",
"sideEffects": false,
"dependencies": {
"@babel/runtime": "^7.11.2",
"@wordpress/hooks": "file:../hooks"
"@babel/runtime": "^7.11.2"
},
"peerDependencies": {
"@wordpress/hooks": "^2.10.0"
},
"publishConfig": {
"access": "public"
Expand Down
18 changes: 10 additions & 8 deletions packages/edit-navigation/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,29 +26,31 @@
"dependencies": {
"@babel/runtime": "^7.11.2",
"@wordpress/api-fetch": "file:../api-fetch",
"@wordpress/block-editor": "file:../block-editor",
"@wordpress/block-library": "file:../block-library",
"@wordpress/blocks": "file:../blocks",
"@wordpress/components": "file:../components",
"@wordpress/compose": "file:../compose",
"@wordpress/core-data": "file:../core-data",
"@wordpress/data": "file:../data",
"@wordpress/data-controls": "file:../data-controls",
"@wordpress/dom-ready": "file:../dom-ready",
"@wordpress/element": "file:../element",
"@wordpress/hooks": "file:../hooks",
"@wordpress/html-entities": "file:../html-entities",
"@wordpress/i18n": "file:../i18n",
"@wordpress/icons": "file:../icons",
"@wordpress/keyboard-shortcuts": "file:../keyboard-shortcuts",
"@wordpress/media-utils": "file:../media-utils",
"@wordpress/notices": "file:../notices",
"@wordpress/url": "file:../url",
"classnames": "^2.2.5",
"lodash": "^4.17.19",
"rememo": "^3.0.0",
"uuid": "^8.3.0"
},
"peerDependencies": {
"@wordpress/block-editor": "^5.1.2",
"@wordpress/blocks": "^6.24.1",
"@wordpress/core-data": "^2.24.1",
"@wordpress/data": "^4.25.0",
"@wordpress/hooks": "^2.10.0",
"@wordpress/i18n": "^3.16.0",
"@wordpress/keyboard-shortcuts": "^1.12.0",
"@wordpress/notices": "^2.11.0"
},
"publishConfig": {
"access": "public"
}
Expand Down
Loading