Performance Chat Summary: 24 January 2023

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

Announcements

  • None this week

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein not much to update from my end this week. I have been mostly thinking about/planning for 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 & contributor dayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/., coming up with a plan for that. I’d love feedback about good ways to engage new contributors on performance

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Measurement

N/A

GitHub project

  • @joegrainger: been away for a few days but have been making progress on the PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Checker infrastructure. Still more to be done, but you can see the work carried out here https://github.com/10up/plugin-check (we’re developing the project here, but will be eventually moved to the WordPress organisation).
  • The plugin checker will be run through both the CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. and the WP Adminadmin (and super admin). Feel free to take a look at the issues and leave thoughts/ideas you may have

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Database

@olliejones

GitHub project

  • @aristath Last week, SQLite was released as a stand-alone plugin. No announcement action etc was taken. I left that TBD so we can coordinate our policy and strategy as a performance team. The submission was done early to get a head-start with the plugin review process etc – which made sense since this was a direct request from Matt.
  • The repo for the stand-alone plugin was moved to the WordPress organization on GitHub
  • The call-for testing post was updated to include links both to the PL plugin as well as the stand-alone plugin.
  • @olliejones Ari released the SQLite DBMS engine integration as a standalone plugin https://wordpress.org/plugins/sqlite-database-integration/   … And I assume we’ll take up https://github.com/WordPress/performance/issues/625 during the open-floor time
  • @olliejones The SQLite DBMS project is going to require large-scale testing to get to betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. status
  • @spacedmonkey asked where is the best place to provide feedback for this plugin – best course of action to create an issue here https://github.com/OllieJones/sqlite-object-cache/issues
    • @flixos90 Note that we now have both the separate 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/ repo and the module in the PL GitHub repo, so we need to figure out how to handle that. The duplicate code between those 2 repos is certainly not good
    • @spacedmonkey noticed that cache values were not being set

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90 No recent updates, however I opened https://github.com/WordPress/performance/issues/627 yesterday. What I’m proposing in that issue is to bump the minimum version requirement of Performance Lab to WordPress 6.1. This will allow us to remove the two Site Health cache modules that were already launched in WordPress 6.1, which at this point are a bit of unnecessary baggage to still have in there
  • Note that per our version support policy our commitment is to only support the latest WordPress release anyway, so this should be okay
  • Discussion around plugin versioning:
    • @flixos90 I see there’s a suggestion by @joemcgill to potentially have a 1.10.0 with that code being deprecated first. I don’t think that would help here. FWIW, the modules are already not loaded today when you have WP 6.1. So nothing changes for you either way when they’re removed:
    • Either you are on WP <6.1, so you cannot update to the new PL release.
    • Or you are on WP 6.1, which means you already are using the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. feature, and the PL modules for the same purpose are not loaded.
    • That was behind the https://make.wordpress.org/performance/handbook/performance-lab/version-support-policy/
    • @joemcgill Makes sense to me. Just getting up to speed on the process here now that I have time dedicated to work on these performance projects. The documented policy seems quite clear
    • Agreed no vote required on this

Feedback requested

Open Floor

  • @olliejones discussed the module proposal for SQLite Persistent Object Cache
    • It’s a standalone plugin. Does it make sense to build it into PL, to put it onto a track to go into core?
    • @spacedmonkey I think it needs to live as a plugin for a while
    • @flixos90 A bit of a tricky question. Of course we are working towards unbundling the PL plugin. But we’re still pending a decision on how exactly, and at this point it may make sense in the PL plugin. Is it already published on wp.org or not?
    • @olliejones Absolutely live as a plugin.  There’s no other way to get decent field experience. And this kind of thing requires field experience.
    • @spacedmonkey I want to test it on bigger sites, 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, ensure cache invalidation works, support wp_cache_get_multiple and some other stuff
    • @olliejones
    • Yes, published,  https://wordpress.org/plugins/sqlite-object-cache/ If it goes into PL, we’ll need to sort out the use of the object-cache.php drop-in module.
    • @flixos90 Okay, we should definitely keep it published like that then. I think at this point, let’s just keep it like that? We could potentially add it as a PL module too, but depending on the path decided on for unbundling the PL plugin, that would just be unnecessary work – so probably most efficient (until we have a decision) to work in its own repo for now
  • @spacedmonkey discussed the 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. for making php 7.2 the minimum version of support php in WordPress https://core.trac.wordpress.org/ticket/57345 and asked if this is something we should be pushing for as the performance team
    • @olliejones I say yes, smaller QA matrices are always good
    • @joemcgill It could certainly have some positive performance implications, though I’m not sure how much impact we would have since the process for bumping versions is pretty well established (unless I’m wrong). It would be nice to help support that effort with some evidence about the performance benefits from any automated testing we do against different versions.

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

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

#core-performance, #meta

Performance Chat Summary: 17 January 2023

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

Announcements

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein One new thing this week: I am working on a game/testing tool that shows two images generated by WordPress and asks users which they prefer. The comparisons will cover a range of quality settings and mime types (and image engines) and we will collect data about the comparisons. My goal is both to have something fun and interactive as well as get some actual WordPress based data on image quality to help make a decision about where to set WebP default quality in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..
    I’d love to have some testers/feedback here once I get it a little further developed (to be shared in future).
  • @pbearne I will/plan create a combined 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. with dom-color with theme flags and media lib changes for core and then create a new proposal blogblog (versus network, site) post on make for this new version
    Following from @flixos90 comment on the media lib patch
  • @spacedmonkey asked if we are hoping to get dominant color into 6.2
    • @pbearne would love to get it in but @spacedmonkey unsure if the 80% rule was met (is it useful for 80% of users)
    • @pbearne I am hoping as this is a enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. to the media library and the is for every one we can get it in and with the them flag it can be pulled into a theme if wanted just like you might use the icons from core in a theme

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Measurement

N/A

GitHub project

  • @joegrainger: 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 work in progress (mainly infrastructure right now) and coming along nicely

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Database

@olliejones

GitHub project

  • No updates

Feedback requested

Infrastructure

@flixos90

GitHub project

Feedback requested

Open Floor

  • @olliejones I’m seeing some very promising performance results from using SQLite as the persister for an object cache. Is this worth proposing as a Performance Lab module?
    • Performing very well on a WooCommerce site on low-end Godaddy hosting – been doing some tests on my 100K user test site, it seems good. Also works with 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
    • @pbearne suggested yes, @olliejones will write a proposal
    • @spacedmonkey +1 for this idea. Adding object caching to sites without the overhead of memcache or redis, could be massive big for smaller sites
    • @adamsilverstein would be especially great for hosts that don’t support traditional object caching and won’t for some real reasons
    • @olliejones Last week I asked whether there are any more-or-less standardized large-site benchmarking environments. This is why. Anything?

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

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

#core-performance, #meta

Performance Chat Summary: 10 January 2023

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

Announcements

Discussion: Unbundling Performance Lab

  • @flixos90: Want to emphasize that we should decouple how we develop these features from how we distribute them, with this conversation focused on the latter. We can keep working in a mono repo to keep development overhead low no matter which approach we choose for distribution.
  • @olliejones: It seems like any attempt to figure out what a “canonical 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 might be a waste of time, as it’s up to Matt, not us
    • @flixos90: The canonical plugins topic is related but not really connected. Agreed it’s not on us to decide, but also don’t think we need to do that to determine how to unbundle Performance Lab. The ask is to distribute the features as individual plugins – whether or not they’ll become “canonical” plugins isn’t directly relevant to the unbundling.
  • @flixos90: As comment notes, we’ve considered three options so far:
    • Option 1: Keep PL as is, but additionally deployDeploy Launching code from a local development environment to the production web server, so that it's available to visitors. modules as individual plugins
    • Option 2: Make PL a “wrapper” focused on central infrastructure and recommendation of individual plugins
    • Option 3: Deprecate PL completely in favor of individual plugins
  • @masteradhoc: Don’t see SQLite as something that needs to be in PL and WebP can also be standalone. How do you define if a feature should get into the plugin or be standalone? Would go for option 3 to keep everything separated and have some sort of list to keep track on what is being worked on. However, this still doesn’t solve the bigger issue – what happens if the argument is still to not merge them into coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.? What will make a canonical plugin in the end? How can we really move WP further in performance?
    • @flixos90: The idea is that all modules of PL are standalone features, so option 3 would mean each module would become its own plugin. The PL plugin has a lot of benefits that we would lose if we go with this option, which is why it’s the most unfavorable to me. There are several feature plugins that weren’t merged into core – either they continue to be developed to eventually get there or they get archived.
    • @masteradhoc: In that case, think more of option 2. Wouldn’t do option 1 as it seems like duplication.
    • @flixos90: Yes, there would be duplicates, but it’s not necessarily bad. It’s the best of both wolds, similar to how Jetpack works as of today.
  • @spacedmonkey: Could a feature be both a standalone plugin and in PL?
  • @olliejones: We have one canonical plugin now, Akismet, that’s available to every WP install but not required – is that what Matt wants for performance?
    • @flixos90: Nothing would be pre-installed; let’s focus on unbundling as opposed to canonical plugins since we don’t know what those are
  • @spacedmonkey: It seems to only make sense to break off larger feature like WebP or SQLite into separate plugins
    • @masteradhoc: I wouldn’t install a plugin just to get additional Health Checks
    • @flixos90: It’s a blurry line – it would require the overhead of a discussion on every single feature to decide if it should be a standalone plugin. Would be in favor of a single consistent decision to save ourselves the overhead later. This is how feature plugins have always worked. FWIW several plugins have only ~50 installs because they’re so specific.
  • @spacedmonkey: Could have a Performance Lab module and a GH repo template for them, would help with maintenance
  • @joegrainger: If we deploy modules as individual plugins, will they have their own repos and if so will they be in the WordPress organization?
    • @flixos90: Yes, only on wp.org would there be separate repos
  • @mxbclang: Are we comfortable that keeping PL and deployingDeploy Launching code from a local development environment to the production web server, so that it's available to visitors. separate plugins fulfills Matt’s request? We would still have a single plugin with all of these features
    • @flixos90: We’ll have to see of course, but main ask was individual plugins
    • @adamsilverstein: Not sure this really meets his requests, he very explicitly said of SQLite that we should “stop putting additional things like this into Performance Lab”
    • @flixos90: From my perspective, since Jetpack does Option 1, this should be a reasonable approach
  • @spacedmonkey: Jetpack is an example of a mono repo with multiple plugin projects: https://github.com/Automattic/jetpack/tree/trunk/projects/plugins, which is a good example of how Option 1 would work
    • @kraft: Jetpack system uses composer packages for things shared between plugins and they get called in via them, happy to answer any questions about the setup
  • @mxbclang: Option 3 is also a burden for support, since each plugin has its own support forumSupport Forum WordPress Support Forums is a place to go for help and conversations around using WordPress. Also the place to go to report issues that are caused by errors with the WordPress code and implementations. that would need to be monitored
  • @spacedmonkey: Marketing is also an issue, where do we push people to?
    • @flixos90: Depends on the context, likely PL primarily, but individual plugins would also be available. A feature proposal post would highlight both as equal options for testing.
  • @olliejones: Option 1 lets us keep moving on development, but it carries the risk of Matt pushing back
    • @flixos90: FWIW both Options 1 and 2 carry that risk
    • @adamsilverstein: Makes me lean toward Option 2
    • @flixos90: Benefit of Option 1 is that it would continue to work as is for the people who have PL currently installed; Option 2 would require a complex migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. that users likely would not understand
    • @adamsilverstein: Good point, thinking more of the end user who hasn’t tried “feature X” yet and having a separate plugin might be a better experience
    • @flixos90: Options 1 and 2 would be have separate plugins for each module
  • @spacedmonkey: Having each functionality in its own plugin helps with testing
  • @spacedmonkey: What defines a module? Would the current Site Health checks all be together, for example? SQLite and WebP are clearly their own modules, but what about smaller things?
    • @flixos90: Great question and another thing to discuss for the future
    • @spacedmonkey: Defining how we break the plugin up helps with what option we pick – don’t want a bunch of “sub”-plugins
    • @flixos90: Yes, but this doesn’t affect which option we choose
    • @spacedmonkey: It does for Option 3
  • @olliejones: Plugin discoverability is a huge issue in today’s WP ecosystem and Option 1 helps discoverability. The categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. “canonical plugin” does seem to help with discoverability.
    • @flixos90: Fair to say that discoverability would suffer with Option 3.
    • @spacedmonkey: Marketing and support would also suffer
    • @adamsilverstein: Not sure about discoverability, if I want a SQLite feature for my site, a canonical plugin that does just that would be easier to discover than a feature within PL
    • @flixos90: Yes, but the standalone plugin would always exist with any option
  • @spacedmonkey: If there’s a standalone plugin, will anyone bother with a PL plugin? What’s the point of it?
    • @flixos90: Depends on the audience. There are people that want one feature at a time and others who want everything in one place.
  • @olliejones: Happy with Option 1 for now. Taking a step back, discoverability is a REALLY big problem for WP themes, plugins, etc. The reason I suggested working on the definition of “canonical” is that it has the potential to address that. Know that we can’t solve that problem but it’s what Matt cares about.
    • @masteradhoc: Agree, maybe next meeting could focus on how these initiatives can be moved forward
  • @spacedmonkey: Personally think that all PL functionality should be opt-in
  • @adamsilverstein: Love the idea of canonical plugins at install time, Drupal does something exactly like this with their 10-minute install
  • @flixos90: That’s how I’ve been thinking about canonical plugins, as well, with WP core providing contextual recommendations
  • @spacedmonkey: Maybe we could have a setup wizard where you opt-in to the features that you want, like Web Stories
  • @olliejones: Is there any way to get Matt’s approval of our choice, or do we have to do a bunch of work and risk it getting shot down?
    • @flixos90: We’d definitely reach out to him with a proposal once we have alignment within the team; we wouldn’t start any work before having buy-in from him
    • @olliejones: Who will do that?
    • @flixos90: Potentially, will help in figuring out how to do that
  • @flixos90: For next week, perhaps: I think are our options when it comes to the scope of how the current modules would be distributed as plugins:
    • Every module becomes its own plugin
    • Modules are grouped together based on their focus into a few “topic specific” plugins
    • Decisions are made individually, some modules become standalone while others are grouped into a topic specific plugin

Voting on an approach is now open in this GitHub comment through Friday, January 20.

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

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

#core-performance, #meta

Performance Chat Summary: 3 January 2023

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

Announcements

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @pbearne: Dominant color in Media Library code is ready for review: https://github.com/WordPress/performance/pull/587

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Measurement

N/A

GitHub project

  • @joegrainger: 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 work in progress and coming along nicely

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Database

@olliejones

GitHub project

  • No updates

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90: Matt’s request will be a major Infrastructure topic. Will leave some thoughts on https://github.com/WordPress/performance/issues/618 so we can begin to discuss, but a real discussion should occur in next week’s chat since it’s more synchronous. See also @tweetythierry‘s reply to Matt here which mentions some potential options for us to think about.
    • @olliejones: Is there any prospect of getting coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. to add a new drop-in slot to avoid overloading object-cache.php with the monitoring stuff?
      • @flixos90: Adding a new slot will be challenging; defining the scope and whether it’s justified will likely take quite a while. That said, worth exploring in 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., but should probably come up with a solid proposal first.
      • @manuilov: If we need to split the plugin, seems like the most appropriate option is the second approach suggested by Thierry. Will need to extract modules as individual plugins and keep PL as a wrapper focused on central infrastructure and recommending individual plugins. Otherwise, if we deprecate PL, people will be less able to find new modules/plugins.

Feedback requested

Open floor

  • @olliejones: Is there a load-testing/performance benchmarking setup? Maybe a sample big site with a bunch of jmeter scripts or something similar?

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

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

#core-performance, #meta

Performance Chat Summary: 20 December 2022

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

Announcements

  • @mxbclang: Should we hold our chat next week on December 27, or cancel due to the holidays?
    • 9 voted to cancel, none to hold
    • Chat next week is canceled and next chat will be on Tuesday, January 3, 2023

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • No updates

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Measurement

N/A

GitHub project

  • @flixos90: Server-Timing 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. launched in Performance Lab yesterday!
    • Received a report of a conflictconflict A conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with W3TC around the object-cache.php file that we’ll investigate. Our approach is to maintain the other file, but maybe their check for whether the file is in place is overly strict.

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Database

@olliejones

GitHub project

Feedback requested

Infrastructure

@flixos90

GitHub project

  • No updates

Feedback requested

Open floor

  • @olliejones: Are there any plans to create an ingestion module to move 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/. contents to SQLite?
    • @mxbclang: Good question for Ari, maybe comment on his post?

Our regularly scheduled chat for Tuesday, December 27, 2022, is canceled due to the holidays. Our next chat will be held on Tuesday, January 3, 2023 at 16:00 UTC in the #core-performance channel in Slack.

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

#core-performance, #meta

Performance Chat Summary: 13 December 2022

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

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @pbearne: Can we get the Media Library patch for dominant color merged? https://github.com/WordPress/performance/pull/587
    • @adamsilverstein: Not working yet, did the template replacing work but not the actual dominant colors
    • @pbearne will try to update this week

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

  • @spacedmonkey: Need code review for merge on:
    • https://github.com/WordPress/wordpress-develop/pull/3544
    • https://github.com/WordPress/wordpress-develop/pull/3365
    • https://github.com/WordPress/wordpress-develop/pull/3743
  • @spacedmonkey: Been trying to add caching to get_adjacent_post but filters make it hard

Feedback requested

Measurement

N/A

GitHub project

  • @joegrainger: Started engineering on 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 Check this week, building out initial infrastructure
  • @flixos90: Server-Timing API PR has gotten some reviews and is lined up for Monday’s 1.8.0 release
    • Should help us significantly in assessing server timing metrics in the field; we’re currently extremely limited in that regard as the usual tools only give us client-side performance metrics
    • For example, other than baseline PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher execution time and DB query time metrics, it also includes one more specific metric, to measure the autoloaded options query (which will help us assess the potential impact of https://github.com/WordPress/performance/issues/526)
    • Very large PR (like SQLite) so the more reviews the better, hoping to merge tomorrow for 1.8.0, otherwise will need to puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.) to 1.9.0
    • Will be part of the plugin’s infrastructure, so other modules will be able to leverage it to add server timing metrics around their own behavior and validate how much a certain module improves server-side performance in the field

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • @mxbclang: Blog post on enhancing the Scripts API with a loading strategy
    • Proposal from @adamsilverstein on a new approach; please take time to review and comment
    • @adamsilverstein: Next step is a ticketticket Created for both bug reports and feature development on the bug tracker./code proposal, thinking a new TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticket might be best
    • @mxbclang and @flixos90 agree on a new Trac ticket
    • @spacedmonkey: Is there a plan to use the defer 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. in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. themes and plugins? Useful for developers to see it in action and provide a good example
      • @adamsilverstein: Yes, that’s the plan, to use it wherever we can in core, including themes
    • @spacedmonkey: Might be worth reaching out to the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ team to see if 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 could use this
      • @adamsilverstein: Greg was always asking for it and commented on the original proposal; will be sure to keep them in the loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.
    • @johnbillion: Have any scripts in default themes been identified as being able to support defer? Probably fewer can support async
      • @adamsilverstein: For sure things like commenting script, but haven’t looked at core themes yet. Probably lots of things in wp-adminadmin (and super admin), as well.

Feedback requested

Database

@olliejones

GitHub project

  • @olliejones: @aristath finished the SQLite module https://github.com/WordPress/performance/pull/547 and we would welcome additional testing in advance of Monday’s release
    • @flixos90: Important to test the user experience on module activation. You’ll get an entirely new DB with some added logic to make the transition as seamless as possible. This is only the install; no content migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies..
    • @spacedmonkey: Do we run unit tests with SQLite enabled?
      • @flixos90: We don’t, but that’s a great idea. Maybe we can add an extra scenario to the GH action for PHPUnit that always has the SQLite database active so we can spot any inconsistencies.
      • @spacedmonkey to open an issue

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90: A few PRs have landed that fixed some issues with tests since PHP 8.2 caused breakage; kudos to @mukesh27 for working on those
  • @adamsilverstein: Proposed a new plan for A/B testing capability in the plugin https://github.com/WordPress/performance/issues/597 and would appreciate feedback

Feedback requested

Open floor

  • @spacedmonkey: Would love review on https://github.com/WordPress/wordpress-develop/pull/3609, one line of code that would result in big wins

Our next chat will be held on Tuesday, December 20, 2022 at 16:00 UTC in the #core-performance channel in Slack.

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

#core-performance, #meta

Editor chat summary: Wednesday, December 7, 2022

This post summarizes weekly editor chat of Wednesday, December 7, 2022 at 15:00 CET held 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/.. You can view the full transcript here.

General Announcements and Links

Key project updates


@annezazu shared the latest Gutenberg Phase 2 update.

“Here’s a TLDR for any devs looking at where to jump in next:
No development work started (yet)

Development work started but help appreciated to move it forward from the PR authors:


@hellofromtonya shared a Webfonts 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. Status

“Still in re-design of the architecture phase.
Close to merging the first re-architectural PR. What does it need?

  • Test it with plugins that are using the current functions to ensure nothing is broken, ie back compatibility is maintained with this phase.
  • Final code review
  • Then merge

Once merged, it will unblock the last re-architectural task.
Once both of those are merged, then performance tasks are unblocked.”


@scruffian posted an update on Navigation block:

“We now have the basics of the Navigation List View working. It is possible to view, edit and remove navigation items from the inspector controls. Drag and drop also works. The main areas of concern are:

  1. When editing an item, can we show the settings tab?
  2. Can we animate the opening of the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. settings to make it clear that this is conceptually a “drill-down” operation?

These will be the next areas to focus on.

Work is happening on this project board: https://github.com/orgs/WordPress/projects/60/views/1, which should give more detail on progress. This video shows the current state of the project:


The issue description will be updated to reflect the current outstanding issues.”


@andrewserong posted an update on Layout options and design tools


@carlosgprim posted updates from the Mobile Team:

Main focus

— Upgrade ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Native to version 0.69.x (finished via these changes)

 Recently fixed or improved

Task Coordination

@wildworks posted: “Can anyone test the PR regarding shortcuts in Windows?
This PR has been approved, and I would like to merge it, but I am the only one testing it…
This particular is a call for contributors who work on Windows machines @wildworks is working on Shortcuts: Add Ctrl+Y for redo to all editor instances on Windows (edited) 

@flexseth posted: “Documentation review: There are quite a few discrepancies in the ESNext flavor syntax used in Code examples for the documentation (and handbook). Maybe the #docs channel would be the best place to take up discussion on that though? I’ve been wanting to make sure all of the examples are functioning and writing more examples for components.. and to also look to establish a standard for the ES6+ code out there.”

@bph noted: “An issue or more than one should go to the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ repo for discussion. If you want to work on fixing them, you can review the the Guide to Documentation contributions

Open Floor

@flexseth asked: “Do you know where first time contributors can submit to be listed as contributors for this year? In the contributor numbers for State of the WordState of the Word This is the annual report given by Matt Mullenweg, founder of WordPress at WordCamp US. It looks at what we’ve done, what we’re doing, and the future of WordPress. https://wordpress.tv/tag/state-of-the-word/., in one of the Hallway Hangouts a call for contributors was mentioned I think.”

@bph: noted: “AFAIK the contributor numbers in SOTW are always release related. 5.9 6.0 6.1. Each team has their own way of acknowledging contributions. 6.1 was the last release for the year. Every Gutenberg plugin release has a list of contributors, too. Example, including first contributors”

Well after having used WordPress for over 10 years, I can say the direction of the project is the best I’ve seen. Good work all! — @flexseth

Props to @paaljoachim for his review.

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

Performance Chat Summary: 6 December 2022

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

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein: New ticketticket Created for both bug reports and feature development on the bug tracker. to ensure coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. support for WebP is complete: #57328
    • When WebP was introduced to core, the implementation focused primarily on the most common use – lossy images. Part of the reason is that although WebP supports lossless compression, alpha transparency and animation as a format, actual support in WordPress depends on the underlying graphics engine (GD/Imagick) where support for these is more varied (for example GD only supports lossless WebP since version 2.3.3 and PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher vs 8.1). Furthermore, detecting support for these features of the format is difficult or maybe not possible.
    • If anyone has the bandwidth to dig into this issue, guessing we can improve the current implementation to better match the expectations outlined in the ticket.
  • @spacedmonkey: Any updates on SVG?

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Measurement

N/A

GitHub project

  • No updates

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Database

@olliejones

GitHub project

  • @mxbclang: SQLite module has been approved though we would welcome additional review: https://github.com/WordPress/performance/pull/547
    • Planning to merge by end of week, so if you want to review, please do so by end of day Wednesday
    • @mxbclang will drop a message in #core-performance to let the team now when it is merged and ready for testing
    • Welcome as many testers as possible in advance of release of 1.8.0 on December 19

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @mxbclang via @flixos90: Aiming to complete Server-Timing PR including testing this week, so pending that will request reviews by end of week. Reviews already welcome and much appreciated, particularly around how 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. looks and behaves.

Feedback requested

Open floor

Our next chat will be held on Tuesday, December 13, 2022 at 16:00 UTC in the #core-performance channel in Slack.

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

#meta

Performance Chat Summary: 29 November 2022

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

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Measurement

N/A

GitHub project

  • No updates

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Database

@olliejones

GitHub project

  • @mxbclang: What are the next steps on Revisit indexes for DB performance #132?
    • @olliejones: Current voting winner points to doing something dbms-version-specific to the schema, eventually in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., think we can do this in 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 if we’re willing to accept a mu-plugin drop-in module. Disadvantage here is complexity.
    • @flixos90: This is tricky – we have a voting winner, but also some strong opinions from different sides including a WP lead developer.
    • @mxbclang: Seems like the best next step here would be to close out the vote as planned but hold on next steps pending further discussion in the issue, then regroup on this in a future chat
    • All agreed; vote will close and @mxbclang will add a comment about next steps
  • @olliejones: SQLite Object Cache is coming along nicely; will create a new module proposal issue once it’s closer to complete
  • @olliejones: For future discussion: Do we need some sort of formal set of filters, etc. to support the big competent hosting providers in this back-end area?

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90: Been working on iterating on the Server-Timing API PR. Still in draft because unit tests need to be added, but ready for review. Would love feedback and opinions on 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. implementation. The most important recent change is that it is now initialized early through a drop-in, so it can capture measurements that happen before WP plugins are loaded.

Feedback requested

Open floor

  • @olliejones: There’s a sustainability team forming – see #sustainability Slack channel
  • @nickchomey: Been working on implementing a real PWA for a site under development. Plugin options are limited right now but @westonruter‘s plugin is the right approach. Is this something that the performance team can move forward?
    • @flixos90: Not sure what the current state of the plugin is; original idea was for it to be a feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins.
    • @nickchomey: Proposing a real coordinated effort be made to improve it to the point that it could be merged into core
    • @flixos90: It could definitely be feature plugin material, but as always it requires resources. If a small group is up for tackling, we would be supportive and help here possible.
    • @westonruter: The plugin is stable and essentially in maintenance mode. Not clear if there is the 80% user benefit to justify core merge just yet. See discussion between @nickchomey and @westonruter in GH issue: https://github.com/GoogleChromeLabs/pwa-wp/issues/884.
    • @flixos90: Key aspect of proposing this for core would be to come with an actual usage of PWA capabilities that immediately benefits core users
    • @westonruter: Benefit that all users could get now is offline browsing on the front-end, but there’s a separate concern of what happens when a large portion of the web is registering service workers
    • @pbearne: Aren’t we going to need something like this for real-time multi-editing in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/?
    • @olliejones: Maybe the Twenty Twenty Four theme could be made PWA-friendly?

Our next chat will be held on Tuesday, December 6, 2022 at 16:00 UTC in the #core-performance channel in Slack.

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

#meta

Performance Chat Summary: 8 November 2022

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

Mini 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 of performance issues for 6.1.1

  • See here
  • https://core.trac.wordpress.org/ticket/56923 – PR committed; should become available when @mamaduka syncs 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/ to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. on Thursday
  • https://core.trac.wordpress.org/ticket/56815 – assigned to @flixos90 for review
  • https://core.trac.wordpress.org/ticket/56900 – assigned to @peterwilsoncc for commit
  • https://core.trac.wordpress.org/ticket/56945 – @flixos90 has PR in progress at https://github.com/WordPress/wordpress-develop/pull/3536 that needs review and feedback, especially from Gutenberg team. @annezazu working to 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. someone in there.
  • https://core.trac.wordpress.org/ticket/56948 – ready for commit, just needs a final review; assigned to @peterwilsoncc
  • https://core.trac.wordpress.org/ticket/56952 – @adamsilverstein to look into
  • https://core.trac.wordpress.org/ticket/56974 – @flixos90 took a first look at the PR last week and will give it a comprehensive review today
  • https://core.trac.wordpress.org/ticket/56990 – @adamsilverstein‘s changes need review/testing
  • https://core.trac.wordpress.org/ticket/56991 – @spacedmonkey‘s fix at https://github.com/WordPress/wordpress-develop/pull/3575 needs review
  • https://core.trac.wordpress.org/ticket/57012 – ready for commit by @peterwilsoncc

Focus area updates

Images

@adamsilverstein @mikeschroder

GitHub project

  • @adamsilverstein: Discovered a library, jSquash, that brings image format encoding/decoding to the web. Tested a bit and oping to use it to enhance the core image 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. with modern image capabilities. If successful, would let us introduce AVIF support without depending on server-side support.
  • @mehulkaklotar: Working on #563 for Performance Lab to change default WebP quality to 82; PR needs review.

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

  • @spacedmonkey: Working mostly on 6.1.1 issues, but a few for 6.2, as well:
    • https://github.com/WordPress/wordpress-develop/pull/3544
    • https://github.com/WordPress/wordpress-develop/pull/3528
    • https://github.com/WordPress/wordpress-develop/pull/3534
    • https://github.com/WordPress/wordpress-develop/pull/3366
    • https://github.com/WordPress/wordpress-develop/pull/3365
    • https://github.com/WordPress/wordpress-develop/pull/3178
  • @tillkruess: Chatted with @johnjamesjacoby about adding a health check for the new wp_cache_supports() function to show which object caching features are supported/not supported but recommended. See https://github.com/WordPress/wordpress-develop/pull/3347. For example, get_multiple() is quite important. Any feedback on adding as a health check?
    • @spacedmonkey: Now have wp_cache_supports in core that we could use and wp_cache_supports( 'get_multiple') in all options. Instead of loading all options in one cache key, load each in their own cache key and all in single call.

Feedback requested

Measurement

N/A

GitHub project

  • No updates

Feedback requested

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

@aristath @sergiomdgomes

GitHub project

  • No updates

Feedback requested

Database

@olliejones

GitHub project

Feedback requested

Infrastructure

@flixos90

GitHub project

  • @flixos90: Plugin codebase is now updated to reflect our recent modifications to the focus areas per https://github.com/WordPress/performance/pull/566, thanks to @mukesh27

Feedback requested

Our next chat will be held on Tuesday, November 15, 2022 at 16:00 UTC in the #core-performance channel in Slack.

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

#meta