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

WIP: Update package managing flow #65681

Draft
wants to merge 1 commit into
base: trunk
Choose a base branch
from
Draft

WIP: Update package managing flow #65681

wants to merge 1 commit into from

Conversation

t-hamano
Copy link
Contributor

@t-hamano t-hamano commented Sep 26, 2024

See this Slack comment: https://wordpress.slack.com/archives/C02QB2JS7/p1727315839205439

Does anyone know the best way to update existing dependencies?
I'm referring to this documentation, but the lerna add {library} packages/{package-name} command doesn't seem to work now.

lerna add change-case packages/a11y
ERR! add The "add" command was removed by default in v7, and is no longer maintained.
ERR! add Learn more about this change at https://lerna.js.org/docs/legacy-package-management

The npm command doesn't work either.

npm install change-case -w packages/components
npm error No workspaces found:
npm error   --workspace=packages/components
---
npm install change-case -w components
npm error No workspaces found:
npm error   --workspace=components

What?

This PR adds npm workspaces and updates the documentation to allow existing dependencies to be properly updated.

Why?

lerna has a lerna add command to add dependencies to the monorepo. However, since npm native now has a similar feature, this command was removed in version 7. Therefore, the current documented method cannot properly update dependencies.

How?

For npm publishing, we will continue to use lerna as before. This PR allows us to run npm native commands that are an alternative to lerna add by adding a workspaces to package.json.

lerna will refer to workspaces in package.json by default, but since the settings in lerna.json take precedence, this should not affect npm publishing (Source).

Testing Instructions

Please run a command like the following to make sure the dependencies are added properly:

npm install change-case -w packages/a11y

@t-hamano t-hamano added the [Type] Project Management Meta-issues related to project management of Gutenberg label Sep 26, 2024
@t-hamano t-hamano self-assigned this Sep 26, 2024
Copy link

github-actions bot commented Sep 26, 2024

Size Change: 0 B

Total Size: 1.77 MB

ℹ️ View Unchanged
Filename Size
build-module/a11y/index.min.js 482 B
build-module/block-library/file/view.min.js 447 B
build-module/block-library/image/view.min.js 1.78 kB
build-module/block-library/navigation/view.min.js 1.16 kB
build-module/block-library/query/view.min.js 743 B
build-module/block-library/search/view.min.js 616 B
build-module/interactivity-router/index.min.js 3 kB
build-module/interactivity/debug.min.js 16.7 kB
build-module/interactivity/index.min.js 13.4 kB
build/a11y/index.min.js 952 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.26 kB
build/block-directory/style-rtl.css 1.07 kB
build/block-directory/style.css 1.07 kB
build/block-editor/content-rtl.css 4.42 kB
build/block-editor/content.css 4.41 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-editor/index.min.js 256 kB
build/block-editor/style-rtl.css 15.6 kB
build/block-editor/style.css 15.5 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 265 B
build/block-library/blocks/button/editor.css 265 B
build/block-library/blocks/button/style-rtl.css 538 B
build/block-library/blocks/button/style.css 538 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 328 B
build/block-library/blocks/buttons/style.css 328 B
build/block-library/blocks/calendar/style-rtl.css 240 B
build/block-library/blocks/calendar/style.css 240 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 122 B
build/block-library/blocks/code/theme.css 122 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-author-name/style-rtl.css 72 B
build/block-library/blocks/comment-author-name/style.css 72 B
build/block-library/blocks/comment-content/style-rtl.css 120 B
build/block-library/blocks/comment-content/style.css 120 B
build/block-library/blocks/comment-date/style-rtl.css 65 B
build/block-library/blocks/comment-date/style.css 65 B
build/block-library/blocks/comment-edit-link/style-rtl.css 70 B
build/block-library/blocks/comment-edit-link/style.css 70 B
build/block-library/blocks/comment-reply-link/style-rtl.css 71 B
build/block-library/blocks/comment-reply-link/style.css 71 B
build/block-library/blocks/comment-template/style-rtl.css 200 B
build/block-library/blocks/comment-template/style.css 199 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 228 B
build/block-library/blocks/comments-pagination/editor.css 217 B
build/block-library/blocks/comments-pagination/style-rtl.css 234 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 832 B
build/block-library/blocks/comments/editor.css 832 B
build/block-library/blocks/comments/style-rtl.css 632 B
build/block-library/blocks/comments/style.css 631 B
build/block-library/blocks/cover/editor-rtl.css 641 B
build/block-library/blocks/cover/editor.css 642 B
build/block-library/blocks/cover/style-rtl.css 1.62 kB
build/block-library/blocks/cover/style.css 1.6 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 331 B
build/block-library/blocks/embed/editor.css 331 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 279 B
build/block-library/blocks/file/view.min.js 324 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-input/style-rtl.css 357 B
build/block-library/blocks/form-input/style.css 357 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 470 B
build/block-library/blocks/freeform/editor-rtl.css 2.6 kB
build/block-library/blocks/freeform/editor.css 2.6 kB
build/block-library/blocks/gallery/editor-rtl.css 946 B
build/block-library/blocks/gallery/editor.css 951 B
build/block-library/blocks/gallery/style-rtl.css 1.83 kB
build/block-library/blocks/gallery/style.css 1.82 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 334 B
build/block-library/blocks/group/editor.css 334 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 346 B
build/block-library/blocks/html/editor.css 347 B
build/block-library/blocks/image/editor-rtl.css 785 B
build/block-library/blocks/image/editor.css 787 B
build/block-library/blocks/image/style-rtl.css 1.59 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 1.65 kB
build/block-library/blocks/latest-comments/style-rtl.css 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 179 B
build/block-library/blocks/latest-posts/editor.css 179 B
build/block-library/blocks/latest-posts/style-rtl.css 509 B
build/block-library/blocks/latest-posts/style.css 510 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 321 B
build/block-library/blocks/media-text/editor.css 320 B
build/block-library/blocks/media-text/style-rtl.css 558 B
build/block-library/blocks/media-text/style.css 556 B
build/block-library/blocks/more/editor-rtl.css 427 B
build/block-library/blocks/more/editor.css 427 B
build/block-library/blocks/navigation-link/editor-rtl.css 644 B
build/block-library/blocks/navigation-link/editor.css 645 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.19 kB
build/block-library/blocks/navigation/editor.css 2.2 kB
build/block-library/blocks/navigation/style-rtl.css 2.25 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/navigation/view.min.js 1.03 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 378 B
build/block-library/blocks/page-list/editor.css 378 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 236 B
build/block-library/blocks/paragraph/editor.css 236 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author-biography/style-rtl.css 74 B
build/block-library/blocks/post-author-biography/style.css 74 B
build/block-library/blocks/post-author-name/style-rtl.css 69 B
build/block-library/blocks/post-author-name/style.css 69 B
build/block-library/blocks/post-author/editor-rtl.css 107 B
build/block-library/blocks/post-author/editor.css 107 B
build/block-library/blocks/post-author/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 527 B
build/block-library/blocks/post-comments-form/style.css 528 B
build/block-library/blocks/post-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 B
build/block-library/blocks/post-content/style-rtl.css 79 B
build/block-library/blocks/post-content/style.css 79 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 347 B
build/block-library/blocks/post-featured-image/style.css 347 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 399 B
build/block-library/blocks/post-template/style.css 398 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/post-title/style-rtl.css 162 B
build/block-library/blocks/post-title/style.css 162 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 342 B
build/block-library/blocks/pullquote/style.css 342 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 154 B
build/block-library/blocks/query-pagination/editor.css 154 B
build/block-library/blocks/query-pagination/style-rtl.css 237 B
build/block-library/blocks/query-pagination/style.css 237 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 452 B
build/block-library/blocks/query/editor.css 451 B
build/block-library/blocks/query/view.min.js 958 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 236 B
build/block-library/blocks/read-more/style-rtl.css 138 B
build/block-library/blocks/read-more/style.css 138 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 288 B
build/block-library/blocks/rss/style.css 287 B
build/block-library/blocks/search/editor-rtl.css 199 B
build/block-library/blocks/search/editor.css 199 B
build/block-library/blocks/search/style-rtl.css 672 B
build/block-library/blocks/search/style.css 671 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/search/view.min.js 475 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 806 B
build/block-library/blocks/site-logo/editor.css 803 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 85 B
build/block-library/blocks/site-title/editor.css 85 B
build/block-library/blocks/site-title/style-rtl.css 143 B
build/block-library/blocks/site-title/style.css 143 B
build/block-library/blocks/social-link/editor-rtl.css 338 B
build/block-library/blocks/social-link/editor.css 338 B
build/block-library/blocks/social-links/editor-rtl.css 757 B
build/block-library/blocks/social-links/editor.css 756 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.5 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 144 B
build/block-library/blocks/tag-cloud/editor.css 144 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 396 B
build/block-library/blocks/video/editor.css 397 B
build/block-library/blocks/video/style-rtl.css 192 B
build/block-library/blocks/video/style.css 192 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.1 kB
build/block-library/common.css 1.1 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.7 kB
build/block-library/editor.css 11.7 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 219 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.9 kB
build/block-library/style.css 14.9 kB
build/block-library/theme-rtl.css 708 B
build/block-library/theme.css 712 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 52.6 kB
build/commands/index.min.js 16.1 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/components/index.min.js 226 kB
build/components/style-rtl.css 12.3 kB
build/components/style.css 12.3 kB
build/compose/index.min.js 12.7 kB
build/core-commands/index.min.js 3.11 kB
build/core-data/index.min.js 73.4 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.35 kB
build/customize-widgets/style.css 1.35 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.98 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.66 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 13.6 kB
build/edit-post/style-rtl.css 2.54 kB
build/edit-post/style.css 2.54 kB
build/edit-site/index.min.js 217 kB
build/edit-site/posts-rtl.css 7.36 kB
build/edit-site/posts.css 7.36 kB
build/edit-site/style-rtl.css 12.6 kB
build/edit-site/style.css 12.6 kB
build/edit-widgets/index.min.js 17.8 kB
build/edit-widgets/style-rtl.css 4.19 kB
build/edit-widgets/style.css 4.19 kB
build/editor/index.min.js 103 kB
build/editor/style-rtl.css 9.34 kB
build/editor/style.css 9.34 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.11 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.54 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.18 kB
build/list-reusable-blocks/style-rtl.css 846 B
build/list-reusable-blocks/style.css 846 B
build/media-utils/index.min.js 3.2 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.61 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.34 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 554 B
build/preferences/style.css 554 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 1.01 kB
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.69 kB
build/reusable-blocks/index.min.js 2.55 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.1 kB
build/router/index.min.js 1.96 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.9 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react-jsx-runtime.min.js 560 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.17 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@t-hamano t-hamano changed the title Update package managing flow WIP: Update package managing flow Sep 26, 2024
@t-hamano
Copy link
Contributor Author

@gziolo @jsnajdr

I'm trying to enable npm workspaces in the Gutenberg project so that dependencies are updated properly, but I'm running into two issues. If you have any approaches to resolve these, please let me know 🙇‍♂️

  • When I run npm install, a lot of "dev": true are removed from package-lock.json. The difference is so large that it cannot be seen on GitHub, but you can check out this PR locally and run git diff 93323fd1a3 HEAD -- package-lock.json to see the difference.
  • Probably due to the first effect, more library licenses are checked, causing the other:check-licenses command to fail. The ones that are considered incompatible with GPL2 are Apache-2.0 and CC-BY-3.0.

@gziolo
Copy link
Member

gziolo commented Sep 27, 2024

I’m curious if @kevin940726 run into the same issue when exploring namespaces in the past:

@sirreal or @desrosj, do you have some hints to share? We definitely need to have a way to distinguish production and development packages. Maybe React Native packages need to be explicitly marked as dev packages.

@sirreal
Copy link
Member

sirreal commented Sep 27, 2024

Thanks for working on this, I think it needs to happen 🙂

I need to investigate a bit more, but my first intuition is that maybe it's working correctly and the updates are as they should be 🤷

For example, installing a new dev dependency that isn't currently present is correctly represented as a dev dep. Try this:

npm i -D oxlint -w @wordpress/a11y

@sirreal
Copy link
Member

sirreal commented Sep 27, 2024

If we go in this direction, I wonder if the root package.json file should contain much less. An interesting question to consider is "what does the Gutenberg package.json represent?"


It's entirely possible this just works differently than lerna and it is correct under the npm workspaces model.

Here's a case: @actions/core had dev: true removed.

  • It's a devDependency of the root. Maybe that's not necessary now? I think previously we hoisted all dev deps to the root because of lerna quirks, but I'm not sure.
  • It's a dependency of 2 packages in the workspace: @wordpress/project-management-automation and @wordpress/report-flaky-tests.
  • Both of those packages a dev dependencies of the root.

Does the package-lock represent the root package, or is it more like a union of everything in the workspace? It may be the latter, in that case since these are dependencies of a package in the workspace, they should be dev dependencies.


This is interesting:

npm i -D @actions/core

This changes the lockfile 🤦 it adds a license field in a few places where the package appears. I've never found npm to be very reliable and it continues today.


Here's an interesting diff, I compared the following command on trunk and the branch:

npm ls --package-lock-only --include=prod --parseable
diff of prod packages
diff --git before/trunk.txt after/branch.txt
index c8f325917e..f539055038 100644
--- before/trunk.txt
+++ after/branch.txt
@@ -69,6 +69,7 @@ node_modules/@wordpress/components
 node_modules/@wordpress/compose
 node_modules/@wordpress/core-commands
 node_modules/@wordpress/core-data
+node_modules/@wordpress/create-block-interactive-template
 node_modules/@wordpress/create-block-tutorial-template
 node_modules/@wordpress/create-block
 node_modules/@wordpress/customize-widgets
@@ -240,3 +241,176 @@ node_modules/webdriverio
 node_modules/webpack-bundle-analyzer
 node_modules/webpack
 node_modules/worker-farm
+node_modules/@babel/runtime
+packages/annotations/node_modules/uuid
+node_modules/deepmerge
+node_modules/gettext-parser
+node_modules/is-plain-object
+node_modules/@babel/plugin-transform-react-jsx
+node_modules/@babel/plugin-transform-runtime
+node_modules/@babel/preset-env
+node_modules/@babel/preset-typescript
+node_modules/core-js
+node_modules/clsx
+node_modules/@emotion/react
+node_modules/@emotion/styled
+node_modules/@react-spring/web
+node_modules/colord
+node_modules/diff
+node_modules/fast-deep-equal
+node_modules/memize
+node_modules/parsel-js
+node_modules/postcss-prefix-selector
+packages/block-editor/node_modules/postcss-urlrebase
+node_modules/react-autosize-textarea
+packages/block-editor/node_modules/react-easy-crop
+node_modules/remove-accents
+node_modules/fast-average-color
+packages/block-library/node_modules/uuid
+node_modules/pegjs
+node_modules/phpegjs
+node_modules/hpq
+packages/blocks/node_modules/react-is
+node_modules/showdown
+node_modules/simple-html-tokenizer
+packages/blocks/node_modules/uuid
+packages/commands/node_modules/cmdk
+packages/components/node_modules/@ariakit/react
+node_modules/@emotion/cache
+node_modules/@emotion/css
+node_modules/@emotion/serialize
+node_modules/@emotion/utils
+packages/components/node_modules/@floating-ui/react-dom
+packages/components/node_modules/@types/gradient-parser
+node_modules/@types/highlight-words-core
+node_modules/@use-gesture/react
+node_modules/date-fns
+node_modules/framer-motion
+node_modules/gradient-parser
+node_modules/highlight-words-core
+packages/components/node_modules/path-to-regexp
+node_modules/re-resizable
+node_modules/react-colorful
+packages/components/node_modules/uuid
+node_modules/@types/mousetrap
+packages/compose/node_modules/clipboard
+node_modules/mousetrap
+node_modules/use-memo-one
+packages/core-data/node_modules/uuid
+node_modules/check-node-version
+node_modules/mustache
+node_modules/npm-package-arg
+node_modules/write-pkg
+node_modules/is-promise
+node_modules/rememo
+packages/dataviews/node_modules/@ariakit/react
+node_modules/moment-timezone
+node_modules/moment
+node_modules/json2php
+node_modules/comment-parser
+node_modules/mdast-util-inject
+node_modules/optionator
+node_modules/remark-parse
+node_modules/remark
+node_modules/unified
+node_modules/form-data
+node_modules/get-port
+node_modules/lighthouse
+node_modules/mime
+packages/e2e-test-utils-playwright/node_modules/web-vitals
+node_modules/expect-puppeteer
+node_modules/jest-snapshot
+packages/e2e-tests/node_modules/uuid
+node_modules/copy-dir
+packages/env/node_modules/docker-compose
+node_modules/extract-zip
+node_modules/got
+node_modules/js-yaml
+node_modules/ora
+node_modules/terminal-link
+packages/env/node_modules/yargs
+node_modules/@babel/eslint-parser
+node_modules/@typescript-eslint/eslint-plugin
+node_modules/@typescript-eslint/parser
+node_modules/cosmiconfig
+node_modules/eslint-config-prettier
+node_modules/eslint-plugin-jsdoc
+node_modules/eslint-plugin-jsx-a11y
+node_modules/eslint-plugin-playwright
+node_modules/eslint-plugin-react-hooks
+node_modules/eslint-plugin-react
+node_modules/eslint
+node_modules/globals
+node_modules/requireindex
+node_modules/tannin
+packages/interactivity/node_modules/@preact/signals
+packages/interactivity/node_modules/preact
+node_modules/jest-matcher-utils
+node_modules/@axe-core/puppeteer
+node_modules/npm-package-json-lint
+node_modules/autoprefixer
+node_modules/requestidlecallback
+node_modules/@octokit/request-error
+packages/project-management-automation/node_modules/@octokit/webhooks
+node_modules/utility-types
+node_modules/@react-native-clipboard/clipboard
+node_modules/@react-native-community/blur
+node_modules/@react-native-community/slider
+node_modules/@react-native-masked-view/masked-view
+node_modules/@react-navigation/core
+node_modules/@react-navigation/native
+node_modules/@react-navigation/routers
+node_modules/@react-navigation/stack
+node_modules/jed
+node_modules/jsdom-jscore-rn
+node_modules/react-native-fast-image
+node_modules/react-native-gesture-handler
+node_modules/react-native-get-random-values
+node_modules/react-native-linear-gradient
+node_modules/react-native-modal
+node_modules/react-native-reanimated
+node_modules/react-native-safe-area-context
+node_modules/react-native-safe-area
+node_modules/react-native-sass-transformer
+node_modules/react-native-screens
+node_modules/react-native-svg
+packages/react-native-editor/node_modules/react-native-url-polyfill
+node_modules/react-native-video
+node_modules/react-native-webview
+node_modules/rungen
+packages/report-flaky-tests/node_modules/@actions/github
+node_modules/history
+node_modules/@svgr/webpack
+node_modules/adm-zip
+packages/scripts/node_modules/babel-loader
+packages/scripts/node_modules/chalk
+node_modules/clean-webpack-plugin
+node_modules/cross-spawn
+node_modules/cwd
+node_modules/dir-glob
+packages/scripts/node_modules/jest-dev-server
+node_modules/jest-environment-node
+node_modules/markdownlint-cli
+node_modules/merge-deep
+node_modules/mini-css-extract-plugin
+node_modules/minimist
+node_modules/npm-packlist
+node_modules/read-pkg-up
+node_modules/resolve-bin
+node_modules/rtlcss-webpack-plugin
+packages/scripts/node_modules/schema-utils
+node_modules/stylelint
+node_modules/url-loader
+node_modules/webpack-cli
+node_modules/webpack-dev-server
+node_modules/@stylistic/stylelint-plugin
+packages/stylelint-config/node_modules/stylelint-config-recommended-scss
+packages/stylelint-config/node_modules/stylelint-config-recommended
+node_modules/@types/simple-peer
+node_modules/import-locals
+node_modules/lib0
+node_modules/simple-peer
+node_modules/y-indexeddb
+node_modules/y-protocols
+node_modules/y-webrtc
+node_modules/yjs

@sirreal
Copy link
Member

sirreal commented Sep 27, 2024

Here's a test, I added this package at packages/test-package:

{
  "name": "test-package",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": "",
  "devDependencies": {
    "ansi-align": "3.0.1"
  }
}

That's a new dependency. It's a dev dependency in the root. This is part of the updated package-lock:

		"ansi-align": {
			"version": "3.0.1",
			"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
			"integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
			"dev": true,

@sirreal
Copy link
Member

sirreal commented Sep 27, 2024

Of course, the more interesting test is that a new prod dependency of any package in the workspace is a prod dependency in the root package json:

   "description": "",
-  "devDependencies": {
+  "dependencies": {
     "ansi-align": "3.0.1"
   }
 }
 		"ansi-align": {
 			"version": "3.0.1",
 			"resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
 			"integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
-			"dev": true,

This does seem to indicate that the root package-lock functions as a union of workspace dependencies. This may be related to hoisting and other behaviors, but I think the behavior observed in this PR where many "dev": true are removed is correct.

@sirreal
Copy link
Member

sirreal commented Sep 27, 2024

I created #65708 (targeting this PR) with some ideas. I think we may want to move away from file refs now that we have workspaces. Lerna seems to handle it correctly in my testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Project Management Meta-issues related to project management of Gutenberg
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants