Bug Scrub Schedule for 6.1

With 6.1 well underway, here’s the initial schedule of 6.1 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 sessions. These 6.1-specific ticketticket Created for both bug reports and feature development on the bug tracker. scrubs will happen each week until the final release.

Alpha Scrubs:

Hosted by @audrasjb:

Hosted by @chaion07:

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. Scrubs:

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). Scrubs:

Check this schedule often, as it will change to reflect the latest information.

What about recurring component scrubs and triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. sessions?

The above 6.1 scheduled bug scrubs are separate and in addition.

For your reference, here are some of the recurring sessions:

Have a recurring component scrub or triage session?
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.” @audrasjb or @chaion07 on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. to have it added to this page.

Want to lead a bug scrub?

Did you know that anyone can lead a bug scrub at anytime? Yes, you can!

How? Ping @audrasjb or @chaion07 on slack and let us know the day and time you’re considering as well as the report or tickets you want to scrub.

Planning one that’s 6.1-focused? Awesome! It can be added to the schedule above. You’ll get well deserved props in the weekly Dev Chat, as well as in the #props Slack channel!

Where can you find tickets to scrub?

  • Report 5 provides a list of all open 6.1 tickets:
    • Use this list to focus on highest priority tickets first.
    • Use this list to focus on tickets that haven’t received love in a while.
  • Report 6 provides a list of open 6.1 tickets ordered by workflow.

Need a refresher on bug scrubs? Checkout Leading Bug Scrubs in the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. handbook.

Questions?

Have a question, concern, or suggestion? Want to lead a bug scrub? Please leave a comment or reach out directly to @audrasjb or @chaion07 on slack.

#bug-scrub

Performance Chat Agenda: 11 October 2022

Here is the agenda for this week’s performance team meeting scheduled for October 11, 2022, at 15:00 UTC.


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

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

Improvements to WP_Query performance in 6.1

Adding caching to database queries in WP_Query

WordPress 6.1 includes an improvement to how database queries are performed in the WP_Query class, resulting in database queries will be cached. This means that if the same database query is run more than once, the result will be loaded from cache. For those using persistent object caching, this will mean that the database query will not run again until caches are invalidated, resulting in far fewer queries to the database. Sites using in-memory caching will also see the benefit of not repeating these queries, though the performance improvement will not be as significant. 

For those doing custom development, please ensure that you are using coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. functions such as wp_insert_post to add posts to the database. These functions are well-maintained, and by using them, you ensure that caches are correctly invalidated. If you are updating the database directly, then it is strongly recommended that you call the clean_post_cache function after updating the database row. 

It is worth noting that by default, all calls to WP_Query will be cached going forward. It is possible to opt out of caching queries by simply passing the cache_results parameter as false. See example:

$args = array(
   'posts_per_page' => 50,
   'cache_results'  => false
);
$query = new WP_Query( $args );

It is also possible to globally disable caching, 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.:

function disable_caching( $wp_query ) {
   $wp_query->query_vars['cache_results'] = false;
}
add_action( 'parse_query', 'disable_caching' );

Disabling caching like this should only be done in extreme cases. For best performance, it is highly recommended to keep caching enabled and invalidate caches using the clean_post_cache function. 

Cache keys are generated using the parameters passed to the WP_Query class instance. However, the following parameters are ignored:

  • suppress_filters
  • cache_results
  • fields
  • update_post_meta_cache
  • update_post_term_cache
  • update_menu_item_cache
  • lazy_load_term_meta

These parameters do not affect the database query that is run. The most important ignored parameter is fields. This means that if you run the following: 

$args1 = array(
	'posts_per_page' => 50,
	'fields'  => 'ids'
);
$query1 = new WP_Query( $args1 );

$args2 = array(
	'posts_per_page' => 50,
	'fields'  => 'all'
);
$query2 = new WP_Query( $args2 );

In both cases, the query will now request all fields, so that the result can be cached and then be used regardless of the fields parameter. Prior to this change, the database query for those two was different, but keeping it like that would have resulted in multiple caches for effectively subsets of the same data. This means that there is now less of a performance improvement when limiting fields ids than there was in the previous version of WordPress. 

This change also means that the update_post_meta_cache and update_post_term_cache caches are always respected. 

In cases where caching was added to WP_Query by using plugins such as advanced-post-cache, Enhanced Post Cache or Cache WP_Query, it is recommended that these plugins are disabled and removed as they are no longer required.

For more info, see TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticketticket Created for both bug reports and feature development on the bug tracker. #22176

Prime users cache in WP_Query

WordPress 6.1 introduces a new function, update_post_author_caches. Prior to 6.1, sites with multiple authors required several single database queries to get author information, as the user is loaded as part of the 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.. Instead of loading each user one by one, user (author) caches are now primed in a single database call by calling update_post_author_caches at the start of the loop, resulting in far fewer database queries. 

This function accepts an array of post objects and will prime user caches. Calls to update_post_author_caches have also been added in key parts of the codebase to improve database performance.

For more info, see Trac ticket #55716

Prime linked objects for menu items

A new function has been added to core called update_menu_item_cache. It accepts an array of post objects and will prime caches for post or terms referenced in a menu item. A new parameter for WP_Query has been added called update_menu_item_cache. When set to true it will call update_menu_item_cache which will allow you to prime menu items in a two database queries (one for posts and one for terms). 

For more info, see Trac ticket #55620

get_page_by_title now uses WP_Query

The function get_page_by_title now uses WP_Query. Previously,  this function used a raw database query to get the page by title. As noted above, WP_Query is now cached, meaning that calls to get_page_by_title will also be cached. This also has the benefit of running through all the filters in WP_Query

For more info, see Trac ticket #36905 

Thanks to @flixos90@milana_cap@peterwilsoncc for peer review and @shetheliving for proofreading.

#6-1, #dev-notes, #dev-notes-6-1, #performance

New cache Site Health checks in WordPress 6.1

As part of the WordPress 6.1 release, the Performance Team has added two Site Health checks (Persistent Object Cache and Page Cache). These checks were previously tested in the Performance Lab plugin. You can read more about them in the original proposal.

Both checks will run only in a production environment.

Persistent Object Cache

This new check determines whether the site uses a persistent object cache or not and recommends it if it makes sense for the site. It also links to a support resource created for the check.

A few filters have been included aiming for hosting providers to provide more specific steps regarding their environment.

Hosts may use the site_status_persistent_object_cache_url 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. to replace the original WordPress guide with their own guide.

/**
 * Filter the Persistent object cache URL.
 */
add_filter( 'site_status_persistent_object_cache_url', function() {
	return 'https://awesomewphosting.com/optimization/persistent-object-cache';
} );

Hosts may use the site_status_persistent_object_cache_notes filter to customize the notes to recommend their preferred object cache solution.

/**
 * Update the persistent object cache notes.
 */
add_filter( 'site_status_persistent_object_cache_notes', function( $notes ) {
	$notes = __( 'The updated notes can go here as text.', 'text-domain' );

	return $notes;
} );

The site_status_persistent_object_cache_thresholds filter allows modifying the thresholds above WordPress considers using a persistent object cache beneficial.

/**
 * Override the whole $thresholds array, or any specific indexes as required.
 */
add_filter( 'site_status_persistent_object_cache_thresholds', function( $thresholds ) {
	$thresholds = array(
		'alloptions_count' => 600,
		'alloptions_bytes' => 200000,
		'comments_count'   => 2000,
		'options_count'    => 2000,
		'posts_count'      => 2000,
		'terms_count'      => 2000,
		'users_count'      => 2000,
	);

	return $thresholds;
} );

Alternatively, site_status_should_suggest_persistent_object_cache is a short-circuit filter that allows using entirely custom logic to determine whether a persistent object cache would make sense for the site.

/**
 * Opt in for suggesting the persistent object cache
 */
add_filter( 'site_status_should_suggest_persistent_object_cache', '__return_true' );

For additional context on this new check, see #56040.

Full Page Cache

This new check determines whether the site is using a full page cache solution and if the response time is acceptable.

It also adds a couple of filters aiming for hosting companies to customize the response threshold and add their own cache headers to be detected.

The site_status_good_response_time_threshold filter allows modifying the current threshold of 600ms. Everything below this will be considered acceptable.

/**
 * Filter the response time threshold
 */
add_filter( 'site_status_good_response_time_threshold', function() {
	return 200;
} );

Additional custom cache headers ( and optionally their verification callbacks) can be added through the site_status_page_cache_supported_cache_headers filter.

/**
 * Filter the page cache supported cache headers
 * $cache_headers contains List of client caching headers and their (optional) verification callbacks.
 */
add_filter( 'site_status_page_cache_supported_cache_headers', function( $cache_headers  ) {
	// Add new header to the existing list.
	$cache_headers['cf-cache-status'] = static function ( $header_value ) {
		return false !== strpos( strtolower( $header_value ), 'hit' );
	};
	return $cache_headers;
});

For additional context on this new check, see #56041.

Thanks to @flixos90, @milana_cap, @spacedmonkey for peer review, and @pushpakpop for the code examples.

#6-1, #core-site-health, #dev-notes, #dev-notes-6-1, #performance, #performance-lab, #site-health

Editor chat summary: 5 October, 2022

This post summarizes the weekly editor chat meeting (agenda for 5th of October meeting) held on Wednesday, October 5 2022, 04:00 PM GMT+1 in Slack. Moderated by @paaljoachim.

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

Gutenberg 14.2 What’s new release post.
Thank you @czapla for handling the release.

Gutenberg 14.3 RC1 was released 5th of October.
Thank you @aaronrobertshaw for handling this release.

WordPress 6.1 Beta 3 was released 5th of October.

Key project updates

Key project updates:

Task Coordination

@annezazu

Continued work on the current #fse-outreach-experiment call for testing, a11yAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) roundup post, testing 6.1 as much as possible, reviewing 6.1 items (about page, 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. posts, video, etc) and working on some updates to the feature projects page.

Open Floor

Announcements, questions and discussions.

@bph
DevNotesdev 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 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. for WordPress 6.1.
A huge thank you to all contributors who already finished their DevNotes! They are now being reviewed. You might get contacted to clarify things.
If you haven’t started working on your DevNotes, it’s time. Your deadline for the Dev Notedev 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 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. is latest Sunday Oct 10. I also contacted a few contributors to see if I can be of assistance to further progress. Let me know how I can assist you. Just 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.” me in a DM and we can chat. As we have a lot of PRs labeled 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 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., I am still in the pruning process. So if you haven’t been pinged for a DevNotedev 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 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. or I overlooked things, please let me know.

@KubiQ
There is again missing inner container in Group blocks.
@poena
This has been solved in Gutenberg this morning, but not backported to WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. yet as far as I can tell. Legacy Group inner block wrapper should work with constrained layout.

@annezazu

Additional comment from Anne. Regarding Feature projects page.
In order to add a bit more nuance and to make the various efforts easier to track, I’m working on adding in more feature projects with more information so folks can have an easier way to follow along.

@paaljoachim

The submenu in Twenty Twenty Two feels crammed. I made an issue for it here:
Navigation block: default spacing issue with sub menus.

To get more details go directly to the Open Floor discussions in the Core Editor 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.

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

Dev chat summary, October 5, 2022

Notes from the weekly WordPress developers chat held in 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 start of the meeting on Slack.

1. Welcome

@marybaum and @webcommsat led the weekly WordPress developers chat meeting on this agenda.

Last week’s summary – September 28, 2022.

2. Announcements

WordPress 6.1 Beta 3 landed on Tuesday, October 4, 2022. Props to everyone who helped and came to test at the release party.

3. Blogblog (versus network, site) Posts of Note

4. Upcoming Releases

The 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. is WordPress 6.1. For more information on the release, visit the WordPress 6.1 Development Cycle page. This includes links to the 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 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. as they are published, and the next 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 that are taking place and where you can join to help progress tickets.

The first 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). for 6.1 is expected to land next Tuesday, October 11, 2022.

@audrasjb gave a triage update.

On the 488 tickets in the milestone, there are:

@webcommsat: In the release documentation teams and for Learn WordPress, we are working on items to support the release. There are still lots of opportunities for people to help in both areas. @bph has also reached out to component maintainers about dev notes or items for 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.. Please do reply to her as soon as you can.

Check-in on update on the Early time frame discussions following the discussion at Dev Chat on September 14, 2022. @clorith advised that they had a quick discussion to align thoughts and points. There were a few differing opinions on some timeframes, but they should be able to put together a proposal for make/core at least before 6.1 is out.

5. Maintainers and Tickets

a) Component Maintainers updates

@sergeybiryukov provided a Build/Test Tools update:

  • WordPress core unit tests now pass on PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1 and 8.2. While full compatibility with PHP 8.1 and 8.2 is still a work in progress, this should prevent new PHP issues from being introduced in WordPress core. All remaining known issues are deprecation notices. Massive props to @jrf for continuous work on PHP 8.x compatibility for many months. Tickets #55656 and #56009 for more details.
  • PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS. results are now displayed in 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/ Action logs, making it easier in case of failure to find and understand what is causing the issue. Thanks @jrf and @desrosj. Ticketticket Created for both bug reports and feature development on the bug tracker. #55652 for more details.

@afragen updated TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticket #56650, in the General component, following last week’s discussion.

@webcommsat provided a About/ Help and Quick Edit/ Bulk Edit components update on behalf of herself, @Nalini, and @marybaum. They have continued to do a weekly focus on tickets in these two components. Everyone is welcome to join in.

  • Commented and closed Trac ticket #55549
  • Trac ticket #19859: further input requested for a way forward
  • Trac ticket #41833  Suggest for 6.2 earlies if possible, welcome more people looking at this
  • Trac ticket #50886, which has a new commentary
  • added to the About page discussions, including making some suggestions on 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) tickets to highlight.
  • Trac ticket #19859 – welcome some additional views on this ticket for earlies 6.2 if possible as it has not been possible for 6.1 . This would be really good to land.
  • A number of other tickets are in progress of review

b) Tickets to highlight

@pbearne spotlighted #53634 with the hopes of the ticket making it into 6.1. The ticket is part of the Users Component.

@webcommsat thanked everyone involved in getting #32747 under the Administration Component through yesterday so that the ticket makes it into 6.1.

@webcommsat: the team continues to look at ways to make it easier for component maintainers in other timezones to dev chat to share updates. Each week, maintainers can also add tickets and asynchronous updates on components to the published dev chat agenda. If maintainers reading this in the summary think a drop-in for maintainers at an earlier time, held every few months, would be useful, @marybaum is collating ideas for a session after the 6.1 release lands.

If you find a component that does not have a maintainer listed in an area you would love to help move forward, talk to the Core Team Reps about it.

5. Open Floor

Nothing was raised during open floor. Next meeting: Wednesday October 12, 2022 at 20:00 UTC

Props to @webcommsat for meeting prep, @marybaum and @webcommsat for facilitating, and @marybaum, @webcommsat, and @ndiego for collaborating on the summary.

#6-1, #core, #dev-chat, #summary, #week-in-core

Dev Chat agenda, October 5, 2022

The next weekly developers chat takes place on Wednesday October 5, 2022 at 20:00 UTC in 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/..

1. Welcome

A message from @marybaum, Core Team RepTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts.: At the beginning of the meeting, please say hello in Slack, even if you’re observing, and especially if you’re new. It is a compliment that you choose to give Core an hour of your time and not the other way around. Also, if you are working on the release and people have a question, it is nice to know who is in the house.

Dev Chat summary from last week, September 28, 2022.

2. Announcements

WordPress 6.1 Beta 3 landed on October 4, 2022! Please download and test.

3. Blogblog (versus network, site) posts of note

A week in Core for October 3, 2022

What’s new in Gutenberg 14.2?

Core editor improvements – the latest edition includes the additional design tools across all blocks to both ensure consistency in the experience and to allow users to customize their site further without needing to use CSSCSS Cascading Style Sheets.

17th Call for Testing in the Full Site Editing Outreach Program: Guiding 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/ Gallery – deadline for comments from testing October 6, 2022.

4. Upcoming releases

The next major is 6.1.

Updates from release squad members.

5. Components and tickets

Have a ticketticket Created for both bug reports and feature development on the bug tracker. you want to highlight, please add it to the comments to help the dev chat facilitators include it in the meeting.

6. Open floor

Got something? Please add your item to the comments.

Agenda prepared by @marybaum and @webcommsat.
This week, the summary will be drafted by @ndiego. Could you volunteer to draft it next week?

#agenda, #core, #dev-chat

Performance team meeting summary 4 October 2022

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

Announcements

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein: Not much to update, worked on 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. fix for #56442
  • @eugenemanuilov: #524 to disable JPEG subsizes generation for WebP images has been updated based on feedback from @flixos90
  • @mukesh27: Working on #525 to add a checkbox to the Media screen to enable multi-MIME type output, to match with the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. WebP implementation
  • @ankitgade: Working on background processing infrastructure related to image regeneration
    • Background job class PR #507 is merged
    • Background process runner PR is in progress and will be ready to review tonight
    • Adminadmin (and super admin) queue screen PR is work in progress
  • @khoipro: Any updates on SVG uploads?
    • @shetheliving: No one is actively working on this at the moment, so anyone can pick it up if they have time https://github.com/WordPress/performance/issues/427
    • @spacedmonkey: Not working on this right now, but may in the future. Biggest blockerblocker A bug which is so severe that it blocks a release. is that the library that everyone uses for cleaning SVGs requires PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 7+, so it would need to be forked/rewritten if we wanted backwards compatibility. If we wanted to make it a PHP 7+-only feature, it would make things a lot easier.
    • @flixos90: WP hasn’t really done that before, but don’t think it’s a no-go as long as it’s a non-critical feature
    • @spacedmonkey: PHP 5.6 is only 4% of WP installs, per https://wordpress.org/about/stats/
    • @adamsilverstein: We already do something like this with server support for images where you can’t use a format unless your server supports it
    • @flixos90: As long it gracefully falls back if unsupported and doesn’t break anything on older versions, would be totally onboard
    • @khoipro: What about sanitize and escape file uploading, and styling SVG in media preview?
    • @flixos90: Matt also mentioned a few years back that he would be open to WP offering certain features only to sites with HTTPSHTTPS HTTPS is an acronym for Hyper Text Transfer Protocol Secure. HTTPS is the secure version of HTTP, the protocol over which data is sent between your browser and the website that you are connected to. The 'S' at the end of HTTPS stands for 'Secure'. It means all communications between your browser and the website are encrypted. This is especially helpful for protecting sensitive data like banking information., kind of similar
    • @spacedmonkey: The creator of the library was open to support, not sure how much work we would need to do to port back to 5.6
    • @flixos90: Unless backporting would be super straightforward, I would say it’s not worth our effort and we make it 7+ only
    • @ankitgade: We can analyze what issues we see on 5.6 to evaluate how difficult this would be

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

  • @spacedmonkey: Committed https://core.trac.wordpress.org/ticket/56721 and need review and commit on https://github.com/WordPress/wordpress-develop/pull/3403
  • @spacedmonkey: Also been profiling and testing WP 6.1 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. 2 – profiling data
    • @spacedmonkey: WP6.1 beta 2 has a slower page generation time than 6.0, in some cases by a lot (0.6325 vs. 0.2929 seconds), even with fewer DB calls in a lot of cases
    • @flixos90: Did you test 1 for each scenario, or multiple and then use average/median results?
    • @spacedmonkey: Ran at least three times and did median
    • @flixos90: If we could automate, maybe do something like 5-10 runs to make it more accurate
  • Also working on 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 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. (1, 2, 3) – @shetheliving has reviewed and @flixos90 will take a look today or tomorrow
  • @khoipro: Will assign someone from their back-end team to take a look at profiling and testing, as well

Feedback requested

Site Health

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here 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.” 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/.
  • @furi3r: Draft Make post is in progress for the new SH checks in 6.1, waiting for a final review before publishing

Feedback requested

Measurement

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or ping in Slack
  • @shetheliving: Getting closer to starting engineering on 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 performance checker thanks to @mehulkaklotar and @jjgrainger‘s work on a design doc

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90: Per the vote to bump the Performance Lab plugin minimum requirement to WP 6.0, our next release will require 6.0
  • @flixos90: Our next release, 1.6.0, will be Monday, October 17, less than two weeks from now. Any 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. that you want to include in this release should be completed and merged by next Wednesday, October 12 (see #548).

Feedback requested

Module proposal: Server-Timing API

@flixos90

  • @rickjames: For server-side performance measurement, 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/.’s “slowlog” can be useful
  • @flixos90: Not familiar with that tool, but worth exploring another time and feel free to draft a proposal. The current proposal leaves the actual measurement agnostic so it would leave room to introduce a more flexible and opinionated system later.
  • @adamsilverstein: Overall love the proposal, are you proposing that this would be included in the response by default once this is added?
    • @flixos90: Yes, envision that it would be added by default
  • @johnbillion: Added a comment on the issue about headers: headers need to be sent before any output, and a lot of processing that happens in WordPress that would ideally be measured occurs after the output begins
    • @flixos90: Definitely a fair point. Even with that limitation, still a lot of benefit to having the headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. to measure everything until WP begins to render the output. This will be a known limitation eventually, but also think this will become a smaller issue with FSE sites because they typically generate all content and then it is just “printed” out, so less “work” happening after headers are sent.
    • @johnbillion: Maybe, but <head> still gets filled up by plugins and core doing processing. Would be good to think of what metrics would be useful to see and whether exposing those metrics via this 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. makes sense.
    • @flixos90: One example would be the autoloaded options query given the recent module proposal to improve that
    • @johnbillion: Does FSE actually construct its output before it’s all sent?
      • @aristath: Yes, the whole content/template gets rendered internally prior to sending any headers
    • @johnbillion: Like the idea of using the Server-Timing API header, but not sure if it necessarily works for WP
    • @flixos90: Isn’t it worth pursuing to be able to cover anything that happens prior to page output, which is a lot?
    • @johnbillion: It could well be, but would be good to see real world examples of what would be good to measure. Output buffering may not be the worst idea if the API is restricted to the plugin; definitely worth investigating.
    • @flixos90 will think about examples

Open floor

  • @aristath: Started porting SQLite as a module: https://github.com/WordPress/performance/pull/547; will discuss further next week
  • @josklever: https://core.trac.wordpress.org/ticket/55344 is related to the performance of the WP dashboard. Resources are loaded for dashboard widgets that are disabled via Screen Options, which can cause unwanted delays or issues for other widgets if there are conflicts.

Our next chat will be held on Tuesday, October 11, 2022 at 11am EDT in the #core-performance channel in Slack.

#core-js, #core-media, #performance, #performance-chat, #summary, #hosting-community

#meta

A Week in Core – October 3, 2022

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 September 26 and October 3, 2022.

  • 66 commits
  • 107 contributors
  • 70 tickets created
  • 3 tickets reopened
  • 60 tickets closed

The Core team is currently working on the 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., WP 6.1 🛠

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

  • Guard against false transient key in get_cached_events()#55888

Bootstrap/Load

  • Revert the is_*_admin_screen() aliases for is_*_admin() function family – #56400

Build/Test Tools

  • Call wpTearDownAfterClass() before deleting all data, instead of after – #55918. – #55652
  • Disable process timeout when running PHPUnit tests via Composer – #55919
  • Remove PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1 and 8.2 from allowed failures – #55652, #55656, #56009, #56681
  • Remove extraneous -- from docker-compose up command – #56550
  • Remove the retryAfter input – #55652
  • Remove unnecessary --no-interaction option from Composer commands – #54695
  • Update actions/github-scripts to the latest version – #55652
  • Fix running build scripts on Windows does not generate CSSCSS Cascading Style Sheets. files for blocks – #56616
  • Simplify syncing core blocks from GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 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 Core – #56179
  • Ensure prerequisites are met for draft length tests in Tests_L10n#56681, #55652, #55656
  • Update 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. registration tests to account for RTL stylesheet loading changes – #56325

Bundled Themes

  • Twenty Eleven: Improve text color consistency of Table Block heading cells and figcaption – #56462
  • Twenty Ten: Escape get_author_posts_url() where appropriate in functions.php file – #56674
  • Twenty Ten: Escape get_permalink() where appropriate in functions.php file – #56667
  • Twenty Twenty-Three: Bug fixes and improvements for betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 2 – #56383
  • Twenty Twenty: Ensure the fallback fonts is applied to all content elements for non-latin languages – #56396

Code Modernization

  • Check the return type of parse_url() in url_to_postid()#55656
  • Correct default values in wp_handle_comment_submission()#56712, #56681, #55656
  • Fix null to non-nullable deprecation in WP_REST_Users_Controller::update_item()#55656
  • Fix null to non-nullable deprecation in WP_Theme_JSON::get_property_value()#56620
  • Fix null to non-nullable deprecations in wp_xmlrpc_server::_insert_post()#55656
  • Fix null to non-nullable deprecations in wp_xmlrpc_server::mw_newPost()#55656
  • Use correct default value for 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/. translations path – #55967, #55656

Comments

  • Prevent AYS prompt when replying to a comment and nothing has been entered – #54990

Docs

  • Add @since to wp_enqueue_classic_theme_styles() docblockdocblock (phpdoc, xref, inline docs)#55646
  • Increase the specificity of various property documentation – #55646
  • Use Latin C instead of Cyrillic С in docblock for get_test_theme_version()#55646
  • Use third-person singular verbs in class-wp-site-health-auto-updates.php, as per docblocks standards – #55646
  • Various docblock fixes in wp-includes/revision.php, as per documentation standards – #55646

Editor

  • Cast theme.json values to string on theme export – #56684
  • Correctly load RTL stylesheets in register_block_style_handle()#56325
  • Ensure block script is enqueued, regardless of ronder_callback#56408
  • Ensure settings for fluid typography and spacingScale are not lost on theme export – #55646
  • Fix missing frontend section presets output – #56467
  • Fix spacing property generation in flow layout type – #56467
  • Make template names and descriptions dynamic, again – #56467
  • Reintroduce styles that were removed for classic themes – #56467
  • Remove deprecated callable in WP_Style_Engine class – #56467
  • Remove leading whitespace from some translated strings – #56467
  • Revert dynamic template names and descriptions – #56467
  • Update packages for 6.1 Beta 2 – #56467
  • Blocks: Fix 404 error for core styles with no file – #56408, #56614
  • Blocks: Remove extra get_theme_file_path() calls in register_block_style_handle()#56666

External Libraries

  • Update MediaElement.js to version 4.2.17 – #56319
  • Update Underscore.js to version 1.13.6#56030

General

  • Remove file_exists() checks after calling realpath()#56654

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.

  • Move code out of a translatable string in register_rest_route()#51986
  • Use correct default value for JavaScript translations path – #55967, #55656
  • Ensure empty strings are consistently translated to ''#55941

Menus

Options, MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. APIs

  • Prevent excessive notoptions key lookups – #56639

Plugins

  • Fix Upgrade icon alignment on mobile in Plugins Install screen – #55627

Query

  • Save excessive cache add and sets in WP_Query#22176

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.

  • Ensure args is an array of arrays in register_rest_route()#51986

Script Loader

  • Prevent double space between attributes in WP_Styles class – #56675

Security

  • Introduce strings to indicate support status – #56532

Shortcodes

  • Revert recent apply_shortcodes and do_shortcode changes – #55883

Site Health

  • Fix incorrect message about the status of WP_AUTO_UPDATE_CORE#51041

Upgrade/Install

  • Keep search engine checkbox value when reloading the Install screen – #55900
  • Update sodium_compat to v1.19.0 – #56653

Users

  • Correctly pass the context property for persisted preferences – #56665#56467

Props

Thanks to the 107 (!) people who contributed to WordPress Core on Trac last week: @jrf (14), @SergeyBiryukov (11), @mukesh27 (8), @desrosj (7), @audrasjb (6), @aristath (6), @robinwpdeveloper (6), @costdev (5), @bernhard-reiter (5), @rafiahmedd (4), @cbravobernal (4), @ramonopoly (4), @rudlinkon (3), @sabernhardt (3), @kebbet (3), @azaozz (3), @poena (3), @hellofromTonya (3), @andrewserong (3), @Chouby (2), @hztyfoon (2), @dd32 (2), @spacedmonkey (2), @Ankit K Gupta (2), @whaze (2), @oandregal (2), @Clorith (2), @johnbillion (2), @glendaviesnz (2), @ironprogrammer (2), @maahrokh (1), @zoonini (1), @talldanwp (1), @ramon-fincken (1), @khokansardar (1), @chrisbudd1 (1), @manfcarlo (1), @tobiasbg (1), @nendeb55 (1), @chesio (1), @bernie (1), @lopo (1), @sumitbagthariya16 (1), @felipeelia (1), @dmsnell (1), @mcsf (1), @sergeybiryukov (1), @clorith (1), @wildworks (1), @zieladam (1), @paragoninitiativeenterprises (1), @isabel_brison (1), @ndiego (1), @beafialho (1), @jorbin (1), @critterverse (1), @madhudollu (1), @mikachan (1), @pls78 (1), @manooweb (1), @hugodevos (1), @Boniu91 (1), @krishaweb (1), @oglekler (1), @faisal03 (1), @apermo (1), @hasanuzzamanshamim (1), @cdbessig (1), @lovor (1), @swissspidy (1), @ocean90 (1), @saggre (1), @westonruter (1), @johnjamesjacoby (1), @peterwilsoncc (1), @get_dave (1), @meysamnorouzi (1), @scruffian (1), @tellthemachines (1), @rajanpanchal2028 (1), @imadarshakshat (1), @antonvlasenko (1), @justinahinon (1), @jameskoster (1), @jorgefilipecosta (1), @iviweb (1), @DarkoG (1), @azouamauriac (1), @dovyp (1), @mkox (1), @cu121 (1), @malthert (1), @nateallen (1), @johnmark8080 (1), @Hinjiriyo (1), @timothyblynjacobs (1), @AndrewNZ (1), @oneearth27 (1), @ntsekouras (1), @slaFFik (1), @multidots1896 (1), @umesh84 (1), @fuadragib01 (1), @jakariaistauk (1), @tillkruess (1), @elten (1), and @draganescu (1).

Congrats and welcome to our 14 (!) new contributors of the week: @maahrokh, @sumitbagthariya16, @cdbessig, @saggre, @meysamnorouzi, @rajanpanchal2028, @imadarshakshat, @cu121, @johnmark8080, @AndrewNZ, @oneearth27, @fuadragib, @jakariaistauk, @elten. ♥️

Core committers: @sergeybiryukov (20), @davidbaumwald (16), @audrasjb (12), @desrosj (6), @hellofromtonya (3), @gziolo (3), @jorgefilipecosta (2), @spacedmonkey (1), @westonruter (1), @peterwilsoncc (1), and @johnbillion (1).

#6-1, #core, #week-in-core

Editor chat summary: Wednesday, 28 September 2022

This post summarizes the latest weekly Editor meeting (agenda, slack transcript), held in the #core-editor 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, on Wednesday, September 28, 2022, 14:00 UTC.

General Updates

  • Gutenberg 14.2.0 has been released and is available for download! It comes with writing flow improvements, a more polished Calendar 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., smarter auto-completion, and much more!.
  • WordPress 6.1 Beta 2 is now available for download and testing.

Async key project updates

Read the latest updates directly from the following tracking issues:

Task Coordination

@annezazu

  • Shipped the Core Editor Improvement: Catalyst for creativity and control, have a draft of 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) improvements for 6.1.
  • Handling responses for the FSE Program Testing Call #17: Guiding the Gutenberg Gallery
  • Triaging/reporting issues as much as possible for 6.1 alongside @ndiego.

Open Floor

@wildworks looking for feedback on new “Time To Read” Block PR.

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.

Read complete transcript

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

Performance Chat Agenda: 4 October 2022

Here is the agenda for this week’s performance team meeting scheduled for October 4, 2022, at 15:00 UTC.


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

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