Speculative Loading in WordPress

The WordPress Performance Team recently published a new plugin called “Speculative Loading” which enables a new technology of the same name to automatically prerender certain URLs on the page, which can lead to near-instant page load times. The functionality is powered by the Speculation Rules 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., a new web API that allows defining rules for which kinds of URLs to prefetch or prerender.

Please install and test 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 to provide feedback to inform further improvements before a potential consideration to include such a feature in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. You can install the plugin by searching “speculative loading” in WP Adminadmin (and super admin), or via the Performance Lab plugin.

A brief history of prefetch and prerender in WordPress

WordPress core has for several years provided a simple Resource Hints API which allows injecting <link> tags into the HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. document that can be used to prefetch or prerender certain resources, among other actions. While prefetching can be useful for certain sub-resources of an HTML document, such as third-party script providers, prerendering goes as far as processing the resource and already performing some rendering offscreen and thus can be useful for entire web pages.

However, using the approach of injecting link[rel="prefetch|prerender"] tags is not very flexible, as the URLs to prefetch or prerender need to be defined as soon as the HTML is loaded. Providing a <link> 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.) for every potential anchor link a user may click on the page would be wasteful, while not providing any misses a great opportunity for performance optimization. So far, solutions like Quicklink could be used to dynamically insert <link> tags to prefetch resources in the user’s viewport, which is more flexible, but still far from ideal as it may still excessively prefetch too many resources and requires a 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/. library.

More importantly though, link[rel="prerender"] does not actually support prerendering, as the “prerender” value is in fact used for something called NoState Prefetch, which means it is still only prefetching certain resources rather than prerendering them, which for instance would include running JavaScript. Last but not least, the “prerender” value is deprecated at this point.

Introducing the Speculation Rules API

The Speculation Rules API is a new web API that solves the above problems. It allows defining rules to dynamically prefetch and/or prerender URLs of certain structure based on user interaction, in 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. syntax—or in other words, speculatively preload those URLs before the navigation. This API can be used, for example, to prerender any links on a page whenever the user hovers over them. Also, with the Speculation Rules API, “prerender” actually means to prerender the entire page, including running JavaScript. This can lead to near-instant load times once the user clicks on the link as the page would have most likely already been loaded in its entirety. However that is only one of the possible configurations.

The following code example shows the general syntax of the Speculation Rules API JSON spec and outlines a configuration where any links other than WP Admin or login URLs are prerendered.

<script type="speculationrules">
{
	"prerender": [
		{
			"source": "document",
			"where": {
				"and": [
					{
						"href_matches": "/*"
					},
					{
						"not": {
							"href_matches": [
								"/wp-login.php",
								"/wp-admin/*"
							]
						}
					}
				]
			},
			"eagerness": "moderate"
		}
	]
}
</script>

The Speculation Rules API allows defining URL patterns for which kind of URLs should be eligible for speculative loading. Rules can be configured to either prefetch or prerender certain URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org patterns. A so-called “eagerness” value can also be specified which dictates how eagerly the prefetching or prerendering should be applied. For example, a value of “moderate” triggers the speculative loading when the user hovers over the link. A value of “conservative” delays this until the user clicks on the link (which still provides a decent performance benefit), while a value of “eager” acts as soon as there is the slightest suggestion a user may click the link. Note that caution is advised with the “eager” configuration in particular as it increases the likelihood of loading URLs wastefully.

Browser support

While the Speculation Rules API has been available in Chrome and Edge since version 109 in general, the particular subfeature needed to unlock the aforementioned functionality is called “document rules”, which was only recently added in version 121. This post describes the latest enhancements to the API in more depth.

In other words, at the time of writing this post end users will need to use either Chrome 121+ or Edge 121+ to get the benefits of this feature. However there are no adverse effects for users on other browsers, as this is a progressive enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature.. Therefore using the Speculation Rules API on your website is safe regardless of the user base.

The Speculation Rules API was presented at the W3C web standards conference TPAC 2023, with positive reception. At this point, the standard is in draft stage. Positions regarding the API by Firefox and Safari have been requested. To keep track of specifically the required subfeatures for the functionality outlined in this post, you can refer to this “Can I use” table.

The Speculative Loading WordPress plugin

As mentioned in the beginning of this post, the WordPress Performance Team recently published a new feature plugin “Speculative Loading” which enables speculative loading of other frontend URLs linked on the page. It inserts a JSON script similar to the previous code example. By default, any URLs linked on the page are prerendered with an eagerness configuration of “moderate”, which typically triggers when hovering over a link. As such, you don’t need to do anything after activating the plugin: it just works out of the box. The plugin also provides a few customization options to tweak the behavior to the site owner’s preference.

The Speculative Loading plugin’s settings UIUI User interface

The default behavior can be modified via a new “Speculative Loading” section in the Settings > Reading screen. For example, if the site is using JavaScript that is not yet adapted for being loaded while prerendering, the plugin could be configured to only prefetch documents. One could set the eagerness to “conservative” to reduce the likelihood of URLs being loaded without the user navigating to them. Or one could set it to “eager” to increase the chance of the speculative loading already being completed by the time the user lands on the linked URL, which however runs at the risk of wastefully loading several resources. The default of “moderate” strikes a good balance between sustainability and performance.

The rules for which kinds of URLs to speculatively preload can be customized using a 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. called “plsr_speculation_rules_href_exclude_paths”. For example, plugins that add URLs to a WordPress site which modify user state just from being loaded could use that filter to exclude those URLs from being prerendered or prefetched. 

Here is a code example which would would ensure that URLs like https://example.com/cart/ or https://example.com/cart/foo/ would be excluded from prefetching and prerendering:

<?php

add_filter(
    'plsr_speculation_rules_href_exclude_paths',
    function ( $exclude_paths ) {
        $exclude_paths[] = '/cart/*';
        return $exclude_paths;
    }
);

Please refer to the plugin’s FAQ for details on the filter.

Potential next steps

At the moment, the plugin should be used to test the feature, and the Performance Team is eager to receive feedback as well as analyze the plugin’s performance benefits on load times.

Down the road, as the browser API and the plugin mature, the possibility of including the feature in WordPress core will be explored. However, in order to get there, additional feedback is needed.

Testing and feedback

Your testing and feedback is crucial to improve the feature ahead of exploring its potential usage in WordPress core. Please consider the following ways to help:

The WordPress performance team is excited to learn more about how the Speculation Rules API is being used in WordPress sites. Please try the plugin and share your feedback!

Props @adamsilverstein @domenicdenicola @jeremyroman @swissspidy @tunetheweb @tweetythierry @westonruter for review and proofreading.

#feature-projects, #performance, #performance-lab, #speculative-loading

Dropping support for PHP 7.0 and 7.1

Support for PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 7.0 and 7.1 will be dropped in WordPress 6.6, scheduled for release in July 2024. The new minimum supported version of PHP will be 7.2.24. The recommended version of PHP remains at 7.4 or greater.

WordPress currently supports PHP version 7.0 or greater. The minimum supported version was last adjusted in WordPress 6.3 in August 2023, and since then usage of PHP 7.0 and 7.1 has dropped to a combined 2.45% of monitored WordPress installations as of April 2024.

There’s no concrete usage percentage that a PHP version must fall below before support in WordPress is dropped, but historically the project maintainers have used 5% as the baseline. Now that usage of PHP 7.0 and 7.1 combined is well below that at 2.45%, the process to increase the minimum supported PHP version in this release can move forward.

The benefits to increasing the minimum supported PHP version manifest over time and in multiple places, including within 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 and theme ecosystem, within the long term perception of the WordPress project, within developer relations, and over time within the WordPress codebase and its developer tooling.

Discussion around this minimum version bump can be found here on the Trac ticket.

What about PHP 8?

WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. is compatible with PHP 8.0 and 8.1 with exceptions. Support for PHP 8.2 and PHP 8.3 is considered 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. since WordPress 6.4. Please see the PHP Compatibility and WordPress Versions page in the handbook for full information.

What about security support?

Sites that are running PHP 7.0 or 7.1 will remain on the 6.5 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". of WordPress which will continue receiving security updates as it does currently. The current security policy is to support WordPress versions 4.1 and greater.

What about 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/ plugin?

The Gutenberg plugin, which is used for development of 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. editor, has a separate release schedule from WordPress core and officially supports the two most recent releases of WordPress. The Gutenberg development team will likely also increase the minimum supported version of PHP to 7.2 in time for WordPress 6.6. See this issue on the Gutenberg repo for when this was last changed in WordPress 6.3.

Going forward

There are no plans to bump the minimum supported PHP version on a schedule. The core team will continue to monitor usage of PHP versions and work with the hosting team to encourage users and hosting companies to upgrade their versions of PHP as swiftly as possible. The 5% usage baseline will continue to be used for the foreseeable future.

The PHP usage stats as of April 2024 look like this:

  • 8.3: 1.20%
  • 8.2: 12.07%
  • 8.1: 16.34%
  • 8.0: 12.25%
  • 7.4: 42.80%
  • 7.3: 4.79%
  • 7.2: 3.80%
  • 7.1: 0.95%
  • 7.0: 1.50%

Update PHP today

If you need more information about PHP or how to update it, check out this support article that explains more and guides you through the process.

Props to all those that have contributed to this discussion recently. Thanks to @chanthaboune for feedback and proof-reading this post.

#6-6, #php

Performance Chat Agenda: 9 April 2024

Here is the agenda for this week’s performance team meeting scheduled for Apr 9, 2024 at 15:00 UTC.

  • Announcements
    • Welcome to our new members of #core-performance
    • Plan to launch 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 version 3.0.0 on Mon April 15
  • Priority items
    • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
      • Current release (6.6)
      • Future release
    • Performance Lab plugin (and other performance plugins)
      • Open discussion regarding streamlining PL plugin and other standalone plugins #1061
    • Active priority projects
      • INP research opportunities
      • Improve template loading
  • Open floor

If you have any topics you’d like to add to this agenda, please add them in the comments below.


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

Conducting WordPress performance research in the field

Over the past few years, several Make CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. posts, for example the 2023 performance retrospective, have referenced field data based on how real users experience millions of real WordPress sites. Such field data can help gather metrics of many different kinds, such as adoption of a feature or even its performance impact. As such, they can be instrumental in demonstrating the success of or potential concerns about a feature or enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature..

Gathering this data can be accomplished using public datasets like those from HTTP Archive and the Chrome User Experience Report (CrUX). However, as it requires writing BigQuery queries, getting the data may not be trivial as it is a separate technology not relevant for WordPress core development or pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and theme development.

To provide a better starting point for those new to BigQuery, 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, and CrUX, members of the WordPress Performance Team and HTTP Archive have collaborated on a tutorial and reference Colab.

Whether you are new to those technologies or whether you have already written a few BigQuery queries, the Colab provides an introduction and can help build more familiarity. It only assumes some familiarity with SQL in general, such as from writing custom database queries in WordPress. The Colab comes with several queries, alongside their results, which can be used as a reference, and covers use-cases relevant to WordPress core development as well as plugin and theme development. It can be considered a “living resource”, i.e. expect for it to be updated and expanded in the future.

Other than this post, you can also find the Colab linked from a new Make Performance Handbook article on gathering WordPress performance data in the field.

If you are interested in field research around WordPress sites, you may want to take a look and work through the Colab. As it contains a lot of content, please feel free to work through it in multiple sessions.

#analysis, #core, #core-web-vitals, #performance, #plugin, #theme

Developer Blog editorial meeting summary, April 4, 2024

Summary of the WordPress Developer Blogblog (versus network, site) meeting, which took place in the  #core-dev-blog channel on 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/.. Start of the meeting in Slack.

Attendees: @greenshady, @matteoenna, @ironnysh, @colorful-tones, @magdalenapaciorek, @bph (as facilitator),

Last meeting notes: Developer Blog editorial meeting summary, March 7, 2024

Updates on the site

Authors reported a few hiccups with the code 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.. As soon as you wanted to attach a programming language for color coding, extraneous <br> tags appeared and rendered the code block useless. @ndiego, @greenshady and the #meta team are working on it to get this fixed asap.

Newly published post since the last meeting:

Since the last meeting, we published quite a list of articles, and we onboarded new writers and received support from more reviewers. Three first time writers with @meszarosrob, @jsnajdr and @beafialho Thank you! 🎉

Huge “Thank you” to the writers and reviewers for bringing fabulous content to WordPress!

Project Status

Ready to for publishing

Reviews needed

In Progress:

Post on the To-do-list, assigned to writers.

Topics still in need of a writer

If you are interested in taking on a topic from this list or know someone who would be a good person to writer about them, comment on the Issue or pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” @bph in slack either in the #core-dev-blog channel or in a DM.

New Topics approved

@greenshady mentioned:

“There’s one other topic from last month that was not formally approved, @bph. I feel like with the additional info, we should probably take a look at it. (sorry for not bringing this up earlier): https://github.com/WordPress/developer-blog-content/discussions/230.”

There were no clear approval signals and seems the topic still needs clarification and will be revisited for next meeting.

Open Floor

Some clarification on the Playground articles/topics:

We originally had the topic approved:How to build a theme demo with WP Playground blueprints
Ronny took it on and wrote a fabulous Introduction/Overview of WordPress Playground. There was some discussion on how to proceed next. The consensus was that the Introduction post was a great post to have on the Developer Blog as each subsequent Playground tutorial could refer to it and doesn’t have to cover the basics anymore. Quite a few people from the Editorial group chimed in on the discussion and agreed to have it published. (note: the post is live now)

Ronny also wrote a Tutorial on How to use WordPress Playground for handovers. It was approved earlier. We still need a writer for How to build a theme demo with WP Playground blueprints 

Next meeting: May 2, 2024, at 13:00 UTC in the #core-dev-blog channel

Props to @greenshady for review of the post.

#meeting, #summary

Hallway Hangout: Let’s chat about what’s next in Gutenberg

There are some big, exciting efforts underway within 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/ project and 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 eventually make their way in some form to a future WordPress release. It’s all WordPress at the end of the day and, in an effort to bring people into the flow of what’s happening in the earlier stages, this hallway hangout seeks to be a snapshot of what’s being worked on to provide broader awareness to more WordPress contributors and get feedback. The hope is that in coming together early before the next 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. period to talk about different features, we can, as a community, flush out concerns sooner, help more folks get involved, and find ways to work better together. 

Important note: this hallway hangout will likely last for 90 minutes instead of the usual 60 minutes to allow for ample time to demo and discuss. 

How to join

If you’re interested in joining, the Hallway Hangout will happen on 2024-04-24 23:00 . A Zoom link will be shared in the #core 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 before starting and all are welcome to join, whether to listen or participate, for as long or as little as you’d like. This will be recorded and recapped. Note that the time for these hallway hangouts are intentionally rotated to allow for different folks to participate in different ones.

If you’re unable to make it but have something to comment on or share, I welcome you to leave feedback in the comments of this post or dive straight into the GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ issues linked below. This isn’t meant to replace any particular way to get involved but is meant to streamline and offer a more high bandwidth way to connect. 

Agenda

At a high level, the following items are currently on the list to go through but more might be added depending on how the next few weeks take shape. We’ll get through as many of these as we can in the order as shown below, with either demos to go through from figma, from a PR, or via the Gutenberg plugin. @saxonfletcher & @richtabor will help lead these demos:

  • Data views efforts and its relationship to the Adminadmin (and super admin) Redesign.
  • Overrides in synced patterns, including the UXUX User experience and the broader reasoning around naming to unlock an override.
  • Zoomed out view and the experience coming together to focus on patterns rather than granular 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. editing, including Advancing contentOnly editing.
  • Layout improvements, including Grid layout support.
  • Pattern styles, which would offer multiple ways of styling content based on a single palette, and Colors and typeset presets from theme style variations.
  • Style inheritance to help clarify where and why different items are styled as they are. 

There’s obviously more that could be on here but, in an effort to focus on some of the larger, more relevant work, let’s start here. We can always hold more of these in the future! Hope to see you there. 

#gutenberg, #hallway-hangout

Summary, Dev Chat, April 3, 2024

Start of the meeting in SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/., facilitated by @joemcgill.

Announcements

WordPress 6.5 “Regina” was released yesterday! Thank you to everyone who worked on, tested, and supported this release 🎉

Forthcoming Releases

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

We are officially in the WordPress 6.6 release cycle. @priethor published this WordPress 6.6 Planning Proposal & Call for Volunteers post last week. Please take note of the following callouts on that post:

  • Please leave your feedback about the schedule and release squad size in the comments by April 7th.
  • If you are interested in participating in WordPress 6.6’s release squad as a lead or as a cohort, please show interest in the comments, specifying the role and the type of involvement (lead/cohort).

@colorful-tones and @fabiankaegy will be covering and merging TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress./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/ Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. for 6.6, and if anyone has any recommendations to streamline things for overall Triage to make lives easier, then please reach out to them.

For 6.6, we discussed considering not having a sticky post for the bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrub schedule and instead ensuring the schedule is linked at the top of the main release page.

We also discussed 6.5.1, and noted that @jorbin published a post: Initial Bug Scrub for 6.5.1 for tomorrow. @fabiankaegy mentioned that the editor team have created this new board in GitHub to track any editor-related issues that may be candidates for a point 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.. Currently, there are 5 tickets with the backport to wp minor release label.

We also already have quite a few tickets targeted for the 6.5.1 milestone, so any eyes before the initial bug scrub will likely help that be more efficient.

Next Gutenberg release: 18.1

The next Gutenberg release will be 18.1, scheduled for release on April 10, and will include these issues.

Discussion

We began by discussing any potential follow-up actions and reflections following the recent 6.5 release. @fabiankaegy asked about starting a conversation about possibly evolving how we approach the field guideField guide The field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page. and 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. in future releases.

@jorbin has previously opened a related proposal to updating the field guide. We discussed where the most appropriate place was to start a conversation like this, and whether it sits more with CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., Docs, or Project. As it touches on many different areas and how we do things within software release cycles, then it seems to fit more into the Core team’s scope.

@audrasjb suggested this may be good to discuss in the future #6-6-release-squad Slack channel so maybe the squad could discuss it in the open with the future Docs Leads and come up with a formal proposal for 6.6 on Make/Core.

@joemcgill also proposed arranging another release retrospective post to collect feedback about the release while it’s still fresh in people’s minds. @chanthaboune mentioned being able to do this in any way that works for folks. For 6.4, we collected the data in an anonymized format and then that data was shared on make/core, and we discussed potentially following a similar approach for 6.5.

Highlighted posts

The full list of posts from the last week in Core can be read on the agenda at this link.

Open floor

We started by highlighting this PR for the WP Importer in support of the Font Library from @mmaattiiaass.

@kkmuffme mentioned that they’re looking for reviews on several PRs, listed in this message and this message.

Two additional issues that were raised in the agenda comments were:

  • https://github.com/WordPress/gutenberg/issues/15117 – “the excerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox. 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., that impacts all plugins incl. WooCommerce”
  • https://core.trac.wordpress.org/ticket/59270 – “adding border setting to columns”

This issue was highlighted: Responsive previewing and device-specific editing. Nolan asked what the best way was to make a decision on the issue, as this has been open for 4 years. @annezazu replied with:

I understand that’s an important issue — it has been for a long time! I know some designers have recently chimed in there and there’s some momentum gathering. The best thing to do at this point is to be specific and keep sharing what would be helpful. Beyond that, the main blockerblocker A bug which is so severe that it blocks a release. is finding solid design solutions and finding specific/targeted ways to implement as anything that is implemented has to be maintained.

Also, @webcommsat highlighted a forthcoming contributor dayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. which is looking for core input and people to join. More info on here on Slack.

Props to @joemcgill for reviewing.

#6-5, #6-6, #dev-chat, #summary

Agenda, Dev Chat, Wednesday April 3, 2024

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

The live meeting will focus on the discussion for upcoming releases, and have an open floor section.

Additional items will be referred to in the various curated agenda sections, as below. If you have ticketticket Created for both bug reports and feature development on the bug tracker. requests for help, please do continue to post details in the comments section at the end of this agenda.

Announcements

WordPress 6.5 “Regina” has been released. Thank you to everyone who worked on, tested, and supported this release 🎉.

Forthcoming releases

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

We are officially in the WordPress 6.6 release cycle. @priethor published this WordPress 6.6 Planning Proposal & Call for Volunteers post last week. Please take note of the following callouts on that post:

  • Please leave your feedback about the schedule and release squad size in the comments by April 7th.
  • If you are interested in participating in WordPress 6.6’s release squad as a lead or as a cohort, please show interest in the comments, specifying the role and the type of involvement (lead/cohort).

Next maintenance release: 6.5.1

There is no specific target date for WordPress 6.5.1 yet. However, we can start ensuring that all the correct bugs are targeted for it and that work progresses towards fixing them.

To assist with preparation for 6.5.1, an initial scrub will be held at Thursday, April 4, 2024 at 01:00 PM CDT in the #core 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.

@jorbin, Initial Bug Scrub for 6.5.1

Next 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: 18.1

Gutenberg 18.1 is scheduled for release on April 10 and will include these issues.

Discussions

This week the discussion will be a follow-up from the WordPress 6.5 release to address any high priority topics that that need to be addressed following the release.

Feel free to suggest additional topics related to this release in the comments.

Highlighted posts

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor Updates

Props to @annezazu for putting together these updates.

  • Project managementProviding more clarity in the Gutenberg GitHub Repo recapping some recent efforts to better organize the repo and ensure the high level labels and associated issues folks use to follow work at various scales are as accurate and robust as possible.
  • WordPress 6.6: Check out an early look at what’s on the mind already for 6.6: Block Hooks features for future WP releasesHTML API: Plans for 6.6Interactivity API – Iteration for WP 6.6. Keep in mind that these are meant to act as a container for iterations and will be actively updated as the cycle gets underway. If you want to follow a narrower scope of work for a release, this is the best way to do so.
  • Template extension: Allow extensions to customize the template name in the ‘Add template’ screen to help ease template registration and improve the experience extenders provide to end users when they add a custom template.
  • Styles: Filter out color and typography variations PR is underway, which gives theme authors the ability to create multiple color and typography settings. It does this by filtering out color and typography variations out of the list of style variations so that theme authors can add variations that target only these properties without having to create full variations.
  • Create 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 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: a community plugin that helps supercharge the Site Editor to create and edit block themes has a few efforts underway including early work to add a theme.json editor and bring creating theme variation to the site editor interface.
  • Design: recent design share has a slightly new format (links to useful design related figma links, issues, etc) to go along with some fresh, in progress designs. This includes the 18 min long walk through of current thinking with the Adminadmin (and super admin) Redesign, thoughts on the UXUX User experience for overrides in synced patterns, improvements to contentOnly experience, and more.
  • Patterns: a draft PR is underway to Merge Patterns & Template parts categories into a single group in the Site Editor > Patterns view allowing for less differentiation and easier access (no longer need to go into “manage all template parts”.  This is done as part of Advancing site editor index views.
  • Design tools: Allow negative values for margin controls has long been requested and is actively being explored in a promising draft PR.

Tickets for assistance

Tickets for 6.6 will be prioritized.
Please include detail of tickets / PR and the links into comments, and if you intend to be available during the meeting if there are any questions or will be async.

Open floor

Items for this can be shared in the comments.

Props to @mikachan for reviewing.

#agenda, #dev-chat

Initial Bug Scrub for 6.5.1

There is no specific target date for WordPress 6.5.1 yet. However, we can start ensuring that all the correct bugs are targeted for it and that work progresses towards fixing them.

To assist with preparation for 6.5.1, an initial scrub will be held at Thursday, April 4, 2024 at 18:00 UTC in the #core 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.

Thanks to @desrosj and @hellofromtonya for pre-publication review.

#6-5, #6-5-x, #bug-scrub

Performance Chat Summary: 2 April 2024

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

Announcements

Priority Items

Structure:

  • WordPress performance TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
    • Current release (WP 6.6)
  • 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 (and other performance plugins)
  • Active priority projects
    • INP research opportunities
    • Improve template loading

WordPress Performance Trac Tickets

  • For WordPress 6.6:
    • We have 14 open items in the 6.6 milestone
    • @joemcgill Given that we’re so early in the cycle, I think the most important thing to discuss is making sure we are making progress on any early tickets, and make sure that any tickets we need to add from our priority projects from our roadmap are included in the 6.6 milestone
    • @joemcgill #59442 is the main one that I’m unsure of, given that it has no owner and is marked early
      • @thekt12 and @spacedmonkey did some work on this, but it still needs some iteration and someone to own finishing it up.
      • @pbearne if no one else is free I can take it on
      • @thekt12 This is more of switching to old commit and adding 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. for it. Should be an easy fix.

Performance Lab Plugin (and other Performance Plugins)

    Active Priority Projects

    Improve template loading

    INP research opportunities

    • @adamsilverstein nothing new from me this week, I’m still working on next steps from the research document I shared last week

    Open Floor

    • @flixos90 On and off over the past year, I’ve been working on a WordPress and performance field research Colab which I’d like to share. This Colab provides a technical introduction and a lot of examples to reference for querying 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 and CrUX to get WordPress field data, e.g. for things like adoption, performance impact, CWV, …
      • The Colab is effectively already public, and I “silently” added a new short article to the Make Performance Handbook that for now includes it. I’ve also drafted a Make Core post, which I’d like to publish later this week for more visibility, as this can be relevant for any coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. developer.
      • Any feedback on the Colab as well as the new Handbook article and post draft would be much appreciated! Especially the post draft, as that will get more visibility via the Make Core subscribers.
      • If you’re interested in field performance research, you may want to review / work through the Colab in more depth. I’m intending for it to be a “living resource”, so it’ll be updated and expanded in the future. Thank you in advance!
    • @benoitfouc Performant Translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. feature (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.) will avaible for all users with WP 5.6 soon. This feature increase a lot the average performance of all my french websites, thank you so much for working on it. Today WPML was release an update in order to be compatible with Performant Translation https://wpml.org/download/wpml-multilingual-cms/?section=changelog

    Our next chat will be held on Tuesday, April 9, 2024 at 15:00 UTC in the #core-performance channel in Slack.

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