Gutenberg 15.9.1 is now available

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/ 15.9.1 has been released and is available for download!

This minor version includes two fixes.

Custom fonts are back again visible on the editor (51178)

There was a 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. on Gutenberg 15.9 that prevented the fonts to be loaded on the editor.

Social icon colors now correctly reflect changes in Global Styles (51020)

Social Icons colors where not changing with styles variations.

Contributors

Props to @hellofromtonya and @ndiego for their contributions and to @cbringmann for proofreading.

#core-editor, #gutenberg

Developer Blog Editorial Meeting – 01 June 2023

A complete transcript of the meeting can be found in the #core-dev-blog channel in Making 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/..

Attendees: @greenshady (facilitator), @marybaum, @milana_cap, @ndiego, @webcommsat, @mburridge

Agenda:

  • Site updates and new posts
  • Project Board
    • In the works
    • Reviews needed
    • To be approved
    • new discussions on topics
  • Open Floor

Site updates and new posts

The “What’s new for developers? (May 2023)” post was tweeted about from the official WordPress social media accounts. Attendees were encouraged to re-share to their networks.

Project Board

In the works

New Posts published since the last meeting:

Topics that are currently in progress:

It should be noted that Adding custom color options for blocks has had a change of direction from what was previously approved, but this change has been approved by @greenshady and @bph.

The following posts have previously been approved and are on the to-do list. Some of them already have authors;

Reviews needed

Currently only one post is in need of review:

To be approved

The following topics were approved:

These will be converted to issues and the discussions closed. Prospective authors who would like to contribute to the Developer Blogblog (versus network, site) are invited to select one of these to work on, that hasn’t already been assigned an author.

New discussions on topics

Two topics are under discussion and have not yet been approved:

Regarding the first of these, it was considered that the topic is not yet defined enough. It also mentions using a third-party theme and a third-party 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 which prompted a discussion on whether third-party themes and plugins should be promoted in the Developer Blog. The consensus on this was that they should not be promoted in this way.

With regards to the second topic that was discussed, it was considered that the remit is too broad but that there may be some good ideas for individual posts contained within it.

Open Floor

@greenshady asked whether it might be best to allow linking/mentioning to only coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-owned plugins/themes (i.e., official products), retaining a policy of not linking to third-party plugins/themes?

There was some disagreement on this but eventually the consensus was that only mention of wp.org made plugins/themes should be allowed.

@greenshady also suggested that it might be possible to draw a hard line on this, but allow the editorial group to decide when an edge case pops up.

A distinction was made between personal repos used for demo code in a post, and “products” such as themes and plugins in the WordPress repository.

A ticketticket Created for both bug reports and feature development on the bug tracker. will be opened to continue this discussion.

Also briefly discussed at the end of the meeting was updating the guidelines to make the review process clear.

Props to @greenshady for reviewing this post.

#core, #core-dev-blog, #meeting, #summary

Editor chat summary: 31 May, 2023

This post summarizes the weekly editor chat meeting (agenda for 31st of May meeting) held on Wednesday, May 31 2023, 03:00 PM GMT+1 in Slack. Moderated by @andraganescu.

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/ 15.9 has been released

Key project updates:

No updates of Key Projects during the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. editor meeting.

Task Coordination

Task coordination was not held due to low attendance.

Open Floor

@alexstine

Looking to get early feedback on Writing flow: Try arrow press confirmation before switching blocks – a change that would bring much better keyboard 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) to all editors. Please add your thoughts. Positive or negative, I want to hear. If you think it should be done differently, happy to hear that too.

@mamaduka

Last week I published a proposal for the new registerBlockSupport 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 looking for some feedback – Proposal: The registerBlockSupport API

@cbravobernal

Any help with this regression will be highly appreciated – Fonts not loading in page/site editor with Gutenberg 15.9 RC1

Read complete transcript

#core-editor, #core-editor-summary, #gutenberg, #meeting-notes, #summary

What’s new in Gutenberg 15.9? (31 May)

“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).


What's New In Gutenberg 15.9 sentence. Half in blue, half in white with a dark background.

Gutenberg 15.9 has been released and is available for download!

This release includes 171 PRs from 56 contributors, and includes several exciting features such as an improved Site Editor user experience and a new command tool with a pending name.

Command tool (name TBD)

You can now use the new Command tool feature!

To access it, simply open the Site Editor and use the keyboard shortcut Cmd+k on Mac or Ctrl+k on Windows. Once opened, you will discover a range of commands that enable swift navigation, content creation, and more.

You can also add your own commands to the interface, the documentation is available here.

Your feedback is vital in helping us refine and improve the Command tool. We have a feedback request available on the Make blog, and we would greatly appreciate any input you can provide.

Command tool shown on the Site Editor.

Enhancements to the Site Editor Experience

The Site Editor has been updated with features that improve the user experience:

Preview at any size

You now have the ability to resize your site editor, allowing you to preview how it will appear on smaller screens such as mobile devices.

Improved Drag and Drop

When moving blocks, you will now see a visual cue that clearly indicates where the 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. will be dropped, particularly in empty groups. This enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. streamlines the process, making it easier and more intuitive to rearrange your site’s layout.

Site view improvements

You can now access style variations and all navigation menus of your site within this mode. This enhancement simplifies the process of switching between different styles and menus, offering a more convenient interface for making such adjustments.

Other Notable Highlights

There are some improvements too that are worthy to mention like:

  • An 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. that allows inserter items to be prioritized. (50510)
  • 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) through arrow keys is better in some input types. (43667)
  • Keyboard focus improvements for accessibility. (50384, 50349, 50577, 50785)

Not to mention all the bugs fixed that you can check in the changelog below.

Changelog

Enhancements

Block Library

  • Add block variations transformation in block switcher. (50139)
  • Code block: Add wide align support. (50710)
  • Post Title edit: Adjust the logic, so it avoids unnecessary OPTIONS requests. (49839)
  • Pattern block: Add experimental flag and syncStatus attrib to allow testing of partial syncing. (50533)
  • Pattern block: Add slug as classname to pattern block wrapper. (50641)
  • Removes the Post Content block from the inserter in the post editor. (50620)
  • Navigation: Handle empty menus in Navigation Browse Mode. (50870)
  • Navigation: browse mode list all Navigation Menus. (50840)
  • Navigation: remove all edit functionality in Browse Mode. (50788)
  • Navigation: Use the ListView in the Navigation block inspector controls. (49417)
  • Navigation: Respect showAppender when there are no items in list view. (50711)

Command tool

  • Command tool available without the experimental flag. (50781)
  • Add contextual commands. (50543)
  • Marks the commands APIs as public. (50691)
  • Update the document title in the site editor to open the command tool. (50369)

Components

  • Add an outline when the color picker select box is focused. (50609)
  • Button: Update disabled state to be without background. (50496)
  • Update tooltip colors. (50792)

Site Editor

  • Editor canvas container: Include resizeable 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. in component. (50682)
  • Snackbar: Make sure only one template deleted displays at once. (50625)
  • Snackbar: Simplify the template revert. (50626)
    (#50369))
  • Update the add template menu. (50595)
  • Browse Mode: Add snackbar notices. (50794)
  • Site Editor navigation: Add corresponding area icon to template part menu items. (50791)
  • Update frame resizing. (49910)
  • Always show the Styles navigation item. (50573)
  • Sort template parts by type in navigation screen. (50841)
  • Site editor: Update custom post types with _edit_link. (50563)

Interactivity API

  • Image: Add lightbox using directives. (50373)
  • File: Add experimental integration with Interactivity API. (50377)
  • Support negation operator in selectors. (50732)

Block Editor

  • Add lang and dir attributes to text-formatting tools. (49985)
  • Use bdo element when defining the language of some text. (50632)
  • Block inserter: Improve alignment of block inserter search and close icons. (50439)
  • Show visual cue when dragging over empty group block. (50826)
  • Add ability to prevent editing blocks using useBlockEditingMode(). (50643)
  • Remove unwrap from transforms and add ungroup to more blocks. (50385)
  • Add new API to allow inserter items to be prioritised. (50510)
  • Integrate prioritizedInserterBlocks API to slash inserter. (50658)

Global Styles

  • Custom CSSCSS Cascading Style Sheets.: Force display of in custom css input boxes to LTR. (50768)
  • Styles Navigation Screen: Add Style Book. (50566)

Data Layer

  • Data: Improve hasResolvingSelectors redux metadata selector. (50865)

List View

  • Remove fade in/out animation for block settings menu icon button. (50823)

Full Site Editing

  • Template editing: Improve revert notices. (50302)
  • Template pattern modal: Remove internal modal classnames. (50655)
  • Library: Rename template parts to library. (50769)

Accessibility

  • Modals: Update the Cancel action’s button design. (50544)
  • Writing flow: Improve keyboard navigation on certain input types. (43667)

Icons

  • Add new HeadingLevel icons. (50856)
  • Smaller external link icon. (50728)

Bug Fixes

Block Library

  • Ensure multiple pattern blocks with the same slug each create unique blocks. (50629)
  • Fix inconsistent Link UIUI User interface in Nav block list view editor. (50774)
  • Pattern block: Update frontend render code to match the new version of syncStatus attrib. (50646)
  • Revert “Browse Mode: Add snackbar notices (#50794)”. (50937)
  • Update rel and title labels for navigation and submenu links. (50214)
  • Social Link: Remove block on DELETE if empty URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org. (50903)
  • Social Link: Add color classes so icon colors correctly reflect changes in Global Styles. (51020)
  • Navigation: Duplicate LeafMoreMenu into the navigation block and the global 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. navigation. (50489)
  • Post Comments From: Prevent hidden input fields from being focusable in Safari. (50834)
  • Image: Improve the image block lightbox translations, labelling, and escaping. (50962)

Accessibility

  • Fix Multiple Tooltips from Focus Toolbar Shortcut on Site Editor. (50349)
  • Fix accessibility issues navigation block experiment. (50786)
  • Fix accessibility of the Classic block modal dialog. (50384)
  • Fix labelling, description, and focus style of the block transform to pattern previews. (50577)
  • ToggleGroupControl: Fix focus and selected style to support Windows High Contrast mode. (50785)

Global Styles

  • Add back the global styles logic that forces the solid border when color or width applied. (50498)
  • Dimensions Panel: Fix resetting of axial spacing controls. (50654)
  • Global Styles: Enable deep linking to the selected block only in the Blocks screen. (50708)
  • 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.: Highlight currently-loaded revision. (50725)
  • Better error message when 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. styles use a duotone preset not in settings. (50714)
  • Fix custom duotone filters in frontend. (50678)

Commands Tool

  • Commands Tool: Fix contextual commands selectors. (50829)
  • Commands Tool: Add searchLabel property to commands. (50663)

Components

  • Add transparent outline to input control BackdropUI focus style. (50772)
  • Update border and focus style of the Input selector in ColorPicker Component. (50703)

Site Editor

  • Fix custom template creation 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.. (50797)
  • Remove the loader from sidebar navigation screen. (50326)
  • Update site editor sidebar alignment. (50561)
  • Fix useEditedEntityRecord() loading state. (50730)
  • Fix width of Template Parts view. (50836)
  • Process template part shortcodes before blocks. (50801)
  • Convert device type margin styles into non-shorthand syntax. (50441)
  • Browse mode Navigation: Fix broken submenu items. (50551)

Inspector Controls

  • Template revisions: Require 2 revisions before showing the revisions UI. (50762)

Block Editor

  • List block: Fix merging nested list into paragraph. (50634)
  • Add grab cursor style for Block mover drag handle button. (50808)
  • Fix gutenberg_get_block_editor_settings overriding other 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.. (50760)
  • Iframe: Use src instead of srcDoc. (50875)
  • Don’t use global ‘select’ in the Behaviors controls component. (51028)
  • Lightbox UI appearing with interactivity experiment disabled. (51025)
  • Move “No Behaviors” to be the first option in the list of behaviors. (50979)
  • Revert “Browse Mode: Add snackbar notices. (50937)

Rich Text

  • File block: Fix editing of empty file name. (50607)

List View

  • Ensure settings menu is visible when focused. (50572)

Layout

  • Navigation: Fix warning when stretch justification is used. (50568)

Tests

  • Fix release performance tests. (50699)

Patterns

  • Library: Revert description change until new grid view lands. (51039)

Performance

Block Library

  • Nav block: Improve loading UXUX User experience by preloading 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. requests. (48683)
  • Inner blocks: Reduce tree depth to improve performance. (50447)

Site Editor

  • Edit Site: Optimize loading useSelect call. (50546)

Experiments

Components

  • Add new experimental version of DropdownMenu. (49473)
  • Behaviors UI. (49972)

Documentation

  • Add link for more details about block variations’ example. (50909)
  • Components: Back-add changelog for TypeScript types. (50881)
  • Add parent and experimental status to the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. block reference. (48269)
  • Fix syntax highlighting of curating the editor experience guide. (50902)
  • Minor updates to theme.json schema pages. (50742)
  • Update PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher docblockdocblock (phpdoc, xref, inline docs) for WP_Theme_JSON_Gutenberg::Get_property_value. (50527)
  • Mobile app: Fix change log typo. (50737)
  • Icons: Update README.md to include a link to the documentation. (50606)

Code Quality

Block Library

  • Cover: Unlock private APIs outside of the component. (50686)
  • Fix column block categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.. (46048)
  • Freeform: Move modal styles to the correct file. (50858)
  • Navigation: Remove the check for draft navigation menus from the UnsavedInnerBlocks component. (49161)
  • Navigation: Unlock private APIs outside of the component. (50509)
  • Remove OffCanvasEditor. (50705)
  • Comments: Replace get_comments() with get_comments_number(). (50798)
  • Lodash: Remove from Gallery block. (50591)
  • Lodash: Remove from Image block. (50592)
  • Lodash: Remove from Latest Posts block. (50593)
  • Lodash: Remove from Media & Text block. (50587)
  • Lodash: Remove from template part block. (50586)
  • Lodash: Remove unnecessary mock from Buttons tests. (50588)

Block Editor

  • Block Editor: Remove unused ‘useIsDimensionsSupportValid’ method. (50735)
  • Block styles: Remove unused prop from inserter preview component. (50622)

Post Editor

  • Edit Post: Unlock useShouldContextualToolbarShow outside of the component. (50612)
  • FlatTermSelector: Fix the ‘useSelect’ missing dependency. (50872)

Site Editor

  • Use the keyboard shortcuts package for the title bar. (50873)
  • Simplify variation selectors. (50687)
  • Unlock private APIs outside of the component. (50534)
  • Remove unused ‘NavigateToLink’ component. (50908)
  • Move gutenberg_get_remote_theme_patterns. (50597)

Interactivity API

  • Polish experimental navigation block. (50670)

Components

  • DropdownMenu: Refactor to TypeScript. (50187)

npm Packages

  • chore: Update memize to v2. (50172)

Global Styles

  • Global styles revisions: Remove unused private var. (50763)
  • Introduce prepend_to_selector() to avoid additional if checks and follow single responsibility principle. (50266)
  • Move gutenberg_get_global_styles function. (50596)

Tools

Testing

  • Combine frontend navigation Page list block tests into one test to speed up end-to-end tests. (50681)
  • Command center: Enable end-to-end tests. (50833)
  • Create pages before navigation tests requiring link control to find page results. (50680)
  • Enable iframe-inline-styles end-to-end test. (50548)
  • Fix coding-standards issues. (50656)
  • Fix flaky media inserter drag-and-dropping end-to-end test. (50740)
  • Fix flaky template revert end-to-end tests. (50851)
  • In CI, verify that PHPunit is actually running. (50442)
  • Migrate Cover Block tests to Playwright. (45784)
  • Remove redundant calls to disable the Styles welcome guide. (50871)
  • Remove unintentionally added test artifact. (50795)
  • Revert “Enqueue the registered assets (#50185)”. (50537)
  • Mobile – end-to-end test – Update code to use the new navigateUp helper. (50736)
  • Playwright Utils: Use ‘set’ to disable the Styles welcome guide. (50852)

Build Tooling

  • DateTime: Remove deprecated props (and fix static analysis action in trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.). (50724)
  • Update runtime test field in WebPack configuration to support Windows. (50727)
  • Removed gutenberg Directory Name Expectation. (50894)
  • Reworked run Command Parsing. (50559)

wp-env

  • Add t-hamano as codeowner for env package. (50817)
  • Check .wp-env.json For Unknown Options. (50642)
  • Expanded wp-env Lifecycle Scripts. (50570)
  • Fixed wp-env start On Windows. (50895)
  • Add @ObliviousHarmony to wp-env codeowners. (50530)

First time contributors

The following PRs were merged by first time contributors:

  • @bacoords: Update README.md to include a link to the documentation. (50606)
  • @falgunihdesai: Update border and focus style of the Input selector in ColorPicker Component. (50703)
  • @kmanijak: Adjust the logic of Post Title edit, so it avoids unnecessary OPTIONS requests. (49839)
  • @kutsu: Add grab cursor style for Block mover drag handle button. (50808)
  • @megane9988: Add an outline when the color picker select box is focused. (50609)
  • @SaxonF: Update site editor sidebar alignment. (50561)
  • @worldomonation: Migrate Cover Block tests to Playwright. (45784)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @ajlende @andrewserong @antpb @aristath @artemiomorales @bacoords @carolinan @chad1008 @ciampo @dcalhoun @derekblank @ellatrix @fabiankaegy @falgunihdesai @felixarntz @fluiddot @geriux @getdave @glendaviesnz @gziolo @jameskoster @jasmussen @jeryj @jhnstn @johnhooks @juanfra @kevin940726 @kmanijak @kutsu123 @MaggieCabrera @Mamaduka @mboynes @mburridge @megane9988 @michalczaplinski @mirka @n2erjo00 @noahtallen @noisysocks @ntsekouras @oandregal @ObliviousHarmony @ramonjd @richtabor @samnajian @SantosGuillamot @SaxonF @scruffian @shimotmk @SiobhyB @t-hamano @talldan @tyxla @worldomonation @WunderBart @youknowriad

Props to @joen for visuals assets, @ramonopoly, @priethor, @rmartinezduque and @annezazu for peer-review

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

Dev Chat agenda, May 31, 2022

(Updated May 31, 13:00 UTC with links on Learn WordPress and Contributor Mentorship Programme for reference)

The next weekly WordPress developers chat will take place on   Wednesday May 31, 2023 at 20:00 UTC in the core channel of Make WordPress Slack. All are welcome.

1.Welcome and housekeeping

Are you interested in helping draft Dev Chat summaries? Volunteer at the start of the next meeting on the #core Slack channel.

Dev Chat summary, meeting May 24 2023 – thanks @ironprogrammer

Note: The agenda includes information links for releases and some related content to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., especially this and next week to help new contributors to core going to WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe. To allow time for more discussions on tickets, all the links may not always be highlighted during the actual dev chat, and attendees are encouraged to check the full link list in the agenda itself.

2. WordPress Announcements (if any)

3. Highlighted posts

6.2 server performance analysis summary from the Core-Performance team.

Celebrating 20 years of WordPress – post by Josepha on May 27, 2023.

Analysis of the results of the individual learner survey from Learn.WordPress.org – posted by @webcommsat. This has some opportunities for cross-collaboration with core and other teams.

Contributor Mentorship Programme – post by @harishanker for reference. Input from core is welcome.

4. Updates on releases

Release squad members will be able to share any 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.

WordPress 6.3 will be the next major release.

Roadmap to 6.3 

WordPress 6.3 Planning Roundup

#6-3-release-leads channel 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/. is a good way to keep up with what is happening with the release.

Last 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. for reference

6.2.2 Security release – this came out on May 20, 2023. It addresses 1 bug and 1 security issuesecurity issue A security issue is a type of bug that can affect the security of WordPress installations. Specifically, it is a report of a bug that you have found in the WordPress core code, and that you have determined can be used to gain some level of access to a site running WordPress that you should not have.. As it is a security release, it is recommended that sites are updated immediately if you have not done so already.

Last 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/ release for reference

What’s new in Gutenberg 15.8.


4. Help requests relating to tickets or from Component Maintainers

If you have any tickets you would like to raise, you can share them in comments too. If you can not attend live, you can still add a ticketticket Created for both bug reports and feature development on the bug tracker. and your query in the comments, and the facilitator will be able to share it in the meeting.

Volunteers are also needed to help run 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.

5. Open floor

Update on core tables at WordCamp Europe – if you have an update to share, you can also add it to the comments on the agenda.
Preparing for WordCamp Europe 2023 Contributor Day.

Please add any items for Open Floor to the comments to help the facilitator highlight them during the meeting.

Thanks.

#agenda, #dev-chat

Performance Chat Summary: 30 May 2023

Meeting agenda here and the full chat log is available beginning here on Slack.

Announcements

  • Blogblog (versus network, site) post was published outlining the WordPress 6.2 server performance analysis summary to identify the biggest opportunities to target for future performance enhancements
  • All the lazy-loading PRs were committed last week
  • Notable inclusion in 6.3 #58394 resulting in ~7% faster 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. themes and 2% faster classic themes (full results)
    • FWIW, this was one of the issues identified in the server performance analysis, so it’s really nice to see it already being addressed.
  • @swissspidy committed two minor changes to 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. that slightly improve performance in some cases:

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

  • @joemcgill Other than the analysis already posted, I don’t have any further update, other than wanting to identify some epics out of that work that we can start to take action on.

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

  • No updates this week

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/. & CSSCSS Cascading Style Sheets.

Link to roadmap project

Contributors: @mukesh27 @10upsimon @adamsilverstein

  • @10upsimon Enhancing the Script 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. with a loading strategy update:
    • Most of the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. PR feedback items that are unrelated to the topic of defer/async dependencies and inline scripts have been addressed.
    • Actioning of remaining points of feedback are largely pending the outcome of a final strategic decision around handling deferred and async dependencies, and inline scripts attached to defer/async scripts.
    • Discussions around how best to solve the above are ongoing, with POC’s currently being developed.
  • @joemcgill For the initial design for this feature, we intended to support all current use cases that the Script Loader supported, including support for inline scripts when added to a script handle. @westonruter and @10upsimon have been making good progress on improving that implementation, and it would be useful to have the proposed iteration completed, even if we decide to remove those enhancements for the initial commit.
    • However, I think we’re close to needing to make a decision about what belongs in the initial commit and what can be left for further iteration. Hopefully we can finalize those decisions this week.

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • No updates this week

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

  • @joegrainger For the Plugin Checker, we are working on the final iterations on the last issue for Milestone 1. Once complete, we will start work on the second phase which will be implementing the initial checks that will be included as part of the plugins first release. You can follow the progress on the GitHub repo here. Thanks!

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • @joemcgill Until we have all of the modules published as standalone plugins, we’re blocked on the eventual removal of those modules being bundled with the 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, which is still the plan.
    • @mukesh27 We already release two plugins can we start removing those from PL?
    • @joemcgill We can start working on the process, but I think we’ll wait on a PL release that removes all of them until we’ve got the UIUI User interface and migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. path really figured out.
    • @mukesh27 Is there any way to get approval for Dominant Colour Images as it blocks Milestone 2 work?
    • @joemcgill Nope. Just wait our turn in line, just like all the other plugins
    • @flixos90 I think the main priority beyond waiting for the approval is to scope out what we want the user experience for Milestone 2 to be like. We then have to implement that and ship it to allow users to migrate before we actually remove the modules
    • @joemcgill Agreed. And, admittedly, a lot of us have been focused on landing some priority features from our roadmap early this release cycle

Open Floor

  • A question was posted against the agenda this week asking if we can take a look at https://core.trac.wordpress.org/ticket/49278
    • @joemcgill From a quick read of that ticketticket Created for both bug reports and feature development on the bug tracker., it sounds like @peterwilsoncc and @costdev previously determined that the current 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. still needs some work before it’s ready to land in core.
    • Not sure if @markparnell is interested in picking this back up, or someone else, but it would need to be ready for another review pretty soon if we wanted to land it in 6.3.
    • @mukesh27
      • Query before (38 seconds)
      • Query after (0.0028 seconds)
      • The improvement is significant as per the ticket description
    • @joemcgill 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. queries are a complex part of the API and needs to be handled with care. There are times with meta queries that optimizations are proposed where really the design of a WP_Query needs to be reconsidered (not sure about this case).
    • There are many other proposals in  TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets that are focused at improving performance of meta queries as well, like adding an extra index to core, etc.
    • @spacedmonkey Any change would need a lot of unit tests. Unit tests for all query classes. So post, term, comment, site and user.

Our next chat will be held on Tuesday, June 6, 2023 at 15:00 UTC in the #core-performance channel in Slack.

#core-performance, #performance, #performance-chat, #summary

Editor Chat Agenda: 31st May 2023

Facilitator and notetaker: @andraganescu

This is the agenda for the weekly editor chat scheduled for Wednesday, May 31 2023, 03:00 PM GMT+1. This meeting is held in the #core-editor channel in the Making 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/..

What’s new in Gutenberg 15.8? (May 17)

Key project updates:

Task Coordination.

Open Floor – extended edition.

If you are not able to attend the meeting, you are encouraged to share anything relevant for the discussion:

  • If you have an update for the main site editing projects, please feel free to share as a comment or come prepared for the meeting itself.
  • If you have anything to share for the Task Coordination section, please leave it as a comment on this post.
  • If you have anything to propose for the agenda or other specific items related to those listed above, please leave a comment below.

#agenda, #core-editor, #core-editor-agenda, #meeting

Performance Chat Agenda: 30 May 2023

Here is the agenda for this week’s performance team meeting scheduled for May 30, 2023 at 15:00 UTC.


This meeting happens in the #core-performance channel. To join the meeting, you’ll need an account on the Make WordPress Slack.

#agenda, #meeting, #performance, #performance-chat

Editor chat summary: 24 May, 2023

This post summarizes the weekly editor chat meeting (agenda for 24th of May meeting) held on Wednesday, May 24 2023, 03:00 PM GMT+1 in Slack. Moderated by @paaljoachim.

What’s new in Gutenberg 15.8? (May 17)
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/ 15.9 RC1. Released Wednesday and available for testing.
WordPress 6.3 posts: Roadmap to 6.3 and WordPress 6.3 Planning Roundup.

Key project updates:

No updates of Key Projects during the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. editor meeting.

Task Coordination

No updates at this time.

Open Floor

@fabiankaegy

I just wanted to put it out there that if anybody deeply familiar with the data api wants to pair up and tackle a longstanding issue with how terms are getting assigned to posts in the editor I’d love to help / tackle that together.
See the following issue: taxonomy data in core store doesn’t get invalidated when new terms get added.
A draft PR has been created here: Fix refactor flat term selector to use data api for creating new terms It could use a look.

Sebastian

A question showed up in the 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/. channel from Sebastian.
Is there any 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. 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. attributes only on htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. comment saved attributes that is not documented yet? I hardly try to read and understand gutenberg source code as much as i can, but i couldn’t even figure out the place where the html comments get rendered.
Here is a Gist link to the solution that Sebastian figured out:
WP / Gutenberg – Change Block Attributes before they got saved in serialized html comments

Read complete transcript

#core-editor, #core-editor-summary, #gutenberg, #meeting-notes, #summary

WordPress 6.2 Server Performance Analysis Summary

Overview

During the 6.2 Release Cycle, members of the WordPress Performance Team performed a performance analysis in order to identify the biggest opportunities to target for future performance enhancements. To do so, the team first created a methodology that could be used to perform a repeatable process by which results could be tested and confirmed. The full methodology and analysis can be found in this document.

Analysis scope and methodology

To start, the team identified a number of key use cases that would be tested. These were meant to cover the primary out of the box functionality of a simple, default WordPress site, which included testing both a classic theme (Twenty Twenty-One) and a 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. theme (Twenty Twenty-Three) both configured with the same content from the Theme Unit Test data. 5 specific scenarios were tested for both themes:

  • A homepage showing the latest posts: A common use case that includes fetching data for a list of several posts in a single request
  • A basic page that is text only: A minimal use case that can serve as a baseline against a more complex post.
  • A post page including a large set of images and default blocks: This use case allowed us to observe the effect of extra database queries and PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher routines required to render a complex page that is more realistic.
  • The same homepage, with translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization.: This allowed us to see the performance impact of WPs translation functionality compared to a non-translated site.
  • The same basic page, with translation: Same as above.

Each profiling test was done on a wp-env docker environment running PHP 7.4 (the recommended version for WP when the analysis was conducted) with XHProf installed for profiling. Other use cases and configurations were considered but not included in this initial analysis, including testing with a persistent object cache active, a multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site setup, and additional supported PHP versions.

Observations from the analysis

Below are the biggest opportunities identified for potential performance improvements, based on the profiling data collected against WordPress 6.2. An overview of the raw data for these observations is in the full results spreadsheet. When possible, relevant existing tickets for each improvement area are included for reference. These are not meant to be an exhaustive list of everything that will be addressed and additional tickets should be created as needed. 

Improve template loading and rendering for classic themes

In the classic theme tested, the most expensive process is related to locating and rendering template parts. This starts with get_template_part(), includes the process of locating the template part files with locate_template(), and rendering the content for each template part. This whole process accounted for approximately 30–60% of the entire server response in the test results, with much of that time spent handling filesystem checks (e.g., file_exists() is responsible for 4–9% of all time measured and can likely be optimized with a cache), rendering widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. blocks, etc. Given many of these filesystem checks aren’t likely to produce different outcomes often between requests, there are likely opportunities to find substantial improvements here.

Related tickets:

Improve rendering of block widgets

Related to template loading, loading and rendering block widgets (i.e. profiling WP_Widget::display_callback) took ~8–24% of the response time. This may be partially due to the inclusion of widgets in the theme test data and may not be representative of all themes. Even so, we have identified that much of this code runs even when a theme is not utilizing widgets, making it a good candidate for further exploration. It’s possible that some widgets have a larger impact than others. For example, the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. categories block used in the categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. list widget was responsible for 5–10% of the response time in our tests.

Related tickets:

Improve registration of blocks from metadata

In all test scenarios, register_block_type_from_metadata() is called 91 times and takes from 3–24% of total response time across use cases, with a larger impact on block themes than classic themes. It is heaviest on the home page, and always worse in the first request compared with subsequent ones. Again, much of this time is due to file operations that could be optimized. We could also consider techniques like lazy loading block registration based on whether blocks are in use on a page, or caching registered blocks to avoid duplicate file read operations for blocks that are unlikely to change. For block themes, block registration accounts for 15–25% of the total response time, with register_block_style_handle() specifically accounting for most of that time (184 calls, 13–21% of inclusive wall time, or iwt).

Related tickets:

Improve loading translations

In both theme types, the load_textdomain() function was called 2 times when language packs are in use (once for core, and once for the theme), and is responsible for 9–26% of the total response time (most of which is the MO::import_from_file method). This took up a higher percentage of the execution time in the classic theme tests (17–26%) than the block theme tests (9–16%), which may point to opportunities for improvement in classic themes.

  • MO::import_from_reader (1 call, 9–25% iwt)
  • MO::make_entry (4058 and 3977 calls in our classic and block use cases, respectively, 2–7.5% iwt)

Related tickets:

Improve resolving block templates

For block themes, resolving block templates from the file system takes a large amount of time. This is likely due to the need for both database and file system reads during this process. Example function paths:

  • get_block_templates (12–21% iwt)
  • get_block_theme_folders (3–6% iwt)
  • build_template_part_block_instance_variations (4–6% iwt)

Related tickets:

Improve term field sanitization

Term field sanitization is being called ~3000-5000 times during a page load in our classic theme tests—adding 1–6% to the total response time alone. A recent change has already been identified that contributed to this problem, and a fix has been committed. A deeper look into ways of reducing unnecessary calls to this function could result in additional improvements. Interestingly, block themes don’t exhibit the same problem with sanitize_term_field, as with classic themes, so it would be helpful to understand why to see if the same improvements could be applied to classic themes.

Related tickets:

  • #57966
  • #37189 (possible 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. in wp_get_object_cache)
  • #50568
  • #58327
  • #58329

Additional block theme improvements

Other notable functions that are taking up a lot of time in block themes related to parsing and using data from 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. and block registry include:

  • WP_Theme_JSON::compute_style_properties (65 calls, 2–8% iwt)
    • > WP_Theme_JSON::get_property_value (3453 calls, 1–2% iwt)
    • Note: this has since been fixed (Related PR)
  • WP_Block_Type_Registry::get_registered (homepages only: 3422 calls, 1–2% iwt)
    • Likely performance improvements can be made to WP_Block_Type_Registry::is_registered method.
  • The function, wp_maybe_inline_styles is particularly slow on the homepage, but always contributes to a large portion of the request time for block themes. (2 calls, 7–18% of iwt)

Related tickets:

Proposed priorities from the research

Of all the opportunities identified during this analysis, the ones that seem likely to produce the largest impact are the following:

  1. Improve template loading for classic themes – A majority of websites (based on an April 2023 search of the HTTPArchive) still use the classic theme architecture, so improvements made here could have the largest horizontal impact.
  2. Improve translation loading – The translation process has a large performance impact when in use. Given that 56%+ of all WordPress websites are using translations, performance improvements to the translations system should have a large horizontal impact as well.
  3. Improve handling of block registration from metadata – block registration requires expensive file reading and parsing, which could be cached. Additionally, every block might not be needed for every request, so more intelligent registration logic could eliminate the need for much of this effort.
  4. Improve resolving block templates – this is a heavy operation for block themes that is unlikely to change often unless the site templates are edited or the theme is updated. The addition of some caching mechanisms could really improve TTFB (note that some improvements to this system have already been implemented during the 6.3 release cycle).
  5. Improve rendering of block widgets – This is a lower priority when compared to the previous items due to the fact that further research is needed to determine the horizontal impact of these changes. Specifically, it’s possible that these test cases may not be representative of real world uses of block widgets.

These efforts will likely require additional research and architectural design before engineering begins. All other items identified could be worked on directly through individual TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets as capacity allows.

Future efforts worth consideration

  • Finish making the XHProf/XHGui tooling available more broadly via wp-env and a core environment integration so more people can verify and extend the work we’ve done here.
  • Reach out to hosting companies to get various platforms to run analysis on their infrastructure as well.
  • Do additional analysis on use cases not covered in this initial effort, e.g., PHP Versions, Object Caching setups, etc.)
  • Review and improve the approach used in this analysis to make it easier for the same type of research to be conducted in the future

Thank you to @annezazu, @desrosj, @flixos90, @mukesh27, @oandregal, @spacedmonkey, and @swissspidy for reviewing and helping with this post.

#6-2, #core, #performance