Performance team meeting summary 9 August 2022

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

Announcements

  • @shetheliving: Team Rep elections
    • We’ll follow the process previously used by the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. team, outlined here
    • Bethany will add a nominations post to https://make.wordpress.org/performance/ this week

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein: Working to complete several follow-up patches for WebP support. A couple of small fixes were committed last week, and the remaining patches are on track to land in the next week. The Pull Requests section at the top of https://core.trac.wordpress.org/ticket/55443 is a good way to check progress, since follow-up patches are boing worked on in PRs linked to this ticketticket Created for both bug reports and feature development on the bug tracker..
  • @mukeshpanchal27: Working on:
    • Core patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. follow-up – WebP compatibility: add fallback for non-supporting browsers to core – PR #3034 ready for review
    • Enhance JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. replacement mechanism for WebP to JPEG to more reliably replace full file name – Merged in 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
  • @erikyo: Noting that WebP conversion feature currently only works for JPGs, but in the future hope to also use PNG with Performance Lab and maybe a way to filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. the input format is needed
  • @adamsilverstein: If you used the mapping to create WebP from PNG uploads, the replacement code won’t work. We should be able to address, though our initial implementation is focused on JPEG > WebP. @erikyo will comment on the linked PR for further discussion.
  • @mehulkaklotar: Working on core patches for WebP uploads, ready for review: https://github.com/WordPress/wordpress-develop/pull/3030 and https://github.com/WordPress/wordpress-develop/pull/3048. Also working on https://core.trac.wordpress.org/ticket/45471 to allow caching of parse_blocks results.
  • @joegrainger: Working on plans for regenerate existing images module
  • @shetheliving: Should have a core feature proposal up for this in the next week

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

  • @spacedmonkey out through 5 September
  • @tillkruess: Merged two PRs last week: https://github.com/wordPress/wordpress-develop/pull/2967 and https://github.com/WordPress/wordpress-develop/pull/2969
  • @pbearne: Not sure where the dominant color proposal is going, do we have the support to get it into core? Want to make sure it’s moving along
    • @flixos90 to review PRs this week, but welcome others too, as well: https://github.com/WordPress/wordpress-develop/pull/2907 https://github.com/WordPress/wordpress-develop/pull/2906
  • @itmapl: Interested in resolving https://core.trac.wordpress.org/ticket/32052; PR is here: https://github.com/WordPress/WordPress/pull/610. Open to comments on the solution so we can move forward.

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/.
  • @shetheliving: Discussion in #326 Update Settings language for health checks. #423 about naming conventions; @olliejones will update the PR
  • @furi3r: Working on porting Site Health modules to core and there’s some new feedback in https://github.com/WordPress/wordpress-develop/pull/2890 and https://github.com/WordPress/wordpress-develop/pull/2894 which is raising some concerns:
    • Asking to move Object Cache Check to Async test. Should we do this on the plugin level first and then move it to core, or directly there?
      • @shetheliving: Thinking we should update in the plugin first, then port to the core PR once it’s merged; @flixos90 agrees
    • Use of custom filters, instead of using site_status_test_result filter.=
    • Asking to remove the color scheme we have used for alerts (green, yellow, green), and instead use same one for label (performance uses blue)
    • @adamsilverstein: Looks like valuable feedback on the PRs, suggest keep working there with @clorith and others to find a good solution
  • @olliejones: Still looking at the SQL database health checks. Pretty sure we can check for misconfigured/slow/ancient 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/./MariaDB, but none of this is actionable by a site owner. Do we want to proceed with health checks that aren’t actionable by “typical” users?
    • @shetheliving: Based on our discussion last week, seems like no – we want to focus on health checks that are actionable by typical (i.e. not developers, not ops people) users
  • @olliejones: Is there any way to move forward with MySQL optimization work in a way that can make it to core eventually?
    • Have a bunch of SQL server tests that say “ask your hosting provider to…” – should we abandon those?
      • @shetheliving: Those are okay because they provide an action that anyone can take, asking their hosting provider
      • @flashusb agrees
    • @zero4281: Does the Health Check module have hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. to add in additional more advanced health checks? If it did, Ollie could add those checks to his custom plugin
      • @flashusb: Yes, there is a hook to add custom checks, not a separate tab though
    • @furi3r: Agree we should expand Site Health use to more technical users, maybe a new tab? If we want to achieve bigger results, we shouldn’t limit ourselves
      • @ankitgade: Could be a separate tab, something like “Advanced Site Health Check”
    • @olliejones: Would be great to find a way to address these MySQL optimization issues, maybe the Woo team should address it?
    • @johnbillion: Did you move the MySQL optimization work to your plugin?
      • @olliejones: Yes, been in the plugin for over a year now. Can add custom health checks just like Yoast did.
      • @johnbillion: Think the best approach is to continue work in the plugin, including the health checks, and propose any changes that need to be made in core to facilitate them
      • @olliejones: There are possible core changes but they’re very difficult to pull off because many users are still stuck on MySQL 5.5
      • @johnbillion: Happy to review the plugin and help create performance benchmarks for the changes

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: Reminder about the performance testing environment work started back in March: https://make.wordpress.org/core/2022/03/22/performance-team-meeting-summary-22-march-2022/. This has stalled out since then; if anyone is interested in picking it back up, let us know.

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

  • @adamsilverstein: Resource preloading landed in https://core.trac.wordpress.org/ticket/42438. Some follow-up work for this work includes considering a more declarative 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. (currently it is implemented as a filter) and first party usage, e.g. applying preload to core resources in both wp-adminadmin (and super admin) and (core) themes

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90: Notable PR is https://github.com/WordPress/performance/pull/458, which enhances plugin uninstall to better support multisite. Next Performance Lab 1.4.0 will be released on Monday; please finalize any PRs by tomorrow.

Feedback requested

Open Floor

  • @shetheliving: I’ll be offline on medical leave August 22 through September 9; please ping @flixos90 or @mukesh27 during that time if you need help with anything
  • @alaca: SVG uploads
    • @alaca: Would like to discuss possible approaches. The idea to allow only static XML files for now is great, but I think we can do more – which depends on the approach we want to take when detecting the dynamic file. Two possible approaches:
      • 1) We have a list of keywords that shouldn’t be in the document, we can just check that, and prevent document upload if we find something inside the document
      • 2) Parse the document to see what’s in there, but then we have an opportunity to do more, such as sanitization.
    • @alaca: Each one of the third party solutions out there is using the same library for SVG sanitization; it’s great and battle tested. Want to use the same approach and simplify the implementation a bit with one simple class.
    • @olliejones: Are there exploit vulnerabilities stemming from parsing XML?
    • @masteradhoc: Want to be able to upload any SVGs that I have and have WP sanitize them for me if there’s an issue
    • @erikyo: I use a completely different approach in https://github.com/erikyo/OH-MY-SVG; they aren’t stored in the Media Library, but there are advantages like being able to edit them
    • @masteradhoc: Think not having them in the Media Library would be confusing
    • @erikyo: If they’re stored in the Media Library they can be processed by ImageMagick

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

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

Performance Chat Agenda: 9 August 2022

Here is the agenda for next week’s performance team meeting scheduled for August 9, 2022, at 15:00 UTC.


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

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

Performance team meeting summary 2 August 2022

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

Announcements

  • @shetheliving: Performance 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 will be held Wednesday, August 3, 2022 at 11am EDT

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

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/.
  • @olliejones: #326 Update Settings language for health checks. #423 is ready

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: Reminder about the performance testing environment work started back in March: https://make.wordpress.org/core/2022/03/22/performance-team-meeting-summary-22-march-2022/. This has stalled out since then; if anyone is interested in picking it back up, let us know.

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 out
  • @mukeshpanchal27: Worked on:
    • Fix unexpected input Warning message during release build/test process – PR #437 needs review; @adamsilverstein to test
    • Use PERFLAB_MODULES_SCREEN constant – PR #463 ready for review

Feedback requested

Module proposal: Database performance Health Checks – @olliejones

  • @olliejones: Proposing a total of eight separate health checks that cover a variety of database issues; more details and mockups here. These would all be in one single module.
  • @shetheliving: Any issues with having these all in one module as opposed to separate, as we’ve done previously with health checks?
  • @adamsilverstein: Not an issue, but concerned about the recommendations for adding keys and if they would be actionable by users
  • @olliejones: The add-keys actions are presented as WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ commands with a copy-to-clipboard function
  • @adamsilverstein: Right, but what percentage of WP users know what WP-CLI is and use it?
  • @masteradhoc: Important to describe these very well as they’ll be hard for everyone to understand
  • @mukeshpanchal27: Are there other ways to add keys outside of CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress.?
  • @olliejones: I have a 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 does this re-keying
  • @shetheliving: Unfortunately we can’t point users there
  • @olliejones: What about a separate module for the health checks that generate CLI commands?
  • @adamsilverstein: Goal here is to build features for core, which means they have to help the majority (80%+) of users, so anything that is specifically for very large sites or uses CLI is plugin territory, not core
  • @zero4281: Since query speed is dictated by rows in a table, can we only display a health check if a site has a certain number of posts/rows?
  • @shetheliving: Since everything in Performance Lab should eventually be merged into core, the CLI-related health checks probably should not be in this plugin
  • @adamsilverstein: Focus on the existing warning to make sure it is “site owner” targeted and maybe drop the keys check entirely. For the advanced part, maybe create a concise guide for the developer handbook to cover important approaches
    • Could be in https://wordpress.org/support/article/optimization/#database-tuning or perhaps on our Performance site
  • @seedsca: What is wrong with WP-CLI? It’s a great tool
    • @adamsilverstein: Agreed, it’s just that it’s not something an average WP user knows about or how to use
  • @shetheliving: VOTE: Do we want to proceed with this proposal as-is, with all eight checks, including the CLI-related ones?
    • At time of meeting, 6 no votes and 1 yes vote
  • @shetheliving: Next step is for @olliejones to revise the proposal to indicate which checks would be included/removed to proceed. Once that update has been made, we can discuss again in a future chat.

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

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

Performance Chat Agenda: 2 August 2022

Here is the agenda for next week’s performance team meeting scheduled for August 2, 2022, at 15:00 UTC.


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

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

Performance team meeting summary 26 July 2022

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

Announcements

  • @shetheliving: Performance 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 will be held Wednesday, August 3, 2022 at 11am EDT

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein: Main WebP work has been merged to core! Ticketticket Created for both bug reports and feature development on the bug tracker. is still open because there are several small follow-up patches we’re working on
  • @mukesh27: Working on
    • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. follow-up: WebP compatibility: add fallback for non-supporting browsers to cor and Add the new source data to the media 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/. endpoint – PR #3025
    • Add the original image’s extension to the WebP file name to ensure it is unique – PR #444
    • Enhance JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. replacement mechanism for WebP to JPEG to more reliably replace full file name – PR #443
  • @mehulkaklotar: Working on core patch for support of multiple mime types on image edit/restore flows. PR link
  • @pbearne: Seeing some pushback on dominant color proposal; comments would help
  • @joegrainger: Module proposal: Regenerate existing images
    • @joegrainger: Looking to create a new Settings screen to allow administrators to regenerate images to help with performance. Also creating background infrastructure to handle long-running tasks which will be used by the regenerate images job. This will allow users to regenerate images to the correct sizes when changing a theme and to create WebP versions of older images too.
    • @pbearne: Hoping that the background processing infrastructure is open for calling by other plugins, a bit like scheduling a cron task
    • @joegrainger: That’s the plan; the background processing infrastructure is decoupled from the regeneration of images, so it can be used by other plugins for running their own background jobs
    • @zero4281: Love the idea of being able to regenerate images at the click of a button. Has anyone given thought to updating 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/ once the picture 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.), image srcset, and image regeneration is complete? In theory it should be possible to remove the need for the user to select an image size and just include all image sizes in the srcset and let the web browser choose the size.
      • @flixos90: Great points; updating Gutenberg editor content would be a potential use case for the background process. With image size selection, there’s still value depending on how you place the image.
      • @zero4281: Doesn’t Gutenberg define the width and height in the image tag?
      • @flixos90: If the user resizes it, but by default, it takes dimensions from the image size selected
    • @furi3r: Wouldn’t Action Scheduler do the trick?
      • @joegrainger: Took a lot of inspiration from this 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 made some changes, but background processing infrastructure will work similar to this
    • Received 7 thumbs up votes to proceed with this module, so we’ll get started
    • @flixos90: Make sure to develop this in a feature 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". as it will be quite large
    • @spacedmonkey: Might also be useful for dominant color as well, to backfill old images

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

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: Working on Site Health TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticket feedback; not much, so hopefully will be able to merge soon
  • @shetheliving: Will discuss new module proposal issue from @olliejones for Database Performance Health checks #455 next week

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: Reminder about the performance testing environment work started back in March: https://make.wordpress.org/core/2022/03/22/performance-team-meeting-summary-22-march-2022/. This has stalled out since then; if anyone is interested in picking it back up, let us know.

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

Feedback requested

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

#hosting-community

Performance Chat Agenda: 26 July 2022

Here is the agenda for next week’s performance team meeting scheduled for July 26, 2022, at 15:00 UTC.


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

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

Performance team meeting summary 19 July 2022

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

Announcements

  • @shetheliving: Our new blog is live at https://make.wordpress.org/performance/! How should we use this moving forward?
    • @flixos90: Thinking we continue to post meeting notes, etc. on CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and cross-post them to Performance
    • @pbearne: Could we use it for articles about performance best practices?
    • @flixos90: Main purpose is to have a single entry point for everything and a handbook for onboarding and best practices
    • @flashusb: Could we have an Email Updates widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. like the other blogs?
    • @flixos90: Would be great to have a sticky at the top explaining that the blogblog (versus network, site) is primarily for cross-posting and link to where most of our content is, including https://make.wordpress.org/core/tag/performance/, https://make.wordpress.org/plugins/tag/performance/, and https://make.wordpress.org/themes/tags/performance/
    • @ollliejones: Can it serve as a place for “more details” articles or site health check results?
    • @flixos90: More about contributing to the team and what the team is doing
    • Moving forward, we’ll continue to post agenda and notes on the Core blog and cross-post to Performance
    • @shetheliving will draft a sticky post for the Performance blog and look into an email updates widget in the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

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: Posted feature proposal for Audit Full Page Cache and Full Page Cache Site Health Checks last week; no feedback yet
  • @spacedmonkey: How long do we wait for feedback? https://github.com/WordPress/wordpress-develop/pull/2890 has been approved by two core committers so could be merged ASAP
  • @flixos90: We’re not in a massive rush, wait 2 more weeks for feedback and then merge
  • @spacedmonkey: Won’t be around, so someone else will need to merge

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
  • No updates

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: Published 1.3.0 yesterday and broke 7k active installs for the Performance Lab pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party
  • @mukesh27: A few PRs that need review:
    • Fix unexpected input Warning message during release build/test process #437
    • PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS.: Use a period at the end #436
    • Add constant for plugin_dir_path #429

Feedback requested

Open Floor

  • @mukesh27: How about a weekly Bug Scrub for the performance channel for performance-focused TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets? We have a total of 326 right now
    • @shetheliving: Was this intended to be a weekly scheduled meeting?
    • @mukesh27: Yes, if possible
    • @spacedmonkey: There are lots of core issues that are impossible to fix in the plugin and need to be fixed in core
    • @flixos90: Yeah, probably most Trac tickets should be fixed directly as core patches; only tickets that need to be implemented as bigger features should become plugin modules. Always depends on whether core has the necessary integration points to handle that or not.
    • @shetheliving: Weekly may be tough, how about monthly? Let’s start with the first Wednesday of the month at our regular meeting time, so our first one would be August 3, 2022, at 15:00 UTC

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

#hosting-community

Performance Chat Agenda: 19 July 2022

Here is the agenda for next week’s performance team meeting scheduled for July 19, 2022, at 15:00 UTC.


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

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

Proposal: Persistent Object Cache and Full Page Cache Site Health Checks

This proposal seeks to integrate two new Site Health checks for Persistent Object Cache and Full Page Cache into WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., targeting the WordPress 6.1 release.

Context

Providing valuable recommendations for site owners is crucial to improving WordPress performance. These two modules are the first in a series of Site Health modules that the performance team is working on. Acknowledging performance problems is the first step to solving them.

The modules were originally proposed and developed by members of the performance team and are available as modules inside the Performance Lab plugin.

Project update

Development of the features has been ongoing in the Performance Lab plugin repository on GitHub, where they have been implemented as: 

The recently released version 1.2.0 of the Performance Lab plugin contains both modules in a state that is ready to merge into core. 

The team is currently migrating the module code into WordPress core patches in 2 TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets:

  • Persistent Object Cache Health Check from performance 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 (#56040)
  • Port Audit Full Page Cache from performance plugin to core (#56041)

Any reviews and feedback on the core patches would be greatly appreciated.

Customizing the audits

We’ve added a series of filters to make messaging and suggestions customizable. These filters can be used by hosting providers to provide their own personalized suggestions on how to address the Site Health feedback.

Persistent Object Cache filters

Hosts may want to replace the notes to recommend their preferred object caching solution:

apply_filters( 'site_status_persistent_object_cache_notes', $notes, $available_services );

Hosts may want to replace the original link to WordPress documentation with a link to  their own guide:

apply_filters( 'site_status_persistent_object_cache_url',  __('https://wordpress.org/support/article/optimization/#object-caching' ));

Hosts or site owners may want to bypass thresholds and force suggestions, or 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. them to determine whether to suggest the use of a persistent object cache:

apply_filters( 'site_status_suggest_persistent_object_cache', false );
apply_filters(
    'site_status_persistent_object_cache_thresholds',
    array(
        'alloptions_count' => 500,
        'alloptions_bytes' => 100000,
        'comments_count'   => 1000,
        'options_count'    => 1000,
        'posts_count'      => 1000,
        'terms_count'      => 1000,
        'users_count'      => 1000,
    )
);

Full Page Cache filters

Developers can filter the threshold below which a response time is considered good:

apply_filters( 'page_cache_good_response_time_threshold', 600 );

Testing and feedback

You can test the modules in v1.2.0 or later of the Performance Lab plugin. Both modules should be enabled by default, but you can double-check that they are enabled in Settings > Performance:

Once enabled, you can view the test results on the Site Health Status screen at Tools > Site Health > Status.

We encourage you to test these modules (and others) from the Performance Lab Plugin, report any bugs in our GitHub repository, or contribute with fixes and ideas. You can also share any feedback, concerns, or questions to improve these features further in the comments.

Thanks to @shetheliving and @flixos90 for peer review.

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

Performance team meeting summary 12 July 2022

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

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

  • @spacedmonkey: Code review needed for https://github.com/WordPress/wordpress-develop/pull/2684, https://github.com/WordPress/wordpress-develop/pull/2967, and https://github.com/WordPress/wordpress-develop/pull/2478
    • Committed https://github.com/WordPress/wordpress-develop/commit/2db7debe8a2f0b2ea264d1765c549bbf5b44a052
    • Reviewed https://github.com/WordPress/wordpress-develop/pull/2969 and https://github.com/WordPress/wordpress-develop/pull/2836
    • Believe that https://github.com/WordPress/wordpress-develop/pull/2478 is ready to go, would like to commit early and handle edge cases with follow-up issues

Feedback requested

Site Health

N/A

GitHub project

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: Blog post about plugin performance checker went live last week
    • @flixos90: Have to follow up on comments, but overall very supportive. Some concerns about enforcing coding standards/styles, which we won’t do, so will reply to those; then we can come up with a design and infrastructure build and starting coding. Already worked on a proof of concept here: https://github.com/felixarntz/plugin-check

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

Feedback requested

Module proposal: SVG uploads

  • @masteradhoc: This is one of the bigger achievable pain points that I see in WP, as the vectorized format is quite popular for logos, icons, and illustrations. SVG is widely supported and has been for some time. A lot of concerns have been raised in the original Trac ticket about this in terms of security, as SVGs could include scripts, which is a security concern. The proposal only allows for SVGs to be uploaded if they do not contain scripts.
  • @pbearne: Seems like a good approach
  • @spacedmonkey: The Images folks are correctly focused on WebP conversion and dominant color. Once those are in core, the team Images team can focus on it, with a 6.2 merge at the earliest. SVG has a lot of benefits but you upload them at your own risk. Need to ensure that SVGs are stripped of inline scripts and maybe even animations.
    • @flixos90: Agreed that supporting any scripting should be avoided, especially to start
  • @spacedmonkey: My code for Web Stories SVGs is open source: https://github.com/GoogleForCreators/web-stories-wp/blob/main/includes/Media/SVG.php, using this library: https://github.com/darylldoyle/svg-sanitizer
  • @flixos90: Supportive of a Performance Lab module for this. Given that there are reliable approaches out there already for stripping scripts from SVGs, would be realistic to get this as a module fairly quickly and then get some testing. 6.2 for core merge would be a realistic goal.
  • @flixos90: Would https://github.com/darylldoyle/svg-sanitizer be compatible with core in terms of licensing, PHP version support, etc?
    • @spacedmonkey: Has a GNU general public license, would need to be loaded into core and maintained
    • @flixos90: How large is the codebase and how complex is the code that actually sanitizes the SVG?
    • @spacedmonkey: 25k, but 4k of that is the readme; it is complex
  • @shetheliving: Sounds like we’re all in favor of moving forward! @masteradhoc will get started working on concept, testing, and administration, but will need some deeper code knowledge – just let us know when you need us.

Help wanted

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

#hosting-community