What’s new in Gutenberg 17.6? (31 January)

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).


Gutenberg 17.6 has been released and is available for download!

This release, which includes 264 pull requests (that’s a lot of work!), can be labeled mainly as a ‘code quality’ one, as it includes two important refactors in both Fonts and Interactivity APIs.

It also includes some improvements in the new “Data Views” experiment, blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. improvements, and finally, a feature that all developers have been waiting for: the ability to extend allowed blocks within a parent block.

New Block JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. allowed Blocks 

Until now, there has been no way to filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. the allowed blocks in an inner block area. This means that developers could not specify which blocks could be inside a parent block without editing the parent block’s edit file. Imagine you’ve just created an amazing icon block to include in the navigation block; now, you can whitelist it using a filter.

addFilter( 'blocks.registerBlockType', 'my-great-icon-block', ( settings, name ) => {
  if ( name === 'core/navigation ) {
    return {
      ...settings,
      allowedBlocks: [ ...settings.allowedBlocks ?? [], 'my-great-icon-block' ],
    }
  }
  return settings;
} );

Site Editor – Post Editor unification.

Several smaller edit actions are available in the post editor but not the site editor. The misalignment means users sometimes need to hop between editors, which can be frustrating. This Gutenberg version includes all page edit features in both editors.

Also, the Interactivity APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. and the Fonts Library API have received a big refactor. These APIs are getting close to the 6.5 release, so it’s a great time to test them.

Other Notable Highlights

New Interactivity API directives

The Interactivity API now includes several new directives that will be incredibly helpful when creating interactive blocks.

  • data-wp-on-window and data-wp-on-document to handle global events like scroll, keypress, load, ready, etc.
  • data-wp-each to render lists.
  • data-wp-run to execute custom logic while rendering an element with directives. 

Footnotes available for custom post types

Footnotes are available for all post types that

  • Are public and appear in the REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/..
  • Supports all of the following: editor, custom fields, and revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision..

Changelog

Features

Interactivity API

  • Add wp-data-on-window and wp-data-on-document directives. (57931)
  • Add wp-each directive. (57859)
  • Add wp-run directive and useInit & useWatch hooks. (57805)
  • Create @wordpress/interactivity-router module. (57924)

Typography

  • Add defaultFontSizes option to theme.json. (56661)

Font Library

  • Font Library: Add wp_get_font_dir() function. (57730)

Custom Fields

  • Block Bindings: Disable editing of bound block attributes in editor UIUI User interface. (58085)

Block Editor

  • Add effects/box shadow tools to block inspector. (57654)

Enhancements

Components

  • Add opt-in prop for 40px default size for BoxControlBorderControl, and BorderBoxControl. (56185)
  • BorderControl: Replace style picker with ToggleGroupControl. (57562)
  • ColorPicker: Store internal HSLA state for better slider UXUX User experience. (57555)
  • Migrate PaletteEdit and CircularOptionPicker tests from user-event to ariakit/test. (57809)
  • Replace TabPanel with Tabs in the Editor Preferences Modal. (57293)
  • Theme: Set color on wrapper. (58095)
  • Tooltip: No-op when nested inside another Tooltip component. (57202)
  • BoxControl: Update design. (56665)
  • Element: Start reexporting PureComponent. (58076)

Interactivity API

  • Render the root interactive blocks. (57729)
  • Interactivity Router: Replace data-wp-navigation-id with data-wp-router-region. (58191)
  • Interactivity: Export withScope() and allow to use it with asynchronous operations. (58013)
  • Prevent the use of components in wp-text. (57879)
  • Remove wp-data-navigation-link directive. (57853)
  • Server Directive Processing Refactor. (58066)
  • Update preact@preact/signals and deepsignal dependencies. (57891)

Block Editor

  • Add copy link button to Link UI. (58170)
  • Improve LinkControl preview. (57775)
  • Keep Link UI open upon initial link creation when used in RichText. (57726)
  • List View: Displace list view items when dragging (a bit more WYSIWYGWhat You See Is What You Get What You See Is What You Get. Most commonly used in relation to editors, where changes made in edit mode reflect exactly as they will translate to the published page.). (56625)
  • Show initial suggestions in rich text Link UI. (57743)
  • Disable lock button if user cannot control lock state. (57274)
  • Use ClipboardJS latest version and clean up focus loss workaround. (57156)
  • Dimensions: Add Aspect Ratio block support. (56897)

Block Library

  • Add more taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. options to the post navigation link. (48912)
  • Add: Footnotes support for other CPT’s. (57353)
  • Better navigation link variations for post types / taxonomies. (56100)
  • Remove “blocks” from copy and delete labels. (57769)
  • Pullquote Block: Add padding and margin support. (45731)
  • Video Block: Add raw transformation from video htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (47159)
  • Aspect ratio: Remove support on the Group block for now. (58414)
  • Image block: Move UI for lightbox from sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. to the content toolbar alongside link settings. (57608)

Data Views

  • DataViews: Enable grid layout for templates & parts by default. (58137)
  • DataViews: Make dataviews powered page patterns stable. (58139)
  • DataViews: Make the “Manage Pages” stable. (58166)
  • Dataviews: Add Bulk actions to page. (57826)

Site Editor

  • Group templates in sidebar list. (57711)
  • Initial routing refactoring to separate preview from list view. (57938)
  • Iterate on warning text for block removal for query/post template/post content. (58138)
  • Site editor: Add global styles changes to save flow. (57470)
  • Editor: Unify the Editor Mode preference. (57642)
  • Live Preview: Show the current theme name on the theme activation modal. (57588)
  • Unify the preferences modal UI between post and site editor. (57639)
  • Remove right negative margin from pinned items. (57666)
  • Update style revision top toolbar text. (58057)

Block API

  • Block Bindings: Update source registration syntax and remove APIs that should be private. (58205)
  • Block Hooks: Do not remove toggle if hooked block is present elsewhere. (57928)

Synced Patterns

  • Add basic pattern overrides end-to-end tests. (57792)
  • Use a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. format and support linkTarget of core/button for Pattern Overrides. (58165)

Patterns

  • Add image block support for pattern overrides. (57909)
  • Outline editable blocks that are within a content-locked container. (57901)
  • Change text on pattern reset button. (58286)

Post Editor

  • Post Lock: Use the new modal size preset. (58197)
  • Add description to the save panel headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. when nothing is checked. (57716)

Font Library

  • Update the default collection data URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org to the wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ cdn. (58186)
  • Font Library: Refactor stylesheet using CSSCSS Cascading Style Sheets. variables (58237)
  • Font Library Modal: Reset the selected font when installing a new font. (57817)
  • Font Library: Disable font library UI using a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher filter. (57818)
  • Font Library: Filter fonts upload directory. (57697)
  • Font Library: Use data or src file to define font collection data. (57734)
  • Improve font collection rest controller. (58222)
  • Make notices more consistent. (58180)
  • Updates Font Families and Font Faces endpoints context param. (58287)

Commands

  • Minor command tweaks. (58148)

Extensibility

  • Update Navigation block to render hooked inner blocks. (57754)
  • Add gettext content when translating ‘Header’. (51066)

Template Editor

  • Remove template-only mode from editor and edit-post packages. (57700)

New APIs

Block API

  • Block Bindings API: Add block bindings PHP registration mechanisms and “Post metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.” source under the experimental flag. (57249)
  • Block Bindings API: Refactor logic into Block Bindings class and singleton pattern. (57742)

Bug Fixes

Block Library

  • AvatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. block: Fix broken aligments in the editor. (58114)
  • Embed Block: Fix retry processing when embedding with trailing slash fails. (58007)
  • Lightbox: Fix “Expand on click” control being disabled unintentionally. (56053)
  • Modified Date Block: Don’t render change date tool. (57914)
  • Only prioritise Quote transform where relevant. (57749)
  • Query LoopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.: Fix posts list variation detection. (58194)
  • Block Hooks API: Update Navigation block feature gate. (58388)

Components

  • Button: Always render the Tooltip component even when a tooltip should not be shown. (56490)
  • CustomSelect: Adjust renderSelectedValue to fix sizing. (57865)
  • ToggleGroupControl: Improve controlled value detection. (57770)
  • Tooltip: Accept specific tooltip props. (58125)
  • Tooltip: Forward and merge inner tooltip props correctly. (57878)
  • Bring back the chevron. (57807)
  • Preferences: Add a proxy to retrieve the deprecated preferences with a deprecation message. (58016)

Data Views

  • DataViews: Default sort order in templates by title. (58175)
  • DataViews: Don’t always display horizontal scrollbar. (58101)
  • DataViews: Fix author sorting in templates and template parts. (58167)
  • Remove unused argument from sprintf in pagination.js. (57823)
  • DataViews: Fix safari grid row height issue. (58302)
  • DataViews: Fix table view cell wrapper and BlockPreviews. (58062)

Patterns

  • Add black border back when editing synced pattern in the post editor. (57631)
  • Outline editable blocks when in a pattern that has locked children. (57991)
  • Remove text align control for paragraph, heading, and button in contentOnly editing mode. (57906)
  • Pattern Categories: Fix capitalization. (58112)
  • Fix flaky “create a new pattern” test. (57747)
  • Block Bindings: Fix bindings image placeholder showing in patterns overrides. (58252)

List View

  • Image Block: Make block name affect list view. (57955)
  • More Block: Make block name affect list view. (58160)

Block API

  • Block Hooks: Fix toggle. (57956)
  • Fix formats not working in block bindings content. (58055)

Global Styles

  • Correctly decode border color values. (57876)
  • Fix: Theme.json application of custom root selector for styles. (58050)

Data Layer

  • Data: Allow binding registry selector to multiple registries. (57943)
  • Data: Fix memoized createRegistrySelector. (57888)

Typography

  • #56734 When there is no font, the border should not appear. Display further guidance text. (56825)
  • Fluid typography: Do not calculate fluid font size when min and max viewport widths are equal. (57866)

Block Editor

  • Fix regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5.: Content locking does not stops when an outside block is selected. (57737)
  • LinkControl: Remove unnecessary right padding of input fields. (57784)

Custom Fields

  • Block Bindings: Fix button popover not showing in patterns. (58219)

Font Library

  • Fix typo. (58193)
  • Removed and elements from Font Library Modal (58221)

Synced Patterns

  • Fix losing overrides after detaching patterns. (58164)

Interactivity API

  • Prevent wp-data-on="" from creating onDefault handlers. (57925)
  • Prevent usage of gutenberg_url in block-library (58242)
  • Interactivity API: Fix data-wp-on-document flaky test. (58008)
  • Interactivity API: Fix flaky test on-window. (58134)
  • Fix flaky test on-window, remove duplicate expect on-document. (58181)
  • Interactivity: Fix broken reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. usage in published package. (58258)

CSS & Styling

  • Styles revisions: Remove body padding. (57748)

Templates API

  • Fix visual indication of switch to default template in the post editor. (57718)

Site Editor

  • (editor)(fix) Append the edit-post-header-toolbar class in NavigableToolbar for backward compatibility with pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party GUI injections. (58154)
  • Fix site editor layout regressions. (58077)

AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)

Site Editor

  • Fix font variants count color contrast ratio and l10nL10n Localization, or the act of translating code into one's own language. Also see internationalization. Often written with an uppercase L so it is not confused with the capital letter i or the numeral 1. WordPress has a capable and dynamic group of polyglots who take WordPress to more than 70 different locales.. (58117)
  • Make the site hub View Site link always visible. (57423)

Block Editor

  • Fix parent selector button focus style and metrics. (57728)
  • Restore visual separator between mover buttons when show button label is on. (57640)

Widgets Editor

  • Fix Widgets page Undo and Redo accessibility and keyboard interaction. (57677)

Performance

  • Add patterns load test. (57828)
  • Block editor: Avoid list re-rendering on select. (57188)
  • Block editor: Don’t register shortcuts for preview editors. (57984)
  • Block editor: Fix performance regression after #57950. (57971)
  • Block editor: Use context for useBlockEditingMode. (57950)
  • BlockSwitcher: Defer transform calculations until the Dropdown is open. (57892)
  • Call variation through callback so it’s only loaded when needed – in support of tracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. 59969. (56952)
  • Editor styles: Cache transform. (57810)
  • Footnotes: Combine format store subscription. (58129)
  • Iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.: Calc compat styles once per page load. (57798)
  • Measure typing with the top toolbar enabled. (57709)
  • Meta boxes: Don’t initialise if there are none. (57182)
  • Patterns: Avoid fetching on load. (57999)
  • Site editor: Avoid fetching themes on load. (57985)
  • Site editor: Reduce artificial loading delay from 1s to 100ms. (57953)
  • Site editor: Remove store subscription per block. (57995)
  • Template Part & Query: Avoid server requests on mount. (57987)
  • Template part block: Avoid parsing ALL patterns on mount. (57856)

Block Editor

  • Revert “Block editor: Avoid list re-rendering on select”. (58147)

Post Editor

  • Editor: Use hooks instead of HoCs for EditorNotices. (57772)

Experiments

Data Views

  • Add: Bulk actions to dataviews with the new design. (57255)
  • Data view list layout: Fix thumbnail dimensions. (57774)
  • Data views table layout: Update cell vertical alignment. (57804)
  • DataViews: Add description to pages. (57793)
  • DataViews: Add front page to pages page sidebar. (57759)
  • DataViews: Better management of layout param in templates. (58116)
  • DataViews: Make list layout the default for templates with the experiment enabled. (57933)
  • DataViews: Revert list view as default for pages. (58081)
  • DataViews: Revert list view as default for templates. (58079)
  • DataViews: Set primary field styles. (57846)
  • DataViews: Show loading / no result message for the list layout. (57764)
  • DataViews: Update template parts view. (57952)
  • DataViews: Use button for patterns, pages and templates preview field. (58071)
  • DataViews: Use table layout for templates when experiment disabled. (57960)
  • Stabilise view options button icon. (57964)
  • Update Grid layout design. (57880)
  • Update Pages preview field display. (57919)
  • Update Templates table layout. (57930)
  • Update: Show template sources on templates Dataviews sidebar. (58124)

Synced Patterns

  • Add a control to reset pattern overrides. (57845)
  • Allow heading and button in Pattern Overrides. (57789)

Typography

  • Download then upload font face assets when installing from a collection. (57694)
  • Use slug instead of id for Font Collection. (57735)

REST API

  • Font Library Refactor. (57688)

Block Editor

  • Allow drag and drop to create Rows and Galleries. (56186)

Documentation

  • Add a video demonstration to the Quick Start Guide. (57834)
  • Button: Improve disabled-related prop descriptions. (57864)
  • Components: Move CHANGELOG entries under the correct release. (57885)
  • Docs: Fix typo in “The block wrapper” document. (58106)
  • Docs: Use ‘key’ in ‘editor.BlockEdit’ filter code examples. (58119)
  • Document files/directories requiring backmerging to WP CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.. (58064)
  • Fix the iframe markup of the embed video in the Quick Start Guide. (57857)
  • Fix: Link to the nodejs release page. (57816)
  • Fix: Typo on BlockListBlock comments. (57814)
  • Fix: Typos on __unstableSetTemporarilyEditingAsBlocks documentation. (57768)
  • Font Library: Add font collection JSON schema. (57736)
  • Prefixes all php filters with wpdocs_. (53914)
  • Remove the unnecessary TOC and fix grammar/formatting in the Patterns doc. (57825)
  • Remove the 👋 emoji from the Block Editor Handbook. (58023)
  • Update versions-in-wordpress.md. (57916)
  • [Type] Developer Documentation – Fix removeAllNotices dispatch on the removeAllNotices doc section of wordpress/notices. (57436)

Code Quality

Components

  • PaletteEdit: Improve unit tests. (57645)
  • Tooltip and Button: Tidy up unit tests. (57975)
  • Tooltip: Add test for classname leakage. (58182)
  • Remove unneeded margin: 0 override for Notice component consumer. (57794)
  • Shadows: Prevent empty style object when removing shadow. (58155)

Block Editor

  • Soft deprecate custom ‘pure’ HoC in favor of ‘React.memo’. (57173)
  • Stabilise RecursionProvider and useHasRecursion APIs. (58120)
  • Tidy up block patterns selectors. (57913)
  • Shadow: Remove additional wrapper around getShadowClassesAndStyles. (58297)

Block Library

  • Gallery Block: Remove duplicate return statement. (57746)
  • Navigation: Move the renderer class to the main navigation file. (57979)
  • Fix comments block. (57820)
  • Rename __experimentalGetGlobalBlocksByName to getBlocksByName. (58156)
  • Block Hooks API: Remove $post check from Navigation hooked blocks meta fn. (58379)
  • Post navigation link: Coding standard fixes. (58380)
  • Update docblockdocblock (phpdoc, xref, inline docs) for render_block_core_pattern. (58382)
  • Block Hooks API: Update doc block for block_core_navigation_insert_hooked_blocks. (58378)

Font Library

  • Remove WP_Font_Family class that is no longer used. (58184)
  • Font Library: Remove ‘version’ property from font collection schema. (58025)
  • [Fonts API] removing files and files loading no longer needed. (57972)
  • Remove unused utilities and rename class. (58342)
  • Rename the slug of the google fonts collection from ‘default-font-collection’ to ‘google-fonts’. (58331)
  • Refactored download/upload logic to support font faces with multiple src assets. (58216)
  • Font Library: Addresses additional REST API feedback. (58333)

Block Directory

  • DownloadableBlocksPanel: Remove withSelect in favor of useSelect. (58109)

Patterns

  • Stabilize the pattern overrides block context. (58102)
  • Remove pattern override experiment completely. (58105)
  • Update pattern overrides to use a hard coded support array. (57912)
  • Block Bindings: Change core/pattern-attributes source for core/pattern-overrides. (58434)

Block API

  • Block Bindings: Remove the experimental flag. (58089)
  • Block Renaming – move backported WP 6.5 code to 6.5 compat dir. (58126)

Post Editor

  • Editor: Use hooks instead of HoCs in ‘PostScheduleCheck’. (57833)

Script Modules API

  • Update the code and move it to the compat/wordpress-6.5 folder. (57778)

Data Views

  • Remove obsolete check from dataviews modal actions title. (57753)

Interactivity API

  • Remove data-wp-slot and data-wp-fill. (57854)
  • Remove unused state and rename props to attributes in getElement(). (57974)

HTML API

  • Backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. updates from Core. (57022)

Custom Fields

  • Block Bindings: Simplify block bindings object. (58337)
  • Block Bindings: Adapt block bindings to wordpress code latest changes. (58383)

Tools

Testing

  • Add setGutenbergExperiments to requestUtils. (56663)
  • Add: End to end test to content locking stop editing as blocks behavior. (57812)
  • Attempt to fix php unit tests (variations api change). (58090)
  • Migrate ‘block grouping’ end-to-end tests to Playwright. (57684)
  • Migrate ’embedding’ end-to-end tests to Playwright. (57969)
  • Migrate ‘typewriter’ end-to-end tests to Playwright. (57673)
  • Remove unused Navigation block end-to-end test fixtures. (57848)

Build Tooling

  • Update caniuse-lite package. (58087)
  • Update the cherry pick script to work with the new version of gh. (57917)
  • Scripts: Remove unused variable in bin/list-experimental-api-matches.sh. (57771)
  • (chore) Revert bump to the v17.5.1 (draft) due to bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. in the release found by manual testing. (58027)
  • Fix misplaced ReactRefreshWebpackPlugin. (57777)
  • Automate creation of Issue for major release PHP synchronisation. (57890)
  • Remove check-latest-npm validation. (57797)
  • core-js: Only polyfill stable features. (57674)

First time contributors

The following PRs were merged by first time contributors:

  • @kt-12: Call variation through callback so it’s only loaded when needed – in support of trac 59969. (56952)
  • @leomuniz: [Type] Developer Documentation – Fix removeAllNotices dispatch on the removeAllNotices doc section of wordpress/notices. (57436)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @ajlende @andrewserong @annezazu @artemiomorales @arthur791004 @atachibana @bacoords @bph @brookewp @c4rl0sbr4v0 @carolinan @chad1008 @ciampo @creativecoder @DAreRodz @dcalhoun @derekblank @dmsnell @draganescu @dsas @ecgan @ellatrix @fluiddot @fullofcaffeine @gaambo @geriux @getdave @glendaviesnz @gonzomir @inc2734 @jameskoster @jeryj @jffng @jorgefilipecosta @jsnajdr @kevin940726 @kt-12 @leomuniz @luisherranz @madhusudhand @MaggieCabrera @Mamaduka @matiasbenedetto @mcsf @michalczaplinski @mikachan @mirka @ndiego @noisysocks @ntsekouras @oandregal @ockham @oguzkocer @pbking @ramonjd @richtabor @SantosGuillamot @scruffian @SiobhyB @sirreal @swissspidy @t-hamano @talldan @tellthemachines @tjcafferkey @tyxla @vcanales @youknowriad

Props to @jameskoster for visuals assets and @cbringmann for peer-review

#block-editor, #core-editor, #gutenberg, #gutenberg-new

Dev Chat Summary, January 24, 2024

Start of meeting on Slack facilitated by @webcommsat

This DevChat starts with an experiment to shift the chat to synchronize discussions on open coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. proposals and release issues rather than reproducing links highlighted in the curated agendas.

Discussion on open proposals in Core

Interactivity APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

Link to post: Proposal: The Interactivity API – A better developer experience in building interactive blocks

Conversation start link

Comments:

  • The API is well beyond the proposal stage, with nothing actionable in discussion.

Actions:

  • The proposal should be considered “accepted”.

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API: Introduce WP_HTML::tag() for safely creating HTML

Link to PR (draft): https://github.com/WordPress/wordpress-develop/pull/5884

Conversation start link

Comments:

  • This PR was raised along with the question of how items should be added to the agenda. It was clarified that topics can be added as comments to the previous week’s chat summary, or to the current week’s agenda post (typically published on Tuesdays). And of course, any item can be raised during the open floor section of Dev Chat.
  • @dmsnell indicated that the PR for consideration is a scaled back version of a larger templating system proposal, which will not be ready for 6.5. The PR adds a helper utility, WP_HTML::tag(), to conveniently generate single HTML tags with attributes. The impetus for this feature is to provide Core and extenders a safer way to generate HTML tags, compared with reliance on proper usage of functions such as esc_attr(), which might be overlooked and introduce HTML injection vectors.
  • @jorbin would prefer that any new APIs be used by Core itself, and that there be accessory patches prepared that demonstrate how the function integrates and operates in Core. It was also suggested that a Make/Core proposal would help with gathering broader input.
  • @azaozz pointed out that enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. tickets in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. are another form of “proposal”, and can also result in healthy discussion. He suggested starting the discussion in Trac, and then utilizing a Make/Core proposal if the ticketticket Created for both bug reports and feature development on the bug tracker. isn’t sufficient to establish consensus.
  • There continued discussion around how Core generates HTML currently, which relies on proper use of esc_*() and echo(), as well as a broader discussion around safely generating HTML. Got feedback? Join the conversation in SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/., or leave a comment below.

Actions:

  • @dmsnell to create a Trac ticket and/or Make/Core proposal to discuss introduction of WP_HTML::tag().
  • @dmsnell to consider a future Make/Core proposal for the HTML API templating system, and continued discussion around generating safe HTML.

Forthcoming releases

6.4.3

Conversation start link

  • @jorbin shared the remaining open tickets for this milestone, which are scheduled for review and commit prior to a Thursday (Jan 25) RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta).:
    • #60025 – This needs additional review and testing. Any help is appreciated
    • #59866 – @peterwilsoncc and I have been work on the one and I should have an update in the next 12 hours.
  • @joemcgill requested help reviewing the approach proposed in #5926 Cache locate template paths, which would address both #60025 and #60290.

6.5

Conversation start link

See this section in the agenda for updates, helpful links, and information for the 6.5 release.

Comments:

  • @oglekler pointed out that there are several early 6.5 tickets that need attention, asking for review as some might have the potential to be completed in time for BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process..
  • @hellofromtonya indicated that the 6.5 cycle is past the “early part of alpha”, suggesting these may need to be punted if they truly require a long runway for soak time and discussion.
  • @azaozz agreed that the early keyword indicates a need for comprehensive testing, and possible reconsideration of the milestone if the testing hasn’t occurred. He also suggested that while not required, it might be preferable to fix old/known bugs during alpha, and allow beta testers to focus on “new” bugs introduced from Beta 1 and onward.
  • @jorbin suggested two interpretations of early; i.e. actually early in the alpha cycle, or just before Beta 1.
  • @hellofromtonya noted that since Beta 1 is the puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.) milestone for enhancements/features, that in her perspective, early should apply to early in the alpha cycle. She cited changes to WP_Query as an example where early would apply.
  • @afragen observed that it doesn’t seem that many early tickets are committed early in the cycle.

Open Floor

Props @hellofromTonya for peer review.

#6-4, #6-5, #core, #core-editor, #dev-chat, #meeting, #summary

Core Editor Improvement: Robust Revisions in the Site Editor

These “CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor Improvement…” posts (labeled with the #core-editor-improvement tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)) are a series dedicated to highlighting various new features, improvements, and more from Core Editor related projects. 

RevisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. are an integral part of the creation experience, providing a safety net and a way to see where you’ve been to know where to go next. It’s so important that there’s a dedicated area of focus for phase 3 efforts dedicated to the broader area of work! While lots of work lies ahead, WordPress 6.5 is slated to include some impactful changes and new features to current revision functionality in the Site Editor. 

If you want to try out what’s shared below for yourself, head over to the post on Early Opportunities to Test WordPress 6.5 where you can quickly spin up your own test site to experience it for yourself and give feedback. Everything shared below is available as of GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 17.4 and planned for inclusion in WordPress 6.5.

Let’s look at a before and after 

To help bring these changes to life, below is a video showcasing what’s written below. The “before” site is using WordPress 6.4.2 and the “after” site is using WordPress 6.4.2 with Gutenberg 17.5.1 installed. These test sites were pulled from Early Opportunities to Test WordPress 6.5 so anyone is welcome to explore:

Read a short summary of styling changes thanks to a new design

Alongside a new design showing more granular information, like a more granular timestamp, a short summary of changes made in each revision is now available. Combined, this greatly simplifies understanding what’s in each revision rather than relying on spotting visual changes. 

View all style revisions thanks to pagination

Rather than showing just the last 100 revisions, all revisions are now available thanks to pagination. This both works around a technical limitation of 100 results per REST response and helps make navigating between revisions much easier than scrolling endlessly in the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.

Toggle on the Style Book to get a different angle

In the same way you might be used to using the Style Book when making changes to your site in the Site Editor, you can now do the same when looking at different revisions to see changes that might not otherwise be visible on the current template. Just as when you use the Style Book normally, you can toggle it on and off as you’d like. 

Rely on full revisions for everything 

While the undo and redo buttons have a role to play, having access to full revision history allows for a much greater understanding of changes, their impact, and actions one can take. While this was mentioned in a previous post, revisions for templates and template parts are finally slated for inclusion in Core for WordPress 6.5. This means out of the box folks can browse changes to templates, template parts, and styles providing a nice safety net. 

#core-editor, #core-editor-improvement, #gutenberg, #site-editor

Dev Chat summary, January 17, 2024

Start of meeting on Slack

This DevChat starts with an experiment to shift the chat to synchronize discussions and away from dropping of links.

Discussion on open proposals in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.

Default Theme Task Force for 2024

Link to the post: Proposal: Default Theme Task Force for 2024

Dev Chat slack link

Comments in Dev Chat focused:

  • positive feedback and highlighting that people can self-nominate their ability to help triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. those open default theme issues
  • promote the call to encourage people to be active in triaging and resolving those 436 Bundled Theme tickets

Latest position from @desrosj :

  • advised the idea has been accepted: t’s rallying a group of folks to get through and clean out the Bundled Theme component backlog on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.
  • three self nominations and more expected to be confirmed by end of the week
  • aim to start before the end of January 2024, currently 437 tickets in the Bundled Theme component
  • Jonathan will be leading the team as a mentor and someone with commit privileges, and other committers are welcome to help as well)
  • the week to week working arrangement will be depends on the team’s availability. Stay tuned! 
  • confirmed the new theme task force group will remain under core team purview. More detail on this in the comments section of the post. More contributors for the Themes team welcome to help out too. “It’s a balance though, My goal here was to allow those contributors to continue exploring what new themes look like while this team handles cleaning up some of our cruft and backlog for pre-existing ones.”
  • expecting ‘as a side effect, cleaning out the backlog also will effectively “retire” these themes in some ways, and going forward, the majority of the tickets will be blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor support related (hopefully).’ 

Actions:

  • more volunteers needed and will increase the speed can go through the outstanding tickets in the component
  • to assist, contact @desrosj on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. on in the comments for the post itself

Proposal to improve the editor tech workflow for major releases

Post link: Proposal

Dev Chat Slack link

Context: This proposal was started in 6.4. With 6.5 underway, thinking the learnings from 6.4 could be built upon for how to continue improving the Core merges from GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ during 6.5. Core Editor and Core chats are now combined into Dev Chat as an experiment.

Discussion:

  • @joemcgill raised the question of the right venue to push this forward. “In my opinion, the current status quo is error prone and unsustainable (as well as taking a lot of manual overhead from contributors).”
  • @jorbin: If we want to try early syncing for 6.4.3, https://core.trac.wordpress.org/ticket/59828 just needs a second committers review and we can get all the updates into the 6.4.x nightly
  • @hellofromtonya: I’m not sure either what the “right venue for pushing this forward” is. Needs a discussion with both Core and Core Editor folks to figure out the needs and how to improve these workflows. Seems earlier the better as BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 is fast approaching
  • @jorbin suggested one way to mitigate the issue would be nominating the release team, or at least the editor tech, for the next release before the current release ships. An interim editor tech to help get the ball rolling while an official team has not been announced. @joemcgill agreed having an identified set of release leads for 6.5 to discuss how they want to handle things for this release would help. The Community Summit conversation was very helpful. A working group to continue that conversation and come back with concrete proposals would be helpful, if a release team is not the right venue. A working group had positive feedback in the dev chat discussions as these workflows are continuously improving and span more than one major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.. @jorbin suggested @tellthemachines should be given right of first refusal to continue leading the effort since she kicked off the proposal.
  • Ideas included: a proposal needed to address the identified set of problems, a hallway hangout similar to the ones @annezazu and others have done.

Actions:

Forthcoming releases

6.5

Slack discussion link

See this section in the agenda for updates, helpful links, and information for the 6.5 release.

Blockages/ items need discussion for progress:

  • Font Library:
    • Discussion:
      • As a follow-up from @joemcgill‘s questions last week, @hellofromtonya has added the Core merge criteria/expectations to its Trac ticketticket Created for both bug reports and feature development on the bug tracker.. The critieria is the same as in 6.4, except Tonya is suggesting returning to the expectation the feature is merged before or by Beta 1.
      • Query raised on the criteria aspect of “running on wp.com, and not being reliant on any specific host testing this. @hellofromtonya: The reason for wp.com is: it’s a normal workflow in Gutenberg as it gains a huge amount of sites running it. @jorbin
      • @annezazu suggested some of the contributors who have worked on this feature could comment. Also noted current timeline for the feature https://core.trac.wordpress.org/ticket/59166#comment:21
      • Question: Is this anything beyond what we’d normally expect of a feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins.? @hellofromtonya: Same expectations except for REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. part of it , as I’m suggesting a maintainer needs to give a thumbs-up to its design.
      • jorbim: I don’t want to discourage that in any way, I just wonder if we would ever set a requirement like “Is running on Altis with no major issues”
    • Actions:
      • Update the criteria from the discussion. Done ✅
      • Gather expectations from the REST API maintainers and then update the criteria accordingly. Done ✅

How was the first experimental new DevChat?

@jorbin said: “I think one of the most productive meetings in a while”

@afragen shared there was no extra time to raise other tickets for discussion.

What to change?

Next week, reserve 10-15 minutes for open forum / floor discussion.

Props @hellofromTonya for peer review.

#6-4, #6-5, #core, #core-editor, #dev-chat, #meeting, #summary

Editor: Important milestones for WordPress 6.5

The WordPress 6.5 betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 is scheduled for release on February 13th, As a consequence, we’d like to share some milestones and recommendations for contributors working on the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ repository.

Following our guidelines, we will be scheduling the Gutenberg 17.7.0 RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). for Friday 9th. It will represent the last Gutenberg release that is going to be included fully into WordPress 6.5.

Additionally, and in order to streamline the merge into WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and avoid last minute blockers, we’d like to issue the following recommendations for all contributors working on the Gutenberg repository:

  • If you have a feature that is behind an experimental flag and is planned to be included on WordPress 6.5, consider removing the experimental flag as soon as possible and stabilize the feature for Gutenberg 17.6.0 RC which is planned for Wednesday January 24th.
  • Start working on the Gutenberg PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher backports if you have been pinged on this issue as soon as possible.

We thank you in advance for your help in ensuring a smooth Editor release for Beta 1. If you need support or unclear about timing or process, please feel free to comment on this post or reach out to editor tech release leads: myself or @youknowriad.


This post was co-authored by @youknowriad.

#core-editor

What’s new in Gutenberg 17.5? (17 January 2024)

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).

Gutenberg 17.5 has been released and is available for download!

Table of Contents

  1. Editor Unification
  2. Gallery Block: Random Order Setting
  3. Other Notable Highlights
  4. Changelog
  5. First time contributors
  6. Contributors

Editor Unification

The editor unification project is working to combine the Post Editor and the Site Editor into one unified editor. This release brings that goal closer by combining many of the preferences for these two editors into one shared preferences panel.

In #57477 we added a new setting to the Gallery block which allows you to give your gallery images a random order. This feature was available in the gallery shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site., but not in the gallery block, until now!

Other Notable Highlights

  • Post Featured ImageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts.: Add a useFirstImageFromPost attribute. (56573)
  • Add drag cursor to draggable list items. (57493)
  • Font Library: Add progress-bar while uploading font assets. (57463)

Changelog

Full changelog available

Enhancements

Editor Unification

  • Editor: Add the show most used blocks preference to the site editor. (57637)
  • Editor: Migrate and unify the panel preferences. (57529)
  • Editor: Unify context text cursor preference. (57479)
  • Editor: Unify list view open preference. (57504)
  • Editor: Unify right click override preference. (57468)
  • Editor: Unify show icon labels preference. (57480)
  • Editor: Unify spotlight mode preference. (57533)
  • Editor: Unify the distraction free preference. (57590)
  • Editor: Unify the show block breadcrumbs preference. (57506)
  • Editor: Unify the top toolbar preference. (57531)

Components

  • Components: Replace TabPanel with Tabs in inline color picker. (57292
  • Add compact size variant to InputControl-based components. (57398)
  • BaseControl: Connect to context system. (57408)
  • Replace TabPanel with Tabs in the Style Book. (57287)
  • Tooltip: Improve tests. (57345)
  • Update @ariakit/reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. to v0.3.12 and @ariakit/test to v0.3.7. (57547)

Font Library

  • Font Library: Remove “has_font_mime_type” function. (57364)
  • Font Library: Update font uninstall modal text. (57368)
  • Font Library: Add progress-bar while uploading font assets. (57463)
  • Font Library: Singularize install font families endpoint. (57569)
  • Font Library: Unregister font collection. (54701)

Site Editor

  • Add Template Modal: Update scroll related layout. (57617)
  • Components: Replace TabPanel with Tabs in the Font Library Modal. (57181)

Interactivity APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

  • Implement wp_initial_state(). (57556)
  • Server directive processing: Stop processing non-interactive blocks. (56302)
  • Interactive template: Use viewModule. (57712)
  • Navigation Block: Use dom.focus for focus control. (57362)

Site Editor

  • Site editor: Add padding to entity save panel headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes.. (57471)
  • Site editor: Add margin to entity save panel header via a classname. (57473)

Block Library

  • Post Featured Image: Add a useFirstImageFromPost attribute. (56573)
  • Gallery Block: Add random order setting. (57477)
  • Image Block: Change upload icon label. (57704)

Bug Fixes

  • Avoid using a memoized selector without dependencies. (57257)
  • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Data: Pass the ‘options’ argument to data action shortcuts. (57383)
  • Preferences: Update accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) scope to “core”. (57563)

Block Editor

  • Fix Link UIUI User interface displaying out of sync results. (57522)
  • Give iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. fallback background color. (57330)
  • Rich text: Add HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. string methods to RichTextData. (57322)

Block Library

  • Footnotes: Fix wrong link when adding more than 9 footnotes. (57599)
  • Table: Remove unnecessary margin override in editor styles. (57699)
  • Template Part block: Fix template part path arg missing from actions. (56790)

Components

  • DuotonePicker: Fix top margin when no duotone options. (57489)
  • NavigatorProvider: Exclude size value from contain CSSCSS Cascading Style Sheets. rule. (57498)
  • Snackbar: Fix icon positioning. (57377)

Patterns

  • Pattern Overrides: Add template-lock: All to pattern inner blocks to prevent deletion/insertion. (57661)
  • Refactor the findOrCreate term method. (57655)
  • Edit source pattern in focus mode in post and site editors. (57036)

Site Editor

  • Make sure comamnd palette toggle does not disappear while being clicked. (57420)
  • Reinstate iframe CSS for editor canvas container. (57503)

Global Styles

  • Use is-layout pattern on layout generated classname. (57564)
  • Global styles revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.: Add individual headings translations, update tests. (57472)
  • Global style revisions: Move change summary code and tests to block editor package. (57411)
  • Reduce specificity of block style variation selectors. (57659)
  • Background image block support: Add tests for size and repeat output. (57474)

Post Editor

  • Fix Template preview menu item accessibility. (57456)
  • Fullscreen mode description: Use full text instead of abbreviation. (57518)
  • Improve pre-publish checks naming consistency. (57019)
  • Make the Replace featured image button perceivable by assistive technologies. (57453)

Components

  • Label the HeightControl. (57683)
  • NumberControl: Make increment and decrement buttons keyboard accessible. (57402)

Block Tools

  • Update the position of the patterns tab in the inserter menu. (55688)
  • Use full text instead of abbreviation for min height setting. (57680)
  • ResizableEditor: Fix tab order for resize handles. (57475)
  • Keep Lock button it in the toolbar until unmounted. (57229)
  • Custom fieldCustom Field Custom Field, also referred to as post meta, is a feature in WordPress. It allows users to add additional information when writing a post, eg contributors’ names, auth. WordPress stores this information as metadata. Users can display this meta data by using template tags in their WordPress themes. connections: Better description on Experiments page. (57501)

Performance

Block Library

  • File: Remove ‘block-editor’ store subscription. (57511)
  • Remove store subscriptions from Audio and Video blocks. (57449)
  • Site Logo: Remove unnecessary ‘block-editor’ store subscription. (57513)
  • Send numerical post id when uploading image. (57388)
  • PostFeaturedImage: Remove unnecessary ‘block-editor’ store subscription. (57554)

Experiments

Data Views

  • DataViews: Use DropdownMenuRadioItem component when possible. (57505)
  • Align icon size + placement in Patterns data view. (57548)
  • DataViews: Add duplicate pattern action in patterns page. (57592)
  • DataViews: Add duplicate template pattern action. (57638)
  • DataViews: Add footer to Pages sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (57690)
  • DataViews: Add new page button in Pages. (57685)
  • DataViews: Add sync filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. in patterns page. (57532)
  • DataViews: Consolidate CSS selectors naming schema. (57651)
  • DataViews: Fallback to (no title) is there’s no rendered title. (57434)
  • DataViews: Hide actions menu upon selecting a layout. (57418)
  • DataViews: Make fields dependant on view.type. (57450)
  • DataViews: Memoize onSetSelection. (57458)
  • DataViews: Prevent unnecessary re-renders of Pagination. (57454)
  • DataViews: Prevent unnecessary re-renders. (57452)
  • DataViews: Update names for DropdownMenuRadioItemCustom. (57416)
  • DataViews: Use i18n._x to clarify term “Duplicate”. (57686)
  • DataViews: Use in patterns page. (57333)
  • Dataview: Change the stacking order of table header. (57565)
  • Dataviews: Add some client side data handling utils. (57488)
  • Make title display in grid views consistent. (57553)
  • Update Table layout design details. (57644)
  • Update pagination spacing in List layout. (57670)
  • Update table header gap. (57671)
  • [Dataviews] Table layout: Ensure focus is not lost on interaction. (57340)

Patterns

  • [Pattern Overrides] Fix duplication of inner blocks. (57538)
  • [Pattern overrides] Allow multiple attributes overrides. (57573)

Documentation

  • Add links to additional local dev tools in Block Developement Environment readme. (57682)
  • Add new section to the Quick Start Guide about wp-env. (57559)
  • Block JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. schema: Add renaming key to supports definition. (57373)
  • Break out the Curating the Editor Experience doc into its own How-to Guides section. (57289)
  • Change the slug for the theme.json doc to avoid conflicts. (57410)
  • Docs/tutorial: Fix opposite condition for content generation in render.php. (57445)
  • Docs: Fundamentals of Block Development – Static or Dynamic rendering of a block. (57250)
  • Docs: Update sample code to fix React warning error on Tutorial page. (57412)
  • Fix formatting issue due to incorrect link parsing in the Quick Start Guide. (57693)
  • Fix incorrect heading level in Editor curation documentation. (57409)
  • Fix two typos in tutorial.md. (57627)
  • Fix: Create block getting started links. (57551)
  • Improve the static vs dynamic rendering comment in the block tutorial. (57284)
  • Update copyright year to 2024 in license.md. (57481)
  • Update the “Build your first block” tutorial based on user feedback. (57403)
  • Update: Material design icons link. (57550)

Code Quality

  • Editor: Unify the DocumentTools component. (57214)
  • Make getLastFocus and setLastFocus private. (57612)
  • Remove deprecated behaviors syntax. (57165)
  • Avoid extra useMarkPersistent dispatch calls. (57435)
  • Clean up code editor CSS. (57519)
  • Combine selectors in ‘useTransformCommands’. (57424)

Block Library

  • Background image: Add has-background classname when background image is applied. (57495)
  • File: Remove unnecessary synchronization effect. (57585)
  • Navigation: Refactor mobile overlay breakpoints to JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.. (57520)
  • Search Block: Remove unused buttonBehavior attribute. (53467)

Patterns

  • Improve inserter pattern constants. (57570)
  • Remove duplicate setting for getPostLinkProps and prefer stable naming. (57535)
  • Rename patternBlock to patternPost. (57568)

Post Editor

  • Editor: Use hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. instead of HoCs in ‘PostVisibilityCheck’. (57705)
  • Quality: Avoid React warning when changing rendering mode. (57413)

Block Editor

  • Editor: Unify the inserter sidebar. (57466)
  • Remove unused parameters from useOnBlockDrop. (57527)

List View

  • Editor: Unify the list view sidebar between the post and site editors. (57467)
  • Add drag cursor to draggable list items. (57493)

Tools

  • Dependency Extraction Webpack PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party: Use import for module externals. (57577)
  • DependencyExtractionWebpackPlugin: Add true shorthand for requestToExternalModule. (57593)
  • DependencyExtractionWebpackPlugin: Use module for wordpress/interactivity. (57602)
  • Fix webpack not setting environment.module true. (57714)
  • Modules: Load the import map polyfill when needed. (57256)
  • Blocks: Add handling for block.json viewModule. (57437)

Testing

  • Allowed Patterns end-to-end test – move tests that run with a subset of allowed blocks into a group. (57496)
  • Clean up end-to-end tests package. (57575)
  • Fix flaky ‘Post publish button’ end-to-end test. (57407)
  • Migrate ‘allowed patterns’ end-to-end tests to Playwright. (57399)
  • Migrate ‘block editor keyboard shortcuts’ end-to-end tests to Playwright. (57422)
  • Migrate ‘core settings’ end-to-end tests to Playwright. (57581)
  • Migrate ‘datepicker’ end-to-end tests to Playwright. (57545)
  • Migrate ‘dropdown menu’ end-to-end tests to Playwright. (57663)
  • Migrate ‘editor modes’ end-to-end tests to Playwright. (57574)
  • Migrate ‘invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. blocks’ end-to-end tests to Playwright. (57508)
  • Migrate ‘nux’ end-to-end tests to Playwright. (57542)
  • Migrate ‘preferences’ end-to-end tests to Playwright. (57446)
  • Migrate ‘publishing’ end-to-end tests to Playwright. (57521)
  • Migrate ‘scheduling’ end-to-end tests to Playwright. (57539)
  • Migrate ‘sidebar’ end-to-end tests to Playwright. (57448)
  • Migrate ‘taxonomies’ end-to-end tests to Playwright. (57662)
  • Migrate editing-widgets to Playwright. (57483)
  • Migrate remaining ‘publish panel’ end-to-end tests to Playwright. (57432)
  • Update ‘missing block’ end-to-end tests to use the ‘setContent’ helper. (57509)

Build Tooling

  • Group GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ Action Dependabot updates. (57591)
  • WP Scripts: Build block.json viewModule. (57461)
  • Dependency Extraction Webpack Plugin: Add Module support. (57199)

First time contributors

The following PRs were merged by first time contributors:

  • @HrithikDalal: Font Library: Update font uninstall modal text. (57368)
  • @muhme: Fix two typos in tutorial.md. (57627)

Contributors

The following contributors merged PRs in this release:

@afercia @andrewhayward @andrewserong @atachibana @c4rl0sbr4v0 @carolinan @chad1008 @ciampo @DAreRodz @dcalhoun @derekblank @desrosj @ellatrix @fai-sal @fluiddot @geriux @getdave @glendaviesnz @gziolo @hbhalodia @HrithikDalal @jameskoster @jeryj @jorgefilipecosta @jsnajdr @juanmaguitar @kevin940726 @Mamaduka @matiasbenedetto @mcsf @michalczaplinski @mirka @muhme @ndiego @ntsekouras @oandregal @ockham @ramonjd @scruffian @sirreal @Soean @t-hamano @talldan @tellthemachines @youknowriad

#block-editor, #core-editor, #gutenberg, #gutenberg-new

Dev Chat Agenda, January 16, 2024

The next WordPress Developers Chat will take place on Wednesday January 17, 2024 at 20:00 UTC in the core channel on Make WordPress Slack.

Dev Chat evolving

Using the weekly curated agenda post for live and asynchronous usage, this meeting will begin an experiment to dedicate time to current proposals in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and to help specifically with progressing releases.

  • Through the summaries of the discussions and SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. links, those unable to join live, will continue to be able to read and contribute asynchronously.
  • The links in the various agenda sections below will not be shared in full in the meeting, but be available for pre and post-reading. Anything for particular discussion can still be highlighted.
  • If you have ticketticket Created for both bug reports and feature development on the bug tracker. requests for help, please do continue to post details in the comments section at the end of this post.

Discussions

These are some of the current proposals in core for awareness and which may be suitable for further discussion in Dev Chats.

  • Proposal: Default Theme Task Force for 2024
    •  This focuses on considering how the team approaches the maintenance of the default themes to make them easier to maintain, and more future-compatible. With the release of Twenty Twenty-Four, there are now 14 default themes maintained by the project.
  • Proposal: improve the editor tech workflow for major releases
    • This proposal is focused on a workflow for merging GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ into Core
    • This could be an ideal time to discuss to discuss and experiment based on 6.4 learnings for the benefit of 6.5.
    • As Dev Chat now has a combined input from the Gutenberg and Core meetings, there is opportunity for discussing this further during the meetings and for a deeper discussion on what could be done in 6.5.
  • Interactivity API and building interactive blocks has moved past the proposal stage and is aimed at being a key feature planned for 6.5. An update has been requested to share with Dev Chat.

Could you help curate a Call for Volunteers to review the open proposals on Make/Core and create a list of unresolved ones to discuss during Dev Chat meetings?

Announcements

6.4.3 – next maintenance release – the post includes the planned schedule, the dates of the bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrubs, and the final release date of 30 January 2024.

Highlighted posts for information

These will not be re-shared in full in the meeting itself to enable time for discussions in a new experimental approach to Dev Chat.

Dev Chat Summary from January 10, 2024.

New versions for the default themes for the Twenty Twenty-OneTwenty Twenty, and Twenty Seventeen are now available for download. 

A Year In Core: 2023 – just a few highlights from this detailed post. Props to @sabernhardt and @audrasjb.

  • In 2023, the WordPress Core team shipped 2211 commits (2597 in 2022). 2751 tickets were opened, 2545 tickets were closed, and 365 were reopened.
  • Also, 1079 people contributed to WordPress source code using TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. (988 in 2022), and 472 people made their very first contribution to WordPress Core (398 in 2022).

A Week in Core – January 15, 2024 – props to @audrasjb. On Trac, between January 8 and January 15, 2024:

  • 37 commits
  • 64 contributors
  • 51 tickets created
  • 6 tickets reopened
  • 58 tickets closed
  • 8 new contributors to core!

Team reps update. The nomination period has been extended for the Core Team Reps 2024 edition to January 31, 2024 at 23:59 UTC . Full details are on the original nominations post where nominations can be added.

Call for mentors/ mentees for Contributor Mentorship program’s second cohort – deadline for applications, February 12, 2024

The Feature Projects page has had an update and worth checking out for the latest statuses. Feature Projects are intended to concentrate a group of people together, to explore potential ideas for WordPress Core.

Data Liberation in 2024 

What’s new for developers? (January 2024) on the Dev Blogblog (versus network, site).

Core-editor updates

Thanks to @annezazu.

For information

  • New tracking issue: Section Styling, Colorways, and Typesets for WP 6.5.
  • Font Library: biggest work for now is the Font Library: refactor REST API which needs feedback. Please help review if you have experience with the REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/..
  • Pattern overrides: work is ready to test starting with making paragraph blocks overrideable. Up next, headings, buttons and images are expected to be added soon as blocks that can have overrides.
  • Navigation: customize the navigation overlay with a template part, enabling a separate menu experience for mobile, has been punted from 6.5 by contributors.
  • Design tools: PR merged to add backgroundSize feature with implicit repeating backgrounds to add more functionality to the Group blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.’s background image support that was added in 6.4. Needs PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher backports.
  • Data Views: Templates is now stabilized with Pages, Patterns, and additional views in Templates added in as experimental. Questions around extensibility came up recently — extensibility is very much part of the plan with the focus currently being on stabilizing the base APIs.
  • Add appearance tools support for classic themes: this work has been completed and merged into Core trunk. This opens a world of design options that, up until this point, have been only available with Block Themes, or themes using theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML..
  • Interactivity APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.work continues for a public launch with 6.5 including a recently merged PR to render the root interactive blocks in Server Directives Processing.
  • Block bindings API: block bindings prototype is being split into smaller PRs to move work forward in smaller chunks with the PR that sets the basis for the API recently merged (this doesn’t add a UIUI User interface to create the bindings).

New (thanks to @bph)

Releases

Next major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.: 6.5

Please also view the updates relating to 6.5 related updates under the core-editor heading above.

A release squad announcement is expected shortly.
Next milestone: BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 is Feb 13, 2024.

New links on 6.5 since last week:

Recording of hallway hangout: Let’s explore 6.5

Early opportunities to test WordPress 6.5

Note update on the Font Library API design proposal with a particular note for REST API folks to view as per this comment. The navigation overlay has been punted from the 6.5 roadmap by the contributors working on this feature.

Any other updates on the Font Library?

Could you help with running a bug scrub around a particular area, component, or towards 6.5? More information on running scrubs. More dates for 6.5 bug scrubs will also be added once a squad is in place.

Existing 6.5 links

Next minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality.: 6.4.3

  • As shared above in Highlighted Posts, the next maintenance release will be 6.4.3.
  • Milestone: RC1 January 25, 2024
  • Release slated for: January 30, 2024
  • Bug scrubs and more information is in the link above.
  • 6.4-release-leads channel on Slack

Gutenberg releases

17.5 can be downloaded from the Gutenberg plugins page.

Update: A “What’s new in Gutenberg 17.5” has been published – thanks @scruffian and everyone who worked on 17.5.

Tickets to highlight for assistance

Priority will be given to tickets relating to 6.5.

Open floor

You can post suggestions in the comments box. Please indicate if you are intending to be at the meeting for any queries.

Thanks to @hellofromtonya for discussion on the core proposals lists and @annezazu for sharing the core-editor updates.


#agenda, #core, #dev-chat

Dev Chat Summary, January 10, 2024

The WordPress Developers Chat meeting took place on  10 January 2024 at 20:00 UTC  in core on Make WordPress Slack.

Key info

Chat Summary

Nominations for 2024 Core Team Reps:

@desrosj reminded Gutenberg and Core development contributors to update their local Node.js/npm as:

.. the versions of Node.js and npm required for WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. development are now 20.x and 10.x.

In order to continue contributing to WordPress through wordpress-develop or WordPress/Gutenberg, you’ll need to upgrade the version of Node.js installed on your machine to one that’s greater than or equal to 20.10.0 (currently the most recent generally available version 20.x version). This should also update npm to the correct, expected version appropriately (10.2.3 or higher is required).

Release Updates

Next minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality.: 6.4.3

@jorbin shared an update:

  • Timeline coming before next devchat.
  • No pressing issues – okay to wait “a few weeks for the next minor.”
  • Reminder to “milestone any tickets” needing addressing.

Next major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.: 6.5

  • Release squad: call to join the squad ended Jan 12th.
  • Current: in Alpha.
  • Next milestone: BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 is Feb 13th.

Tickets / Issues that need assistance

  • #60227 @jonsurrell asked for feedback to use an external library for testing the HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways..
  • #60025 @jorbin requested help (it’s in the 6.4.3 milestone) and noted:

Joe did a great job of summerizing and shared some paths forward that I think could be good to explore

Open Floor

Discussion of changing DevChat

@jorbin opened the discussion for changing DevChat, i.e. to get to the important things to chat about (rather than half or more of the meeting dropping links):

As we are now 43 minutes into the meeting and it’s been almost all link sharing thus far, I wonder if perhaps 2024 should be the year we explore some alternatives for this meeting? I’m not sure that a link dump is doing it

The discussion summary:

socializing to folks leading/working on feature projects or specific items targeted in a current major release that devchat is a good place to come and share blocks/problems/areas for feedback they have.  Chatting through those things synchronously can help find alternate paths forward for those things that are of importance to the project.

advance those conversations towards an acceptance or finding iterative ways to improve those proposals.

When to start? Experiment starts next meeting.

Call for Volunteers to review the open proposals on Make/Core and create a list of unresolved ones to discuss during the DevChat meeting.

Font Library – avoid merge roadblocks

@joemcgill asked for Font Library update and plan to avoid the roadblocks experienced during 6.4. See the discussion in the Slack thread which includes Core merge criteria.

Next Meeting

The next meeting will be on 17 January 2024 at 20:00 UTC . This DevChat will experiment with a new approach

Are you interested in helping draft DevChat summaries? Volunteer at the next meeting!

Props @webcommsat for peer review.

#6-4, #6-5, #core, #core-editor, #dev-chat, #meeting, #summary

Dev Chat agenda, January 10, 2024

The agenda for the first dev chat after the seasonal break is below. The meeting takes place on the CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. channel of the Make WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. on January 10, 2024 at 20:00 UTC .

(Update: GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ testing requests have been added under the Releases heading.)

Welcome and housekeeping

All welcome.

Announcements

What’s new in Gutenberg 17.4

Reminder: call for volunteers for 2024 major releases.

Highlighted Posts

Posts during the break were highlighted in the following post. Many of the items in that post are still relevant, including a reminder that the core team repTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts. nomination period had been extended until January 12, 2024 at 23:59 UTC, to give more time for Core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. to consider and nominate other contributors and/or themselves. Nominations post for 2024 core team reps.

In the last few days, there have been the following new posts:

A Week in Core – Jan 8, 2023 – big thanks to @audrasjb

On TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between January 1 and January 8, 2024:

  • 19 commits
  • 20 contributors
  • 26 tickets created
  • 2 tickets reopened
  • 21 tickets closed

Phase 3, agency outreach recap @s1m0nd on an outreach exercise to enterprise WordPress agencies specializing in enterprise projects, inviting them to a series of informal show-and-tell sessions.

Update from the Developer Blogblog (versus network, site)

New design is live.

What’s new for developers, December 2023.

Writers are invited for the following articles on the WordPress Developer Blog:

To volunteer or ask further queries, comment on the GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ tickets linked. If you need further assistance, post a message in the in the #core-dev-blog channel.


Core-editor update

Props to @annezazu for this update from January 2, 2024.

For information:

Release updates

Next major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.: 6.5

Existing links:

Gutenberg updates

Thanks @bph for sharing.

  • Gutenberg plugin 17.5 RC1 is now available for testing
  • WordPress 6.5 Roadmap: a few features are already available in Gutenberg pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and could use some testing and feedback (the links below are tracking issues)

Tickets for assistance

Tickets can be highlighted for this section of the agenda, priority will be given to 6.5 release items.

Open floor

#6-5, #agenda, #core-editor, #dev-chat

What’s new in Gutenberg 17.4? (03 January)

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).

Gutenberg 17.4. has been released and is available for download!

For this release, contributors reached a milestone for data views, increased feature parity between site and post editors, improved performance across a few areas and added functionality to current features, including List view and Style RevisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.

With this new version, users can expect more flexibility with background images for the Group blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. and fixes to improve support for design tools for classic themes.

Table of Contents

Data Views: List of Templates stable

Screenshot of the new Template Data view

The Data Views work reaches a new milestone: stabilizing this new experience for the template screen, making it available outside the experiments flag and without the additional “Views” options. Please consider using this new experience and provide feedback! (57109)

Style revisions: Stylebook integration and pagination

Screenshot of the Styles Revisions sidebar.

Work continued evolving the usefulness of Style Revisions, with added pagination for better navigation and the integration with the Stylebook. When reviewing revisions with the Style Book, you can better understand the impact of the changes for both within the template you’re looking at and across individual blocks. (56799) (56800)

Background Images: size and repeat controls.

Screenshot of Group Block Background images settings.

This release also adds controls to the background image to adjust size and toggle repetition for the Group Block. This allows you to set the background image to “Cover” (default), or to “Contain”, keeping the aspect ratio intact, and when set to repeat it only repeats in one dimension. With the “Fixed” option, you can set a custom display width, and by selecting the repeat feature, the image repeats over the canvas size of the block. (#57005

List View: Right click access to Block Setting

Screenshot of List view left columns with a right click menu for the Block settings.

A right click on List View opens up that block’s settings menu and gives fast access and streamlines editing. 50273

Other Notable Highlights

  • The site editor received an additional sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. panel already available to post editor screens. Unification of the interface and access to the same controls for page page attributes, post taxonomies, Discussion panel, and feature image panel, gives users more confidence in learning how to use it and allows as well to streamline development in the future. (57151, 57049, 57153, 57150, 57053, 57010)
  • The support for `appearanceTools` for classic themes has been expanded and improved for default color palette handling and duotone settings. (56131)

Changelog

Full changelog available

Enhancements

Components

  • Refactor experimental dropdown menu usages to the latest version. (55625)
  • Replace TabPanel with Tabs in the Block Inspector. (56995)
  • Replace TabPanel with Tabs in the editor Global Styles color palette. (57126)
  • ToggleGroupControl: Update large button size to 32px. (57338)
  • Update ariakit version. (57325)
  • CustomSelect: Add WordPressComponentsProps. (56998)
  • Modal: Improve application of body class names. (55430)
  • Components: Replace TabPanel with Tabs in the Block Inserter. (56918)

Site Editor

  • Add Page Attributes panel. (57151)
  • Add Post Taxonomies panel. (57049)
  • Add View Link. (57153)
  • Add the Discussion panel. (57150)
  • Add the featured imageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. panel. (57053)
  • Editor: Unify revision panel between post and site editors. (57010)
  • Social Link block: Obfuscate email address. (57384)

Design Tools

  • Background image: Add backgroundSize and repeat features. (57005)
  • Make sure theme color palette presets are output when appearance tools are enabled. (57190)
  • Move the tools panel to the left of the inspector. (55785)

Global Styles

  • Global styles revisions: Add pagination. (56799)
  • Global styles revisions: Integrate stylebook. (56800)

Bug Fixes

Components

  • DropdownMenu V2: Add fallback styles for when subgrid is not supported. (57327)
  • DropdownMenuV2: Do not collapse suffix width. (57238)
  • Fix DayButton dot position and expand the Button area. (55502)
  • Fix logic of has-text class addition in Button. (56949)
  • Palette Edit: Don’t discard colors with default name and slug. (54332)
  • PaletteEdit: Consider digits when generating kebab-cased slug. (56713)
  • RadioControl: Fully encapsulate styles. (57347)
  • Tabs: Make sure individual Tabs are linked to the correct TabPanels. (57033)
  • Text selection: Show CSSCSS Cascading Style Sheets. hack to Safari only. (57300)
  • Truncate: Improve handling of non-string children. (57261)
  • FormTokenField: Handle disabled prop on internal Button. (57187)
  • tab panel: Don’t render hidden content by default. (57046)

Block Editor

  • Exclude disabled buttons when setting initialIndex of NavigableToolbar. (57280)
  • Fix BlockSwitcher checks for showing a Dropdown menu or not. (57047)
  • Fix block lock toolbar item stealing focus when mounted with StrictMode. (57185)
  • Fix content lock UIUI User interface regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5.. (56974)
  • Fix vertical overflow when inserter is open in post and site editor. (57127)
  • Hide drop indicator where block isn’t allowed to drop. (56843)
  • InserterListItem: Use item.isDisabled to detect disabled item. (57161)
  • More settings tip: Add explicit font size. (55835)
  • Writing flow: Absorb partial multi selection dispatching. (47525)
  • Fix the block ‘edit’ property validation. (57193)

Block Library

  • Audio: Hide some controls when multi-editing blocks. (57376)
  • Disable resizing when the viewport is small and wide-aligned. (57041)
  • Gallery: Hide some controls when multi-editing blocks. (57378)
  • Image Block: Get lightbox trigger button ref via data-wp-init. (57089)
  • Image: Hide caption control when multi-editing images. (57357)
  • Video: Hide some controls when multi-editing blocks. (57375)
  • Image Block: Fix deprecation when width/height attribute is a number. (57063)

Patterns

  • Fix: Viewport width not accounted for in the Site Editor > Patterns view. (55803)
  • Override all the labels of the pattern categories taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.. (57094)
  • Pattern CategoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.: Change show_tagcloud to false. (57212)
  • Patterns (unsynced): Prevent infinite loops due to recursive patterns. (56511)

Site Editor

  • Fix image upload bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.. (57040)
  • Reduce clearance around the Frame in the site editor. (57023)
  • Swap Template: Show the right templates for the right post type. (57149)
  • Save Button: Fix the translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. of the Activate button. (57147)
  • SlotFill: Allow contextual SlotFillProviders. (56779)

Post Editor

  • Editor: Use visibility selector for PostTemplatePanel. (57224)
  • Fix: Code editor title width in classic theme. (56922)

Design Tools

  • Allow default duotone styles in classic themes. (57191)
  • StylesPreview: Fix endless loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. of ratio calculations when on the threshold of a scrollbar. (57090)

Interactivity APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

  • Fix namespaces in nested interactive regions. (57029)
  • Fix Interactivity, not working on Classic Themes. (57396)

Collaborative Editing

  • Collab editing: Ensure block attributes are serializable. (57025)

AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)

  • Font size picker: Fix Reset button focus loss. (57196)
  • a11yAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility): Apply focus style to revision items. (57039)
  • [a11y] Fix: Use spans instead of headings on data views table view page title. (56956)

Performance

Block Editor

  • Block: Combine store subscriptions. (56994)
  • Combine selectors in the ‘BackgroundImagePanelItem’ component. (57159)
  • InnerBlocks: overlay: Remove viewport size condition. (57135)
  • Prevent layout re-rendering when changing selected block. (57136)
  • Prevent re-rendering the editor headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. when the selected block changes. (57140)
  • Rewrite moving animation for better load performance. (57133)
  • Rich text: Avoid block editor subscription if not selected. (57226)
  • Try removing extra memoization for individual style panels. (57160)
  • hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.: Manage save props in one place. (57043)

Block Library

  • Gallery: Combine useSelect calls. (57240)
  • Image: Reduce ‘block-editor’ store subscriptions. (57358)
  • List: Avoid useSelect in block render. (57077)
  • Blocks: Simplify/optimize isUnmodifiedBlock. (56919)
  • InnerBlocks: Combine store subscriptions. (57032)

Components

  • Navigator: Use CSS animations instead of framer-motion. (56909)
  • useSelect: Only invalidate on subscribe if store changed. (57108)

Experiments

Data Views

  • Add hover style to table rows. (57058)
  • Add: See revisions template action. (57175)
  • Code Quality: Update: Reuse view revisions action on templates and pages. (57208)
  • DataViews: Add list layout to templates. (57014)
  • DataViews: Align filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. implementations. (57059)
  • DataViews: Centralize control of filter visibility in the Filters component. (57056)
  • DataViews: Close actions menu upon switching layouts. (57015)
  • DataViews: Display column header when the field is only filterable. (57051)
  • DataViews: Fix bug on operators count for table layout. (57048)
  • DataViews: Improve naming for easy identification in ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. devtools. (57385)
  • DataViews: Improve preview. (57116)
  • DataViews: Make deferredRendering prop optional. (57334)
  • DataViews: Make getItemId optional. (57308)
  • DataViews: Make filters footprint more condensed. (56983)
  • DataViews: Mark the new Templates pages as stable. (57109)
  • DataViews: Memoize onSelectionChange callback. (57390)
  • DataViews: Remove paginationInfo prop from ViewComponent. (57306)
  • DataViews: Remove reference to edit site class. (57075)
  • DataViews: Rename operatorsFromField to sanitizeOperators. (57050)
  • DataViews: Update onChangeView memoization. (57393)
  • DataViews: Update documentation. (57305)
  • DataViews: Use SelectControl for selecting a page. (57215)
  • Dataviews: Simplify pagination. (57071)
  • Fix: Empty dropdown(s) on the grid view. (57316)
  • Fix: Template list title font styles. (57027)
  • Sort order: Use Unicode characters instead of SVG icons. (56833)
  • Update: Make secondary actions trigger always visible. (57174)
  • Use default variants for Filter and View buttons. (57057)

Patterns

  • Fix broken undo history stack for Pattern Overrides. (57088)
  • Fix unsaved pattern not reflecting on pattern overrides. (57148)
  • [Pattern Overrides] Use a single checkbox to turn on pattern overrides for all allowed attributes. (57009)

List View

  • Allow right-click to open block settings dropdown, add editor setting. (50273)

Documentation

  • Add new section on markup representation of a block. (57230)
  • Added additional explanations to attributes and supports sections. (57120)
  • Added documentation for the text-decoration-control component. (57184)
  • CardHeader used instead of CardFooter. (45585)
  • Components: Update TypeScript-related tips in Contributing Guide. (57267)
  • Doc: Block Wrapper – enclose HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.), use correct keyword supports not support. (56906)
  • Docs/getting started readme. (57223)
  • Docs: Add a new “Build your first block” tutorial to the Getting Started section of the BEH. (56931)
  • Docs: Fundamentals block development/block in the editor — add page to manifest (toc). (57179)
  • Docs: Fundamentals of Block Development – block in the editor. (56488)
  • Enforce heading sentence case throughout the BEH. (57143)
  • Fix grammar and typos in the Block Development Environment doc. (57123)
  • Fix incorrect links in ToggleGroupControl docs. (57236)
  • Fix: Typo on footnotes docs. (57348)
  • Fixes heading hierarchy in block filters. (57239)
  • Minor heading to improve readability and reference. (57102)
  • Platform Docs: Fix missing link. (57145)
  • Remove Radix UI-related documentation. (57336)
  • Remove links to excalidraw diagrams from images. (56980)
  • Remove the “How to use JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. in the Block Editor” documentation. (57166)
  • Remove unnecessary TOCs from documentation. (57087)
  • Restore descriptions for deprecated button props. (37690)
  • Small heading fix. (57098)
  • Snackbar: Remove __unstableHTML prop from TS. (57218)
  • Update block toolbar and settings sidebar image. (57203)
  • fix: Updated the link for “Building a custom block editor”. (57319)

Code Quality

  • Add missing block/theme jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. $schema property. (57201)
  • Add missing period in block descriptions. (57131)
  • Fix code style in Gutenberg_HTML_Tag_Processor_6_5. (57030)
  • Font size picker: Use Button API for keeping focus on reset. (57221)
  • Mobile: Fix getPxFromCssUnit circular dependency. (57045)

Block Editor

  • Editor: Move the ExcerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox. panel to the editor package. (57096)
  • Refactor useCanContextualToolbarShow for simplicity and clarity. (56914)
  • Remove unnecessary isDisabled option on useShortcut for BlockToolbarPopover. (56907)
  • Replace block variation buttons with ToggleGroupControl. (45654)
  • Replace isSmall prop #53560. (53599)
  • Several little refactors. (57107)
  • useBlockTypesState: Divide useSelect call into two. (57163)
  • useInputRules: Remove unneeded check for inputRule. (57164)

Components

  • Adding unit tests for useCompositeState to Composite component. (56645)
  • Delete experimental radix-ui based DropdownMenu component. (55626)
  • GradientPicker: Use index while iterating over gradient entries to avoid React “duplicated key” warning. (57361)
  • TabPanel: Refactor unit tests to @ariakit/test. (57302)
  • Tabs: Update styling to more closely match previous implementation. (57275)
  • ToggleGroupControl: Fix snapshots. (57367)
  • Move kebabCase() function from block-editor package and mark it as a private API. (56758)

Block Library

  • Gallery Block: Remove unused attributes property in ShortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. transformation. (57356)
  • Remove cruft in Button block editor styles. (30950)
  • Tag Cloud: Replace ‘withSelect’ HoC with ‘useSelect’. (57194)

Global Styles

  • Global styles revisions: Refactor sticky pagination footer to use CSS. (57294)
  • Relocate revisions from fill to sidebar component. (57034)
  • Simplify the conditions in GlobalStylesEditorCanvasContainerLink. (57144)

List View

  • Editor: Move and unify the inserter and list view states. (57158)
  • Editor: Unify the list view shortcut registration and definition. (57200)
  • ListView: Replace prop drilldown by a stable ref in store. (57198)

Typography

  • Font Library: Consolidate existing API rest endpoints. (57282)
  • Quality: Replace wpKebabCase function with kebabCase function from components package. (57038)

Site Editor

  • Editor: Move the panel visibility state from the edit-post to the editor package. (57012)
  • Remove isResizing variable from layout component as it is always false. (57119)
  • Allow disabling and enabling comments. (57205)
  • Add basic test coverage for Navigation MenuNavigation Menu A theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. editing mode. (56871)
  • Fix flaky Navigation focus mode test. (57016)

PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party

  • Implement proposal to remove the WordPress-Docs ruleset. (56982)
  • i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.: Make menu and title labels in Gutenberg plugin translatable. (43500)

Modules API

  • Refactor, tests, and final dependencies array structure. (57231)

Tools

  • Dependency Extraction Webpack Plugin: Fix test issues. (57332)

Testing

  • Add an end-to-end test to check image upload working in site editor. (57086)
  • Components: Add unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. __experimentalExpandOnFocus unit tests for FormTokenField. (57122)
  • Global styles revisions e2e: Tidy up selectors to open revisions panel. (57146)
  • Migrate ‘Comments Form’ end-to-end tests to Playwright. (57337)
  • Migrate Site Editor ‘settings sidebar’ end-to-end tests to Playwright. (57392)
  • Migrate remaining ‘block switcher’ end-to-end tests to Playwright. (57381)
  • e2e: Try to fix flaky font-library test. (57092)

Build Tooling

  • DependencyExtractionWebpackPlugin: Drop webpack4 and node<18. (57303)
  • Disable webpack perf hints when compiling packages. (57155)
  • Update to Node.js 20.x. (56331)

First time contributors

The following PRs were merged by first time contributors:

Contributors

The following contributors merged PRs in this release:@andrewhayward @andrewserong @anton-vlasenko @arthur791004 @atachibana @bacoords @BenjaminZekavica @brookewp @c4rl0sbr4v0 @chad1008 @ciampo @colorful-tones @DAreRodz @dcalhoun @ddryo @derekblank @desrosj @dotslashbit @ellatrix @fluiddot @geriux @getdave @glendaviesnz @gvgvgvijayan @jameskoster @jasmussen @jeryj @jorgefilipecosta @jsnajdr @juanmaguitar @kevin940726 @koen12344 @kurudrive @luisherranz @Mamaduka @matiasbenedetto @mcsf @mhimon @mirka @ndiego @ntsekouras @oandregal @ockham @ramonjd @richtabor @SiobhyB @sirreal @stokesman @t-hamano @tellthemachines @TimBroddin @youknowriad @yuliyan


Props to @annezazu for co-writing, and @saxonfletcher for for designing assets for this post. 

#block-editor, #core-editor, #gutenberg, #gutenberg-new