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

Promote fetchLinkSuggestions to non-experimental API #40052

Closed

Conversation

getdave
Copy link
Contributor

@getdave getdave commented Apr 5, 2022

⚠️ DO NOT MERGE

See https://make.wordpress.org/core/2022/04/25/editor-chat-agenda-27-april-2022/#comment-42966


What?

This PR updates __experimentalFetchLinkSuggestions to fetchLinkSuggestions thereby making it non-experimental.

Why?

The API has been in Core Data for a few years now and it's had time to bed in.

Given that the API has been around for so long there is a good chance 3rd party Plugins will utilise the __experimental prefixed version. We should be clear to highlight this in release notes.

How?

All instances of __experimentalFetchLinkSuggestions in Core renamed to remove prefix.

Testing Instructions

  • Check Link UI functions in all editors and you are able to search for things.
  • Check Link UI functions in Nav block in all editors and you are able to search for things.
  • Check tests pass.

Screenshots or screencast

@getdave getdave self-assigned this Apr 5, 2022
@getdave getdave added [Type] Code Quality Issues or PRs that relate to code quality [Package] Core data /packages/core-data labels Apr 5, 2022
@github-actions
Copy link

github-actions bot commented Apr 5, 2022

Size Change: +3.04 kB (0%)

Total Size: 1.23 MB

Filename Size Change
build/admin-manifest/index.min.js 0 B -1.24 kB (removed) 🏆
build/block-directory/index.min.js 6.51 kB +19 B (0%)
build/block-editor/index.min.js 151 kB +2.06 kB (+1%)
build/block-editor/style-rtl.css 15.1 kB -341 B (-2%)
build/block-editor/style.css 15.1 kB -328 B (-2%)
build/block-library/blocks/cover/style-rtl.css 1.53 kB -31 B (-2%)
build/block-library/blocks/cover/style.css 1.53 kB -31 B (-2%)
build/block-library/blocks/navigation/view.min.js 395 B -2.45 kB (-86%) 🏆
build/block-library/blocks/post-comments-form/style-rtl.css 521 B +75 B (+17%) ⚠️
build/block-library/blocks/post-comments-form/style.css 521 B +75 B (+17%) ⚠️
build/block-library/blocks/post-comments/style-rtl.css 511 B -10 B (-2%)
build/block-library/blocks/post-comments/style.css 511 B -10 B (-2%)
build/block-library/blocks/query/editor-rtl.css 369 B +238 B (+182%) 🆘
build/block-library/blocks/query/editor.css 369 B +237 B (+180%) 🆘
build/block-library/blocks/table/editor-rtl.css 504 B +33 B (+7%) 🔍
build/block-library/blocks/table/editor.css 504 B +32 B (+7%) 🔍
build/block-library/blocks/table/style-rtl.css 625 B +144 B (+30%) 🚨
build/block-library/blocks/table/style.css 625 B +144 B (+30%) 🚨
build/block-library/common-rtl.css 993 B +59 B (+6%) 🔍
build/block-library/common.css 990 B +58 B (+6%) 🔍
build/block-library/editor-rtl.css 10.3 kB +187 B (+2%)
build/block-library/editor.css 10.3 kB +189 B (+2%)
build/block-library/index.min.js 177 kB +2.92 kB (+2%)
build/block-library/style-rtl.css 11.5 kB +189 B (+2%)
build/block-library/style.css 11.5 kB +186 B (+2%)
build/blocks/index.min.js 47 kB +178 B (0%)
build/components/index.min.js 222 kB -851 B (0%)
build/components/style-rtl.css 15 kB +66 B (0%)
build/components/style.css 15 kB +67 B (0%)
build/compose/index.min.js 11.3 kB +50 B (0%)
build/core-data/index.min.js 14.5 kB +56 B (0%)
build/data/index.min.js 7.64 kB -1 kB (-12%) 👏
build/edit-navigation/index.min.js 15.8 kB +1 B (0%)
build/edit-navigation/style-rtl.css 4.05 kB +6 B (0%)
build/edit-navigation/style.css 4.05 kB +6 B (0%)
build/edit-post/index.min.js 30.1 kB +462 B (+2%)
build/edit-post/style-rtl.css 7.11 kB +45 B (+1%)
build/edit-post/style.css 7.11 kB +43 B (+1%)
build/edit-site/index.min.js 47.5 kB +811 B (+2%)
build/edit-site/style-rtl.css 7.95 kB +217 B (+3%)
build/edit-site/style.css 7.93 kB +218 B (+3%)
build/edit-widgets/index.min.js 16.3 kB +21 B (0%)
build/edit-widgets/style-rtl.css 4.41 kB +9 B (0%)
build/edit-widgets/style.css 4.4 kB +10 B (0%)
build/editor/index.min.js 38.5 kB +70 B (0%)
build/preferences/index.min.js 1.32 kB +121 B (+10%) ⚠️
build/priority-queue/index.min.js 628 B +17 B (+3%)
build/rich-text/index.min.js 11.2 kB +12 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 993 B
build/annotations/index.min.js 2.77 kB
build/api-fetch/index.min.js 2.27 kB
build/autop/index.min.js 2.15 kB
build/blob/index.min.js 487 B
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 B
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 65 B
build/block-library/blocks/archives/style.css 65 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 111 B
build/block-library/blocks/audio/style.css 111 B
build/block-library/blocks/audio/theme-rtl.css 125 B
build/block-library/blocks/audio/theme.css 125 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 59 B
build/block-library/blocks/avatar/style.css 59 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 445 B
build/block-library/blocks/button/editor.css 445 B
build/block-library/blocks/button/style-rtl.css 560 B
build/block-library/blocks/button/style.css 560 B
build/block-library/blocks/buttons/editor-rtl.css 292 B
build/block-library/blocks/buttons/editor.css 292 B
build/block-library/blocks/buttons/style-rtl.css 275 B
build/block-library/blocks/buttons/style.css 275 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 103 B
build/block-library/blocks/code/style.css 103 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 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 406 B
build/block-library/blocks/columns/style.css 406 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-template/style-rtl.css 127 B
build/block-library/blocks/comment-template/style.css 127 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-query-loop/editor-rtl.css 95 B
build/block-library/blocks/comments-query-loop/editor.css 95 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/cover/editor-rtl.css 546 B
build/block-library/blocks/cover/editor.css 547 B
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 417 B
build/block-library/blocks/embed/style.css 417 B
build/block-library/blocks/embed/theme-rtl.css 124 B
build/block-library/blocks/embed/theme.css 124 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 255 B
build/block-library/blocks/file/style.css 255 B
build/block-library/blocks/file/view.min.js 353 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 961 B
build/block-library/blocks/gallery/editor.css 964 B
build/block-library/blocks/gallery/style-rtl.css 1.51 kB
build/block-library/blocks/gallery/style.css 1.51 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 333 B
build/block-library/blocks/group/editor.css 333 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 76 B
build/block-library/blocks/heading/style.css 76 B
build/block-library/blocks/html/editor-rtl.css 332 B
build/block-library/blocks/html/editor.css 333 B
build/block-library/blocks/image/editor-rtl.css 731 B
build/block-library/blocks/image/editor.css 730 B
build/block-library/blocks/image/style-rtl.css 529 B
build/block-library/blocks/image/style.css 535 B
build/block-library/blocks/image/theme-rtl.css 124 B
build/block-library/blocks/image/theme.css 124 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/editor-rtl.css 199 B
build/block-library/blocks/latest-posts/editor.css 198 B
build/block-library/blocks/latest-posts/style-rtl.css 447 B
build/block-library/blocks/latest-posts/style.css 446 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 493 B
build/block-library/blocks/media-text/style.css 490 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 708 B
build/block-library/blocks/navigation-link/editor.css 706 B
build/block-library/blocks/navigation-link/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation-submenu/view.min.js 375 B
build/block-library/blocks/navigation/editor-rtl.css 2.03 kB
build/block-library/blocks/navigation/editor.css 2.04 kB
build/block-library/blocks/navigation/style-rtl.css 1.93 kB
build/block-library/blocks/navigation/style.css 1.92 kB
build/block-library/blocks/navigation/view-modal.min.js 2.65 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 363 B
build/block-library/blocks/page-list/editor.css 363 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 157 B
build/block-library/blocks/paragraph/editor.css 157 B
build/block-library/blocks/paragraph/style-rtl.css 260 B
build/block-library/blocks/paragraph/style.css 260 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 69 B
build/block-library/blocks/post-comments-form/editor.css 69 B
build/block-library/blocks/post-comments/editor-rtl.css 77 B
build/block-library/blocks/post-comments/editor.css 77 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/editor-rtl.css 721 B
build/block-library/blocks/post-featured-image/editor.css 721 B
build/block-library/blocks/post-featured-image/style-rtl.css 153 B
build/block-library/blocks/post-featured-image/style.css 153 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 323 B
build/block-library/blocks/post-template/style.css 323 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 80 B
build/block-library/blocks/post-title/style.css 80 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 198 B
build/block-library/blocks/pullquote/editor.css 198 B
build/block-library/blocks/pullquote/style-rtl.css 370 B
build/block-library/blocks/pullquote/style.css 370 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 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 234 B
build/block-library/blocks/query-pagination/style.css 231 B
build/block-library/blocks/quote/style-rtl.css 213 B
build/block-library/blocks/quote/style.css 213 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 132 B
build/block-library/blocks/read-more/style.css 132 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 397 B
build/block-library/blocks/search/style.css 398 B
build/block-library/blocks/search/theme-rtl.css 64 B
build/block-library/blocks/search/theme.css 64 B
build/block-library/blocks/separator/editor-rtl.css 140 B
build/block-library/blocks/separator/editor.css 140 B
build/block-library/blocks/separator/style-rtl.css 233 B
build/block-library/blocks/separator/style.css 233 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 474 B
build/block-library/blocks/shortcode/editor.css 474 B
build/block-library/blocks/site-logo/editor-rtl.css 759 B
build/block-library/blocks/site-logo/editor.css 759 B
build/block-library/blocks/site-logo/style-rtl.css 181 B
build/block-library/blocks/site-logo/style.css 181 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 177 B
build/block-library/blocks/social-link/editor.css 177 B
build/block-library/blocks/social-links/editor-rtl.css 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/social-links/style-rtl.css 1.37 kB
build/block-library/blocks/social-links/style.css 1.36 kB
build/block-library/blocks/spacer/editor-rtl.css 332 B
build/block-library/blocks/spacer/editor.css 332 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/theme-rtl.css 188 B
build/block-library/blocks/table/theme.css 188 B
build/block-library/blocks/tag-cloud/style-rtl.css 226 B
build/block-library/blocks/tag-cloud/style.css 227 B
build/block-library/blocks/template-part/editor-rtl.css 149 B
build/block-library/blocks/template-part/editor.css 149 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 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 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 571 B
build/block-library/blocks/video/editor.css 572 B
build/block-library/blocks/video/style-rtl.css 173 B
build/block-library/blocks/video/style.css 173 B
build/block-library/blocks/video/theme-rtl.css 124 B
build/block-library/blocks/video/theme.css 124 B
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/block-library/theme-rtl.css 689 B
build/block-library/theme.css 694 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.39 kB
build/customize-widgets/style.css 1.39 kB
build/data-controls/index.min.js 663 B
build/date/index.min.js 32 kB
build/deprecated/index.min.js 518 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.58 kB
build/edit-post/classic-rtl.css 546 B
build/edit-post/classic.css 547 B
build/editor/style-rtl.css 3.71 kB
build/editor/style.css 3.71 kB
build/element/index.min.js 4.29 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 6.62 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.66 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.79 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.83 kB
build/keycodes/index.min.js 1.41 kB
build/list-reusable-blocks/index.min.js 1.75 kB
build/list-reusable-blocks/style-rtl.css 838 B
build/list-reusable-blocks/style.css 838 B
build/media-utils/index.min.js 2.94 kB
build/notices/index.min.js 957 B
build/nux/index.min.js 2.12 kB
build/nux/style-rtl.css 751 B
build/nux/style.css 749 B
build/plugins/index.min.js 1.98 kB
build/preferences-persistence/index.min.js 2.1 kB
build/primitives/index.min.js 949 B
build/react-i18n/index.min.js 704 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.69 kB
build/reusable-blocks/index.min.js 2.24 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/server-side-render/index.min.js 1.61 kB
build/shortcode/index.min.js 1.52 kB
build/token-list/index.min.js 668 B
build/url/index.min.js 1.99 kB
build/vendors/react-dom.min.js 38.5 kB
build/vendors/react.min.js 4.34 kB
build/viewport/index.min.js 1.08 kB
build/warning/index.min.js 280 B
build/widgets/index.min.js 7.21 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.07 kB

compressed-size-action

Copy link
Member

@kevin940726 kevin940726 left a comment

Choose a reason for hiding this comment

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

LGTM 👍

Some file names are not renamed yet though 😆

@@ -1,2 +1,2 @@
export { default as __experimentalFetchLinkSuggestions } from './__experimental-fetch-link-suggestions';
export { default as fetchLinkSuggestions } from './__experimental-fetch-link-suggestions';
Copy link
Member

Choose a reason for hiding this comment

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

Let's rename the file name to fetch-link-suggestions.js too :)

Copy link
Member

Choose a reason for hiding this comment

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

Along with the unit test file.

@getdave
Copy link
Contributor Author

getdave commented Apr 27, 2022

LGTM 👍

Some file names are not renamed yet though 😆

@kevin940726 Thanks good spot. I renamed things. Look better?

Copy link
Member

@kevin940726 kevin940726 left a comment

Choose a reason for hiding this comment

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

Looks good! Just a tiny oversight left 👍

@@ -1,7 +1,7 @@
/**
Copy link
Member

Choose a reason for hiding this comment

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

I think we forgot to delete this file 😅

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Noooooooo! How did this happen 🤦

Somehow missed first time around
@getdave
Copy link
Contributor Author

getdave commented Apr 27, 2022

Given how long this has been around we need to give some time for folks to adapt to the change. I'm going to hold on merging until after WP 6.0 and also going to raise in Core Editor chat.

@getdave
Copy link
Contributor Author

getdave commented May 3, 2022

I reached out to a few of the Plugins in the directory that I could find who have used this API. I did this as a personal courtesy and not as part of any official process determined by Gutenberg Core.

I'll give this a few days then merge.

@Clorith
Copy link
Member

Clorith commented May 3, 2022

Given that this feature has been bundled with core, and is in use on ~800 000-900 000 active installs based off the WordPress.org repository, and an unknown amount of paid plugins or themes, is there any reason why an alias is not introduced to maintain backwards compatibility?

@getdave
Copy link
Contributor Author

getdave commented May 3, 2022

Given that this feature has been bundled with core, and is in use on ~800 000-900 000 active installs based off the WordPress.org repository, and an unknown amount of paid plugins or themes, is there any reason why an alias is not introduced to maintain backwards compatibility?

This is a good point. You'll recognise my reticence to merge this is based primarily on concerns along the same lines you have mentioned.

In general anything marked __expermental is considered something that can change or be removed without notice. However, in certain cases that's clearly going to cause a lot of problems. This is one such case.

I believe there is a wider discussion happening about how we can avoid situations such as this occuring. However, in this case we are where we are.

Let's see how other @WordPress/gutenberg-core team folks feel but it might be reasonable to introduce a deprecation notice and possibly retain an alias for __experimental during an extended deprecation period.

@getdave getdave requested a review from a team May 3, 2022 09:41
@youknowriad
Copy link
Contributor

Hi there! experimental APIs are not considered stable APIs and are documented as such. It's like @internal functions in PHP and these also can be changed/renamed AFAIK. https://developer.wordpress.org/block-editor/contributors/code/coding-guidelines/#experimental-and-unstable-apis

So in that sense, there's no difference between how we approached things in Gutenberg and existing practices pre-gutenberg in Core.

We also did similar renames a lot of times in the past (a quick search in the PR list can show these) which much impact.

It is true that plugin and theme authors that want to use internal functions are using these and this won't change in the future regardless of what we do. and it's also not something new with Gutenberg as I said before.

For me, I still think we should continue the current approach, it has proved to be good in reducing the impact, communicating things properly to the third-party developers and allowing us to only expose things as stable when we're ready to commit to them long term in terms of backward compatibility. (outside core internal usage).

--
That said, I agree with @Clorith that we should consider any "stabilization" separately and avoid a general rule. If this particular API is something that folks are relying on heavily, we could add a quick deprecation. I don't advise against deprecations for all experimental APIs as it would create a lot of bloat in our code base for no big added value for third-party developers.

@getdave
Copy link
Contributor Author

getdave commented May 4, 2022

-- That said, I agree with @Clorith that we should consider any "stabilization" separately and avoid a general rule. If this particular API is something that folks are relying on heavily, we could add a quick deprecation.

I understand you are saying that we should

  • add a deprecation notice for the __experimental API
  • rename the API to stable
  • leave an alias in place for now for the __experimental API so it continues to function until the end of the deprecation period

That would seem to cause the least impact. Given how prevalent the usage of this API is I agree we should treat it as a special case.

I don't advise against deprecations for all experimental APIs as it would create a lot of bloat in our code base for no big added value for third-party developers.

Agreed. But as you say in certain cases it might be necessary.

@getdave getdave requested a review from annezazu May 4, 2022 08:22
@youknowriad
Copy link
Contributor

On a second look to the wp-directory results. I think most of the results are false positives:

  • MailPoet is bundling Gutenberg (so includes its code)
  • Gutenberg (ok)
  • Pretty Links (it's a map file so not actual code)
  • Kubio and Email Marketting suggestions: I think it's not used at all (probably a copy/paste) or they're bundling a Gutenberg component as well (to confirm)

Anyway, I don't really think this API is that impactful (I don't see it as an important one for third-parties either). It's probably better if we just contact these plugins to confirm that it's false positives. We've done this in the past. cc @annezazu

@getdave
Copy link
Contributor Author

getdave commented May 4, 2022

FYI I think some of these instances could be based on using https://github.com/Automattic/isolated-block-editor/ as a base.

I've contacted them and they've raised Automattic/isolated-block-editor#135.

If we're not concerned then an alternative approach could be:

  • promote the API without adding a deprecation
  • ship in upcoming Gutenberg release
  • prepare a followup PR ready to go (we could ship in a point release) just in case there are knock on effects reported

I wonder if @annezazu can reach out a bit and help identify the potential impact?

The other side of the coin is, if there is a level of uncertainty about the impact, perhaps we should just add the deprecation anyway. If we're worried about bloat, we can just tidy up after ourselves once the deprecation period has ended as we did recently with Navigation Areas.

@annezazu
Copy link
Contributor

annezazu commented May 4, 2022

I'm on it :) Contacted the following folks today and linked to this issue for good measure:

  • Pretty Links
  • Email Marketing Automation, Email Newsletter and CRM Plugin for WordPress by FluentCRM
  • Kubio Page Builder

I'll loop back if I hear from them to confirm but, for now, consider proactive outreach done.

Copy link
Contributor

@adamziel adamziel left a comment

Choose a reason for hiding this comment

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

I'm approving since it works and is consistent with Gutenberg __experimental policy. That's separate from handling the communication. A quick WP directory search by __experimentalFetchLinkSuggestions revealed the following plugins:

  • MailPoet – emails and newsletters in WordPress
  • Gutenberg
  • Pretty Links – Link Management, Branding, Tracking & Sharing Plugin
  • Email Marketing Automation, Email Newsletter and CRM Plugin for WordPress by FluentCRM
  • Kubio Page Builder
  • Friends
  • Gartentechnik.com
  • Booking Weir

@annezazu
Copy link
Contributor

annezazu commented May 12, 2022

Quick note for transparency that MailPoet is part of Automattic where I work (along with you) and they too have been contacted by @getdave previously. I left them off my above list for that reason but it feels important to clarify that they have been reached out to.

johngodley pushed a commit to Automattic/isolated-block-editor that referenced this pull request May 17, 2022
@getdave
Copy link
Contributor Author

getdave commented May 18, 2022

@youknowriad @adamziel I'm going to flag this once more in Core Editor chat this week and then look to merge.

@getdave
Copy link
Contributor Author

getdave commented May 18, 2022

Here is where I flagged it again

https://wordpress.slack.com/archives/C02QB2JS7/p1652884611338199

Unless anyone else objects or ✋ then I will merge this before the end of the week.

@peterwilsoncc
Copy link
Contributor

I share @Clorith's concern.

A sudden, hard deprecation of this in WordPress will break a lot of sites and the WordPress commitment to maintain backward compatibility.

As the conversation about making the block-editor less experimental is ongoing, I think it would be provocative to hard deprecate prior to the resolution.

Given the outreach to larger plugins in the plugin directory, of course the usage in the public code is going down but that's not indicative of custom themes, plugins, etc.

Copy link
Contributor

@peterwilsoncc peterwilsoncc left a comment

Choose a reason for hiding this comment

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

Marking this with a change request per my comment above.

I've created a PR with said changes: #41183.

@getdave
Copy link
Contributor Author

getdave commented Jun 30, 2022

Closing this one.

@getdave getdave closed this Jun 30, 2022
@youknowriad youknowriad deleted the try/make-fetch-link-suggestions-non-experimental branch September 7, 2022 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Package] Core data /packages/core-data [Type] Code Quality Issues or PRs that relate to code quality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants