WordPress 6.2 Release Day Process

Preparation for WordPress 6.2 final release is underway. This post shares the release process, including the timeline and how you can help. The post will be kept up to date as the release process evolves.

Release Timeline Overview

The current plan is as follows:


Dry Run 📅

The Dry Run is a key event as a final walk-through for the final release. As noted above, the current plan is to start it on 2023-03-27 16:00. You are invited to observe and/or participate. It’ll happen in the #core Slack channel.

What happens during the dry run?

  • Review 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. reports to determine if any are critical to warrant another 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). (release candidaterelease 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).).
  • Checks and any necessary updates are made in the src/wp-admin/includes/update-core.php file.
  • Pre-release scripts are run to ensure test suites, coding standards, and other automated checks pass.

If the results are acceptable, the release goes into a 24-hour code freeze period.

24-Hour Code Freeze

After the dry run and before the release party starts, a mandatory 24-hour code freeze goes into effect.

What does this mean? No source code for 6.2.0 (i.e., in the 6.2 branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".) can be changed during these 24 hours.

What happens if a critical bug is reported during this period? The release squad will meet with committers and maintainers to determine if the issue is a blockerblocker A bug which is so severe that it blocks a release..

  • If yes, another RC release happens, and the release process restarts (meaning the dry run is repeated, and then the 24-hour code freeze clock restarts).
  • If not, then the bug is targeted for 6.2.1.

The Release Party

The release party on March 28th will start no sooner than 24h after the code freeze starts, with the exact time to be determined accordingly. You are invited to observe and/or participate. It’ll happen in the #core Slack channel.

The release party walks through the steps in the Major Version Release process for anyone who wants to follow along.

Please note releasing a major version requires more time than releasing a 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. or release candidate. There are more steps in the process. If any last-minute issues need addressing, more time will be needed.

How You Can Help

A key part of the release process is checking that the ZIP packages work on all the available server configurations. If you have some of the less commonly used servers available for testing (IIS, in particular), that would be super helpful. Servers running older versions of PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. will also need testing.

You can start this early by running the WordPress 6.2 RC3 packages, which are built using the same method as the final packages.

During the release party, options will be provided on how to help test the release package.

Tips on What to Test

In particular, testing the following types of installs and updates would be much appreciated:

  • Does a new WordPress install work correctly? This includes running through the manual install process, as well as WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ or one-click installers.
  • Test upgrading from 4.0.38, 4.9.22, 5.8.6, 5.9.5, 6.0.3, 6.1.1, and 6.2 RC4, as well as any other versions possible.
  • Remove the wp-config.php file and test a fresh install.
  • Test single site and 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/networknetwork (versus site, blog) (both subdirectory and subdomain) installations.
  • Does it upgrade correctly? Are the files listed in $_old_files removed when you upgrade?
  • Does multisite upgrade properly?

Testing the following user flows on both desktop and mobile would be great to validate each function as expected:

  • Publish a post, including a variety of different blocks.
  • Comment on the post.
  • Install a new 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/theme, or upgrade an existing one.
  • Change the site language.
  • If you’re a plugin developer, or if there are complex plugins you depend upon, test that they’re working correctly.

Thanks to @cbringmann and @hellofromtonya for the peer review

#6-2, #core, #release-process

WordPress 6.2 Release Candidate 4

To get ready for the final release of WordPress 6.2 on March 28, 2023, an RC4 has been put together to help cover some last-minute fixes. 

Here’s what’s changed since RC3:

  • Revert changesets [55358] and [55360], restoring the wp_insert_user() function back to its previous state, to avoid 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 the related wp_update_user() function (see tickets #57967 and #57394).

Thanks to everyone who has assisted with testing this release. Your feedback and help in filing 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. reports keep the WordPress experience stable, smooth, and delightful. It’s critical work and a great way to contribute to the project—especially in these final moments before release day.

How to install RC4

This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it is recommended that you test RC4 on a test server and site. 

You can test WordPress 6.2 RC4 in three ways:

  • Option 1: Install and activate the WordPress Beta Tester 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 (select the “Bleeding edgebleeding edge The latest revision of the software, generally in development and often unstable. Also known as trunk.” channel and “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./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). Only” stream).
  • Option 2: Direct download the RC4 version (zip).
  • Option 3: Use the following WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ command:

    wp core update --version=6.2-RC4

Keep WordPress bug-free—help with testing

Without your testing support, hitting important product milestones would be a much bigger challenge. It’s also a meaningful way to contribute to the project. If you’re new to testing, or it’s been a while, this detailed guide can help you get started. 

If you think you have run into an issue, please report it to the Alpha/Beta area in the support forums. If you are comfortable writing a reproducible bug report, you can file one on WordPress Trac. You can also check your issue against a list of known bugs.

Test your plugins and themes

As you test your latest versions against RC4, make sure you update the “Tested up to” version in your plugin’s readme file to 6.2. If you find compatibility problems, please post detailed information to the support forums.

Check out the WordPress 6.2 Field Guide for more details about the major changes in this release.

Help translate WordPress

Do you speak a language other than English? Help translate WordPress into more than 100 languages.

Release the haiku

What’s this? RC4?
Get those fixes out the door
Release day is close

Thank you to the following contributors for collaborating on this post: @audrasjb @hellofromtonya

#6-2, #development, #releases

Dev chat Summary, March 22, 2023

1. Welcome and housekeeping

@francina led the chat in the core channel of the Make WordPress Slack.

The agenda — thanks to @webcommsat, has a full list of 6.2 links. Highlighted posts are below.

Last week’s dev chat summary, March 15, 2023 – thanks to @marybaum

2. Announcements

  • Gutenberg 15.4 arrived Wednesday, March 22, 2023 — thanks to @greenshady and @welcher for getting the post out in such a short time after release.
  • WordPress 6.2 RC3 landed on Tuesday, March 21, 2023.
  • Silent RC4 will address a backward compatibility issue (#57967) on March 23. More on the 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. is in this discussion on Slack.

And:

  • The WordPress Developer Blog is out of 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., and officially launched! Please check it out. You are most welcome to:

3. Highlighted posts

And:

4 Tickets and components

  • The Bulk and Quick Edit component

@francina raised ticketticket Created for both bug reports and feature development on the bug tracker. #11302 “Bulk editing posts should pre-fill fields with the same value / allow for removal”

@oglekler brought up a related ticket: #19859 “Bulk Edit” Missing The Ability To Edit Tags

@azaozz suggested that it is time to make a large update to this component, taking care about bugs and enhancements.

@marybaum said the maintainers, who also include @webcommsat, @oglekler, and @nalininonstopnewsuk, will follow up. (Ed. note: Look for this starting in April, once the current release has landed.)

5. Open floor

WCEU 2023 preparations

@estelaris asked for help answering Interview questions for Make Teams reps about Contributor Day.

Documentation

@estelaris and asked for review and comments on ticket #48998 Documentation Structure Block Editor Handbook

The Developer Blogblog (versus network, site)

@azaozz suggested publishing dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. there as well (right now 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. has only a link in the footer). 

@jeffpaul requested to auto-publish posts in the CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. channel and @bph will follow up with it.

A week in Core

@bph suggested renaming ‘A week in Core’ to ‘A week in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.’, because it doesn’t cover 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/ project activity on 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/, and they are highlighted separately in What’s New in Gutenberg. @francina offered to continue this discussion in the P2P2 A free theme for WordPress, known for front-end posting, used by WordPress for development updates and project management. See our main development blog and other workgroup blogs. (Ed. note: that is, this very Make/core blog) in the comments section of the last Week in Core.

Broad questions

@sereedmedia drew attention to a marketing ticket with a cornerstone What is WordPress?

@francina: What brought you to check dev chats in the first place? A lively, if brief, discussion followed. Francesca also suggested more discussion next week—and a post on the Core blog, to stimulate asynchronous conversations.

Next week’s dev chat will be Wednesday, March 29, 2023, at 11:00 PM GMT+3 in the Core Slack channel. See you there!

Props to @francina for leading dev chat, to @webcommsat for the agenda preparation, @oglekler for the summary, and @marybaum and @webcommsat for review.

#6-2, #dev-chat, #meeting, #summary

What’s new in Gutenberg 15.4 (22 March)

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

Decorative image that's reads: "What's New In Gutenberg 15.4?"

Gutenberg 15.4 has been released and is available for download!

The latest release of 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 is lighter on user-facing features than normal and focuses heavily on 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. fixes, testing, and other much-needed improvements. But, there are some welcome additions, such as turning paragraphs into columns, an improved Cover 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 new template descriptions in the site editor.

Table of Contents

Color and layout support for Cover block

The Cover block now supports the text color design tool. The enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. makes it easier for users and theme authors to customize the color for all inner blocks with a single setting. Along with this benefit, the change made it easier to handle transforms from the Media & Text block.

The Cover block also now works the same as the Group block with its layout handling. Currently, the block only supports the flow layout and is set to a constrained width by default.  It does not yet support flex layout variations.

The update brings consistency to layout handling, building atop a standardized system that will make for fewer edge cases and necessary customizations for theme authors.

Theme authors should test their themes against this update. In the past, some have had to work around the layout limitations of the Cover block, and the block’s support of the standard layout system may override custom implementations.

Updated template descriptions

Template descriptions have received a major overhaul in the latest update. Nearly all of them have been updated to better explain what each template does. This should make it easier for users to understand each template’s purpose when customizing it in the Site Editor.

Other Notable Highlights

A new textColumns property has been added as a “block supports” feature and is now in the style engine. It will allow users to split text-based blocks into columns. Developers can opt into this for their custom blocks, but no coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks support the feature yet. There are open tickets for adding it to the Paragraph and Post Excerpt blocks in future updates.

Theme authors can now target the :link and :any-link pseudo-elements in theme.json, giving them more control over styling hyperlinks.

The FontSizePicker component allows for an array of custom units to be defined. This is the first step toward allowing theme authors to eventually control the available units if their themes support custom font sizes. However, the editor’s Typography panel does not yet support this feature.

Change Log

Enhancements

Site Editor

  • Adjust whileHover effect to be a bit subtler and less pronounced. (48928)
  • Go direct to edit from manage all templates list. (48764)
  • Move “Add Template”‘s descriptions to tooltips. (48710)
  • Add descriptions to all panels in the Site Editor’s dark side. (48739)
  • Add hover animation to site editor canvas. (48575)
  • Fix non-us spelling in 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.. (48976)
  • Prevent the saving button from showing when renaming templates. (48399)
  • Navigation Sidebar: Change the logic about which navigation gets selected for the sidebar. (48689)
  • Add “Added by” description to template part navigation sidebar. (48732)
  • Add border radius to off canvas 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. items. (48798)
  • Add page details when viewing a specific page. (48650)
  • Duotone: Limit SVG 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. output to used filters. (48995)
  • Hide navigation screen in site editor. (49043)

Block Library

  • Open convert to links modal on select of a page item. (48723)
  • 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.: Remove 16:10. (48969)
  • Cover: Add constrained/flow layout. (45326)
  • Cover: Add text color block support. (41572)

Components

  • FontSizePicker: Allow custom units. (48468)
  • Navigator: Disable initial animation. (49062)
  • Try: Update Tertiary Button appearance. (48888)
  • FormTokenField: Hide suggestions list on blur event if input value is 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.. (48785)

Design Tools

  • Block Supports: Add text columns (column count) to typography block supports. (33587)

Global Styles

  • Move the global styles provider to the app level component. (49011)
  • Add support for :link and :Any-link in 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.. (48634)
  • Add compound class to layout wrapper for global spacing styles. (47952)

Block 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.

  • Block Deprecations: Provide extra data for isEligible check. (48815)

Post Editor

  • Provide static native editor help article slugs. (48802)
  • Try getting Post Content layout on server before editor loads. (45299)

Packages

  • Introduce prependHTTPS URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org util. (47648)

Bug Fixes

Block Library

  • Embed Block: Fix Aspect Ratio Classes #29641. (41141)
  • Ensure aspect ratio is applied when Post Featured Image block is linked. (48495)
  • Fix PostContent initial render by waiting for the canEdit request. (48642)
  • Fix classic menu fallback race condition. (48811)
  • Fix navigation block off-canvas appender for empty menus. (48907)
  • Fixes extra UIUI User interface in navigation block inspector. (48679)
  • Import Classic Menu using the menu name as the block menu title. (48771)
  • Navigation Link: Remove color generation code. (48927)
  • Navigation: Fix missing state for MenuControls. (48921)
  • Update missing translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. from label. (48760)
  • 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. Importer: Fix Widget Group block imports. (48669)
  • 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.: Show variant patterns even if there are no patterns for the Query Loop block. (48793)
  • Comments: Fix ‘sprintf requires more than 1 params’ error. (49054)
  • Adjust Post Featured Image PanelBody label to “Settings”. (49076)
  • Add help text to Gallery Image Size control. (49074)
  • Comments Block (Legacy): Update missing translation. (48820)
  • 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. of created Navigation menu title. (48773)
  • Make sure the directly inserted block in the Nav block is a Page link. (48740)
  • Navigation Link: Don’t remove ‘block_core_navigation_link_build_css_colors’. (49064)
  • Navigation: Don’t save the level of the link in an attribute. (48219)
  • Refactor away state in Nav menu selector. (45464)
  • Revert: Navigation: Always create a fallback menu. (48602)
  • Tweak Latest Posts block PanelBody labels. (49079)
  • Tweak label for Latest Posts 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. control. (49077)
  • Page List Block: Show untitled pages on page list on the editor. (48772)

Site Editor

  • Don’t offer Classic block as a recovery action when not registered. (49051)
  • Fix browser history when synchronising state with urls. (48731)
  • Fix lingering insertion point within template parts. (48913)
  • Fix template part actions in List View. (48905)
  • Fix text alignment in the Site Editor sidebar. (48959)
  • Fix typo in template parts description. (48781)
  • Fix browse mode descriptions margin. (48778)
  • Fix scrollbar in site editor. (48822)
  • Site Editor Navigation panel: Update appearance of non-link blocks. (48933)
  • Navigation sidebar shows a wrong submenu popover. (48941)
  • Show creation popover on empty page links in the navigation sidebar. (48746)
  • Site button metrics. (48918)
  • Remove actions from SidebarNavigationScreenWrapper. (48935)
  • Update template descriptions with more detail. (48934)

Global Styles

  • Fix typo: Use WP_Theme_JSON_Gutenberg instead of WP_Theme_JSON class name. (48648)
  • Fix: Crashes on getNodesWithSettings and getNodesWithStyles. (49023)
  • Fix: Global Styles crash in updateConfigWithSeparator when not block styles are passed. (49045)
  • Fix: Global Styles getNodesWithStyles expects an object with elements. (49044)
  • Fix: Global Styles getPresetsClasses crashes if no selector is passed. (49024)
  • Fix: Global styles forces a white background. (49042)
  • Style Book: Move 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. to root of content area to support styles that overflow block previews. (48664)
  • WP_Theme_JSON: Sync indirect properties changes from core. (48646)

Components

  • Fix HStack and VStack alignment prop. (47914)
  • ResizeTooltip: Use default.fontFamily on tooltip. (48805)
  • ResponsiveWrapper: Use aspect-ratio CSSCSS Cascading Style Sheets. prop and support SVG elements. (48573)

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)

  • Make sure useFocusOnMount runs when all the children tabbable elements have mounted. (42187)
  • Manage selection on block sync. (48979)

Post Editor

  • Distraction Free Mode: Don’t show the metaboxes. (48947)
  • Don’t add Post Content layout styles to title in the post editor. (48663)
  • Fix animation and browser console error when returning from template edit mode. (48930)

Block Editor

  • LinkControl: Remove HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. from suggestion title before passing it to TextHighlight component. (48685)
  • Order initial block items in Navigation with PrivateInserter. (48752)
  • BlockInvalidWarning: Prefer canInsertBlockType and refactor to 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.. (49052)
  • Fix grouping actions in List View. (48910)
  • Fix typo in the media-categories component. (49047)
  • Custom link UI does appears outside canvas on the sidebar navigation. (48633)
  • Use proper color for block styles control. (46684)
  • Update Welcome Guide article links to avoid redirect. (48582)
  • Columns Block: Don’t show the column count change UI when templateLock is all. (48691)
  • Remove border from quick inserter child elements. (48794)

Inspector Controls

  • Fix settings tab active state border in block inspector. (48945)

Testing

  • Playwright Utils: Fix the ‘publishPost’ address locator. (48729)

CSS & Styling

  • Fix duplication of block classname in feature selectors for style variations. (48662)

Experimental

  • Fix KSES filter for un-prettified filters. (49004)

Packages

  • Rich text: Fix range equality checks for Safari. (48733)
  • Preferences Modal: Fix double focus outline in tab item. (48996)

Tools

  • Scripts: Fix render.php isn’t copied in Windows OS. (48735)

Mobile

  • Mobile – Fix parsing of CSS units for null matched values. (48484)

Performance

Block Editor

  • Rich text: useAnchor: Remove value dependency. (48715)

Post Editor

  • Lodash: Refactor away from _.kebabCase() in EditorHelpTopics. (48776)
  • Lodash: Refactor away from edit-post package. (48786)

Site Editor

  • Improve the Navigation panel’s menu query. (48908)
  • Improve Site Editor performance tests. (48138)

Testing

  • Lodash: Remove from e2e-tests package. (48775)

Themes

  • Fix: Incorrect selector generated by append_to_selector method. (48759)

Block Library

  • Lodash: Remove _.get() from various blocks. (48491)

Data Layer

  • Lodash: Refactor away from _.set() in core-data. (48784)

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/ Actions

  • Prefer committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. over author date for perf results timestamp. (48673)

Documentation

  • Add links to hook documentation in curation doc. (48653)
  • Add missing playwright end-to-end documentation to toc.json. (48447)
  • Adding examples of how to programmatically remove the panels in Document sidebar. (48895)
  • Adds link to post on the developer blogblog (versus network, site) to the deprecation page. (49069)
  • Add position: Sticky to the Opt-in into UI controls appearanceTools section. (48763)
  • Fix broken Lerna documentation link. (48890)
  • Table of styles keys with since versions. (48265)
  • Fix URL mismatch. (48931)
  • Theme JSON schema: Add sticky position to settings, minHeight to styles. (48948)
  • Update the end-to-end tests documentation. (48951)
  • jest-preset-default: Update README to reflect current status. (48925)

Code Quality

Components

  • Autocomplete: Refactor to TypeScript. (47751)
  • Navigation: Refactor to TypeScript. (48742)
  • SelectControl: Improve prop types for single vs multiple selection. (47390)
  • DimensionControl(Experimental): Refactor to TypeScript. (47351)
  • Guide: Refactor to TypeScript. (47493)
  • Icon: Refactor tests to TypeScript. (49066)
  • PaletteEdit: Refactor away from lodash.kebabCase. (48637)
  • QueryControls: Refactor away from lodash.groupBy. (48779)
  • components/utils/font: Refactor away from lodash .get. (48629)
  • remove lodash from context/getStyledClassName:. (48688)
  • withSpokenMessages: Change js files to typescript. (48163)

Block Library

  • Add Nav block files to those triggering error for exhaustive deps. (48821)
  • Fix Nav block exhaustive deps warnings. (48680)
  • Media Text: Refactored constants to it’s designated file. (48480)
  • Navigation: Simplify the method for finding the fallback menu. (48916)
  • Duotone.php code cleanup. (48607)
  • Revert “Duotone: Limit SVG filter output to used filters”. (49102)

Block Editor

  • Inserter: Remove outer scope values dependencies. (48961)
  • Inserter: Remove unnecessary dependency ‘delayedFilterValue’. (48960)
  • Remove unused CSS from LinkControl Apply button. (48431)
  • Custom Classname block support: Update code comments to remove reference to anchor id. (48709)
  • List View: Remove unused selector from the ‘useBlockSelection’ hook. (48984)
  • Renames parent selection boolean param and improves documentation. (48677)
  • Tests: Cleanup unnecessary jest timers setup. (49030)
  • Avoid declaring a function inside another function. (49049)

Global Styles

  • Theme JSON: Clarify status of fixed position opt-in in appearance tools. (48660)
  • Extract a BorderPanel component as a reusable component between Global Styles and Block Inspector. (48636)

Data Layer

  • Data: Use real timers for private APIs tests. (49029)

Packages

  • Preferences: Remove types field from package.json. (49053)
  • Upgrade typescript to 4.9.5. (48299)
  • Compose: Remove useAsyncList from mobile exports. (48241)
  • Animation: Refactor to TypeScript. (47042)
  • PanelBody: Convert to TypeScript. (47702)
  • Refactor ToolbarContext to TS. (49002)
  • Refactor/toolbar button component to typescript. (47750)
  • PaletteEdit: Convert to TypeScript. (47764)
  • navigateRegions: Convert to TypeScript. (48632)
  • withFallbackStyles: Convert to TypeScript. (48720)
  • withFilters: Convert to TypeScript. (48721)
  • withFocusReturn: Convert to TypeScript. (48748)
  • withNotices: Convert to TypeScript. (49088)
  • Packages: Remove completely two deprecated webpack plugins. (48770)

Tools

  • Env: Fix typo / grammar README.md. (48952)
  • ci: Add Rich Text code owner. (48727)

Testing

  • Add pageUtils.pressKeys to playwright utils. (49009)
  • Add artifacts upload for the performance tests. (48243)
  • Fix flaky block hierarchy navigation test by better inserter selection. (48780)
  • Migrate multi-block selection end-to-end tests to Playwright. (48035)
  • Navigation block end-to-end tests: Default to my most recently created menu. (48132)
  • Upgrade Jest from 27 to 29.5.0. (47388)
  • Duotone: Style Engine: 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. and associated refactoring. (49033)
  • Query Block: Add tests for getValueFromObjectPath() util. (48956)

First time contributors

The following PRs were merged by first time contributors:

  • @abhi3315: Link Control – Add support for text only labels. (47930)
  • @hbhalodia: Change higher order with-constraint-tabbing from .js to .tsx. (48162)
  • @sboerrigter: Fix incorrect css property in editor-color-palette documentation. (48333)
  • @shreyasikhar: Site Editor Sidebar: Add line-height for template/parts name and update width for edit button. (48160)
  • @suvrodattamitu: Style Engine: Fix wrong property name letterSpacing to lineHeight. (48091)
  • @tomdevisser: Remove copy for managing a block’s style variations. (48367)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw@abhi3315@adamziel@afercia@alexstine@andrewserong@annezazu@brookewp@carolinan@chad1008@ciampo@dcalhoun@draganescu@ellatrix@fluiddot@geriux@getdave@gvgvgvijayan@gziolo@hbhalodia@jorgefilipecosta@jsnajdr@kevin940726@MaggieCabrera@Mamaduka@marekdedic@ndiego@ntsekouras@oandregal@ockham@richtabor@sboerrigter@scruffian@shreyasikhar@spacedmonkey@suvrodattamitu@tellthemachines@tomdevisser@tyxla@WunderBart@youknowriad@t-hamano

Props to @welcher for co-leading the release, @priethor for feedback, and @saxonfletcher and @joen for assets creation.

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

A Week in Core – March 20, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between March 13 and March 20, 2023.

  • 30 commits
  • 70 contributors
  • 51 tickets created
  • 4 tickets reopened
  • 46 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Administration

  • Define the $title global on the Menus screen for classic themes – #57918
  • Update dashboard welcome panel colors, remove broken link – #57759

Build/Test Tools

  • Fix issue with add method in object-cache.php – #57963
  • Revert [55553]#57864
  • Add test class for wp_enqueue_stored_styles()#57841
  • Add test class for wp_script_is()#57841, #57958
  • Improve documentation and variable names in some formatting tests – #57841
  • Rename test class and improve tests for wp_get_global_stylesheet() – #57841, #57958
  • Use the data_ prefix for various data provider methods – #57841

Cache 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.

  • Add a warning when calling _get_non_cached_ids with 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. ids – #57593
  • Correct the second parameter’s name in _get_non_cached_ids()#40420

Code Modernization

Coding Standards

  • Remove unused variable in WP_Plugins_List_Table::single_row()#55132
  • Remove unused variables in WP_Comment_Query#57482
  • Use single quotes for strings without variables in register_block_style_handle()#57903

Date/Time

  • Remove usage of mysql2date in generate_postdata method – #57683

Docs

  • Fix typo in _validate_cache_id() description – #57593

Editor

  • Correctly load RTL stylesheets for non-core blocks – #57903
  • Show scheduled text when changing to new future dates – #31040
  • Update wordpress packages for 6.2 RC2 – #57471#57895
  • Update wordpress packages for 6.2 RC3 – #57471, #57929

External Libraries

  • Upgrade PHPMailer to version 6.8.0 – #57873

Filesystem API

  • Return false for empty paths in FTPFTP FTP is an acronym for File Transfer Protocol which is a way of moving computer files from one computer to another via the Internet. You can use software, known as a FTP client, to upload files to a server for a WordPress website. https://codex.wordpress.org/FTP_Clients. ::exists() methods – #33058

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API

  • Add bookmark invalidation logic – #57788

Help/About

  • Add CDN images to About page – #57477
  • Updates to About page – #57477

KSES

  • Allow filter property to accept a URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in safecss_filter_attr()#57780

Posts, Post Types

  • Use WP_Query internally in get_pages – #12821

Quick/Bulk Edit

  • Show scheduled in status for future drafts – #38834

Widgets

  • Defer register inline script in WP_Widget_Custom_HTML and WP_Widget_Text#57864

Props

Thanks to the 70 people who contributed to WordPress Core on Trac last week: @sergeybiryukov (8), @costdev (7), @hellofromTonya (6), @spacedmonkey (6), @flixos90 (4), @richtabor (3), @peterwilsoncc (3), @antonvlasenko (2), @audrasjb (2), @azaozz (2), @scruffian (2), @mamaduka (2), @ironprogrammer (2), @laurlittle (2), @jrf (2), @sabernhardt (2), @mkox (1), @joedolson (1), @ipstenu (1), @MrFlannagan (1), @oglekler (1), @upadalavipul (1), @dingo_d (1), @Rarst (1), @ayeshrajans (1), @Synchro (1), @Zdrobau (1), @tyxla (1), @dd32 (1), @pbiron (1), @mukesh27 (1), @bernhard-reiter (1), @dmsnell (1), @zieladam (1), @sakibmd (1), @westonruter (1), @nendeb55 (1), @david.binda (1), @tillkruess (1), @tobifjellner (1), @sdavis2702 (1), @jeryj (1), @markjaquith (1), @dbernar1 (1), @azouamauriac (1), @mikeschinkel (1), @nacin (1), @scribu (1), @filosofo (1), @jane (1), @garyc40 (1), @markoheijnen (1), @grandslambert (1), @kevinB (1), @wlindley (1), @atimmer (1), @ryokuhi (1), @mdawaffe (1), @helen (1), @benjibee (1), @johnbillion (1), @joemcgill (1), @andraganescu (1), @get_dave (1), @ntsekouras (1), @desrosj (1), @talldanwp (1), @thomask (1), @johnjamesjacoby (1), and @davidbaumwald (1).

Congrats and welcome to our 6 new contributors of the week: @MrFlannagan, @Zdrobau, @grandslambert, @wlindley, @benjibee, @thomask ♥️

Core committers: @sergeybiryukov (12), @hellofromtonya (7), @spacedmonkey (6), @ryelle (3), and @joedolson (2).

#6-2, #core, #week-in-core

Performance Chat Agenda: 21 March 2023

Here is the agenda for this week’s performance team meeting scheduled for March 21, 2023 at 16:00 UTC.

  • Announcements
    • Released the Performance Lab 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 2.1.0 yesterday
  • Priority projects
  • Open floor

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: March 15th, 2023

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

Announcements & Links

Key project updates

@annezazu

posted an update on the Phase 2 Overview Tracking Issue (Update March 13, 2023) (Sorry, I overlooked it for the meeting)

@twstokes

posted an update from the Mobile team

Task Coordination

@get_dave

commented on the agenda post: “I’m seeking feedback on some proposals to preload Navigation Menus and Template Parts (server side) in order to improve the perceived editor load times.It does involve certain compromises and assumptions which I’d like to discuss in more detail and also find more concrete evidence for. Any help much appreciated.”

Open Floor

@Mdxf

commented on the agenda:  “I vote to improve the perceived load times on the Browser Mode + also on the “back to WP adminadmin (and super admin) menu” action (when clicking on the site logo on top left) !!! (here on FF it is very slow, i did not test on Chrome)….”  @ndiego suggested you create new GitHub issue, detailing exactly what you are seeing . In his experience, slowness in the Site Editor that is exacerbated by third-party plugins, so it would be good to also understand the setup you use.

@ndiego

“As everyone is aware, we have a LOT of open issues and PRs in 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/ repo. The Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. team does a fantastic job, and @mamaduka and I have been running weekly 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 here in #coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-editor. Yet, the number of open items continues to rise. After the 6.2 release, I will be spending some time thinking about how we can better tackle this situation, but I did want to also call attention to a discussion started by @tomjdevisser on 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/ Discussion: “Auto-closing inactive issues to shift focus towards important issues” If you have time to provide feedback or thoughts, it would be much appreciated.”

Here is a post from two year’s ago. Stale Issues in Gutenberg Repository  but with no solution/decision.

@hellofromtonya contributed how it is handled in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.

“In Trac, there are 2 ways it’s handled:

  • Add a close keyword with a comment that it will be closed in x amount of time without reporter follow-up.
  • Or close with a reason and a comment to re-open if more information is available for further investigation or consideration.

This is a manual ticketticket Created for both bug reports and feature development on the bug tracker.-by-ticket triage process” She clarified further: “The close keyword with message gives all who previously contributed to the ticket the opportunity to revive it. If they are still interested in it, it invites them back while also setting the expectation that it will be closed otherwise.”

You can read throught the comments in the meeting following the message

Meeting participants were asked to contribute their ideas to the GitHub Discussion: “Auto-closing inactive issues… “ as well.

Props to @paaljoachim for review

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

Dev chat Summary, March 15, 2023

1. Welcome and housekeeping

@francina led the chat. The meeting start 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/..

The agenda, prepared by @webcommsat, has a full list of 6.2 links, only new links are listed below.

Last week’s dev chat summary, March 8, 2023 – thanks to @ironprogrammer.

2. Announcements

WordPress 6.2 RC 2 landed on Tuesday, March 14, 2023! Please download and test, and remember that in the 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). period:

  • It takes two committers to commit code to the 6.2 branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".
  • The 6.3 branch is open for early tickets, proposals and more
  • There’s a hard string freeze on the 6.2 branch

Gutenberg 15.3 landed Monday, March 13, 2023.

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.4 is underway.

3. Highlighted posts

@annezazu tells how and why the Navigation section of the Site Editor is gone from 6.2 RC 2.

@audrasjb recaps A week in Core.

@webcommsat adds these new links relating to 6.2:

The 6.2 live product demo Q&A

The 6.2 Field Guide

More developer notes for 6.2

4. Other release-related topics

@johnbillion raised #57916, about 6.2 server-side performance regressions. @hellofromtonya noted the ticketticket Created for both bug reports and feature development on the bug tracker. is about assessing performance and will not generate any late commits to 6.2.

@francina pointed the group to a Slack discussion on debugging tools.

5. Tickets and components

@oglekler raised ticket #23348 as a way to encourage more people to start contributing. A lively discussion followed.

@audrasjb reminded about the Old Trac Ticket Triage sessions..

@howdy_mcgee raised three tickets for early 6.3: #24142, #37255, and #18408.

@costev highlighted that he, @ironprogrammer, and @afragen are working on an update to the WordPress 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. Tester 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 that will add a section where users can report a 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. right in the interface.

6. Open floor

No other items were raised.

Next week’s dev chat will be March 22, 2023 at 20:00 UTC in the Core Slack channel. See you there!

Props to @francina for leading dev chat, to @webcommsat for the agenda preparation,
@marybaum for the summary, and @oglekler and @webcommsat for review.

#6-2, #dev-chat, #meeting, #summary

Dev Chat Agenda, Wednesday March 15, 2023

The next WordPress Developers Chat will on Wednesday, March 15 2023 at 20:00 UTC in the core channel of the Make WordPress Slack.

1. Welcome and housekeeping

Dev Chat summary, March 8, 2023 – thanks to @ironprogrammer

The meeting is scheduled facilitator will be @francina and @marybaum will draft the meeting summary.
If you would like to volunteer for the summary, add a comment to this ticketticket Created for both bug reports and feature development on the bug tracker. for @webcommsat.

2. Announcements

WordPress 6.2 Release Candidate 2 (March 14, 2023). The schedule release is now only two weeks away on March 28!

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.4 Release Candidaterelease 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). is scheduled.

What’s new in Gutenberg 15.3? (March 13, 2023) – posted by @richtabor. This version tightens up the site editing experience, adds a new “Time to Read” 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 some Duotone enhancements.

3. Highlighted posts

A Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., March 6-13, 2023 – thanks to @audrasjb

  • 48 commits
  • 62 contributors
  • 47 tickets created
  • 8 tickets reopened
  • 68 tickets closed

And welcome to the five new contributors from this week!

4. Releases

Useful information on the next major WordPress release 6.2:

New links/ key information this week:
6.2 live product demo Q&A – posted by @marybaum
– The 6.2 Field Guide and more Developer Notes for 6.2

WordPress 6.2 has branched.

Also check the #6-2-release-leads channel for the latest updates.

For information:

Any additional updates from the Release Squad will be shared in the meeting.

5. Request for help with tickets/ components/ blockers/

If you have a ticket or request to help, please add a comment to the agenda post. Please indicate if you will be attending the meeting live and be able to highlight the issue further if needed.

If you are unable to attend dev chat live, you can add further details of the issue you would like highlighted either in comments, or message Core Team reps @webcommsat and @hellofromtonya with the additional information to raise in this week’s meeting for you.

6. Open floor

Items for this agenda item and the previous one are welcome from across time zones. Please add suggestions in comments on this post. Thanks.

Props for agenda preparation @webcommsat, and review @hellofromtonya.

#6-2, #agenda, #dev-chat

Performance Chat Summary: 14 March 2023

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

Announcements

  • As agreed in last weeks chat, this week we are following the new agenda structure below that is more aligned with our 2023 roadmap
  • During each priority project update, we will aim to 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.) the individuals who contributed suggestions for that priority project in the 2023 roadmap, to get any updates on progress

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

  • @olliejones Work on the SQLite database integration continues. Lots of tiny details transliterating one irregular SQL grammar to another. Nothing big to report.

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 projects

Contributors: @mukesh27 @10upsimon @adamsilverstein

  • @10upsimon We’re making progress on some of the final implementation details related to handling inline scripts, and doing some internal testing and research into how other projects are already implementing async/defer to look for possible conflicts. We should have something to share in a couple of weeks. In the meantime, we’d appreciate any examples you have of projects that are manually adding async/defer, so we can check them against our approach.

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • @flixos90 I have been researching remaining problems with lazy-loaded LCP images in WordPress sites in the last week, will continue to do so today. I’m using HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. Archive to identify the most common problems and look at specific sites for samples to dig further
  • @flixos90 Noting that the enhancements that will hopefully come out of this work will benefit the fetchpriority="high" work as well
  • @adamsilverstein quick update from me: at 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. Asia a few weeks ago, I ran an “image comparison game” where users picked from two images (generated in WordPress at different compression levels and in WebP or JPEG) trying to tell which one was closer to the original. we had around 50 “choices” registered which isn’t much, but in any case I’m planning to analyze that data this week and should have some sort of results to share next week.

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • @clarkeemily we did have ‘Automated performance testing has been committed to the WP coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. repo https://core.trac.wordpress.org/changeset/55459‘ highlighted last week
  • @joemcgill We’re successfully getting automated performance data on every commit to core now, which is a cool milestone. I expect that we’ll continue to improve those capabilities over time, but this is a nice starting point.

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

  • @joegrainger We plan to complete the infrastructure for 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 Checker by the end of next week. Once complete we will start to perform some initial testing and review the infrastructure before working on the additional checks. Progress can be seen on the GitHub repo here. Please feel free to take a look and leave any thoughts/ideas you may have in the repo.

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

New Projects / Proposals

  • n/a

Open Floor

  • @spacedmonkey Can we talk about this – ‘Explore and assess 6.2 server-side performance regressionshttps://core.trac.wordpress.org/ticket/57916
    • @flixos90 Happy to answer any questions on the data I gathered
    • @spacedmonkey Doing some research, realpath seems to be taking up a lot of resources
    • @flixos90 Is the realpath() usage something that was introduced in 6.2?
    • @spacedmonkey No, but I think it has been made worse.
    • @joemcgill After thinking about the original issue some more, I’m wondering if what @flixos90 observed is mainly a side-effect of things being moved around in the application lifecycle, which means that there are more callbacks firing on init, but overall the total response time is still an improvement over 6.1.X.
    • @flixos90 The overall total response time for classic themes is now actually worse in 6.2 than 6.1
    • @joemcgill That’s not what I’m seeing in our automated tests though.
    • @spacedmonkey It might be related to this – https://github.com/WordPress/wordpress-develop/commit/6d0a691b84d411813378f1983a0a87bf78a1ccad
    • @flixos90 Yeah I also didn’t see that in my previous tests. However what I have consistently seen is init being slower than in 6.1
    • @flixos90 FWIW, the automated tests are running core trunk . The tests I have been conducting are using built ZIP releases of the Betas and RCs. Not sure how relevant that is, but it may make a difference
    • @joemcgill Even in the latest run, 6.2 seems like an improvement.
    • @flixos90 The ZIP files are in principle closer to the real world experience, that’s why I’ve been using them in addition to the development repository
    • @spacedmonkey my test runs Slack thread
    • @joemcgill Zips should be built from the build folder, which is what the automated tests are testing
    • @flixos90 request for @spacedmonkey or @joemcgill to run the comparison between 6.1.1 production ZIP and 6.2-RC1 ZIP on your machines? Just to validate, maybe something is off on my environment
    • @joemcgill Happy to double check using local profiling at the 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. tester plugin later today.
    • @spacedmonkey I might try using Local envoirment and other tools and see if i can reproduce
    • @johnbillion Are all these tests using the theme 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. data?
      • @spacedmonkey I use Fakerpress to make mock data
      • @joemcgill The automated tests are. Not sure about how others are testing.
    • @flixos90 Good call @johnbillion My own local performance testing I’ve done only with the regular WP content (“Hello world”), nothing added. I know that’s not representative of real-world experience, but @joemcgill and @spacedmonkey please try to use that too for specifically the attempt to validate what I’m seeing on my end
    • @joemcgill If other folks can do A/B comparisons of the total response time for WP 6.1.1 vs 6.2-RC1 and share data on that issue, it could certainly help.
    • @spacedmonkey Fakerpress is great for generating posts from multiple authors, adds comments, terms and users.
    • @flixos90 So to summarize, just to reproduce, I’m seeing the regression locally in this environment:
      • between 6.1.1 and 6.2-RC1
      • a site with LocalWP
      • using TT1 theme
      • using Performance Lab plugin for Server-Timing, with no modules enabled
      • no content on the site other than what a clean WP core install gives you
    • Also see this sheet for more details.
    • @johnbillion Are you able to test again with the theme unit test data Felix? That way we have a somewhat unified set of data that’s in use for the tests
    • @flixos90 I certainly can. That said though, we also would still need to validate why I see a regression with the default content, so I would appreciate if someone else could run that on their end
    • @spacedmonkey https://codex.wordpress.org/Theme_Unit_Test
    • @flixos90 Last but not least, I want to highlight something here (which I tried to also call out on the ticketticket Created for both bug reports and feature development on the bug tracker.): Regardless of whether WP 6.2 is faster than 6.1, init is slower than before for classic themes. That has surfaced in all performance benchmarks I have done up to date. So while we should validate the overall test results, we should look into what is going on in init and why it has become worse in 6.2
    • @flixos90 See https://docs.google.com/spreadsheets/d/1LroIJoYz-O9CpfJzaiKYYMWJ7GbE5RZoW1rf1R4FqyA/edit#gid=0 for example. In my new data https://docs.google.com/spreadsheets/d/1LroIJoYz-O9CpfJzaiKYYMWJ7GbE5RZoW1rf1R4FqyA/edit#gid=1935935734 this is just more pronounced (which again could be due to a problem on my setup that wasn’t there before). If you want to get those more detailed Server-Timing metrics in your local environment, you can use https://gist.github.com/felixarntz/63c05392dbf7d51cc7f8f4a424b1ff39 for example
    • @joemcgill Back to my initial comment. I am curious if this is a side effect of some things being refactored during this release which has caused more work to be done on the init callback that was previously happening elsewhere. It could be that it’s fine that we’re doing more work on init than we were before if the overall execution time is improved.
    • @flixos90 Potentially that’s the case, in which case the “regression” would be fine. But we need to validate that
    • @joemcgill I think it would be helpful to review what is hooked to init in 6.2 vs 6.1 and compare differences.
    • @flixos90 I did that in https://docs.google.com/spreadsheets/d/1OCfHtty6__DZPkPeOrMTBJiPPH46Lwd1AdofvUA4bnE/edit#gid=879358988
    • @spacedmonkey register_block_type_from_metadata -> register_block_script_handle -> realpath. register_block_type_from_metadata Are hooked into init
    • @flixos90 So we need to check how those functions’ code changed
  • @johnbillion Briefly from me for a core issue related to performance: I’ve been working to remove use of the now-deprecated SQL_CALC_FOUND_ROWS in core, starting with its use in WP_Query. PR here: https://github.com/WordPress/wordpress-develop/pull/3863 which continues work from a couple older PRs. There are a few outstanding items to address, I might ask for some help from interested parties on the performance team if I can’t make much progress myself over the next few weeks. Apart from that, the more eyes the merrier on this change!
  • @flixos90 Last but not least: Next Monday is the release of the Performance Lab plugin 2.1.0, so we need to get a few PRs ready
  • @flixos90 I have been working on a fix for the object-cache.php compatibility issues which I’m about to open a PR for. Would be great to get some reviews today/tomorrow so we can include it in 2.1.0

Our next chat will be held on Tuesday, March 21, 2023 at 16:00 UTC in the #core-performance channel in Slack.

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