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

Audit Experimental APIs #17743

Closed
youknowriad opened this issue Oct 3, 2019 · 12 comments
Closed

Audit Experimental APIs #17743

youknowriad opened this issue Oct 3, 2019 · 12 comments
Labels
[Feature] Extensibility The ability to extend blocks or the editing experience [Type] Task Issues or PRs that have been broken down into an individual action to take

Comments

@youknowriad
Copy link
Contributor

Over time and to avoid the locks of backward compatibility, we added a number of experimental APIs. We should take some time to audit all of these, remove or mark unstable the ones that we think are not going to be public APIs, and potentially stabilize the ones that we're confident about.

@youknowriad youknowriad added [Type] Task Issues or PRs that have been broken down into an individual action to take [Feature] Extensibility The ability to extend blocks or the editing experience labels Oct 3, 2019
@gziolo
Copy link
Member

gziolo commented Oct 20, 2019

There was this idea to build a tool which list all the experimental APIs: #15754.

@gziolo
Copy link
Member

gziolo commented Oct 21, 2019

Quick scan with PhpStorm:
Screen Shot 2019-10-21 at 10 39 18

Targets
    Occurrences of '__unstable' in Directory /Users/gziolo/PhpstormProjects/gutenberg with mask '*.js'
Found Occurrences  (191 usages found)
    Unclassified occurrence  (178 usages found)
        gutenberg  (178 usages found)
            packages/block-editor/src/components  (2 usages found)
                index.js  (1 usage found)
                    34 __unstableRichTextInputEvent,
                index.native.js  (1 usage found)
                    17 __unstableRichTextInputEvent,
            packages/block-editor/src/components/block-list  (6 usages found)
                block.js  (4 usages found)
                    625 __unstableGetBlockWithoutInnerBlocks,
                    628 const block = __unstableGetBlockWithoutInnerBlocks( clientId );
                    689 __unstableMarkLastChangeAsPersistent,
                    747 __unstableMarkLastChangeAsPersistent();
                block.native.js  (2 usages found)
                    171 __unstableGetBlockWithoutInnerBlocks,
                    181 const block = __unstableGetBlockWithoutInnerBlocks( clientId );
            packages/block-editor/src/components/caption  (1 usage found)
                index.native.js  (1 usage found)
                    28 __unstableMobileNoFocusOnMount
            packages/block-editor/src/components/provider  (2 usages found)
                index.js  (2 usages found)
                    87 __unstableIsLastBlockChangeIgnored,
                    105 __unstableIsLastBlockChangeIgnored()
            packages/block-editor/src/components/rich-text  (43 usages found)
                index.js  (22 usages found)
                    16 __unstableCreateElement,
                    18 __unstableIsEmptyLine as isEmptyLine,
                    20 __unstableInsertLineSeparator as insertLineSeparator,
                    134 __unstableEmbedURLOnPaste,
                    160 __unstableEmbedURLOnPaste &&
                    207 __unstableOnSplitMiddle: onSplitMiddle,
                    389 __unstableCreateElement( document, newValue ).childNodes
                    413 __unstableIsSelected={ originalIsSelected }
                    414 __unstableInputRule={ this.inputRule }
                    415 __unstableMultilineTag={ multilineTag }
                    416 __unstableIsCaretWithinFormattedText={ isCaretWithinFormattedText }
                    417 __unstableOnEnterFormattedText={ onEnterFormattedText }
                    418 __unstableOnExitFormattedText={ onExitFormattedText }
                    419 __unstableOnCreateUndoLevel={ onCreateUndoLevel }
                    420 __unstableMarkAutomaticChange={ markAutomaticChange }
                    421 __unstableDidAutomaticChange={ didAutomaticChange }
                    422 __unstableUndo={ undo }
                    527 __unstableMarkLastChangeAsPersistent,
                    531 __unstableMarkAutomaticChange,
                    536 onCreateUndoLevel: __unstableMarkLastChangeAsPersistent,
                    542 markAutomaticChange: __unstableMarkAutomaticChange,
                    585 export { __unstableRichTextInputEvent } from './input-event';
                index.native.js  (19 usages found)
                    69 __unstableIsSelected={ originalIsSelected }
                    72 __unstablePasteHandler={ pasteHandler }
                    73 __unstableAutocomplete={ Autocomplete }
                    74 __unstableAutocompleters={ autocompleters }
                    75 __unstableOnReplace={ onReplace }
                    76 __unstableOnRemove={ onRemove }
                    77 __unstableOnMerge={ onMerge }
                    78 __unstableOnSplit={ onSplit }
                    79 __unstableMultiline={ multiline }
                    80 __unstableIsCaretWithinFormattedText={ isCaretWithinFormattedText }
                    81 __unstableOnEnterFormattedText={ onEnterFormattedText }
                    82 __unstableOnExitFormattedText={ onExitFormattedText }
                    83 __unstableCanUserUseUnfilteredHTML={ canUserUseUnfilteredHTML }
                    84 __unstableOnCreateUndoLevel={ onCreateUndoLevel }
                    120 __unstableGetBlockWithoutInnerBlocks,
                    136 const block = clientId && __unstableGetBlockWithoutInnerBlocks( clientId );
                    154 __unstableMarkLastChangeAsPersistent,
                    159 onCreateUndoLevel: __unstableMarkLastChangeAsPersistent,
                    213 export { __unstableRichTextInputEvent } from './input-event';
                input-event.js  (1 usage found)
                    6 export class __unstableRichTextInputEvent extends Component {
                input-event.native.js  (1 usage found)
                    6 export class __unstableRichTextInputEvent extends Component {
            packages/block-editor/src/store  (7 usages found)
                actions.js  (3 usages found)
                    736 export function __unstableSaveReusableBlock( id, updatedId ) {
                    749 export function __unstableMarkLastChangeAsPersistent() {
                    763 export function __unstableMarkAutomaticChange() {
                effects.js  (2 usages found)
                    107 __unstableMultilineWrapperTags: multilineWrapperTags,
                    145 __unstableMultilineWrapperTags: multilineWrapperTags,
                selectors.js  (2 usages found)
                    149 export const __unstableGetBlockWithoutInnerBlocks = createSelector(
                    1357 export function __unstableIsLastBlockChangeIgnored( state ) {
            packages/block-library/src/heading  (3 usages found)
                heading-level-icon.js  (2 usages found)
                    6 export default function HeadingLevelIcon( { level, __unstableActive } ) {
                    20 <SVG width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" __unstableActive={ __unstableActive } >
                heading-toolbar.js  (1 usage found)
                    22 icon: <HeadingLevelIcon level={ targetLevel } __unstableActive={ isActive } />,
            packages/block-library/src/list  (6 usages found)
                edit.js  (6 usages found)
                    15 __unstableIndentListItems as indentListItems,
                    16 __unstableOutdentListItems as outdentListItems,
                    17 __unstableChangeListType as changeListType,
                    18 __unstableIsListRootSelected as isListRootSelected,
                    19 __unstableIsActiveListType as isActiveListType,
                    128 __unstableOnSplitMiddle={ () => createBlock( 'core/paragraph' ) }
            packages/block-library/src/paragraph  (1 usage found)
                edit.js  (1 usage found)
                    198 __unstableEmbedURLOnPaste
            packages/block-library/src/quote  (2 usages found)
                edit.js  (2 usages found)
                    59 __unstableOnSplitMiddle={ () =>
                    72 __unstableMobileNoFocusOnMount
            packages/components/src/button  (1 usage found)
                index.native.js  (1 usage found)
                    96 return child ? cloneElement( child, { colorScheme: props.preferredColorScheme, __unstableActive: ariaPressed } ) : child;
            packages/components/src/notice  (2 usages found)
                index.js  (2 usages found)
                    25 __unstableHTML,
                    31 if ( __unstableHTML ) {
            packages/components/src/primitives/svg  (1 usage found)
                index.native.js  (1 usage found)
                    22 const defaultStyle = props.__unstableActive ? styles[ 'is-active' ] : styles[ 'components-toolbar__control-' + colorScheme ];
            packages/core-data/src  (1 usage found)
                actions.js  (1 usage found)
                    226 export function __unstableCreateUndoLevel() {
            packages/data/src/namespace-store  (6 usages found)
                index.js  (6 usages found)
                    72 store.__unstableOriginalGetState = store.getState;
                    73 store.getState = () => store.__unstableOriginalGetState().root;
                    78 let lastState = store.__unstableOriginalGetState();
                    80 const state = store.__unstableOriginalGetState();
                    170 args[ 0 ] = store.__unstableOriginalGetState();
                    229 const { metadata } = store.__unstableOriginalGetState();
            packages/data/src/plugins/persistence  (1 usage found)
                index.js  (1 usage found)
                    210 persistencePlugin.__unstableMigrate = ( pluginOptions ) => {
            packages/edit-post/src/components/admin-notices  (1 usage found)
                index.js  (1 usage found)
                    87 __unstableHTML: true,
            packages/edit-post/src/components/admin-notices/test  (2 usages found)
                index.js  (2 usages found)
                    44 __unstableHTML: true,
                    53 __unstableHTML: true,
            packages/edit-post/src/components/layout  (1 usage found)
                index.native.js  (1 usage found)
                    142 __unstableIsEditorReady: isEditorReady,
            packages/editor/src/components  (4 usages found)
                deprecated.js  (2 usages found)
                    44 __unstableRichTextInputEvent as __unstableRootRichTextInputEvent,
                    128 export const __unstableRichTextInputEvent = deprecateComponent( '__unstableRichTextInputEvent', __unstableRootRichTextInputEvent );
                deprecated.native.js  (2 usages found)
                    20 __unstableRichTextInputEvent,
                    42 __unstableRichTextInputEvent,
            packages/editor/src/components/post-title  (2 usages found)
                index.native.js  (2 usages found)
                    92 __unstablePasteHandler={ pasteHandler }
                    93 __unstableIsSelected={ this.props.isSelected }
            packages/editor/src/components/provider  (4 usages found)
                index.js  (2 usages found)
                    213 __unstableIsEditorReady: isEditorReady,
                    251 __unstableShouldCreateUndoLevel: false,
                index.native.js  (2 usages found)
                    163 __unstableIsEditorReady: isEditorReady,
                    216 __unstableShouldCreateUndoLevel: false,
            packages/editor/src/store  (4 usages found)
                actions.js  (2 usages found)
                    62 yield resetEditorBlocks( blocks, { __unstableShouldCreateUndoLevel: false } );
                    650 if ( options.__unstableShouldCreateUndoLevel !== false ) {
                selectors.js  (2 usages found)
                    1201 export function __unstableIsEditorReady( state ) {
                    1258 export const __unstableGetBlockWithoutInnerBlocks = getBlockEditorSelector( '__unstableGetBlockWithoutInnerBlocks' );
            packages/editor/src/store/effects  (1 usage found)
                reusable-blocks.js  (1 usage found)
                    130 dataDispatch( 'core/block-editor' ).__unstableSaveReusableBlock( id, updatedReusableBlock.id );
            packages/escape-html/src  (3 usages found)
                escape-greater.js  (1 usage found)
                    13 export default function __unstableEscapeGreaterThan( value ) {
                index.js  (2 usages found)
                    4 import __unstableEscapeGreaterThan from './escape-greater';
                    80 return __unstableEscapeGreaterThan( escapeQuotationMark( escapeAmpersand( value ) ) );
            packages/escape-html/src/test  (2 usages found)
                index.js  (2 usages found)
                    12 import __unstableEscapeGreaterThan from '../escape-greater';
                    58 testUnstableEscapeGreaterThan( __unstableEscapeGreaterThan );
            packages/format-library/src/bold  (2 usages found)
                index.js  (2 usages found)
                    6 import { RichTextToolbarButton, RichTextShortcut, __unstableRichTextInputEvent } from '@wordpress/block-editor';
                    35 <__unstableRichTextInputEvent
            packages/format-library/src/code  (1 usage found)
                index.js  (1 usage found)
                    16 __unstableInputRule( value ) {
            packages/format-library/src/italic  (2 usages found)
                index.js  (2 usages found)
                    6 import { RichTextToolbarButton, RichTextShortcut, __unstableRichTextInputEvent } from '@wordpress/block-editor';
                    35 <__unstableRichTextInputEvent
            packages/format-library/src/link  (1 usage found)
                index.js  (1 usage found)
                    35 __unstablePasteRule( value, { html, plainText } ) {
            packages/format-library/src/underline  (2 usages found)
                index.js  (2 usages found)
                    6 import { RichTextShortcut, __unstableRichTextInputEvent } from '@wordpress/block-editor';
                    36 <__unstableRichTextInputEvent
            packages/notices/src/store  (2 usages found)
                actions.js  (2 usages found)
                    41 __unstableHTML,
                    64 __unstableHTML,
            packages/notices/src/store/test  (2 usages found)
                actions.js  (2 usages found)
                    99 __unstableHTML: true,
                    112 __unstableHTML: true,
            packages/rich-text/src  (14 usages found)
                create.js  (1 usage found)
                    143 __unstableIsEditableTree: isEditableTree,
                index.js  (11 usages found)
                    12 export { isListRootSelected as __unstableIsListRootSelected } from './is-list-root-selected';
                    13 export { isActiveListType as __unstableIsActiveListType } from './is-active-list-type';
                    15 export { isEmpty, isEmptyLine as __unstableIsEmptyLine } from './is-empty';
                    22 export { insertLineSeparator as __unstableInsertLineSeparator } from './insert-line-separator';
                    23 export { removeLineSeparator as __unstableRemoveLineSeparator } from './remove-line-separator';
                    27 export { toDom as __unstableToDom } from './to-dom';
                    32 export { indentListItems as __unstableIndentListItems } from './indent-list-items';
                    33 export { outdentListItems as __unstableOutdentListItems } from './outdent-list-items';
                    34 export { changeListType as __unstableChangeListType } from './change-list-type';
                    35 export { createElement as __unstableCreateElement } from './create-element';
                    38 export { default as __unstableFormatEdit } from './component/format-edit';
                to-dom.js  (2 usages found)
                    176 __unstableDomOnly,
                    189 if ( value.start !== undefined && ! __unstableDomOnly ) {
            packages/rich-text/src/component  (43 usages found)
                index.js  (26 usages found)
                    175 const { __unstableMultilineTag: multilineTag, forwardedRef } = this.props;
                    184 __unstableIsEditableTree: true,
                    189 const { __unstableMultilineTag: multilineTag, forwardedRef } = this.props;
                    197 __unstableDomOnly: domOnly,
                    246 const transformed = formatTypes.reduce( ( accumlator, { __unstablePasteRule } ) => {
                    248 if ( __unstablePasteRule && accumlator === record ) {
                    249 accumlator = __unstablePasteRule( record, { html, plainText } );
                    392 __unstableInputRule: inputRule,
                    393 __unstableMarkAutomaticChange: markAutomaticChange,
                    412 const transformed = formatTypes.reduce( ( accumlator, { __unstableInputRule } ) => {
                    413 if ( __unstableInputRule ) {
                    414 accumlator = __unstableInputRule( accumlator );
                    445 ! this.props.__unstableIsSelected
                    481 __unstableIsCaretWithinFormattedText: isCaretWithinFormattedText,
                    482 __unstableOnEnterFormattedText: onEnterFormattedText,
                    483 __unstableOnExitFormattedText: onExitFormattedText,
                    572 this.props.__unstableOnCreateUndoLevel();
                    591 if ( this.props.__unstableDidAutomaticChange ) {
                    593 this.props.__unstableUndo();
                    601 const { onDelete, __unstableMultilineTag: multilineTag } = this.props;
                    669 const { tagName, __unstableMultilineTag: multilineTag } = this.props;
                    837 __unstableIsSelected: isSelected,
                    893 const { format, __unstableMultilineTag: multilineTag } = this.props;
                    912 const { __unstableMultilineTag: multilineTag } = this.props;
                    949 const { format, __unstableMultilineTag: multilineTag } = this.props;
                    1009 __unstableIsSelected: isSelected,
                index.native.js  (17 usages found)
                    75 constructor( { value, __unstableMultiline: multiline, selectionStart, selectionEnd } ) {
                    183 __unstableOnReplace: onReplace,
                    184 __unstableOnSplit: onSplit,
                    185 __unstableOnSplitMiddle: onSplitMiddle,
                    270 const { __unstableOnCreateUndoLevel: onCreateUndoLevel } = this.props;
                    355 __unstableOnReplace: onReplace,
                    356 __unstableOnSplit: onSplit,
                    389 __unstableOnMerge: onMerge,
                    390 __unstableOnRemove: onRemove,
                    448 __unstablePasteHandler: pasteHandler,
                    449 __unstableOnReplace: onReplace,
                    450 __unstableOnSplit: onSplit,
                    693 nextProps.__unstableIsSelected ) {
                    707 if ( this.props.blockIsSelected && ! this.props.__unstableMobileNoFocusOnMount ) {
                    725 __unstableIsSelected: isSelected,
                    729 __unstableIsSelected: prevIsSelected,
                    777 __unstableIsSelected: isSelected,
    Usage in comments  (7 usages found)
        gutenberg  (7 usages found)
            packages/block-editor/src/components/rich-text  (2 usages found)
                index.native.js  (2 usages found)
                    70 //__unstablePatterns={ getPatterns() }
                    71 //__unstableEnterPatterns={ getEnterPatterns() }
            packages/editor/src/store  (1 usage found)
                selectors.js  (1 usage found)
                    1256 * @see __unstableGetBlockWithoutInnerBlocks in core/block-editor store.
            packages/escape-html/src  (2 usages found)
                escape-greater.js  (1 usage found)
                    5 * necessary for `__unstableEscapeGreaterThan` to exist.
                index.js  (1 usage found)
                    71 * necessary for `__unstableEscapeGreaterThan` to be used.
            packages/notices/src/store  (1 usage found)
                selectors.js  (1 usage found)
                    25 * @property {string}  __unstableHTML   Notice message as raw HTML. Intended to
            packages/rich-text/src/component  (1 usage found)
                index.native.js  (1 usage found)
                    705 //  inputbox by searching the DOM. We don't have the DOM in RN so, using the combination of blockIsSelected and __unstableMobileNoFocusOnMount
    Usage in string constants  (6 usages found)
        gutenberg  (6 usages found)
            packages/components/src/primitives/svg  (1 usage found)
                index.js  (1 usage found)
                    27 return <svg { ...omit( appliedProps, '__unstableActive' ) } />;
            packages/editor/src/components  (1 usage found)
                deprecated.js  (1 usage found)
                    128 export const __unstableRichTextInputEvent = deprecateComponent( '__unstableRichTextInputEvent', __unstableRootRichTextInputEvent );
            packages/editor/src/store  (3 usages found)
                actions.js  (2 usages found)
                    287 yield dispatch( 'core/block-editor', '__unstableMarkLastChangeAsPersistent' );
                    658 '__unstableCreateUndoLevel',
                selectors.js  (1 usage found)
                    1258 export const __unstableGetBlockWithoutInnerBlocks = getBlockEditorSelector( '__unstableGetBlockWithoutInnerBlocks' );
            packages/editor/src/store/test  (1 usage found)
                actions.js  (1 usage found)
                    237 '__unstableMarkLastChangeAsPersistent'

@gziolo
Copy link
Member

gziolo commented Oct 21, 2019

Screen Shot 2019-10-21 at 10 42 28

Targets
    Occurrences of '__experimental' in Directory /Users/gziolo/PhpstormProjects/gutenberg with mask '*.js'
Found Occurrences  (267 usages found)
    Unclassified occurrence  (242 usages found)
        gutenberg  (242 usages found)
            packages/annotations/src/block  (1 usage found)
                index.js  (1 usage found)
                    15 const annotations = select( 'core/annotations' ).__experimentalGetAnnotationsForBlock( clientId );
            packages/annotations/src/format  (7 usages found)
                annotation.js  (7 usages found)
                    131 __experimentalGetPropsForEditableTreePreparation( select, { richTextIdentifier, blockClientId } ) {
                    133 annotations: select( STORE_KEY ).__experimentalGetAnnotationsForRichText( blockClientId, richTextIdentifier ),
                    136 __experimentalCreatePrepareEditableTree( { annotations } ) {
                    147 __experimentalGetPropsForEditableTreeChangeHandler( dispatch ) {
                    149 removeAnnotation: dispatch( STORE_KEY ).__experimentalRemoveAnnotation,
                    150 updateAnnotationRange: dispatch( STORE_KEY ).__experimentalUpdateAnnotationRange,
                    153 __experimentalCreateOnChangeEditableValue( props ) {
            packages/annotations/src/store  (8 usages found)
                actions.js  (4 usages found)
                    28 export function __experimentalAddAnnotation( { blockClientId, richTextIdentifier = null, range = null, selector = 'range', source = 'default', id = uuid() } ) {
                    52 export function __experimentalRemoveAnnotation( annotationId ) {
                    68 export function __experimentalUpdateAnnotationRange( annotationId, start, end ) {
                    84 export function __experimentalRemoveAnnotationsBySource( source ) {
                selectors.js  (4 usages found)
                    26 export const __experimentalGetAnnotationsForBlock = createSelector(
                    37 export const __experimentalGetAllAnnotationsForBlock = function( state, blockClientId ) {
                    53 export const __experimentalGetAnnotationsForRichText = createSelector(
                    78 export function __experimentalGetAnnotations( state ) {
            packages/block-editor/src/components  (6 usages found)
                index.js  (6 usages found)
                    15 export { default as __experimentalBlockNavigationList } from './block-navigation/list';
                    20 export { default as __experimentalGradientPicker } from './gradient-picker';
                    21 export { default as __experimentalGradientPickerControl } from './gradient-picker/control';
                    45 export { default as __experimentalBlockSettingsMenuFirstItem } from './block-settings-menu/block-settings-menu-first-item';
                    46 export { default as __experimentalBlockSettingsMenuPluginsExtension } from './block-settings-menu/block-settings-menu-plugins-extension';
                    47 export { default as __experimentalInserterMenuExtension } from './inserter-menu-extension';
            packages/block-editor/src/components/block-list  (3 usages found)
                block-async-mode-provider.js  (1 usage found)
                    5 __experimentalAsyncModeProvider as AsyncModeProvider,
                block.native.js  (1 usage found)
                    186 const getAccessibilityLabelExtra = blockType.__experimentalGetAccessibilityLabel;
                index.js  (1 usage found)
                    20 __experimentalAsyncModeProvider as AsyncModeProvider,
            packages/block-editor/src/components/block-navigation  (1 usage found)
                list.js  (1 usage found)
                    29 const displayNameAttribute = blockType.__experimentalDisplayName;
            packages/block-editor/src/components/block-settings-menu  (10 usages found)
                block-settings-menu-first-item.js  (3 usages found)
                    6 const { Fill: __experimentalBlockSettingsMenuFirstItem, Slot } = createSlotFill( '__experimentalBlockSettingsMenuFirstItem' );
                    8 __experimentalBlockSettingsMenuFirstItem.Slot = Slot;
                    10 export default __experimentalBlockSettingsMenuFirstItem;
                block-settings-menu-plugins-extension.js  (3 usages found)
                    6 const { Fill: __experimentalBlockSettingsMenuPluginsExtension, Slot } = createSlotFill( '__experimentalBlockSettingsMenuPluginsExtension' );
                    8 __experimentalBlockSettingsMenuPluginsExtension.Slot = Slot;
                    10 export default __experimentalBlockSettingsMenuPluginsExtension;
                index.js  (4 usages found)
                    25 import __experimentalBlockSettingsMenuFirstItem from './block-settings-menu-first-item';
                    26 import __experimentalBlockSettingsMenuPluginsExtension from './block-settings-menu-plugins-extension';
                    59 <__experimentalBlockSettingsMenuFirstItem.Slot
                    108 <__experimentalBlockSettingsMenuPluginsExtension.Slot
            packages/block-editor/src/components/default-style-picker  (1 usage found)
                index.js  (1 usage found)
                    22 const preferredStyleVariations = settings.__experimentalPreferredStyleVariations;
            packages/block-editor/src/components/gradient-picker  (3 usages found)
                index.js  (3 usages found)
                    4 import { __experimentalGradientPicker } from '@wordpress/components';
                    12 <__experimentalGradientPicker
                    21 __experimentalGradientPicker :
            packages/block-editor/src/components/inner-blocks  (4 usages found)
                index.js  (3 usages found)
                    110 __experimentalTemplateOptions: templateOptions,
                    111 __experimentalOnSelectTemplateOption: onSelectTemplateOption,
                    112 __experimentalAllowTemplateOptionSkip: allowTemplateOptionSkip,
                index.native.js  (1 usage found)
                    110 __experimentalTemplateOptions: templateOptions,
            packages/block-editor/src/components/inserter  (4 usages found)
                menu.js  (4 usages found)
                    51 import __experimentalInserterMenuExtension from '../inserter-menu-extension';
                    365 <__experimentalInserterMenuExtension.Slot
                    384 </__experimentalInserterMenuExtension.Slot>
                    488 __experimentalFetchReusableBlocks: fetchReusableBlocks,
            packages/block-editor/src/components/inserter-menu-extension  (3 usages found)
                index.js  (3 usages found)
                    6 const { Fill: __experimentalInserterMenuExtension, Slot } = createSlotFill( '__experimentalInserterMenuExtension' );
                    8 __experimentalInserterMenuExtension.Slot = Slot;
                    10 export default __experimentalInserterMenuExtension;
            packages/block-editor/src/components/media-placeholder  (1 usage found)
                index.js  (1 usage found)
                    432 mediaUpload: getSettings().__experimentalMediaUpload,
            packages/block-editor/src/components/media-upload  (1 usage found)
                check.js  (1 usage found)
                    17 hasUploadPermissions: !! getSettings().__experimentalMediaUpload,
            packages/block-editor/src/components/rich-text  (4 usages found)
                index.js  (3 usages found)
                    15 __experimentalRichText as RichText,
                    502 const { __experimentalCanUserUseUnfilteredHTML } = getSettings();
                    513 canUserUseUnfilteredHTML: __experimentalCanUserUseUnfilteredHTML,
                index.native.js  (1 usage found)
                    14 import { __experimentalRichText as RichText } from '@wordpress/rich-text';
            packages/block-editor/src/components/url-input  (1 usage found)
                index.js  (1 usage found)
                    317 fetchLinkSuggestions: getSettings().__experimentalFetchLinkSuggestions,
            packages/block-editor/src/store  (7 usages found)
                defaults.js  (4 usages found)
                    151 __experimentalCanUserUseUnfilteredHTML: false,
                    152 __experimentalEnableLegacyWidgetBlock: false,
                    153 __experimentalEnableMenuBlock: false,
                    154 __experimentalBlockDirectory: false,
                selectors.js  (3 usages found)
                    1203 const referencedBlocks = __experimentalGetParsedReusableBlock( state, reusableBlock.id );
                    1331 export const __experimentalGetParsedReusableBlock = createSelector(
                    1375 export function __experimentalGetLastBlockAttributeChanges( state ) {
            packages/block-editor/src/store/test  (7 usages found)
                actions.js  (2 usages found)
                    372 __experimentalPreferredStyleVariations: {
                    448 __experimentalPreferredStyleVariations: {
                selectors.js  (5 usages found)
                    61 __experimentalGetLastBlockAttributeChanges,
                    1949 __experimentalReusableBlocks: [
                    2009 __experimentalReusableBlocks: [
                    2068 __experimentalReusableBlocks: [
                    2339 const result = __experimentalGetLastBlockAttributeChanges( state );
            packages/block-library/src  (5 usages found)
                index.js  (5 usages found)
                    165 export const __experimentalRegisterExperimentalCoreBlocks = process.env.GUTENBERG_PHASE === 2 ? ( settings ) => {
                    166 const { __experimentalEnableLegacyWidgetBlock, __experimentalEnableMenuBlock } = settings;
                    169 __experimentalEnableLegacyWidgetBlock ? legacyWidget : null,
                    170 __experimentalEnableMenuBlock ? navigationMenu : null,
                    171 __experimentalEnableMenuBlock ? navigationMenuItem : null,
            packages/block-library/src/audio  (2 usages found)
                edit.js  (2 usages found)
                    217 const { __experimentalMediaUpload } = getSettings();
                    219 mediaUpload: __experimentalMediaUpload,
            packages/block-library/src/block  (8 usages found)
                edit.js  (8 usages found)
                    160 __experimentalGetReusableBlock: getReusableBlock,
                    161 __experimentalIsFetchingReusableBlock: isFetchingReusableBlock,
                    162 __experimentalIsSavingReusableBlock: isSavingReusableBlock,
                    166 __experimentalGetParsedReusableBlock,
                    176 blocks: reusableBlock ? __experimentalGetParsedReusableBlock( reusableBlock.id ) : null,
                    183 __experimentalFetchReusableBlocks: fetchReusableBlocks,
                    184 __experimentalUpdateReusableBlock: updateReusableBlock,
                    185 __experimentalSaveReusableBlock: saveReusableBlock,
            packages/block-library/src/button  (2 usages found)
                edit.js  (2 usages found)
                    32 __experimentalGradientPickerControl,
                    199 <__experimentalGradientPickerControl
            packages/block-library/src/columns  (3 usages found)
                edit.js  (3 usages found)
                    168 __experimentalTemplateOptions={ TEMPLATE_OPTIONS }
                    169 __experimentalOnSelectTemplateOption={ ( nextTemplate ) => {
                    177 __experimentalAllowTemplateOptionSkip
            packages/block-library/src/file  (2 usages found)
                edit.js  (2 usages found)
                    260 const { __experimentalMediaUpload } = getSettings();
                    264 mediaUpload: __experimentalMediaUpload,
            packages/block-library/src/gallery  (2 usages found)
                edit.js  (2 usages found)
                    383 __experimentalMediaUpload,
                    387 mediaUpload: __experimentalMediaUpload,
            packages/block-library/src/group  (1 usage found)
                index.js  (1 usage found)
                    91 __experimentalConvert( blocks ) {
            packages/block-library/src/heading  (1 usage found)
                index.native.js  (1 usage found)
                    21 __experimentalGetAccessibilityLabel( attributes ) {
            packages/block-library/src/image  (3 usages found)
                edit.js  (2 usages found)
                    935 __experimentalMediaUpload,
                    946 mediaUpload: __experimentalMediaUpload,
                index.native.js  (1 usage found)
                    15 __experimentalGetAccessibilityLabel( attributes ) {
            packages/block-library/src/latest-posts  (2 usages found)
                edit.js  (2 usages found)
                    24 import { dateI18n, format, __experimentalGetSettings } from '@wordpress/date';
                    176 const dateFormat = __experimentalGetSettings().formats.date;
            packages/block-library/src/missing  (1 usage found)
                index.native.js  (1 usage found)
                    15 __experimentalGetAccessibilityLabel( attributes ) {
            packages/block-library/src/more  (1 usage found)
                index.native.js  (1 usage found)
                    10 __experimentalGetAccessibilityLabel( attributes ) {
            packages/block-library/src/navigation-menu  (2 usages found)
                use-block-navigator.js  (2 usages found)
                    12 __experimentalBlockNavigationList,
                    67 <__experimentalBlockNavigationList
            packages/block-library/src/navigation-menu-item  (1 usage found)
                index.js  (1 usage found)
                    25 __experimentalDisplayName: 'label',
            packages/block-library/src/paragraph  (1 usage found)
                index.native.js  (1 usage found)
                    21 __experimentalGetAccessibilityLabel( attributes ) {
            packages/block-library/src/video  (2 usages found)
                edit.js  (2 usages found)
                    322 const { __experimentalMediaUpload } = getSettings();
                    324 mediaUpload: __experimentalMediaUpload,
            packages/blocks/src/api  (2 usages found)
                factory.js  (2 usages found)
                    409 transformationResults = transformation.__experimentalConvert( blocksArray );
                    417 transformationResults = transformation.__experimentalConvert( firstBlock );
            packages/blocks/src/api/test  (2 usages found)
                factory.js  (2 usages found)
                    1317 __experimentalConvert( blocks ) {
                    1368 __experimentalConvert: convertSpy,
            packages/components/src  (1 usage found)
                index.js  (1 usage found)
                    28 export { default as __experimentalGradientPicker } from './gradient-picker';
            packages/data/src  (1 usage found)
                index.js  (1 usage found)
                    23 AsyncModeProvider as __experimentalAsyncModeProvider,
            packages/date/src  (1 usage found)
                index.js  (1 usage found)
                    91 export function __experimentalGetSettings() {
            packages/date/src/test  (4 usages found)
                index.js  (4 usages found)
                    4 import { isInTheFuture, getDate, setSettings, __experimentalGetSettings } from '../';
                    22 const settings = __experimentalGetSettings();
                    44 const settings = __experimentalGetSettings();
                    60 const newSettings = __experimentalGetSettings();
            packages/e2e-tests/plugins/custom-grouping-block  (1 usage found)
                index.js  (1 usage found)
                    18 __experimentalConvert( blocks ) {
            packages/e2e-tests/plugins/plugins-api  (2 usages found)
                annotations-sidebar.js  (2 usages found)
                    64 dispatch( 'core/annotations' ).__experimentalAddAnnotation( {
                    82 dispatch( 'core/annotations' ).__experimentalRemoveAnnotationsBySource( 'e2e-tests' );
            packages/e2e-tests/specs/editor/various  (6 usages found)
                autosave.test.js  (5 usages found)
                    49 .__experimentalUpdateLocalAutosaveInterval( _value );
                    99 await page.evaluate( () => window.wp.data.dispatch( 'core/editor' ).__experimentalLocalAutosave() );
                    163 await page.evaluate( () => window.wp.data.dispatch( 'core/editor' ).__experimentalLocalAutosave() );
                    177 await page.evaluate( () => window.wp.data.dispatch( 'core/editor' ).__experimentalLocalAutosave() );
                    201 await page.evaluate( () => window.wp.data.dispatch( 'core/editor' ).__experimentalLocalAutosave() );
                change-detection.test.js  (1 usage found)
                    322 await page.evaluate( () => window.wp.data.dispatch( 'core/editor' ).__experimentalReceiveReusableBlocks( [] ) );
            packages/edit-post/src  (8 usages found)
                editor.js  (6 usages found)
                    45 __experimentalLocalAutosaveInterval,
                    50 __experimentalPreferredStyleVariations: {
                    57 __experimentalLocalAutosaveInterval,
                    92 __experimentalLocalAutosaveInterval,
                    110 __experimentalLocalAutosaveInterval,
                    155 __experimentalLocalAutosaveInterval: getPreference( 'localAutosaveInterval' ),
                index.js  (2 usages found)
                    10 import { registerCoreBlocks, __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';
                    70 __experimentalRegisterExperimentalCoreBlocks( settings );
            packages/edit-post/src/components/visual-editor  (6 usages found)
                index.js  (6 usages found)
                    16 __experimentalBlockSettingsMenuFirstItem,
                    17 __experimentalBlockSettingsMenuPluginsExtension,
                    41 <__experimentalBlockSettingsMenuFirstItem>
                    43 </__experimentalBlockSettingsMenuFirstItem>
                    44 <__experimentalBlockSettingsMenuPluginsExtension>
                    46 </__experimentalBlockSettingsMenuPluginsExtension>
            packages/edit-post/src/store  (1 usage found)
                actions.js  (1 usage found)
                    199 export function __experimentalUpdateLocalAutosaveInterval( interval ) {
            packages/edit-widgets/src  (3 usages found)
                index.js  (3 usages found)
                    6 import { registerCoreBlocks, __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';
                    24 __experimentalRegisterExperimentalCoreBlocks( settings );
                    43 __experimentalRegisterExperimentalCoreBlocks( settings );
            packages/edit-widgets/src/components/widget-area  (1 usage found)
                index.js  (1 usage found)
                    45 __experimentalMediaUpload: mediaUploadBlockEditor,
            packages/editor/src/components/autocompleters  (1 usage found)
                block.js  (1 usage found)
                    65 dispatch( 'core/editor' ).__experimentalFetchReusableBlocks();
            packages/editor/src/components/convert-to-group-buttons  (3 usages found)
                index.js  (3 usages found)
                    5 import { __experimentalBlockSettingsMenuPluginsExtension } from '@wordpress/block-editor';
                    15 <__experimentalBlockSettingsMenuPluginsExtension>
                    24 </__experimentalBlockSettingsMenuPluginsExtension>
            packages/editor/src/components/inserter-menu-downloadable-blocks-panel  (3 usages found)
                index.js  (3 usages found)
                    9 import { __experimentalInserterMenuExtension } from '@wordpress/block-editor';
                    19 <__experimentalInserterMenuExtension>
                    40 </__experimentalInserterMenuExtension>
            packages/editor/src/components/local-autosave-monitor  (3 usages found)
                index.js  (3 usages found)
                    143 const { __experimentalLocalAutosave } = useDispatch( 'core/editor' );
                    145 requestIdleCallback( __experimentalLocalAutosave );
                    152 .getEditorSettings().__experimentalLocalAutosaveInterval,
            packages/editor/src/components/post-schedule  (4 usages found)
                index.js  (2 usages found)
                    4 import { __experimentalGetSettings } from '@wordpress/date';
                    10 const settings = __experimentalGetSettings();
                label.js  (2 usages found)
                    5 import { dateI18n, __experimentalGetSettings } from '@wordpress/date';
                    9 const settings = __experimentalGetSettings();
            packages/editor/src/components/post-title  (1 usage found)
                index.native.js  (1 usage found)
                    11 import { __experimentalRichText as RichText } from '@wordpress/rich-text';
            packages/editor/src/components/provider  (9 usages found)
                index.js  (9 usages found)
                    114 __experimentalReusableBlocks: reusableBlocks,
                    115 __experimentalMediaUpload: hasUploadPermissions ? mediaUpload : undefined,
                    116 __experimentalFetchLinkSuggestions: fetchLinkSuggestions,
                    117 __experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,
                    201 { editorSettings.__experimentalBlockDirectory && <InserterMenuDownloadableBlocksPanel /> }
                    215 __experimentalGetReusableBlocks,
                    227 reusableBlocks: __experimentalGetReusableBlocks(),
                    238 __experimentalTearDownEditor,
                    254 tearDownEditor: __experimentalTearDownEditor,
            packages/editor/src/components/reusable-blocks-buttons  (8 usages found)
                index.js  (3 usages found)
                    4 import { __experimentalBlockSettingsMenuPluginsExtension } from '@wordpress/block-editor';
                    15 <__experimentalBlockSettingsMenuPluginsExtension>
                    30 </__experimentalBlockSettingsMenuPluginsExtension>
                reusable-block-convert-button.js  (3 usages found)
                    56 __experimentalGetReusableBlock: getReusableBlock,
                    96 __experimentalConvertBlockToReusable: convertBlockToReusable,
                    97 __experimentalConvertBlockToStatic: convertBlockToStatic,
                reusable-block-delete-button.js  (2 usages found)
                    36 const { __experimentalGetReusableBlock: getReusableBlock } = select( 'core/editor' );
                    50 __experimentalDeleteReusableBlock: deleteReusableBlock,
            packages/editor/src/store  (19 usages found)
                actions.js  (14 usages found)
                    81 export function __experimentalTearDownEditor() {
                    130 export function __experimentalRequestPostUpdateStart( options = {} ) {
                    144 export function __experimentalRequestPostUpdateFinish( options = {} ) {
                    211 export function __experimentalOptimisticUpdatePost( edits ) {
                    234 yield __experimentalRequestPostUpdateStart( options );
                    255 yield __experimentalRequestPostUpdateFinish( options );
                    380 export function* __experimentalLocalAutosave() {
                    446 export function __experimentalFetchReusableBlocks( id ) {
                    463 export function __experimentalReceiveReusableBlocks( results ) {
                    478 export function __experimentalSaveReusableBlock( id ) {
                    492 export function __experimentalDeleteReusableBlock( id ) {
                    508 export function __experimentalUpdateReusableBlock( id, changes ) {
                    524 export function __experimentalConvertBlockToStatic( clientId ) {
                    539 export function __experimentalConvertBlockToReusable( clientIds ) {
                selectors.js  (5 usages found)
                    895 export const __experimentalGetReusableBlock = createSelector(
                    923 export function __experimentalIsSavingReusableBlock( state, ref ) {
                    936 export function __experimentalIsFetchingReusableBlock( state, ref ) {
                    947 export const __experimentalGetReusableBlocks = createSelector(
                    951 ( value, ref ) => __experimentalGetReusableBlock( state, ref )
            packages/editor/src/store/effects  (3 usages found)
                reusable-blocks.js  (3 usages found)
                    27 __experimentalReceiveReusableBlocks as receiveReusableBlocksAction,
                    28 __experimentalSaveReusableBlock as saveReusableBlock,
                    31 __experimentalGetReusableBlock as getReusableBlock,
            packages/editor/src/store/effects/test  (6 usages found)
                reusable-blocks.js  (6 usages found)
                    28 __experimentalSaveReusableBlock as saveReusableBlock,
                    29 __experimentalDeleteReusableBlock as deleteReusableBlock,
                    30 __experimentalConvertBlockToReusable as convertBlockToReusableAction,
                    31 __experimentalConvertBlockToStatic as convertBlockToStaticAction,
                    32 __experimentalReceiveReusableBlocks as receiveReusableBlocksAction,
                    33 __experimentalFetchReusableBlocks as fetchReusableBlocksAction,
            packages/editor/src/store/test  (12 usages found)
                actions.js  (8 usages found)
                    478 const result = actions.__experimentalRequestPostUpdateStart();
                    528 const result = actions.__experimentalOptimisticUpdatePost( edits );
                    567 expect( actions.__experimentalFetchReusableBlocks() ).toEqual( {
                    573 expect( actions.__experimentalFetchReusableBlocks( 123 ) ).toEqual( {
                    582 expect( actions.__experimentalSaveReusableBlock( 123 ) ).toEqual( {
                    591 expect( actions.__experimentalDeleteReusableBlock( 123 ) ).toEqual( {
                    601 expect( actions.__experimentalConvertBlockToStatic( clientId ) ).toEqual( {
                    611 expect( actions.__experimentalConvertBlockToReusable( clientId ) ).toEqual( {
                selectors.js  (4 usages found)
                    150 __experimentalGetReusableBlock: getReusableBlock,
                    151 __experimentalIsSavingReusableBlock: isSavingReusableBlock,
                    152 __experimentalIsFetchingReusableBlock: isFetchingReusableBlock,
                    153 __experimentalGetReusableBlocks: getReusableBlocks,
            packages/rich-text/src  (13 usages found)
                create.js  (2 usages found)
                    66 formatType.__experimentalCreatePrepareEditableTree &&
                    67 ! formatType.__experimentalCreateOnChangeEditableValue
                index.js  (1 usage found)
                    37 export { default as __experimentalRichText } from './component';
                register-format-type.js  (9 usages found)
                    126 if ( settings.__experimentalCreatePrepareEditableTree ) {
                    149 if ( settings.__experimentalCreateOnChangeEditableValue ) {
                    151 settings.__experimentalCreatePrepareEditableTree(
                    156 settings.__experimentalCreateOnChangeEditableValue(
                    162 settings.__experimentalCreatePrepareEditableTree(
                    173 if ( settings.__experimentalGetPropsForEditableTreePreparation ) {
                    176 settings.__experimentalGetPropsForEditableTreePreparation( sel, {
                    185 if ( settings.__experimentalGetPropsForEditableTreeChangeHandler ) {
                    188 settings.__experimentalGetPropsForEditableTreeChangeHandler( disp, {
                unregister-format-type.js  (1 usage found)
                    25 if ( oldFormat.__experimentalCreatePrepareEditableTree ) {
            packages/rich-text/src/component  (1 usage found)
                index.js  (1 usage found)
                    934 if ( formatType.__experimentalCreatePrepareEditableTree ) {
            packages/rich-text/src/test/helpers  (3 usages found)
                index.js  (3 usages found)
                    701 __experimentalCreatePrepareEditableTree() {},
                    719 __experimentalCreatePrepareEditableTree() {},
                    720 __experimentalCreateOnChangeEditableValue() {},
            test/integration/full-content  (3 usages found)
                full-content.test.js  (3 usages found)
                    17 import { registerCoreBlocks, __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';
                    52 const settings = { __experimentalEnableLegacyWidgetBlock: true, __experimentalEnableMenuBlock: true };
                    57 __experimentalRegisterExperimentalCoreBlocks( settings );
    Usage in comments  (6 usages found)
        gutenberg  (6 usages found)
            packages/block-editor/src/store  (4 usages found)
                defaults.js  (4 usages found)
                    31 __experimentalCanUserUseUnfilteredHTML
                    32 *  __experimentalEnableLegacyWidgetBlock  boolean       Whether the user has enabled the Legacy Widget Block
                    33 *  __experimentalEnableMenuBlock          boolean       Whether the user has enabled the Menu Block
                    34 *  __experimentalBlockDirectory           boolean       Whether the user has enabled the Block Directory
            packages/block-library/src  (2 usages found)
                index.js  (2 usages found)
                    160 * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';
                    162 * __experimentalRegisterExperimentalCoreBlocks( settings );
    Usage in string constants  (19 usages found)
        gutenberg  (19 usages found)
            packages/block-directory/src/store  (4 usages found)
                actions.js  (2 usages found)
                    79 path: '__experimental/block-directory/install',
                    106 path: '__experimental/block-directory/uninstall',
                resolvers.js  (2 usages found)
                    21 path: `__experimental/block-directory/search?term=${ filterValue }`,
                    37 path: `__experimental/block-directory/search?term=`,
            packages/block-editor/src/components/block-settings-menu  (2 usages found)
                block-settings-menu-first-item.js  (1 usage found)
                    6 const { Fill: __experimentalBlockSettingsMenuFirstItem, Slot } = createSlotFill( '__experimentalBlockSettingsMenuFirstItem' );
                block-settings-menu-plugins-extension.js  (1 usage found)
                    6 const { Fill: __experimentalBlockSettingsMenuPluginsExtension, Slot } = createSlotFill( '__experimentalBlockSettingsMenuPluginsExtension' );
            packages/block-editor/src/components/inserter-menu-extension  (1 usage found)
                index.js  (1 usage found)
                    6 const { Fill: __experimentalInserterMenuExtension, Slot } = createSlotFill( '__experimentalInserterMenuExtension' );
            packages/block-editor/src/store  (2 usages found)
                actions.js  (1 usage found)
                    224 [ '__experimentalPreferredStyleVariations', 'value' ],
                selectors.js  (1 usage found)
                    1387 return get( state, [ 'settings', '__experimentalReusableBlocks' ], EMPTY_ARRAY );
            packages/block-editor/src/store/test  (1 usage found)
                selectors.js  (1 usage found)
                    2331 describe( '__experimentalGetLastBlockAttributeChanges', () => {
            packages/blocks/src/api  (2 usages found)
                factory.js  (2 usages found)
                    408 if ( has( transformation, '__experimentalConvert' ) ) {
                    416 } else if ( has( transformation, '__experimentalConvert' ) ) {
            packages/blocks/src/api/test  (2 usages found)
                factory.js  (2 usages found)
                    1305 it( 'should pass entire block object(s) to the "__experimentalConvert" method if defined', () => {
                    1347 it( 'should prefer "__experimentalConvert" method over "transform" method when running a transformation', () => {
            packages/core-data/src  (1 usage found)
                entities.js  (1 usage found)
                    18 { name: 'widgetArea', kind: 'root', baseURL: '/__experimental/widget-areas', plural: 'widgetAreas', transientEdits: { blocks: true } },
            packages/editor/src/components/provider  (4 usages found)
                index.js  (4 usages found)
                    90 '__experimentalPreferredStyleVariations',
                    109 '__experimentalEnableLegacyWidgetBlock',
                    110 '__experimentalEnableMenuBlock',
                    111 '__experimentalBlockDirectory',

@gziolo
Copy link
Member

gziolo commented Oct 21, 2019

There are some packages that we should probably clean up right way, see:

  • blocks
  • components
  • core-data
  • data
  • date
  • escape-html
  • notices

The number of changes required shouldn't be that big there and those are lower-level packages so it should be easier to make a decision.

Having a tool would help moving forward, we could reason what has changed between major releases. In addition, it would be easier to keep track of new unstable/experimental APIs introduced. There is #15754 proposed by @nosolosw which would work for everything that is exposed with the export statements. However, it might be harder to cover all props which aren't final.

@youknowriad
Copy link
Contributor Author

@aduth @nerrad @jorgefilipecosta @ellatrix @noisysocks @gziolo and others, if you worked on APIs that you think are worth considering stable, please consider opening a PR to propose it.

@gziolo
Copy link
Member

gziolo commented Oct 30, 2019

@aduth @nerrad @jorgefilipecosta @ellatrix @noisysocks @gziolo and others, if you worked on APIs that you think are worth considering stable, please consider opening a PR to propose it.

Sure thing.
I'll resume my work started in #17748 on __unstableActive introduced for SVG components next week.

In addition to that, I can explore what we can do about:

  • __experimentalBlockSettingsMenuFirstItem
  • __experimentalBlockSettingsMenuPluginsExtension
  • __experimentalInserterMenuExtension - this one is brand new so we might want to let it brew for a bit more

I know that the mobile team introduced __experimentalGetAccessibilityLabel, but I've seen PR from @talldan #18132 where he tries to reuse it with the web. I expect this to become a part of the official API for blocks.

@noisysocks
Copy link
Member

Could we put all of the experimental / unstable APIs into a spreadsheet and collaborate on deciding which ones we want to promote?

@mcsf
Copy link
Contributor

mcsf commented Nov 7, 2019

@koke, @pinarol, @hypest: anything from Mobile that should be listed here?

@pinarol
Copy link
Contributor

pinarol commented Nov 8, 2019

__experimentalGetAccessibilityLabel is introduced by mobile team. It is providing a description of the block for VoiceOver feature. If you think it brings value to both platforms we can make it official. I guess we only need to open a PR to remove the __experimental part, right? Is there any other thing we should do?

I don't have any other additions on that list.

@gziolo
Copy link
Member

gziolo commented Nov 8, 2019

__experimentalGetAccessibilityLabel is introduced by mobile team. It is providing a description of the block for VoiceOver feature. If you think it brings value to both platforms we can make it official. I guess we only need to open a PR to remove the __experimental part, right? Is there any other thing we should do?

It's part of the block definition so it should be included in JSDoc comments and developer docs. Ideally, it should be covered in the tutorials as well.

@pinarol
Copy link
Contributor

pinarol commented Nov 8, 2019

I know that the mobile team introduced __experimentalGetAccessibilityLabel, but I've seen PR from @talldan #18132 where he tries to reuse it with the web. I expect this to become a part of the official API for blocks.

I did a quick check on that PR and saw that actually there's a different case there, dropped a comment.

I've opened a new issue to track the effort for making __experimentalGetAccessibilityLabel stable.

@jorgefilipecosta
Copy link
Member

jorgefilipecosta commented Feb 8, 2020

There is a new issue to track the experimental API's in 5.4 #20116, I guess we can close this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Extensibility The ability to extend blocks or the editing experience [Type] Task Issues or PRs that have been broken down into an individual action to take
Projects
None yet
Development

No branches or pull requests

6 participants