Automatic conversion of HEIC images to JPEG in WordPress 6.7

In WordPress 6.7, HEIC image uploads will be automatically converted to JPEG on the server when possible.

This allows you to view HEIC images in WP Adminadmin (and super admin) and use them in posts
and pages regardless of whether a visitorโ€™s browser supports HEIC. Browser support for HEIC is low while the occurrence of HEIC images is common as they are the default storage format used by Apple devices.

ย 
The original HEIC image can be downloaded via a link on the attachment page.

Screenshot of an attachment in WordPress with 'Original image' field circled

Conversion is only done if the server has a version of Imagick that supports HEIC. You can see whether a server supports HEIC in Tools โ†’ Site Health โ†’ Info โ†’ Media Handling โ†’ ImageMagick supported file formats.

Screenshot of the 'ImageMagick supported file formats' field in WordPress

If conversion is not possible, a warning is displayed to the user encouraging them to manually convert the image to JPEG. This was the default behaviour prior to WordPress 6.7.

Screenshot of an error message in WordPress informing the user that the image cannot be displayed in a browser

Automatic conversion of HEIC images to JPEG can be disabled using the image_editor_output_format 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..

add_filter( 'image_editor_output_format', function( $output_format ) {
    unset( $output_format['image/heic'] );
    return $output_format;
} );

#6-7 #core-media #dev-note #dev-notes #dev-notes-6-7

Phase 3 Media Meeting Agenda – February 7, 2024

The Phase 3 Media Meeting is scheduled for Thursday February 8, 2024 at 00:00 UTC in theย core-mediaย channel onย Make WordPress Slack. This is a follow up to the post announcing this meeting that can be found here. If you have any topics youโ€™d like to add to this agenda, please add them in the comments below.

Meeting agenda:

Below is an outline to drive discussion for the meeting. We will approach these topics broadly and get a sense

  • Quick round of intros.
  • Overview of the objectives for Phase 3 Media
  • Discussion on alignment of CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Media focus to help the process
  • Discuss communication channels and checkpoints to be used for regular updates
  • Media Library
    • At a high level letโ€™s discuss what the future of the Media Library looks like.
    • More global insight into media usage at the attachment level
      • Where is a media being used if at all
      • What alt attributes are being defined for it in its usage
      • Duplicate detection
  • Discuss the BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Editorโ€™s role in editing media.
  • Back-compat relative to existing Media Library, Uploads, and Third party plugins
    • Discuss the transition process from the existing media library to the future media library. What does that look like?
    • What are the intermediary steps between where we are now and a new, fully integrated media library?
    • Will the new media library be available outside of the editor?
  • Update from William Bay on his Media Library experimentation, where Will can share some thoughts on sorting, filtering, and basic functionalities being tested in his experimental media library project.
  • Discuss the feasibility and desirability of using the Block Editor as the primary interface for media attachment editing.
    • Can we in a future state use the Block Editor as the attachment image editor using a Media Attachment Block that gives editing capabilitiescapability Aย capabilityย is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on theirย role. For example, users who have the Author role usually have permission to edit their own posts (the โ€œedit_postsโ€ capability), but not permission to edit other usersโ€™ posts (the โ€œedit_others_postsโ€ capability). of the image block but updating the source image or creating new attachments.
  • Review of Phase-3-Triage Tickets
  • Open Floor for Questions and General Discussion
  • Opportunity for attendees to bring up topics not covered on the agenda, share updates, or ask questions.

This meeting happens in the #core-media channel. To join the meeting, youโ€™ll need an account on the Make WordPress Slack. Props @joedolson for helping prepare and proofread this post.

#agenda, #core-media, #meeting

Performance Chat Summary: 25 April 2023

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

Announcements

  • Updated the cadence of 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 to be every 2 weeks โ€“ next one scheduled for April 26, 2023 at 15:00 UTC.
  • @flixos90 Also briefly sharing that I just published a performance retrospective post on WP 6.2 that I had been working on over the past few weeks:ย https://make.wordpress.org/core/2023/04/25/the-benefits-of-prioritizing-and-measuring-performance-in-wordpress-6-2/ It highlights some of the key aspects which changed in 6.2 in how we dealt with performance and also summarizes high level numbers. It can be seen as somewhat complementingย https://make.wordpress.org/core/2023/04/05/wordpress-6-2-performance-improvements-for-all-themes/, at a higher level however without looking as much at specific improvements.
  • Discussion regarding theย decoupling of the SQLite 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ย from the performance lab work. In reference toย this conversation that came up in a previous performance chat. Would love to have an open discussion about peoples preferences here and whether we do decouple this?
    • @olliejones I favor that approach. It will usually be deployedDeploy Launching code from a local development environment to the production web server, so that it's available to visitors. independently of the stuff in PL.
    • @10upsimon I tend to lean more toward an agreement withย @rmccue in that SQLite is not necessarily performance improvements focused (or at least that is not the primary goal), and probably belongs outside of the realm of the performance lab work.
    • @spacedmonkey To be clear, I think that performance team should continue to support SQlite getting into coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., to much sure it done in a performant way. But SQlite is not a performance benefit on the face of it, so it is confusing why we part of performance lab plugin.
    • @rmccue Yeah, that was basically my thought; I think itโ€™s beneficial all-round to separate it out (but with performance still consulting as @spacedmonkey says)
    • @olliejones yes, having SQLite headed for core is good. I believe the issue is about monorepo and multifunction plugins on the one hand and a separate repo and plugin on the other.
    • @aristath I agree with what was mentioned above 100%. SQLiteย canย be related to performance, but is not in itself a โ€œperformanceโ€ module/plugin. It should be developed in collaboration with the performance team since it can have a big impact, but Iโ€™d vote to decouple it from the performance-lab plugin
    • @olliejones Maybe in a parallel universe or another year, there can be a separate database team. But for now the perf. team has the talent.
    • @spacedmonkey If you want to setup a meeting for a database team, that could work. Many component meetings have less than 5 people.
    • @flixos90 To clarify, this conversation is slightly different and mostly unrelated to the โ€œunbundling Performance Lab pluginโ€ effort. While we are publishing other PL modules as standalone plugins, those standalone plugins will still be directly associated with the performance team, developed in the monorepo, referenced from the PL main plugin etc. Removing / decoupling SQLite from PL would be different: We would still support getting the plugin towards WP core of course, but it wouldnโ€™t be in any way connected to PL anymore. Maybe that was clear, but just in case.
    • Next steps clarification:
      • @aristath I think the only thing to do here would be to remove the module from PL, and add a notice so in case the user previously had the module activated, theyโ€™ll be prompted to install the standalone plugin
      • @joemcgill I assume weโ€™ll remove the module from the performance lab plugin in the same release where we remove other modules. How we handle the transition so as to not break any active sites, is not clear to me at the moment.
      • @olliejones Do we have any usage telemetry to help guide that decision?
      • @flixos90 Potentially. As mentioned, I think this conversation is decoupled from the general PL unbundling effort, so we could do it at the same time, but also sooner. I would love to find a way to make the transition smooth though. For sites that already have the SQLite module active, we should probably recommend activating the SQLite plugin before deactivating the feature.
      • @aristath Thatโ€™s a good ideaโ€ฆ
      • @flixos90 Has anyone tried yet to activate the SQLite standalone plugin on a site where the PL SQLite module is already active? We need to make sure it doesnโ€™t throw fatal errors
        • @aristath Adding it on my TODO list for tomorrow, though from what I recall I tried it last month and I there were no issues. Iโ€™ll need to test that again just to be sure, itโ€™s been a long time
      • @10upsimon I feel strongly about not intentionally breaking users sites, however few are using it. Perhaps we need to defer the removal to 2 versions from now, and raise a notice or similar in the adminadmin (and super admin) making it very clear that from versionย nย it will no longer be supported as a core PL module.
        • @flixos90 agreed @10upsimon adding though that for a smooth transition the plugin should be activated before deactivating the PL module, so we have to make sure that that is actually possible
      • @joemcgill A similar transition plan will be good for all of the modules, to be honest, even though SQLite is the most critical due to potential breakage.
      • @flixos90 @joemcgill I think for the other modules weโ€™ll handle that in a central effort as part of unbundling, but with SQLite it will now be bit different, since that plugin will not be referenced directly from PL in the future. But I agree itโ€™s most critical there to have a smooth transition since switching back to a 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 database accidentally will break any site that actually relies on SQLite right now

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a userโ€™s browser. https://www.javascript.com/. & CSSCSS Cascading Style Sheets.

Link to roadmap project

Contributors: @mukesh27 @10upsimon @adamsilverstein

  • @10upsimon Regarding โ€œEnhancing the WP Scripts APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. with a Loading Strategyโ€:
    • Weโ€™ve had a good amount of feedback and iteration on our draft PR
    • Weโ€™ve had some valuable feedback come in this week, so weโ€™ll be addressing that with the goal of opening a PR against core later this week. Thanks @joemcgill @adamsilverstein and @westonruterย for the invaluable feedback thus far (and to @spacedmonkey)
    • Weโ€™ve established a mostly approved documentation plan/roadmap, with slight ongoing tweaks thereto. Draft documentation and documentation updates can commence soon
  • @flixos90 One more thing regarding JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. & CSS, last week I openedย https://github.com/WordPress/gutenberg/issues/49927ย to optimize how block CSS is loaded in classic themes (itโ€™s great in block themes, but not so much for classic themes, and we can probably improve that). There have been some great conversations on that.ย @aristath has pointed out a detailed code example with how we could improve this by printing inline styles per block type right before the first block of each type is rendered

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • No updates this week

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • @joemcgill Iโ€™ve been working to prioritize a set of โ€œnext stepsโ€ for automated performance testing. For me, the โ€œnext stepโ€ is to turn these tasks into tracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets that we can address as capacity allows.
    • One of the big ones is to improve the stability of the results and make them more atomic, so we can use them to evaluate specific PRs (like the discussion we had earlier about theย get_block_templatesย PR)

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

New Projects / Proposals

Open Floor

  • No updates

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

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

Performance Chat Summary: 18 April 2023

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

Announcements

  • 2.2.0 was released yesterday
  • UPDATED from agenda: fetchpriority standaloneย pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-partyย is still under review (not โ€˜approvedโ€™ as originally thought)

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

  • @joemcgill Happy to say that Iโ€™m back from some time off with two fully working arms, and am hopeful Iโ€™ll be able to publish some results from the profiling research I was doing earlier.
  • @spacedmonkey I have been reviewingย @aristath autoloading PR. It is nearly there.
  • @flixos90 What about the performance implications of autoloading? I believe that was still an open question in regards to whether we should move forward with this
    • @spacedmonkey Autoloading massively improve RAM usage. CPU, it is a little benefit at the moment.
    • @flixos90 Obviously autoloading is a best practice, but I think we still need to assess what really are the benefits of it in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Are there any benchmarks for those statements yet?
    • @johnbillion There were some numbers on the PR but they could do with being updated
    • @spacedmonkey https://github.com/WordPress/wordpress-develop/pull/3470#issuecomment-1490083546
    • @flixos90 Thatโ€™s a single profile though, right? There is so much variance in load time data, I think we need to do something a bit more comprehensive for the timing metrics. The 5.5 MB -> 5.15 MB looks promising though
    • @spacedmonkey I havenโ€™t done a tonne of benchmarking yet, it is a WIP.
    • @flixos90 Thatโ€™s fair, though I think we should do that sooner than later to be confident that this is actually a beneficial change for WordPress core. Also best to use medians from all the results
    • @spacedmonkey What is the KPI here? CPU usage, response time, ram usage?
    • @joemcgill Has there already been a merge proposal created for this change? Seems like something that would need broader communication and would be an opportunity to include performance data alongside the technical details?
    • @johnbillion Would be good to see separate metrics for front end, wp-adminadmin (and super admin), 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/., too, hopefully improvements all around
    • @spacedmonkey I am happy to run all those tests and provide data. As I say, it is WIP at the moment. I will wait until @aristath gets back to me and says it is good for a full review

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a userโ€™s browser. https://www.javascript.com/. & CSSCSS Cascading Style Sheets.

Link to roadmap project

Contributors: @mukesh27 @10upsimon @adamsilverstein

  • @10upsimon Regarding โ€œEnhancing the WP Scripts APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. with a Loading Strategyโ€:
    • Iteration is underway following the code review completed by several WPP team members
    • This is now ready for another round of reviewย here

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • No updates this week

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • @joemcgill Iโ€™m starting to collect some ideas for enhancements to the initial automated performance workflow we added last release and would be happy for any suggestions folks here have.

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

  • @joegrainger for the Plugin Checker, weโ€™re working through the issues raised as part of the milestone 1 Review/QA and making good progress. Weโ€™ll continue to be working through these as over the coming weeks. Progress can be seen on theย GitHub repoย here. Feel free to take a look and leave any thoughts/ideas you may have there. Thanks!

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • @mukesh27 I continue working on some follow-upย issues and milestone 2ย tasks
  • @flixos90 At this point for milestone 1 weโ€™re just waiting for plugin repo approval, then we can go ahead and publish the outstanding plugins Fetchpriority and Dominant Color Images
  • @flixos90 We may also want to start coordinating how weโ€™re going to re-integrate the SQLite repository into the monorepo, cc @aristath
    • For the latter, we would be good to publish from theย WordPress/performanceย repository any time now since the main effort has been completed
    • @joemcgill Seems like that should be handled before we release a version of the performance lab plugin that removes the related module
    • @flixos90 Absolutely, that would only be part of Milestone 2
    • @flixos90 asked @aristath Do you have an update onย https://github.com/WordPress/performance/pull/677? Is that ready for another review?
    • @flixos90 I wonder what is left beyond the above PR in order to sync the two codebases. At some point soon we should probably code-freeze the standalone 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/ repository and makeย WordPress/performanceย the source of truth again, that way weโ€™ll work in one codebase only, and we can publish from there a new version toย WP.orgย any time

New Projects / Proposals

  • @spacedmonkey I am looking into the autoloaded options in WordPress. I am just getting up to speed.
    • Wonder if anyone here, as any thoughts on the matter. Articles, plugins or other work arounds I should look at as part of my research
    • One route I am looking into, is stop using the single autoload cache key and make it so each option using itโ€™s own cache key. We can now useย wp_cache_get_multipleย to prime all autoloaded caches in one go.
    • @joemcgill Have we done any research into how many WordPress sites are able to make use of the benefits that get/set_multiple functions provide?
    • @spacedmonkey I have been looking at differnt object caching plugins
    • Sadly, many of them do not seem to implementย wp_cache_get_multiple
    • But many of these are the list have not been updated in 5+ years, it is hard to know if they are still being used. I made a mega list โ€“ย https://github.com/stars/spacedmonkey/lists/object-caching-plugins
    • @joemcgill Nice. I think it would be good for us to keep track of those numbers. Not that this should keep us from trying to optimize the caching of options, but it would help us better understand impact and ensure that any changes we make to support multi-cached options donโ€™t create a regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. for folks whose hosting doesnโ€™t support those features.
    • @spacedmonkey memcache and redis support multiple gets, it is just a matter of updating plugins to support it as well. We haveย wp_cache_supportsย in core. I wonder if we could get any data from that. We have some sites on WordPress sites php etc.

Open Floor

  • No updates

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

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

Performance Chat Summary: 11 April 2023

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

Announcements

  • 2.2.0 release date will be Mon April 17

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

  • No updates this week

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

  • No updates this week

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a userโ€™s browser. https://www.javascript.com/. & CSSCSS Cascading Style Sheets.

Link to roadmap project

Contributors: @mukesh27 @10upsimon @adamsilverstein

  • @10upsimon Regarding โ€œEnhancing the WP Scripts APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. with a Loading Strategyโ€:
    • Holistic code review has been completed by several WPP team members
    • Feedback has been provided within the draft PR and feedback is being transformed into GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โ€˜pull requestโ€™ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ issues
    • Some of these issues have work already underway against them
    • Consensus is a positive attitude all around toward the end result overall
    • Functional testing has been complete, but is being extended slightly so that testing is done alongside some key performance plugins. This is mostly to aid documentation (planning) efforts and validate earlier findings
    • Documentation plans are underway and being drafted, which include inline and coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. documentation (as well as core community comms)

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • No updates this week but @adamsilverstein will be watching data on how our recent core 6.2 lazy loading improvements work and report back here once there is data available

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • @mukesh27 There are no major updates this week, but myself and @joemcgill started brainstorming on the next step for Automated Performance Tests. I will share more updates in the coming week.

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

  • @joegrainger We have completed Architectural Review and QA for the initial infrastructure of the PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Checker. Weโ€™ve created a number of issues to tackle the improvements and bugs that came out of the testing which we will be working through over the next couple of weeks. Progress can be seen on theย GitHub repoย here. Feel free to take a look and leave any thoughts/ideas you may have in the repo. Thanks!

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

New Projects / Proposals

  • No updates

Open Floor

  • No updates

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

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

Performance Chat Summary: 4 April 2023

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

Announcements

  • 2.2.0 release date will be Mon April 17

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

  • @aristath shared an update ahead of time:
    • Autoloader: Work continues onย https://github.com/WordPress/wordpress-develop/pull/3470ย to add a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher autoloader in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. The results so far are encouraging and all tests (both manual and automated) has shown that performance is better and there are no apparent drawbacks. There are still a few minor things to polish, but itโ€™s looking good so far.
    • L10nL10n Localization, or the act of translating code into one's own language. Also see internationalization. Often written with an uppercase L so it is not confused with the capital letter i or the numeral 1. WordPress has a capable and dynamic group of polyglots who take WordPress to more than 70 different locales.: Experimenting with different approaches and methods to refactor the way localization works in WP, in collaboration with @sergeybiryukov, @afercia and @poena. Still in the early stages of exploration, trying to find ways and methods to make the process more performant.
  • @joemcgill One thing that I wanted to bring up, wasย this postย by @swisspidyย about the new translations functionality heโ€™s been working on. He has specifically asked for some performance help in that post, and I think itโ€™s something that our team should take a look at. In the server timing research that I have been doing, I have found that processing translations can be a performance bottleneck for classic themes, specifically, so it would be nice if we could both help with this effort and improve performance overall for translated sites.

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a userโ€™s browser. https://www.javascript.com/. & CSSCSS Cascading Style Sheets.

Link to roadmap project

Contributors: @mukesh27 @10upsimon @adamsilverstein

  • @10upsimon for Enhancing the Scriptsย APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.ย with a loading strategy
    • All work is now contained within our base 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".
    • An holistic code review process is underway, where weโ€™re going over all code contributed as part of this work and reviewing it in a single PR against trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.
    • Functional testing to follow on from the code review completion
    • Inline documentation review will follow from that

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • @flixos90 No major updates from my side, still working on assessing the best path forward for enhancing the lazy-loading logic in core, which will also benefitย fetchpriority. I feel Iโ€™m close to opening TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets, but also noting that Iโ€™ll be AFK next week, so itโ€™ll probably only in ~2 weeks from now

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • @mukesh27 No major updates, @joemcgill I and started brainstorm on next step for Automated Performance Tests

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

  • @joegrainger We have completed the initial infrastructure for the pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and have moved onto testing!ย This week we have started reviewing the infrastructure holistically and begun QA testing. Once testing is complete we will start work improving upon the initial architecture and moving towards building out the additional checks. Progress can be seen on theย GitHubย here. As always, feel free to take a look and leave any thoughts/ideas you may have in the repo. Thanks!

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • @mukesh27 We finished engineering forย Milestone 1ย tasks and allย PRs in final review. If anyone has some capacity please review. We are plaining to release our first WebP Uploads plugin soon.
  • @flixos90 +1, if we can get those final PRs merged tomorrow, the idea would be to publish the WebP Uploads standalone plugin on Thursday with the new automated workflow (which deploys the plugin based on the same codebase that the module uses)
    • Hopefully that all works out. Once the plugin is successfully released, we can proceed with the other ones (Dominant Color, Fetchpriority), and last but not least unify the currently 2 codebases from the SQLite plugin

New Projects / Proposals

  • No updates

Open Floor

  • No updates

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

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

Performance Chat Summary: 28 March 2023

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

Announcements

  • None today

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

  • @olliejones Work continues on SQLite, next is to load woocommerce and beat on it.
    • Future project: identify as many places in core where the SQL is non-portable 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/. specific stuff and work on making it standard. Should that be a 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.?
    • @joemcgill I definitely think that having trac tickets that describe any improvements youโ€™d like to see made would be useful.

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a userโ€™s browser. https://www.javascript.com/. & CSSCSS Cascading Style Sheets.

Link to roadmap projects

Contributors: @mukesh27 @10upsimon @adamsilverstein

  • @10upsimon We are addressing the issue(s) around script concatenation, work is in progress and in the final stages of review, with minor iterations ongoing. Unit tests are being implemented to validate the approach and should be ready for final review today or tomorrow.
    • We are entering into a more holistic/overall code review of work done to date, essentially a code review of all work done thus far as part of the epic. Minor iteration is anticipated as part of this review process and will be executed as required.
    • Work can be seen here
    • Various tests/testing scenarios will be undertaken prior to submitting a final pull request against.

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • @flixos90 I have been continuing on the lazy-loading exploration and am getting close to opening Trac tickets for the individual pieces of work
    • To clarify, this is about avoiding to lazy-load LCP images, or rather in-viewport images in general
  • @flixos90 I have also been thinking a bit about theย fetchpriority="high"ย feature for which we already have a module. One thing that we may need to iterate on there is that it just adds the attribute to whichever first image doesnโ€™t haveย loading="lazy". This is not terrible, but itโ€™s also probably not the best way to go about it, since the two attributes should not simply be mutually exclusive. The guidance is rather:
    • fetchpriority="high"ย should be only on the LCP image.
    • loading="lazy"ย should be omitted on images above the fold (i.e. potentially more images than just the LCP image).
  • @joemcgill I am in the very early stages of looking into ways we can improve the way WordPress calculates theย sizesย attribute.

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • No updates

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

  • @joegrainger We have 2 tasks remaining for the PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Checker infrastructure with plans to complete this week. Once done, we will start performing initial testing and reviewย  the infrastructure holistically before working on the additional checks. Progress can be seen on theย GitHub repoย here. As always, feel free to take a look and leave any thoughts/ideas you may have in the repo. Thanks!

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

New Projects / Proposals

Open Floor

  • @rmccue Re SQLite, Iโ€™m moderately concerned about the potential performance impact that introducing another layer of abstraction may introduce there. A traditional reason that WP hasnโ€™t been DB-independent is because of (theoretical) performance gains by tightly coupling the two and taking advantage of that. (Which are assumptions I think do need to be tested.) I realise Iโ€™m coming in late to this, but I guess Iโ€™m just not seeing how the SQLite work ties into performance specifically. (I see a clear case for the non-performance benefits.)
    • @aristath Well, I admit that the tie between SQLite and performance is a bit weirdโ€ฆย but the way I see it, it comes down to this: on a small, lower-end server, theย serverโ€™sย resources are shared between a php server, apacheApache Apache is the most widely used web server software. Developed and maintained by Apache Software Foundation. Apache is an Open Source software available for free., and a MySQL server. By using SQLite, the server can allocate its limited resources to php and therefore achieve better performance.
      Itโ€™sย better for sustainability mostly, and for performance on smaller sites (that usually are hosted on cheap servers) the performance gains will be there
    • @rmccue I can see how eliminating the latency and translation between two separate servers for PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher and MySQL could help performance, not sure of the overhead if itโ€™s on the same server; that said, it feels like the primary goals of the project are not performance related
    • @olliejones It might ??? be a good idea sometime to spin off a team to do dbms-independence work, the target of which would be support for SQL Server, postgreSQL, SQLite, and, gag, Oracle. Having those would help scale up WordPress sites. postgreSQL especially because it can do wildcard searches with indexes. But that imaginary projectโ€™s connection to this team is a bit tenuous, as you mention.
    • Discussions here continued beyond the end of the meeting

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

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

Performance Chat Summary: 21 March 2023

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

Announcements

  • Release the Performance Lab pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party 2.1.0 yesterday

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a userโ€™s browser. https://www.javascript.com/. & CSSCSS Cascading Style Sheets.

Link to roadmap projects

Contributors: @mukesh27 @10upsimon @adamsilverstein

  • @10upsimon gave his update onย Enhancing the Scripts APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. with a loading strategyย ahead of time
    • Engineering for the epic as a whole has been completed and is in round 1 of code review and iteration โ€“ย work can be seen here. We anticipate an iterative feedback and implementation 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. to continue into next week, followed by a full and final code and functional review of all work by EOW next week, thus concluding engineering and being in a state to consider and implement a core merge proposal mid-April.
    • A developer testing plan is currently in review, which aims to support testing efforts of all engineering work carried out. This includes validation of all unit tests introduced as part of said work, and defines functional testing approaches, of which popular WordPress themes and plugins are included as part thereof.
    • An approach for documentation (automated/code reference & community) has been discussed and is soon to be executed. Draft documentation items will be produced for review, with the aim of being released as soon after the core merge as possible.

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • @adamsilverstein I have an update about the image comparison game/study I ran at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what theyโ€™ve learned throughout the year and share the joy. Learn more. Asia. In the game people compare two images generated by WordPress to the original uploaded image. The image quality setting between the images varies and the format changes as well, so far Iโ€™m testing with WebP and JPEG and quality settings from 70 to 90.
  • @adamsilverstein Here is aย docย with a summary of the results and a bit of analysis as well as a link to a sheet with the raw data:
    • To summarize the results though:
      • People loved playing the game and also became super engaged about images
      • We didnโ€™t gather enough data to have statistically meaningful results
      • Anecdotally, most people struggled to tell which image was closer to the original
  • @joemcgill Iโ€™m starting a high-level review of our approach to calculating theย sizesย attribute for images in WordPress this week. Itโ€™s the first step for me to work on ways we can improve some of the base assumptions that the current approach takes and see if we can improve it now that we have more information and blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes.
  • @flixos90 I have been researching the remaining problems with lazy-loaded LCP images, with some good findings. I should have something to share in a week or two. Likely this will be in form of a few new TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets with things we should fix. Itโ€™s worth noting that still more than 20% of LCP images today are being lazy-loaded with theย loadingย attribute. This is where WordPress core can help.
    • (Additionally ~10% of LCP images today are lazy-loaded through other custom JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. technologies, so thatโ€™s something where plugins and libraries will have to do the work. Maybe something we can help facilitate)

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • @joemcgill Automated performance timing continues to be collected and was useful while reviewing potential performance regressions during release candidates for 6.2. We are starting to put some thought into what the next improvements should be. If anyone has specific ideas they think should be considered, Iโ€™d certainly love input. Will share some ideas in the coming weeks.
  • @adamsilverstein I wanted to link to a Drupal ticketticket Created for both bug reports and feature development on the bug tracker. where theirย  team is working on adding automated performance testing for Drupalย  core:ย https://www.drupal.org/project/drupal/issues/3346765. The approach they are taking is quite different, with a plan to store performance traces using a tool like Open Telemetry or โ€œjaegerโ€ (new to me) โ€“ although they are starting more simply like we have. I feel like it is worth following their effort as we can always learn from each other

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

  • @joegrainger We are working on the final elements on the Plugin Checker infrastructure with plans to complete this by the end of the week. From next week weโ€™ll be performing initial testing and review of the infrastructure before working on the additional checks. Progress as always can be seen on theย GitHub repoย here. Please feel free to take a look and leave any thoughts/ideas you may have in the repo.

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

New Projects / Proposals

  • A polite reminder, ourย 2023 roadmapย is intentionally broad. Despite there being clear workstreams envisioned within the highlighted priorities, the team aims to support contributors with additional related ideas

Open Floor

  • n/a

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

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

Performance Chat Summary: 14 March 2023

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

Announcements

  • As agreed in last weeks chat, this week we are following the new agenda structure below that is more aligned with ourย 2023 roadmap
  • During each priority project update, we will aim toย tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)ย the individuals who contributed suggestions for that priority project in the 2023 roadmap, to get any updates on progress

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

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

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a userโ€™s browser. https://www.javascript.com/. & CSSCSS Cascading Style Sheets.

Link to roadmap projects

Contributors: @mukesh27 @10upsimon @adamsilverstein

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

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • @flixos90 I have been researching remaining problems with lazy-loaded LCP images in WordPress sites in the last week, will continue to do so today. Iโ€™m using HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. Archive to identify the most common problems and look at specific sites for samples to dig further
  • @flixos90 Noting that the enhancements that will hopefully come out of this work will benefit theย fetchpriority="high"ย work as well
  • @adamsilverstein quick update from me: at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what theyโ€™ve learned throughout the year and share the joy. Learn more. Asia a few weeks ago, I ran an โ€œimage comparison gameโ€ where users picked from two images (generated in WordPress at different compression levels and in WebP or JPEG) trying to tell which one was closer to the original. we had around 50 โ€œchoicesโ€ registered which isnโ€™t much, but in any case Iโ€™m planning to analyze that data this week and should have some sort of results to share next week.

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • @clarkeemily we did have โ€˜Automated performance testing has been committed to the WP coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. repoย https://core.trac.wordpress.org/changeset/55459โ€˜ highlighted last week
  • @joemcgill Weโ€™re successfully getting automated performance data on every commit to core now, which is a cool milestone. I expect that weโ€™ll continue to improve those capabilitiescapability Aย capabilityย is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on theirย role. For example, users who have the Author role usually have permission to edit their own posts (the โ€œedit_postsโ€ capability), but not permission to edit other usersโ€™ posts (the โ€œedit_others_postsโ€ capability). over time, but this is a nice starting point.

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

  • @joegrainger We plan to complete the infrastructure for the PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Checker by the end of next week. Once complete we will start to perform some initial testing and review the infrastructure before working on the additional checks. Progress can be seen on theย GitHub repoย here. Please feel free to take a look and leave any thoughts/ideas you may have in the repo.

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

New Projects / Proposals

  • n/a

Open Floor

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

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

Performance Chat Summary: 7 March 2023

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

Announcements

  • Proposed update to our chat structure for future weeks to be focused more around ourย 2023 performance roadmap
    • @flixos90 Focusing on the roadmap items sounds great to me. Iโ€™d say some of those points are rather broad though, maybe we can still go a bit more granular per project. Thereโ€™s also some projects on the roadmap that are well underway while others are merely ideas that may not see a lot of updates soon, so we need to think about how to balance that
      • @clarkeemily I think that would be the plan, to dive more into those sub-bullet point per priority as listed in our roadmap (sorry, should have clarified that!)
    • This was agreed โ€“ for future meetings, the agenda will be structured below, with the goal of diving deeper into each roadmap priority sub-project
      • Announcements
      • Roadmap priorities:
        • Server response time
        • Database optimization
        • JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a userโ€™s browser. https://www.javascript.com/. & CSSCSS Cascading Style Sheets.
        • Images
        • Measurement
        • Ecosystem tools
      • Infrastructure
      • Open floor

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Measurement

N/A

GitHub project

  • @joegrainger We are working towards completing the infrastructure for the PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Checker and once done weโ€™ll have a working plugin with some initial checks. At that point weโ€™ll be taking the time to do some initial testing, review the infrastructure and make any changes before working on the additional checks. You can see progress on theย GitHub repoย here. Feel free to leave any thoughts/ideas you may have in the repo too!
  • @mukesh27 Automated performance testing has been committed to the WP core repo https://core.trac.wordpress.org/changeset/55459
    • @joemcgill The first run of the new performance workflow ran perfectly, except for successfully posting results to the codevitals.run dashboard. I assume itโ€™s because we either have an incorrect project token or some other change was made to the 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. there. Iโ€™ll follow up withย @youknowriad to get this working when heโ€™s back around. Regardless, this is pretty cool to see (copied over from Mar 3)

Feedback requested

JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. & CSS

@aristath @sergiomdgomes

GitHub project

  • @10upsimon update onย WRT Script Loading Strategy:
    • Trac Ticket 12009ย has been updated with a comment describing the work being carried out, and brief instructions on where and how to follow progress. We encourage early feedback.
    • Work onย milestone 2 issuesย has been completed, and all code approved, unit tested and functionally tested. Further holistic testing is underway but is not a blockerblocker A bug which is so severe that it blocks a release. to progress.
    • Milestone 3 workย is underway and tracking well.
    • We continue Investigating potential interoperability issues to assess how developers most commonly solve for theย asyncย andย deferย script applications in the absence of this enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. that is underway, so that we can better understand if and how we need to potentially solve for this in the interest of preserving the work we are doing in core, and being mindful of backward compatibility.

Feedback requested

Database

@olliejones

GitHub project

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @mukesh27 started working on milestone 1 tasks forย creating a standalone plugin.
    • PR 662ย for implementing CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. command for a build process to transform modules into standalone plugins is ready for review
    • @flixos90 Iโ€™ll give the above another review today, really excited to see it moving forward

Feedback requested

Open Floor

  • @olliejones Is there any intentional liaison between us andย #hosting-community
  • @tillkruess raised a concern over comments on https://github.com/WordPress/performance/issues/132
    • @spacedmonkey The TLDR of 132, is that as we support older version of DBs, we canโ€™t rollout the indexes? Can we do a progressive enhancement for newer DBs?
    • @olliejones To oversimplify,ย (191)ย indexes donโ€™t do what big sites need. โ€œProgressive enhancementโ€ means โ€œtwo versions of the database definitionโ€. Is there testing capabilitycapability Aย capabilityย is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on theirย role. For example, users who have the Author role usually have permission to edit their own posts (the โ€œedit_postsโ€ capability), but not permission to edit other usersโ€™ posts (the โ€œedit_others_postsโ€ capability).? https://www.plumislandmedia.net/index-wp-mysql-for-speed/wordpresss-prefix-keys/ย is a writeup on the topic.
    • @spacedmonkey There are other examples of progressive enhancements in core. And there is a different schema for the user table for multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site for example. Any thoughts on progressive enhancements like this @johnbillion
    • @tillkruess Iโ€™m strongly in favor of databases indices as an opt-in feature.
    • @olliejones In schema.php weโ€™d putย if (the database uses the barracuda storage engine ) { lots of data definition language }
    • @johnbillion The answer I always give when talking about introducing optional features is, is the intended user capable of making an informed decision about whether or not to enable the feature? If the โ€œuserโ€ in this context is a large scale web host then yes, if the โ€œuserโ€ is a freelance integrator without much SQL experience then no. So if we can guide an informed decision to be made then Iโ€™m in favor of these indices enhancements being opt-in, as much as Iโ€™m not a fan of differing schemas the benefit outweighs that here IMO

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

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