-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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 for WP 6.2 #47196
Comments
I would like to understand what the procedure for From my perspective, the latter would be much preferred because several components have been experimental for a very long time and are so crucial that they have been used relatively widely. For example, the In order to prevent these kinds of things I'm 100% ob board with locking new introductions so they cannot get used before they are stable. But because weren't using this approach before there just are many components that are getting used relatively widely even when they shouldn't have been. |
@fabiankaegy the |
Definitely agree we should use API in #46131 to I'd personally be on board with then considering all pre-6.2 experimental APIs as "stable but discouraged". But not a strong opinion—I know it's a contentious issue 😅 Thinking that we should also reevaluate these posts. They don't seem to work—the list grows longer each release. Not sure what would work best. Perhaps assigning each experimental API an owner might work to remove any bystander effect. Or perhaps we don't need to audit experimental APIs at all. |
Sorry for the massive ping, but I've updated the description to pinpoint the new APIs for |
This component isn't publicly exported from the package yet so it should be fine. But I just realized that the readme isn't excluded from the public docs, so I'll get that fixed asap 🙊 |
Thanks @ntsekouras. I edited the issue to bury the unimportant stuff in a This is a much more manageable list. We should do it this way for future releases 🙂 |
Thanks for the ping @ntsekouras !
These are closely tied to the Layout block support which is also still an experimental API. I'm looking at stabilising it together with these smaller pieces soon, but I'm not sure it will be done in time for 6.2. |
Noting that this PR landed #46131 |
@tellthemachines should we rename the new ones to lose the prefix then? |
@ntsekouras not yet! There's still some work to do to make the layout API more usable before we stabilise it, and I think these functions shouldn't be stabilised before that as they might still change. |
I had a look at making these APIs private in #47375, but couldn't get the locking system working. Any advice on using the new API would be appreciated! |
@joshuatf how has this been working out for you? We need to make a call on whether to make it stable or make it harder to access for WordPress 6.2. |
I've opened up a PR to explore stabilising this one in #47475 — happy for feedback, though, as I was a little on the fence as to which way to go, but wound up leaning toward stabilising + documenting since it hasn't needed any changes over the past couple of months. |
Shouldn't these use the new locking system for experimental APIs, @tellthemachines? If they ship with the |
Quick question — does any of the work related to this issue require a dev note? If so, should the need be assessed on a PR-per-PR basis, or should we have just one dev note the whole bunch of changes? |
For locking new APIs that never made it into core, we don't need any dev note. For introducing new APIs we need dev notes. |
When we stabilize an existing API and rename it by removing the |
That's a good question. I'd need some feedback for this one. --cc @priethor @youknowriad |
Do we need a dev note about the lock()/unlock() api? I don’t think one makes sense - do you? |
They probably need a dev note. Even if there were a dev note for the |
The point of |
These are already in Core so I guess they technically are stable now 😅 |
I've made this |
I could do with some advice on what to do with #43986. It introduces the So how does one Note there are also some utilities (not selectors) that access that setting such as |
Howdy folks! In case it's useful, I wanted to share with you some Gutenberg
|
@getdave there's no systemic solution yet, but here's what you could do: export function hasBlockMetadataSupport( blockType, feature = '' ) {
+ if ( ! blockType.startsWith('core/') ) {
+ return false;
+ }
const support = getBlockSupport( blockType, '__experimentalMetadata' );
return !! ( true === support || support?.[ feature ] );
} |
…wordpress/experiments (#47229) ## What? Part of #47196. Uses `@wordpress/experiments` (#46131) to make `__experimentalShowSelectedHint` in `CustomSelectControl` private. ## Why? We don't want to add any new experimental APIs to 6.2 as part of an effort to no longer expose experimental APIs in Core. ## How? https://github.com/WordPress/gutenberg/blob/trunk/docs/contributors/code/coding-guidelines.md#experimental-react-component-properties ## Testing Instructions 1. Use a block theme with more than 5 font sizes or manually edit `theme.json` to contain more than 5 font sizes in `settings.typography.fontSizes`. 2. Open the site editor. Appearance → Editor → Edit. 3. Go to Styles → Typography → Headings. 4. Select a heading level. 5. Toggle off the custom font size picker. 6. You should see a hint alongside the selected font size preset. Co-authored-by: Adam Zieliński <[email protected]>
|
…wordpress/experiments (#47229) ## What? Part of #47196. Uses `@wordpress/experiments` (#46131) to make `__experimentalShowSelectedHint` in `CustomSelectControl` private. ## Why? We don't want to add any new experimental APIs to 6.2 as part of an effort to no longer expose experimental APIs in Core. ## How? https://github.com/WordPress/gutenberg/blob/trunk/docs/contributors/code/coding-guidelines.md#experimental-react-component-properties ## Testing Instructions 1. Use a block theme with more than 5 font sizes or manually edit `theme.json` to contain more than 5 font sizes in `settings.typography.fontSizes`. 2. Open the site editor. Appearance → Editor → Edit. 3. Go to Styles → Typography → Headings. 4. Select a heading level. 5. Toggle off the custom font size picker. 6. You should see a hint alongside the selected font size preset. Co-authored-by: Adam Zieliński <[email protected]>
Closing this issue as there are no more things to be done at this stage of Let's track the remaining work in this issue: #48743. |
Great work everyone here, thank you! |
Cc @WordPress/gutenberg-core
APIs that never released in a stable WP version
This is a first pass of the new APIs based on this diff that compares the APIs in
6.1
.lock
it. See Experiments: sharing private APIs with lock() and unlock() #46131.All experimental APIs
Generated using @noisysocks' script from #28157, with a small tweak to add each API only once, in the first package it was found.
I'm sharing the suggestions from previous similar issues(example) for older WP versions by @youknowriad in #31416, although we need to evaluate per case the proper handling:
__unstable
insteadThe list will be updated again, since APIs might change before the last GB version to be included in 6.2.
List of experimental APIs
packages/annotations
__experimentalAddAnnotation
__experimentalCreateOnChangeEditableValue
__experimentalCreatePrepareEditableTree
__experimentalGetAllAnnotationsForBlock
__experimentalGetAnnotations
__experimentalGetAnnotationsForBlock
__experimentalGetAnnotationsForRichText
__experimentalGetPropsForEditableTreeChangeHandler
__experimentalGetPropsForEditableTreePreparation
__experimentalRemoveAnnotation
__experimentalRemoveAnnotationsBySource
__experimentalUpdateAnnotationRange
packages/block-directory
__experimentalIsFocusable
packages/block-editor
__experimentalAlignmentMatrixControl
__experimentalAppenderTagName
__experimentalApplyValueToSides
__experimentalBlockAlignmentMatrixControl
__experimentalBlockDirectory
__experimentalBlockFullHeightAligmentControl
__experimentalBlockPatternCategories
__experimentalBlockPatternSetup
__experimentalBlockPatterns
__experimentalBlockPatternsList
__experimentalBlockVariationPicker
__experimentalBlockVariationTransforms
__experimentalBorder
__experimentalBorderBoxControl
__experimentalBorderRadiusControl
__experimentalBoxControl
__experimentalCanUserUseUnfilteredHTML
__experimentalCaptureToolbars
__experimentalCloneSanitizedBlock
__experimentalColorGradientControl
__experimentalColorGradientSettingsDropdown
__experimentalConvertBlockToStatic
__experimentalDateFormatPicker
__experimentalDefaultBlock
__experimentalDefaultControls
__experimentalDirectInsert
__experimentalDragComponent
__experimentalDropdownContentWrapper
__experimentalDuotone
__experimentalDuotoneControl
__experimentalEnableOffCanvasNavigationEditor
__experimentalExposeControlsToChildren
__experimentalFeatures
__experimentalFetchLinkSuggestions
__experimentalFetchReusableBlocks
__experimentalFetchRichUrlData
__experimentalFilterValue
__experimentalFirstVisibleItemClass
__experimentalFontAppearanceControl
__experimentalFontFamily
__experimentalFontFamilyControl
__experimentalFontStyle
__experimentalFontWeight
__experimentalGetAccessibleBlockLabel
__experimentalGetActiveBlockIdByBlockNames
__experimentalGetAllowedBlocks
__experimentalGetAllowedPatterns
__experimentalGetBlockAttributesNamesByRole
__experimentalGetBlockLabel
__experimentalGetBlockListSettingsForBlocks
__experimentalGetBorderClassesAndStyles
__experimentalGetColorClassesAndStyles
__experimentalGetDirectInsertBlock
__experimentalGetElementClassName
__experimentalGetGapCSSValue
__experimentalGetGlobalBlocksByName
__experimentalGetGradientClass
__experimentalGetGradientObjectByGradientValue
__experimentalGetLastBlockAttributeChanges
__experimentalGetMatchingVariation
__experimentalGetParsedPattern
__experimentalGetPatternTransformItems
__experimentalGetReusableBlockTitle
__experimentalGetSpacingClassesAndStyles
__experimentalGlobalStylesBaseStyles
__experimentalGroup
__experimentalHStack
__experimentalHandleURLSuggestions
__experimentalHasSplitBorders
__experimentalHeading
__experimentalHideChildBlockControls
__experimentalHint
__experimentalImageEditor
__experimentalImageSizeControl
__experimentalImageURLInputUI
__experimentalInitialIndex
__experimentalInitialPosition
__experimentalInsertionIndex
__experimentalInspectorPopoverHeader
__experimentalIsDefinedBorder
__experimentalIsItemGroup
__experimentalIsQuick
__experimentalIsRenderedInSidebar
__experimentalItem
__experimentalItemGroup
__experimentalLabel
__experimentalLastVisibleItemClass
__experimentalLayout
__experimentalLayoutStyle
__experimentalLetterSpacing
__experimentalLetterSpacingControl
__experimentalLibrary
__experimentalLinkControl
__experimentalLinkControlSearchInput
__experimentalLinkControlSearchItem
__experimentalLinkControlSearchResults
__experimentalListView
__experimentalMinHeight
__experimentalNavigatorBackButton
__experimentalNavigatorButton
__experimentalNavigatorProvider
__experimentalNavigatorScreen
__experimentalNumberControl
__experimentalOnIndexChange
__experimentalOnlyMediaLibrary
__experimentalPadding
__experimentalPanelColorGradientSettings
__experimentalParentSelector
__experimentalParseQuantityAndUnitFromRawValue
__experimentalPreferPatternsOnRoot
__experimentalPreferredStyleVariations
__experimentalPreviewOptions
__experimentalPublishDateTimePicker
__experimentalRecursionProvider
__experimentalRenderControl
__experimentalRenderSuggestions
__experimentalResponsiveBlockControl
__experimentalReusableBlocks
__experimentalRichText
__experimentalRole
__experimentalSelectBlock
__experimentalSetIsInserterOpened
__experimentalSettings
__experimentalShareWithChildBlocks
__experimentalShouldInsertAtTheTop
__experimentalShowInitialSuggestions
__experimentalSkipSerialization
__experimentalSlashInserter
__experimentalSpacer
__experimentalSpacingSizesControl
__experimentalStyleProvider
__experimentalText
__experimentalTextDecoration
__experimentalTextDecorationControl
__experimentalTextTransform
__experimentalTextTransformControl
__experimentalToggleGroupControl
__experimentalToggleGroupControlOption
__experimentalToggleGroupControlOptionIcon
__experimentalToolbar
__experimentalToolbarContext
__experimentalToolsPanel
__experimentalToolsPanelContext
__experimentalToolsPanelItem
__experimentalTransferDataType
__experimentalTreeGrid
__experimentalTreeGridCell
__experimentalTreeGridItem
__experimentalTreeGridRow
__experimentalTruncate
__experimentalUndo
__experimentalUnitControl
__experimentalUpdateSelection
__experimentalUseBlockOverlayActive
__experimentalUseBlockPreview
__experimentalUseBorderProps
__experimentalUseColorProps
__experimentalUseCustomSides
__experimentalUseCustomUnits
__experimentalUseDropZone
__experimentalUseFixedWindowList
__experimentalUseGradient
__experimentalUseHasRecursion
__experimentalUseMultipleOriginColorsAndGradients
__experimentalUseResizeCanvas
__experimentalUseSlot
__experimentalVStack
__experimentalVersion
__experimentalView
packages/block-library
__experimentalConvert
__experimentalDefault
__experimentalDiscussionSettings
__experimentalGetCoreBlocks
__experimentalGetDefaultTemplatePartAreas
__experimentalHideHeader
__experimentalIsEditingReusableBlock
__experimentalOnEnter
__experimentalRegisterExperimentalCoreBlocks
__experimentalSelector
__experimentalShowHowTo
__experimentalShowTooltip
__experimentalStyle
__experimentalTooltipProps
packages/blocks
__experimentalGetUnprocessedBlockTypes
__experimentalReapplyBlockTypeFilters
__experimentalRegisterBlockType
__experimentalSanitizeBlockAttributes
packages/components
__experimentalBorderControl
__experimentalConfirmDialog
__experimentalDimensionControl
__experimentalDivider
__experimentalElevation
__experimentalExpandOnFocus
__experimentalGrid
__experimentalInputControl
__experimentalInputControlPrefixWrapper
__experimentalInputControlSuffixWrapper
__experimentalInvalid
__experimentalIsEmptyBorder
__experimentalNavigation
__experimentalNavigationBackButton
__experimentalNavigationGroup
__experimentalNavigationItem
__experimentalNavigationMenu
__experimentalPaletteEdit
__experimentalRadio
__experimentalRadioGroup
__experimentalRenderItem
__experimentalScrollable
__experimentalSurface
__experimentalToggleGroupControlOptionBase
__experimentalUseDialog
__experimentalUseDragging
__experimentalUseFocusOutside
__experimentalUseNavigator
__experimentalValidateInput
__experimentalZStack
packages/compose
__experimentalWidthProvider
packages/core-data
__experimentalBatch
__experimentalFetchUrlData
__experimentalGetCurrentGlobalStylesId
__experimentalGetCurrentThemeBaseGlobalStyles
__experimentalGetCurrentThemeGlobalStylesVariations
__experimentalGetDirtyEntityRecords
__experimentalGetEntitiesBeingSaved
__experimentalGetEntityRecordNoResolver
__experimentalGetTemplateForLink
__experimentalNoFetch
__experimentalReceiveCurrentGlobalStylesId
__experimentalReceiveThemeBaseGlobalStyles
__experimentalReceiveThemeGlobalStyleVariations
__experimentalSaveSpecifiedEntityEdits
__experimentalUseEntityRecord
__experimentalUseEntityRecords
__experimentalUseResourcePermissions
packages/customize-widgets
__experimentalGetInsertionPoint
packages/date
__experimentalGetSettings
packages/e2e-test-utils
__experimentalActivatePlugin
__experimentalDeactivatePlugin
__experimentalRest
packages/edit-post
__experimentalFullscreenModeClose
__experimentalGetPreviewDeviceType
__experimentalMainDashboardButton
__experimentalSetPreviewDeviceType
packages/edit-site
__experimentalAdditionalBlockPatternCategories
__experimentalAdditionalBlockPatterns
__experimentalEnableColorRandomizer
__experimentalEnableGlobalStylesCustomCSS
__experimentalEnableZoomedOutView
__experimentalGetDefaultTemplateTypes
__experimentalGetTemplateInfo
__experimentalGlobalStylesCustomCSS
packages/editor
__experimentalCreatePageEntity
__experimentalGetDefaultTemplateType
__experimentalTearDownEditor
__experimentalUserCanCreatePages
packages/eslint-plugin
__experimentalFoo
__experimentalSafe
__experimentalUnsafe
packages/experiments
__experimentalFunction
packages/reusable-blocks
__experimentalConvertBlocksToReusable
__experimentalDeleteReusableBlock
__experimentalSetEditingReusableBlock
lib
__experimentalEnableListBlockV2
__experimentalEnableQuoteBlockV2
The text was updated successfully, but these errors were encountered: