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

fix(deps): update wordpress monorepo #46223

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Oct 6, 2020

This PR contains the following updates:

Package Type Update Change
@wordpress/a11y dependencies minor ^2.11.0 -> ^2.13.0
@wordpress/api-fetch dependencies minor ^3.18.0 -> ^3.20.0
@wordpress/babel-plugin-makepot dependencies minor ^3.7.0 -> ^3.9.0
@wordpress/base-styles devDependencies major ^2.0.1 -> ^3.1.0
@wordpress/base-styles dependencies major ^2.0.1 -> ^3.1.0
@wordpress/block-directory dependencies minor ^1.13.6 -> ^1.16.0
@wordpress/block-editor dependencies major ^4.3.6 -> ^5.0.0
@wordpress/block-library dependencies minor ^2.22.6 -> ^2.25.0
@wordpress/blocks dependencies minor ^6.20.3 -> ^6.23.0
@wordpress/components dependencies major ^10.0.5 -> ^11.0.0
@wordpress/compose dependencies minor ^3.19.3 -> ^3.21.0
@wordpress/core-data dependencies minor ^2.20.3 -> ^2.23.0
@wordpress/core-data dependencies minor ^2.16.0 -> ^2.23.0
@wordpress/data peerDependencies minor ^4.22.3 -> ^4.24.0
@wordpress/data dependencies minor ^4.22.3 -> ^4.24.0
@wordpress/data-controls dependencies minor ^1.16.3 -> ^1.18.0
@wordpress/dom dependencies minor ^2.13.1 -> ^2.15.0
@wordpress/dom-ready dependencies minor ^2.10.0 -> ^2.11.0
@wordpress/e2e-test-utils dependencies minor ^4.11.2 -> ^4.14.0
@wordpress/edit-post dependencies minor ^3.21.6 -> ^3.24.0
@wordpress/editor dependencies minor ^9.20.6 -> ^9.23.0
@wordpress/element peerDependencies minor ^2.16.0 -> ^2.18.0
@wordpress/element dependencies minor ^2.16.0 -> ^2.18.0
@wordpress/env dependencies major 1.6.0 -> 2.1.0
@wordpress/escape-html dependencies minor ^1.9.0 -> ^1.10.0
@wordpress/eslint-plugin devDependencies minor ^7.1.0 -> ^7.3.0
@wordpress/format-library dependencies minor ^1.22.6 -> ^1.24.0
@wordpress/hooks dependencies minor ^2.9.0 -> ^2.10.0
@wordpress/i18n dependencies minor ^3.14.0 -> ^3.16.0
@wordpress/i18n peerDependencies minor ^3.14.0 -> ^3.16.0
@wordpress/icons dependencies minor ^2.4.0 -> ^2.7.0
@wordpress/interface dependencies minor ^0.7.5 -> ^0.9.0
@wordpress/is-shallow-equal dependencies minor ^2.1.0 -> ^2.3.0
@wordpress/jest-preset-default dependencies minor ^6.2.0 -> ^6.4.0
@wordpress/keyboard-shortcuts dependencies minor ^1.9.3 -> ^1.11.0
@wordpress/keycodes dependencies minor ^2.14.0 -> ^2.16.0
@wordpress/media-utils dependencies minor ^1.15.0 -> ^1.17.0
@wordpress/notices dependencies minor ^2.8.3 -> ^2.10.0
@wordpress/nux dependencies minor ^3.20.5 -> ^3.22.0
@wordpress/plugins dependencies minor ^2.20.3 -> ^2.22.0
@wordpress/primitives dependencies minor ^1.7.0 -> ^1.9.0
@wordpress/priority-queue dependencies minor ^1.7.0 -> ^1.9.0
@wordpress/redux-routine dependencies minor ^3.10.0 -> ^3.12.0
@wordpress/rich-text dependencies minor ^3.20.4 -> ^3.22.0
@wordpress/scripts dependencies minor ^12.1.1 -> ^12.3.0
@wordpress/server-side-render dependencies minor ^1.16.5 -> ^1.18.0
@wordpress/shortcode dependencies minor ^2.9.0 -> ^2.11.0
@wordpress/url dependencies minor ^2.17.0 -> ^2.19.0
@wordpress/viewport dependencies minor ^2.21.3 -> ^2.23.0

Release Notes

WordPress/gutenberg

v2.13.0

Compare Source

v2.12.0

Compare Source


Renovate configuration

📅 Schedule: At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻️ Rebasing: Renovate will not automatically rebase this PR, because other commits have been found.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by WhiteSource Renovate. View repository job log here.

@matticbot
Copy link
Contributor

@sarayourfriend sarayourfriend self-assigned this Oct 6, 2020
@sarayourfriend sarayourfriend added [Status] Needs e2e Testing [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. labels Oct 6, 2020
@renovate renovate bot force-pushed the renovate/wordpress-monorepo branch from 3edbb08 to 18ab7e6 Compare October 7, 2020 13:49
@tyxla tyxla force-pushed the renovate/wordpress-monorepo branch from 081e21d to 8697953 Compare October 9, 2020 10:47
@matticbot
Copy link
Contributor

Caution: This PR affects files in the Editing Toolkit Plugin on WordPress.com
Please ensure your changes work on WordPress.com before merging.

D50919-code has been created so you can easily test it on your sandbox. See this FieldGuide page about developing the Editing Toolkit Plugin for more info: PCYsg-ly5-p2

@matticbot
Copy link
Contributor

matticbot commented Oct 9, 2020

Here is how your PR affects size of JS and CSS bundles shipped to the user's browser:

Webpack Runtime (~518 bytes removed 📉 [gzipped])

name      parsed_size           gzip_size
manifest      -2384 B  (-3.3%)     -518 B  (-3.4%)

Webpack runtime for loading modules. It is included in the HTML page as an inline script. Is downloaded and parsed every time the app is loaded.

App Entrypoints (~417067 bytes added 📈 [gzipped])

name                   parsed_size            gzip_size
entry-gutenboarding     +1141565 B  (+66.7%)  +392568 B  (+86.6%)
entry-main                +77025 B   (+5.8%)   +24457 B   (+7.4%)
entry-login               +71355 B   (+8.0%)   +24556 B  (+10.1%)
entry-domains-landing     +69407 B  (+12.1%)   +24133 B  (+15.5%)

Common code that is always downloaded and parsed every time the app is loaded, no matter which route is used.

Sections (~391383 bytes added 📈 [gzipped])

name                   parsed_size             gzip_size
gutenberg-editor         +425747 B  (+103.7%)  +147845 B  (+123.4%)
jetpack-cloud-pricing    +330641 B   (+82.3%)  +115943 B  (+110.2%)
plans                    +306276 B   (+38.9%)  +105223 B   (+51.3%)
site-purchases           +300630 B   (+24.3%)  +103036 B   (+34.0%)
purchases                +300608 B   (+20.5%)  +102154 B   (+28.5%)
hosting                  +288801 B   (+98.0%)  +100626 B  (+123.7%)
jetpack-connect          +288613 B   (+41.6%)   +98029 B   (+53.7%)
reader                   +287096 B   (+50.2%)   +97556 B   (+65.1%)
plugins                  +182041 B   (+39.5%)   +65958 B   (+54.8%)
wp-super-cache           +181937 B   (+70.0%)   +65157 B   (+92.5%)
privacy                  +181907 B   (+62.2%)   +64826 B   (+82.4%)
earn                     +181877 B   (+55.9%)   +65126 B   (+74.6%)
settings-security        +181601 B   (+54.1%)   +63241 B   (+68.6%)
settings-discussion      +181601 B   (+68.8%)   +63257 B   (+87.6%)
settings-performance     +181588 B   (+45.7%)   +63235 B   (+59.7%)
posts-custom             +181517 B   (+45.3%)   +60942 B   (+54.2%)
posts                    +181517 B   (+45.2%)   +60902 B   (+54.0%)
marketing                +181383 B   (+33.5%)   +60969 B   (+43.5%)
settings-writing         +181217 B   (+32.3%)   +61150 B   (+42.3%)
settings                 +181196 B   (+34.1%)   +61010 B   (+42.8%)
woocommerce              +181056 B    (+8.2%)   +62465 B   (+10.6%)
domains                  +180917 B   (+14.5%)   +63319 B   (+21.7%)
checkout                 +141679 B   (+10.1%)   +48334 B   (+13.9%)
signup                   +141082 B   (+40.3%)   +48681 B   (+54.8%)
devdocs                     +667 B    (+0.3%)      -17 B    (-0.0%)
theme                       -436 B    (-0.1%)    -1174 B    (-1.3%)
themes                      -415 B    (-0.1%)    -1191 B    (-1.1%)
home                        -402 B    (-0.1%)       +8 B    (+0.0%)
help                        -384 B    (-0.1%)      -63 B    (-0.0%)
preview                     -346 B    (-0.2%)      -22 B    (-0.0%)
pages                       -220 B    (-0.1%)    -1768 B    (-2.2%)
activity                    -186 B    (-0.0%)     -436 B    (-0.3%)
settings-jetpack            -178 B    (-0.1%)     -944 B    (-1.3%)
backup                      -149 B    (-0.0%)     -419 B    (-0.3%)
google-my-business           -89 B    (-0.0%)     -921 B    (-1.0%)
people                       -58 B    (-0.0%)     +101 B    (+0.1%)
email                        -40 B    (-0.0%)      -12 B    (-0.0%)
export                       -39 B    (-0.0%)      -10 B    (-0.0%)
customize                    -39 B    (-0.0%)      -10 B    (-0.0%)
purchase-product             -38 B    (-0.0%)       -5 B    (-0.0%)
account-close                -38 B    (-0.0%)      +18 B    (+0.0%)
security                     -36 B    (-0.0%)      -19 B    (-0.0%)
media                        -34 B    (-0.0%)      +75 B    (+0.1%)
site-blocks                  -30 B    (-0.0%)      -64 B    (-0.1%)
notification-settings        -30 B    (-0.0%)      -77 B    (-0.1%)
me                           -30 B    (-0.0%)      -96 B    (-0.1%)
happychat                    -30 B    (-0.0%)      -83 B    (-0.1%)
account                      -30 B    (-0.0%)     -133 B    (-0.1%)
jetpack-cloud-auth           -22 B    (-0.6%)       -7 B    (-0.5%)
stats                        +18 B    (+0.0%)     +645 B    (+0.5%)
accept-invite                -16 B    (-0.0%)       -4 B    (-0.0%)
scan                         -15 B    (-0.0%)     +269 B    (+0.3%)

Sections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to.

Async-loaded Components (~162801 bytes added 📈 [gzipped])

name                                                      parsed_size             gzip_size
async-load-design-wordpress-components-gallery              +383433 B   (+58.2%)  +120900 B   (+76.8%)
async-load-design-blocks                                    +329231 B   (+12.2%)  +112756 B   (+17.5%)
async-load-calypso-components-web-preview-component         +285920 B   (+51.3%)   +97697 B   (+64.3%)
async-load-design                                           +181770 B    (+9.6%)   +61363 B   (+13.9%)
async-load-design-playground                                +181732 B   (+10.1%)   +62157 B   (+15.0%)
async-load-calypso-blocks-editor-launch-modal               +171115 B   (+75.9%)   +60373 B  (+103.6%)
async-load-calypso-blocks-editor-checkout-modal             +141279 B   (+12.7%)   +48580 B   (+17.7%)
async-load-calypso-reader-site-stream                        +43055 B  (+136.1%)   +15624 B  (+168.6%)
async-load-calypso-reader-search-stream                      +43055 B   (+47.9%)   +15630 B   (+64.1%)
async-load-calypso-reader-following-manage                   +43055 B   (+33.7%)   +15630 B   (+43.7%)
async-load-calypso-reader-feed-stream                        +43055 B  (+136.4%)   +15624 B  (+169.5%)
async-load-calypso-post-editor-editor-media-modal              +411 B    (+0.1%)     -798 B    (-0.7%)
async-load-signup-steps-plans                                  -362 B    (-0.2%)      -98 B    (-0.2%)
async-load-calypso-blocks-inline-help-popover                  -362 B    (-0.1%)     -117 B    (-0.1%)
async-load-calypso-blocks-inline-help                          -347 B    (-0.2%)       +7 B    (+0.0%)
async-load-calypso-my-sites-current-site-domain-warnings       -346 B    (-0.6%)      -37 B    (-0.2%)
async-load-signup-steps-domains                                -182 B    (-0.1%)     +190 B    (+0.3%)
async-load-calypso-post-editor-media-modal                     -170 B    (-0.1%)     -867 B    (-0.9%)
async-load-calypso-blocks-support-article-dialog-dialog         +77 B    (+0.1%)     -323 B    (-1.2%)
async-load-calypso-my-sites-sidebar-unified                     -47 B    (-0.1%)       +9 B    (+0.0%)
async-load-calypso-my-sites-sidebar                             -47 B    (-0.0%)      +47 B    (+0.1%)
async-load-calypso-blocks-support-article-dialog                +46 B    (+2.7%)      +11 B    (+1.6%)
async-load-calypso-components-jetpack-sidebar                   -39 B    (-0.1%)       +4 B    (+0.0%)
async-load-signup-steps-user                                    -32 B    (-0.0%)      +11 B    (+0.0%)
async-load-calypso-reader-list-manage                           -22 B    (-0.1%)       +7 B    (+0.1%)
async-load-calypso-reader-sidebar                               -16 B    (-0.0%)       +3 B    (+0.0%)
async-load-calypso-reader-list-stream                           -16 B    (-0.1%)       +0 B

React components that are loaded lazily, when a certain part of UI is displayed for the first time.

Legend

What is parsed and gzip size?

Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory.
Gzip Size: Compressed size of the JS and CSS files. This much data needs to be downloaded over network.

Generated by performance advisor bot at iscalypsofastyet.com.

scinos
scinos previously requested changes Oct 9, 2020
@@ -67,7 +67,8 @@ class ExtensiveLodashReplacementPlugin {
throw createError( 'Could not determine root `lodash-es` version.' );
}

if ( baseLodashVersion !== this.baseLodashESVersion ) {
// TODO: change these to the exact versions when lodash and lodash-es releases match again
Copy link
Contributor

Choose a reason for hiding this comment

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

This means we will be replacing lodash@4.17.20 with lodash-es@4.17.15? I don't think that is valid, it will re-introduce bugs that lodash already fixed, including a security issue they fixed in v4.17.19.

As an alternative approach we could drop this lodash -> lodash-es replacement, or change the plugin to replace in the other way (lodash-es -> lodash)

Copy link
Member

Choose a reason for hiding this comment

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

I'm not saying it's a great approach 😉 Just trying to get to a temporary solution until lodash-es is released again. Happy to see alternatives be explored in the meantime, but I don't see this as something that's blocking us. How affected are we really by those 2 minor releases that were released in the meantime?

Copy link
Member

Choose a reason for hiding this comment

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

I mean we don't even use zipObjectDeep

Copy link
Contributor

@scinos scinos Oct 9, 2020

Choose a reason for hiding this comment

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

What if tomorrow lodash releases 4.18.0, with a ton of new features and somebody does the update? Everything will break because we force a replacement with 4.17.15, and those errors may appear only in prod. What if somebody starts using zipObjectDeep (or any of the other fixed methods)?

I think than the fastest and easiest alternative is just drop the lodash-es replacement, and deal with the hypothetical performance regression later.

Copy link
Member

Choose a reason for hiding this comment

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

Well, the performance regression isn't that hypothetical, but I'll leave this call to @sgomes.

No strong feelings either way, but in general I believe this lodash problem should be solved separately and we shouldn't be blocking this PR.

Copy link
Contributor

Choose a reason for hiding this comment

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

There's a lengthy discussion on the pros/cons of the change in Slack. But to summarise the summary:

  • @tyxla's approach would preserve the current status quo while upgrading libraries
  • Switching to lodash instead of lodash-es would make the critical path on small endpoints like login larger (bad) while making the total size of the application smaller (good, but not that impactful).

Dropping the plugin altogether is yet another option.

@razvanpapadopol
Copy link

razvanpapadopol commented Oct 9, 2020

At the moment Gutenboarding (/new) is crashing with this error:

Screenshot 2020-10-09 at 20 56 13

So this is the cause of many e2e test failures.

@sarayourfriend
Copy link
Contributor

sarayourfriend commented Oct 9, 2020

@razvanpapadopol Thanks for finding that. It's a bug in core. This was fixed in WordPress/gutenberg#25976, once it is released we can remove the patch. I've applied a patch to this PR to prevent the crash in the mean time.

@ciampo
Copy link
Contributor

ciampo commented Oct 12, 2020

Smoke-tested the editor Launch flow (Complete setup), everything seems to be working fine

@sarayourfriend sarayourfriend changed the base branch from master to trunk November 20, 2020 16:11
@sarayourfriend sarayourfriend requested a review from a team as a code owner November 20, 2020 16:11
@renovate renovate bot force-pushed the renovate/wordpress-monorepo branch 2 times, most recently from 123852d to ea415ef Compare December 1, 2020 04:47
@ockham
Copy link
Contributor

ockham commented Dec 2, 2020

@Automattic/team-calypso 👋 Any updates on this one? Jetpack is also in sore need of a @wordpress monorepo upgrade since it's even more behind (and that's starting to block other work there), and I came across this PR (and y'all's manual commits that Renovate has since put into oblivion) while trying to look for cues how to fix some build errors with that PR 😬

Would be great if this landed so folks could use it as a cheatsheet for other repos 😊

@renovate renovate bot force-pushed the renovate/wordpress-monorepo branch from ea415ef to 8fe29a8 Compare December 3, 2020 08:57
@scinos scinos force-pushed the renovate/wordpress-monorepo branch from 8fe29a8 to 21e3960 Compare December 4, 2020 13:15
@scinos scinos self-assigned this Dec 4, 2020
@scinos
Copy link
Contributor

scinos commented Dec 4, 2020

I have rebased this branch with trunk to get types working.

@wordpress/base-styles dropped some SCSS colors that we were using, I have used this commit as a guide to replace them, but I don't really know if that's correct.

@jsnajdr
Copy link
Member

jsnajdr commented Dec 6, 2020

I added a commit that fixed data controls type names in tests: a change of internal implementation detail in WordPress/gutenberg#25362 that is nevertheless used in tests.

There are two more test failures, when testing data resolvers and the uninitialized -> pending -> resolved state progression while the resolver is running. These tests depend on a subtle implementation detail that's been changed in WordPress/gutenberg#21289.

Before that PR, resolver starts running synchronously when its selector is called, dispatching an action that updates state from uninitialized to pending immediately. That, however, can (and does) cause state updates during render, which is unwanted and React 16.3.1 introduced a new warning that detects and reports such behavior.

After that PR, the resolver is triggered asynchronously with setTimeout( 0 ), moving the state updates out of render to a less dangerous place.

@jsnajdr
Copy link
Member

jsnajdr commented Dec 6, 2020

The next commit fixes the failing selector resolution tests by adding the right number of listenForStateUpdate() calls before checking the state again. I have some opinions about this style of fragile and implementation-dependent unit testing, but it's a simple fix that works.

@jsnajdr
Copy link
Member

jsnajdr commented Dec 7, 2020

Looking at the remaining unit test failures, there are errors from React caused by react module duplication. I can't reproduce them on my local machine.

@scinos
Copy link
Contributor

scinos commented Dec 7, 2020

I deduplicated all packages for which this PR added a new version: got the list with git diff -U0 trunk... -- yarn.lock | grep -e '^\+\S', massaged it a bit and passed it to npx yarn-deduplicate --packages ...

After that deduplication, only 4 tests are failing.

@sirreal
Copy link
Member

sirreal commented Dec 30, 2020

Now it looks like there are some issues with composite-checkout types cc: @Automattic/shilling

@sirbrillig
Copy link
Member

Thanks for the heads-up! There was some old code from before the package was converted to TS which didn't have proper types and also had some outdated properties from a previous refactor; I've pushed a few commits to hopefully resolve those issues.

@sirbrillig
Copy link
Member

sirbrillig commented Dec 30, 2020

Now the checkout tests are returning this error:

Error: Uncaught [Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app

I assume this has to do with multiple versions of React being present in the app, since the code hasn't changed in this PR, but I'm not sure how to track that down.

@sarayourfriend
Copy link
Contributor

@jsnajdr whenever you're back online do you think you could take a look at the bundle differences? It looks like react and a load of other shared dependencies got pushed into the gutenboarding bundle but I'm not sure why.

@jsnajdr
Copy link
Member

jsnajdr commented Jan 4, 2021

It looks like react and a load of other shared dependencies got pushed into the gutenboarding bundle but I'm not sure why.

There's a lot of duplicated @wordpress/* packages after running yarn install on this branch. Here's a list:

@wordpress/escape-html
  1.8.0 in ./node_modules/@types/wordpress__block-editor/node_modules
  1.8.0 in ./node_modules/@types/wordpress__blocks/node_modules
  1.8.0 in ./node_modules/@types/wordpress__components/node_modules
  1.8.0 in ./node_modules/@types/wordpress__compose/node_modules
  1.8.0 in ./node_modules/@types/wordpress__editor/node_modules
  1.8.0 in ./node_modules/@types/wordpress__element/node_modules
  1.8.0 in ./node_modules/@types/wordpress__media-utils/node_modules
  1.8.0 in ./node_modules/@types/wordpress__plugins/node_modules
  1.8.0 in ./node_modules/@wordpress/block-directory/node_modules
  1.8.0 in ./node_modules/@wordpress/edit-post/node_modules
  1.11.0 in ./node_modules
  1.8.0 in ./node_modules/@wordpress/plugins/node_modules
  1.8.0 in ./node_modules/@wordpress/viewport/node_modules
  1.8.0 in ./node_modules/newspack-blocks/node_modules
  1.9.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
  1.8.0 in ./apps/editing-toolkit/node_modules/@wordpress/element/node_modules
  1.10.0 in ./apps/editing-toolkit/node_modules/@wordpress/primitives/node_modules
  1.8.0 in ./apps/editing-toolkit/node_modules/@wordpress/rich-text/node_modules
  1.8.0 in ./packages/react-i18n/node_modules
@wordpress/element
  2.14.0 in ./node_modules/@types/wordpress__block-editor/node_modules
  2.14.0 in ./node_modules/@types/wordpress__blocks/node_modules
  2.14.0 in ./node_modules/@types/wordpress__components/node_modules
  2.14.0 in ./node_modules/@types/wordpress__compose/node_modules
  2.14.0 in ./node_modules/@types/wordpress__editor/node_modules
  2.14.0 in ./node_modules/@types/wordpress__element/node_modules
  2.14.0 in ./node_modules/@types/wordpress__media-utils/node_modules
  2.14.0 in ./node_modules/@types/wordpress__plugins/node_modules
  2.14.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.14.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.19.0 in ./node_modules
  2.14.0 in ./node_modules/@wordpress/plugins/node_modules
  2.14.0 in ./node_modules/@wordpress/viewport/node_modules
  2.14.0 in ./node_modules/newspack-blocks/node_modules
  2.16.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
  2.14.0 in ./apps/editing-toolkit/node_modules
  2.18.0 in ./apps/editing-toolkit/node_modules/@wordpress/primitives/node_modules
  2.14.0 in ./packages/react-i18n/node_modules
@wordpress/compose
  3.15.0 in ./node_modules/@wordpress/block-directory/node_modules
  3.23.0 in ./node_modules
  3.15.0 in ./node_modules/@wordpress/edit-post/node_modules
  3.15.0 in ./node_modules/@wordpress/plugins/node_modules
  3.15.0 in ./node_modules/@wordpress/viewport/node_modules
  3.15.0 in ./node_modules/newspack-blocks/node_modules
  3.15.0 in ./apps/editing-toolkit/node_modules
  3.19.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
  3.15.0 in ./packages/react-i18n/node_modules
@wordpress/is-shallow-equal
  2.0.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.0.0 in ./node_modules/@wordpress/edit-post/node_modules
  3.0.0 in ./node_modules
  2.0.0 in ./node_modules/@wordpress/plugins/node_modules
  2.0.0 in ./node_modules/@wordpress/viewport/node_modules
  2.0.0 in ./node_modules/newspack-blocks/node_modules
  2.1.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
  2.0.0 in ./apps/editing-toolkit/node_modules
  2.0.0 in ./packages/react-i18n/node_modules
@wordpress/hooks
  2.8.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.8.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.11.0 in ./node_modules
  2.8.0 in ./node_modules/@wordpress/plugins/node_modules
  2.8.0 in ./node_modules/@wordpress/viewport/node_modules
  2.8.0 in ./node_modules/newspack-blocks/node_modules
  2.9.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
  2.8.0 in ./apps/editing-toolkit/node_modules
@wordpress/a11y
  2.14.0 in ./node_modules
  2.9.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.9.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.9.0 in ./node_modules/newspack-blocks/node_modules
  2.9.0 in ./apps/editing-toolkit/node_modules/@wordpress/block-editor/node_modules
  2.9.0 in ./apps/editing-toolkit/node_modules/@wordpress/components/node_modules
  2.9.0 in ./apps/editing-toolkit/node_modules/@wordpress/notices/node_modules
@wordpress/data
  4.18.0 in ./node_modules/@wordpress/block-directory/node_modules
  4.26.0 in ./node_modules
  4.18.0 in ./node_modules/@wordpress/edit-post/node_modules
  4.18.0 in ./node_modules/@wordpress/viewport/node_modules
  4.18.0 in ./node_modules/newspack-blocks/node_modules
  4.18.0 in ./apps/editing-toolkit/node_modules
  4.22.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
@wordpress/deprecated
  2.8.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.11.0 in ./node_modules
  2.8.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.8.0 in ./node_modules/@wordpress/viewport/node_modules
  2.8.0 in ./node_modules/newspack-blocks/node_modules
  2.9.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
  2.8.0 in ./apps/editing-toolkit/node_modules
@wordpress/primitives
  1.5.0 in ./node_modules/@wordpress/block-directory/node_modules
  1.5.0 in ./node_modules/@wordpress/edit-post/node_modules
  1.5.0 in ./node_modules/@wordpress/plugins/node_modules
  1.11.0 in ./node_modules
  1.5.0 in ./apps/editing-toolkit/node_modules/@wordpress/components/node_modules
  1.5.0 in ./apps/editing-toolkit/node_modules/@wordpress/icons/node_modules
  1.10.0 in ./apps/editing-toolkit/node_modules
@wordpress/priority-queue
  1.6.0 in ./node_modules/@wordpress/block-directory/node_modules
  1.6.0 in ./node_modules/@wordpress/edit-post/node_modules
  1.10.0 in ./node_modules
  1.6.0 in ./node_modules/@wordpress/viewport/node_modules
  1.6.0 in ./node_modules/newspack-blocks/node_modules
  1.7.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
  1.6.0 in ./apps/editing-toolkit/node_modules
@wordpress/redux-routine
  3.9.0 in ./node_modules/@wordpress/block-directory/node_modules
  3.9.0 in ./node_modules/@wordpress/edit-post/node_modules
  3.13.0 in ./node_modules
  3.9.0 in ./node_modules/@wordpress/viewport/node_modules
  3.9.0 in ./node_modules/newspack-blocks/node_modules
  3.10.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
  3.9.0 in ./apps/editing-toolkit/node_modules
@wordpress/i18n
  3.12.0 in ./node_modules/@wordpress/block-directory/node_modules
  3.12.0 in ./node_modules/@wordpress/edit-post/node_modules
  3.17.0 in ./node_modules
  3.12.0 in ./node_modules/newspack-blocks/node_modules
  3.14.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
  3.12.0 in ./apps/editing-toolkit/node_modules
@wordpress/api-fetch
  3.21.0 in ./node_modules
  3.15.0 in ./node_modules/@wordpress/block-directory/node_modules
  3.15.0 in ./node_modules/@wordpress/edit-post/node_modules
  3.15.0 in ./apps/editing-toolkit/node_modules
  3.18.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
@wordpress/icons
  2.0.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.0.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.9.0 in ./node_modules
  2.0.0 in ./node_modules/@wordpress/plugins/node_modules
  2.0.0 in ./apps/editing-toolkit/node_modules
@wordpress/keycodes
  2.12.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.12.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.17.0 in ./node_modules
  2.12.0 in ./node_modules/newspack-blocks/node_modules
  2.12.0 in ./apps/editing-toolkit/node_modules
@wordpress/url
  2.15.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.15.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.20.0 in ./node_modules
  2.17.0 in ./apps/editing-toolkit/node_modules/@wordpress/data-controls/node_modules
  2.15.0 in ./apps/editing-toolkit/node_modules
@wordpress/html-entities
  2.10.0 in ./node_modules/@wordpress/block-editor/node_modules
  2.10.0 in ./node_modules/@wordpress/blocks/node_modules
  2.10.0 in ./node_modules/@wordpress/editor/node_modules
  2.10.0 in ./node_modules/@wordpress/format-library/node_modules
  2.7.0 in ./node_modules
@wordpress/data-controls
  1.20.0 in ./node_modules
  1.12.0 in ./node_modules/@wordpress/edit-post/node_modules
  1.12.0 in ./apps/editing-toolkit/node_modules/@wordpress/core-data/node_modules
  1.16.0 in ./apps/editing-toolkit/node_modules
  1.12.0 in ./apps/editing-toolkit/node_modules/@wordpress/editor/node_modules
@wordpress/plugins
  2.24.0 in ./node_modules/@wordpress/edit-site/node_modules
  2.24.0 in ./node_modules/@wordpress/interface/node_modules
  2.16.0 in ./node_modules
  2.24.0 in ./client/node_modules
  2.24.0 in ./apps/wpcom-block-editor/node_modules
@wordpress/autop
  2.11.0 in ./node_modules
  2.7.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.7.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.7.0 in ./apps/editing-toolkit/node_modules
@wordpress/blob
  2.12.0 in ./node_modules
  2.8.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.8.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.8.0 in ./apps/editing-toolkit/node_modules
@wordpress/block-editor
  3.11.0 in ./node_modules/@wordpress/block-directory/node_modules
  5.2.0 in ./node_modules
  3.11.0 in ./node_modules/@wordpress/edit-post/node_modules
  3.11.0 in ./apps/editing-toolkit/node_modules
@wordpress/block-serialization-default-parser
  3.6.0 in ./node_modules/@wordpress/block-directory/node_modules
  3.9.0 in ./node_modules
  3.6.0 in ./node_modules/@wordpress/edit-post/node_modules
  3.6.0 in ./apps/editing-toolkit/node_modules
@wordpress/blocks
  6.16.0 in ./node_modules/@wordpress/block-directory/node_modules
  6.25.0 in ./node_modules
  6.16.0 in ./node_modules/@wordpress/edit-post/node_modules
  6.16.0 in ./apps/editing-toolkit/node_modules
@wordpress/components
  9.6.0 in ./node_modules/@wordpress/block-directory/node_modules
  12.0.0 in ./node_modules
  9.6.0 in ./node_modules/@wordpress/edit-post/node_modules
  9.6.0 in ./apps/editing-toolkit/node_modules
@wordpress/dom
  2.9.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.16.0 in ./node_modules
  2.9.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.9.0 in ./apps/editing-toolkit/node_modules
@wordpress/keyboard-shortcuts
  1.5.0 in ./node_modules/@wordpress/block-directory/node_modules
  1.5.0 in ./node_modules/@wordpress/edit-post/node_modules
  1.13.0 in ./node_modules
  1.5.0 in ./apps/editing-toolkit/node_modules
@wordpress/rich-text
  3.16.0 in ./node_modules/@wordpress/block-directory/node_modules
  3.16.0 in ./node_modules/@wordpress/edit-post/node_modules
  3.24.0 in ./node_modules
  3.16.0 in ./apps/editing-toolkit/node_modules
@wordpress/shortcode
  2.7.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.7.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.12.0 in ./node_modules
  2.7.0 in ./apps/editing-toolkit/node_modules
@wordpress/token-list
  1.10.0 in ./node_modules/@wordpress/block-directory/node_modules
  1.10.0 in ./node_modules/@wordpress/edit-post/node_modules
  1.14.0 in ./node_modules
  1.10.0 in ./apps/editing-toolkit/node_modules
@wordpress/warning
  1.1.0 in ./node_modules/@wordpress/block-directory/node_modules
  1.1.0 in ./node_modules/@wordpress/edit-post/node_modules
  1.3.0 in ./node_modules
  1.1.0 in ./apps/editing-toolkit/node_modules
@wordpress/wordcount
  2.8.0 in ./node_modules/@wordpress/block-directory/node_modules
  2.8.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.14.0 in ./node_modules
  2.8.0 in ./apps/editing-toolkit/node_modules
@wordpress/date
  3.13.0 in ./node_modules/@wordpress/block-library/node_modules
  3.13.0 in ./node_modules/@wordpress/components/node_modules
  3.9.0 in ./node_modules
  3.13.0 in ./node_modules/@wordpress/editor/node_modules
@wordpress/viewport
  2.25.0 in ./node_modules/@wordpress/block-library/node_modules
  2.25.0 in ./node_modules/@wordpress/interface/node_modules
  2.17.0 in ./node_modules
  2.25.0 in ./client/node_modules
@wordpress/dom-ready
  2.12.0 in ./node_modules/@wordpress/a11y/node_modules
  2.9.0 in ./node_modules
  2.12.0 in ./apps/wpcom-block-editor/node_modules
@wordpress/core-data
  2.25.0 in ./node_modules
  2.16.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.16.0 in ./apps/editing-toolkit/node_modules
@wordpress/editor
  9.16.0 in ./node_modules/@wordpress/edit-post/node_modules
  9.25.0 in ./node_modules
  9.16.0 in ./apps/editing-toolkit/node_modules
@wordpress/interface
  0.3.0 in ./node_modules/@wordpress/edit-post/node_modules
  0.11.0 in ./node_modules
  0.11.0 in ./client/node_modules
@wordpress/media-utils
  1.11.0 in ./node_modules/@wordpress/edit-post/node_modules
  1.19.0 in ./node_modules
  1.11.0 in ./apps/editing-toolkit/node_modules
@wordpress/notices
  2.4.0 in ./node_modules/@wordpress/edit-post/node_modules
  2.12.0 in ./node_modules
  2.4.0 in ./apps/editing-toolkit/node_modules
@wordpress/server-side-render
  1.12.0 in ./node_modules/@wordpress/edit-post/node_modules
  1.20.0 in ./node_modules
  1.12.0 in ./apps/editing-toolkit/node_modules/@wordpress/editor/node_modules
@wordpress/block-library
  2.27.0 in ./node_modules
  2.18.0 in ./node_modules/@wordpress/edit-post/node_modules
@wordpress/edit-post
  3.17.0 in ./node_modules
  3.26.0 in ./client/node_modules

I made this list with a custom script (gist here) that traverses the node_modules directiories and looks for @wordpress/* packages.

There are also two versions of React installed:

react
  16.14.0 in ./node_modules/@wordpress/element/node_modules
  16.13.1 in ./node_modules
  16.14.0 in ./apps/editing-toolkit/node_modules/@wordpress/primitives/node_modules
react-dom
  16.14.0 in ./node_modules/@wordpress/element/node_modules
  16.13.1 in ./node_modules
  16.14.0 in ./apps/editing-toolkit/node_modules/@wordpress/primitives/node_modules

To remedy this, we should formally upgrade Calypso to 16.14.0 or newer (maybe even 17?), coordinated with Gutenberg.

@jsnajdr
Copy link
Member

jsnajdr commented Jan 4, 2021

There are also two versions of React installed:

The React duplication is present in trunk, too, and is even worse:

react
  16.13.1 in ./node_modules/@wordpress/edit-site/node_modules/@wordpress/components/node_modules
  16.13.1 in ./node_modules/@wordpress/edit-site/node_modules/downshift/node_modules
  16.14.0 in ./node_modules/@wordpress/edit-site/node_modules
  16.13.1 in ./node_modules/@wordpress/edit-site/node_modules/react-transition-group/node_modules
  16.14.0 in ./node_modules/@wordpress/keyboard-shortcuts/node_modules
  16.14.0 in ./node_modules/@wordpress/notices/node_modules
  16.13.1 in ./node_modules/@wordpress/reusable-blocks/node_modules/@wordpress/components/node_modules
  16.13.1 in ./node_modules/@wordpress/reusable-blocks/node_modules/downshift/node_modules
  16.14.0 in ./node_modules/@wordpress/reusable-blocks/node_modules
  16.13.1 in ./node_modules/@wordpress/reusable-blocks/node_modules/react-transition-group/node_modules
  16.13.1 in ./node_modules
  16.14.0 in ./apps/editing-toolkit/node_modules/@wordpress/primitives/node_modules

It's a regression introduced in #47779 and I'm proposing a fix in #48644. Merging that PR and rebasing this one should fix some of the duplication.

@renovate renovate bot force-pushed the renovate/wordpress-monorepo branch from cefadea to 03dac2d Compare January 5, 2021 12:28
@noahtallen
Copy link
Member

I'm very curious, why does it seem like every time we have one of these PRs, the packages versions have been duplicated a lot? Is there a problem with how we add dependencies that we could fix with better linting or documentation? It'd be lovely to avoid having the same problem every few months :P

@sarayourfriend
Copy link
Contributor

@scinos Is there a way to stop renovate from stomping on our changes every so often? Can we expel it from this PR entirely at this point? I don't think it's helpful for us right now in this context as we have to keep redoing the fixes every time.

@sirbrillig
Copy link
Member

I moved my changes out into #48679 to make sure they don't get clobbered in this PR.

@sarayourfriend
Copy link
Contributor

@sirbrillig That's a good call, I'll do the same with the color changes if it's possible.

@sirbrillig
Copy link
Member

Yeah, good plan. I don't have any changes locally from before the previous clobber (52239fbd26, when I pushed my changes), but if it's helpful @sirreal, I think this might need to be replaced or made into its own PR:

  • a55a79500c - Type with hooks (6 days ago)

@jsnajdr jsnajdr force-pushed the renovate/wordpress-monorepo branch from 03dac2d to d1723f6 Compare January 7, 2021 11:32
@jsnajdr
Copy link
Member

jsnajdr commented Jan 7, 2021

Is there a way to stop renovate from stomping on our changes every so often?

This looks like a Renovate bug. The Renovate docs say that Renovate will never update a branch once you edit it by pushing a new commit. And we clearly pushed a lot of these, and yet Renovate has reset our branch several times already, starting in early December.

@rarkins is this a known issue?

@rarkins
Copy link
Contributor

rarkins commented Jan 7, 2021

Renovate looks at the head commit author to determine if the branch has been modified. If anyone force pushed and left Renovate's commit or author last then it will think the branch is not edited. Any other behaviour would be a bug.

@jsnajdr
Copy link
Member

jsnajdr commented Jan 7, 2021

@rarkins Thanks for chiming in! The most recent undesired force-push is:

renovate bot force-pushed the renovate/wordpress-monorepo branch from cefadea to 03dac2d 2 days ago

And the cefadea HEAD commit was done by @sirbrillig, both as committer and author. That means that Renovate shouldn't have touched the branch.

@renovate renovate bot force-pushed the renovate/wordpress-monorepo branch from d1723f6 to e46193b Compare January 7, 2021 12:03
@rarkins
Copy link
Contributor

rarkins commented Jan 7, 2021

You can see right now this message in the PR body:

image

This is as expected if someone else has made commits.

What's weird though is that the message hasn't changed since October:

image

@rarkins
Copy link
Contributor

rarkins commented Jan 7, 2021

I haven't been able to confirm for sure, but I think the problem here is a combination of (a) many PRs, and (b) this PR is quite old. For performance reasons we don't fetch every PR in a repo and limit it to 1000. According to the logs, Renovate isn't finding this PR, so think that is explained by the above.

This log shows that the last 1000 PRs only included 16 Renovate PRs:

{"level":20,"msg":"Retrieving PR list","time":"2021-01-07T11:52:03.565Z"}
{"level":20,"msg":"Retrieved 16 Pull Requests","time":"2021-01-07T11:52:13.088Z"}

Unfortunately GitHub's GraphQL interface for PRs doesn't let us filter by PR creator.

Something you could do to work around this is to rename and close old PRs so that they are recreated and go back to the top of the list.

@jsnajdr
Copy link
Member

jsnajdr commented Jan 8, 2021

For performance reasons we don't fetch every PR in a repo and limit it to 1000. According to the logs, Renovate isn't finding this PR, so think that is explained by the above.

Thanks @rarkins for looking into the issue. I'll proceed by creating a completely new branch and PR for these changes, because there are many manual interventions that need to be done.

If Renovate cannot find a particular PR using the Github API, that looks like an error or at least an unexpected condition. Could Renovate refrain from modifying the PR in that case? Force pushing into a branch with custom changes is a very disruptive action, and Renovate should perform it only when it's 100% sure it's doing the right thing.

@rarkins
Copy link
Contributor

rarkins commented Jan 8, 2021

It can't tell the difference between a branch with no PR versus one with a PR that it can't find. A branch with no PR is a valid state. But we might be able to do a modified check at the git layer instead.

@renovate renovate bot force-pushed the renovate/wordpress-monorepo branch from e46193b to a5dd89c Compare January 21, 2021 01:56
@sirreal
Copy link
Member

sirreal commented Jan 21, 2021

Closed by #48729

@sirreal sirreal closed this Jan 21, 2021
@sirreal sirreal deleted the renovate/wordpress-monorepo branch January 21, 2021 09:57
@matticbot matticbot removed the [Status] Needs Review The PR is ready for review. This also triggers e2e canary tests and wp-desktop tests automatically. label Jan 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet