Performance Chat Summary: 23 January 2024

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

Announcements

Priority Projects

Server Response Time

Notes from todayโ€™s call:

Database Optimization

Notes from todayโ€™s call:

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 and link to the GitHub project board
  • Contributors: @mukesh27 @flixos90 @westonruter
  • Projects from the 2024 roadmap:
    • INP opportunities research
    • Interactivity 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.
    • Speculative prerendering

Notes from todayโ€™s call:

  • No updates this week

Images

Notes from todayโ€™s call:

  • @westonruter For Image Loading Optimization, theย PRย to preload the background-image for the LCP element just needs one more review to merge. Again, I found this change to reduce LCP-TTFB by ~9% when, for example, the LCP elemment is a Group 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 a background image or a Cover block with parallax. Otherwise, Iโ€™ve been working withย @thelovekeshย onย eliminating loading the web-vitals library from unpkg.
  • @adamsilverstein Theย PRย to land AVIF is ready for testing; at this point I am waiting for support to land in Edge stable before committing, not sure that will in time for betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. cutoff though
  • @swissspidy For client side image compression Iโ€™m currently working on ways to make the performance impact more measurable and documenting that. In the meantime, my Media Experiments 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. can now be tested onย WordPress Playgroundย to familiarize oneself with how seamless it all is.
  • @joemcgill As mentioned earlier, theย experimental plugin for supporting auto-sizesย is now available. Iโ€™m trackingย an issueย that is effecting WP galleries when this is in use. Additional testing and feedback of this feature (requires Chrome 121+) would be appreciated.

Measurement

Notes from todayโ€™s call:

  • @joemcgill Still need to look into the failures on the 6.4 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". #60127

Ecosystem Tools

Notes from todayโ€™s call:

Open Floor

  • No updates today

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

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

Performance Chat Agenda: 23 January 2024

Here is the agenda for this weekโ€™s performance team meeting scheduled for Jan 23, 2024 at 16:00 UTC. If you have any topics youโ€™d like to add to this agenda, please add them in the comments below.


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

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

Core Editor Improvement: Robust Revisions in the Site Editor

These โ€œCoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor Improvementโ€ฆโ€ posts (labeled with the #core-editor-improvement 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.)) are a series dedicated to highlighting various new features, improvements, and more from Core Editor related projects.ย 

RevisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. are an integral part of the creation experience, providing a safety net and a way to see where youโ€™ve been to know where to go next. Itโ€™s so important that thereโ€™s a dedicated area of focus for phase 3 efforts dedicated to the broader area of work! While lots of work lies ahead, WordPress 6.5 is slated to include some impactful changes and new features to current revision functionality in the Site Editor.ย 

If you want to try out whatโ€™s shared below for yourself, head over to the post on Early Opportunities to Test WordPress 6.5 where you can quickly spin up your own test site to experience it for yourself and give feedback. Everything shared below is available as of 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/ 17.4 and planned for inclusion in WordPress 6.5.

Letโ€™s look at a before and afterย 

To help bring these changes to life, below is a video showcasing whatโ€™s written below. The โ€œbeforeโ€ site is using WordPress 6.4.2 and the โ€œafterโ€ site is using WordPress 6.4.2 with Gutenberg 17.5.1 installed. These test sites were pulled from Early Opportunities to Test WordPress 6.5 so anyone is welcome to explore:

Read a short summary of styling changes thanks to a new design

Alongside a new design showing more granular information, like a more granular timestamp, a short summary of changes made in each revision is now available. Combined, this greatly simplifies understanding whatโ€™s in each revision rather than relying on spotting visual changes.ย 

View all style revisions thanks to pagination

Rather than showing just the last 100 revisions, all revisions are now available thanks to pagination. This both works around a technical limitation of 100 results per REST response and helps make navigating between revisions much easier than scrolling endlessly in the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme..ย 

Toggle on the Style Book to get a different angle

In the same way you might be used to using the Style Book when making changes to your site in the Site Editor, you can now do the same when looking at different revisions to see changes that might not otherwise be visible on the current template. Just as when you use the Style Book normally, you can toggle it on and off as youโ€™d like.ย 

Rely on full revisions for everythingย 

While the undo and redo buttons have a role to play, having access to full revision history allows for a much greater understanding of changes, their impact, and actions one can take. While this was mentioned in a previous post, revisions for templates and template parts are finally slated for inclusion in Core for WordPress 6.5. This means out of the box folks can browse changes to templates, template parts, and styles providing a nice safety net.ย 

#core-editor, #core-editor-improvement, #gutenberg, #site-editor

A Week in Core โ€“ January 22, 2024

Welcome back to a new issue ofย Week inย CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Letโ€™s take a look at what changed onย TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.ย between January 15 and January 22, 2024.

  • 35 commits
  • 62 contributors
  • 67 tickets created
  • 10 tickets reopened
  • 72 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker.ย numbers are based on theย Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Administration

  • Remove empty form action attributes โ€“ #58226

Bootstrap/Load

  • Introduce functions to check whether WordPress is serving a 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/ request โ€“ #42061

Build/Test Tools

  • Remove leftover trailingslashit() calls in WP_Textdomain_Registry tests โ€“ #58919
  • Expand โ€œimageminโ€ Grunt task to cover default themes โ€“ #58996
  • Fix unstable query tests โ€“ #60288

Bundled Theme

  • Fix a couple of incorrect theme name references โ€“ #60310
  • Typo corrections in various themes docblocks โ€“ #60268, #59651
  • Version bump themes affected by #60241 โ€“ #60267
  • Twenty Twenty-Four: Remove extra tab character inside the text domain โ€“ #60245
  • Twenty Twenty-Four: Update license information in readme โ€“ #59838
  • Twenty Twenty: Add missing comma in twentytwenty_classic_editor_styles() โ€“ #48630
  • Twenty Twenty: Move the Inter font declaration to a separate file and enqueue the file โ€“ #48630
  • Twenty Twenty: Replace wp_date() with date_i18n() โ€“ #48589

Comments

  • Use post_password_required() for comment 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). checks โ€“ #59929

Docs

  • Correct the WP_User Query location reference in query cache tests โ€“ #59651
  • Correct the placement of @global tags in wp-settings.php โ€“ #60146
  • Fix several typos in inline comments โ€“ #60285
  • Fix var types of parameters in sanitize_option() and sanitize_option_{$option} โ€“ #60214, #59651
  • Format new_admin_email_content placeholders as a list โ€“ #60262

Editor

  • Support deferred 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. variation initialization on the server โ€“ #59969

Embeds

  • Ensure the deprecated function print_emoji_styles isnโ€™t used โ€“ #59892. See: #58775

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. 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.

  • Support for BR, EMBED, & other tags โ€“ #60283
  • Add support for HR element โ€“ #60283
  • Add support for PRE and LISTING elements โ€“ #60283
  • Cleanup tests and list of void elements โ€“ #60307

I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

  • Cache list of language file paths in WP_Textdomain_Registry โ€“ #58919
  • Correctly invalidate language file paths in WP_Textdomain_Registry โ€“ #58919
  • Do not use trailingslashit in WP_Textdomain_Registry โ€“ #58919
  • Fix duplicate determine_locale() tests added in [57286] โ€“ #58696
  • Prevent PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher warning in WP_Textdomain_Registry โ€“ #58919

Media

  • Inline image CSSCSS Cascading Style Sheets. width to backfill width and height attributes โ€“ #59352
  • Redirect inactive attachement pages for logged-out users โ€“ #59866, #57913
  • Revert [57310] โ€“ #59866, #57913

Plugins

  • Correct table layout on smaller screens โ€“ #50069

Upgrade/Install

  • 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 localization on install page โ€“ #58696

Props

Thanks to the 62 people who contributed to WordPress Core on Trac: @sabernhardt (7), @mukesh27 (7), @shailu25 (6), @poena (4), @swissspidy (3), @jonsurrell (3), @dmsnell (3), @joemcgill (3), @flixos90 (3), @peterwilsoncc (3), @SergeyBiryukov (2), @hellofromTonya (2), @jorbin (2), @costdev (2), @acosmin (1), @desrosj (1), @passoniate (1), @JavierCasares (1), @spacedmonkey (1), @thekt12 (1), @Mamaduka (1), @gaambo (1), @gziolo (1), @lots0logs (1), @TimothyBlynJacobs (1), @joehoyle (1), @pento (1), @mikejolley (1), @iandunn (1), @Cybr (1), @petitphp (1), @markhowellsmead (1), @nielslange (1), @Otto42 (1), @SGr33n (1), @afercia (1), @aristath (1), @chesio (1), @joppuyo (1), @lakshmananphp (1), @sergeybiryukov (1), @boonebgorges (1), @bobbingwide (1), @johnbillion (1), @gerardreches (1), @crstauf (1), @sachyya-sachet (1), @joyously (1), @Malae (1), @audrasjb (1), @bartkleinreesink (1), @nicolefurlan (1), @shubhamsedani (1), @rajinsharwar (1), @joedolson (1), @westonruter (1), @dd32 (1), @shooper (1), @stevenlinx (1), @mreishus (1), @NekoJonez (1), and @jornp (1).

Congrats and welcome to our 3 new contributors of the week: @lots0logs, @joppuyo, @bartkleinreesink โ™ฅ๏ธ

Core committers: @sergeybiryukov (10), @swissspidy (8), @dmsnell (4), @peterwilsoncc (3), @flixos90 (3), @audrasjb (3), @joemcgill (1), @jorbin (1), @desrosj (1), and @joedolson (1).

#6-5, #core, #week-in-core

Dev Chat summary, January 17, 2024

Start of meeting on Slack

This DevChat starts with an experiment to shift the chat to synchronize discussions and away from dropping of links.

Discussion on open proposals in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.

Default Theme Task Force for 2024

Link to the post: Proposal: Default Theme Task Force for 2024

Dev Chat slack link

Comments in Dev Chat focused:

  • positive feedback and highlighting that people can self-nominate their ability to help triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. those open default theme issues
  • promote the call to encourage people to be active in triaging and resolving thoseย 436 Bundled Theme tickets

Latest position from @desrosj :

  • advised the idea has been accepted: tโ€™s rallying a group of folks to get through and clean out the Bundled Theme component backlog on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.
  • three self nominations and more expected to be confirmed by end of the week
  • aim to start before the end of January 2024, currently 437 tickets in the Bundled Theme component
  • Jonathan will be leading the team as a mentor and someone with commit privileges, and other committers are welcome to help as well)
  • the week to week working arrangement will be depends on the teamโ€™s availability. Stay tuned!ย 
  • confirmed the new theme task force group will remain under core team purview. More detail on this in the comments section of the post. More contributors for the Themes team welcome to help out too. โ€œItโ€™s a balance though, My goal here was to allow those contributors to continue exploring what new themes look like while this team handles cleaning up some of our cruft and backlog for pre-existing ones.โ€
  • expecting โ€˜as a side effect, cleaning out the backlog also will effectively โ€œretireโ€ these themes in some ways, and going forward, the majority of the tickets will be 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 support related (hopefully).โ€™ย 

Actions:

  • more volunteers needed and will increase the speed can go through the outstanding tickets in the component
  • to assist, contact @desrosj on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/ on in the comments for the post itself

Proposal to improve the editor tech workflow for major releases

Post link: Proposal

Dev Chat Slack link

Context: This proposal was started in 6.4. With 6.5 underway, thinking the learnings from 6.4 could be built upon for how to continue improving the Core merges from GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โ€˜blocksโ€™ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ during 6.5. Core Editor and Core chats are now combined into Dev Chat as an experiment.

Discussion:

  • @joemcgill raised the question of the right venue to push this forward. โ€œIn my opinion, the current status quo is error prone and unsustainable (as well as taking a lot of manual overhead from contributors).โ€
  • @jorbin: If we want to try early syncing for 6.4.3,ย https://core.trac.wordpress.org/ticket/59828ย just needs a second committers review and we can get all the updates into the 6.4.x nightly
  • @hellofromtonya: Iโ€™m not sure either what the โ€œright venue for pushing this forwardโ€ is. Needs a discussion with both Core and Core Editor folks to figure out the needs and how to improve these workflows. Seems earlier the better as 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. 1 is fast approaching
  • @jorbin suggested one way to mitigate the issue would be nominating the release team, or at least the editor tech, for the next release before the current release ships. An interim editor tech to help get the ball rolling while an official team has not been announced. @joemcgill agreed having an identified set of release leads for 6.5 to discuss how they want to handle things for this release would help. Theย Community Summit conversationย was very helpful. A working group to continue that conversation and come back with concrete proposals would be helpful, if a release team is not the right venue.ย A working group had positive feedback in the dev chat discussions as these workflows are continuously improving and span more than one major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.. @jorbin suggested @tellthemachinesย should be given right of first refusal to continue leading the effort since she kicked off the proposal.
  • Ideas included: a proposal needed to address the identified set of problems, a hallway hangout similar to the ones @annezazu and others have done.

Actions:

Forthcoming releases

6.5

Slack discussion link

See this section in the agenda for updates, helpful links, and information for the 6.5 release.

Blockages/ items need discussion for progress:

  • Font Library:
    • Discussion:
      • As a follow-up from @joemcgillโ€˜s questions last week, @hellofromtonya has added the Core merge criteria/expectations to its Trac ticketticket Created for both bug reports and feature development on the bug tracker.. The critieria is the same as in 6.4, except Tonya is suggesting returning to the expectation the feature is merged before or by Beta 1.
      • Query raised on the criteria aspect of โ€œrunning onย wp.com, and not being reliant on any specific host testing this. @hellofromtonya: The reason for wp.com is: itโ€™s a normal workflow in Gutenberg as it gains a huge amount of sites running it. @jorbin
      • @annezazu suggested some of the contributors who have worked on this feature could comment. Also noted current timeline for the featureย https://core.trac.wordpress.org/ticket/59166#comment:21
      • Question: Is this anything beyond what weโ€™d normally expect of 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? @hellofromtonya: Same expectations except for 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/ part of it , as Iโ€™m suggesting a maintainer needs to give aย thumbs-upย to its design.
      • jorbim: I donโ€™t want to discourage that in any way, I just wonder if we would ever set a requirement like โ€œIs running on Altis with no major issuesโ€
    • Actions:
      • Update the criteria from the discussion. Done โœ…
      • Gather expectations from the REST API maintainers and then update the criteria accordingly. Done โœ…

How was the first experimental new DevChat?

@jorbin said: โ€œI think one of the most productive meetings in a whileโ€

@afragen shared there was no extra time to raise other tickets for discussion.

What to change?

Next week, reserve 10-15 minutes for open forum / floor discussion.

Props @hellofromTonya for peer review.

#6-4, #6-5, #core, #core-editor, #dev-chat, #meeting, #summary

Editor: Important milestones for WordPress 6.5

The WordPress 6.5 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. 1 is scheduled for release on February 13th, As a consequence, weโ€™d like to share some milestones and recommendations for contributors working on 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/ repository.

Following our guidelines, we will be scheduling the Gutenberg 17.7.0 RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). for Friday 9th. It will represent the last Gutenberg release that is going to be included fully into WordPress 6.5.

Additionally, and in order to streamline the merge into WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and avoid last minute blockers, weโ€™d like to issue the following recommendations for all contributors working on the Gutenberg repository:

  • If you have a feature that is behind an experimental flag and is planned to be included on WordPress 6.5, consider removing the experimental flag as soon as possible and stabilize the feature for Gutenberg 17.6.0 RC which is planned for Wednesday January 24th.
  • Start working on the Gutenberg PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher backports if you have been pinged on this issue as soon as possible.

We thank you in advance for your help in ensuring a smooth Editor release for Beta 1. If you need support or unclear about timing or process, please feel free to comment on this post or reach out to editor tech release leads: myself or @youknowriad.


This post was co-authored by @youknowriad.

#core-editor

WordPress 6.5 release squad formation

Following up on the last call for volunteers, Iโ€™m pleased to announce the release squad for the upcoming WordPress 6.5 has been put together in collaboration with project leadership.

The release squad formation is as follows:

This release squad introduces an experimental Default Themes Lead role based on the need to update past default themes due to changes introduced in releases.

As a reminder, the next milestone is WordPress 6.5 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. 1, scheduled for February 13th. You can check the WordPress 6.5 Development Cycle page for a more comprehensive schedule.

Thanks, everybody, for volunteering for this and upcoming release squads! There are already a handful of volunteers for 6.6 and 6.7; this will help set up the 6.6 release squad as soon as 6.5 is launched. Those who volunteered as cohorts, would like to learn the ropes for future releases, or follow the process in general, are welcome to join us in the #6-5-release-leads Slack channel.

Letโ€™s work together on yet another successful WordPress release!


Thanks to @chanthaboune and @cbringmann for collaborating in the squad formation and reviewing the post.

#6-5

Phase 3 Media Meeting: February 7, 2024

Date and time: February 7, 2024 at 24:00 UTC
Location: #core-media
Duration: 1:00 hr

The Media Component team is coordinating a meeting with the Editor team and other interested stakeholders to work on planning for the proposed Phase 3 Media Library. There are a few issues already open about the Media Library proposal, but this major development depends on close coordination between the Media and Editor teams to work effectively together.

In a recent Media Component meeting it was suggested that there should be a dedicated meeting time to kick off a round table discussion about some of the opportunities and challenges ahead in the development of Phase 3. The Media Component Maintainers hope to find areas of focus where contributors can lean in to align efforts with folks working on Phase 3.

In previous meetings the team has gone through the backlog of over 600 issues and categorized tickets as phase-3-media-triage for discussion around how Phase 3 could potentially solve these tickets alongside a rebuild of the Media Library. Some of these tickets are an opportunity to change lower level issues like db structure, but the redesign is a good time to address these possibilities.

Relevant Pull Requests, Issues, and Posts:

Phase 3: Collaboration > Media Library

PR Dataview: media view

Proposed meeting agenda:

  1. Introductions
  2. Brief presentation on the goals and vision of Phase 3 redesign for the Media Library
  3. 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
  4. Agree on communication channels and checkpoints for regular updates
  5. Review of Phase-3-Triage Tickets

A more detailed agenda will be published prior to the meeting.

If you would like to join this meeting please join the #core-media channel February 7, 2024 at 24:00 UTC. This time seems to align with most of the world as a decent hour to meet for stakeholders and folks active in Media.


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, #media, #media-library, #meeting, #phase-3

Whatโ€™s new in Gutenberg 17.5? (17 January 2024)

โ€œWhatโ€™s new 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/โ€ฆโ€ posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, hereโ€™s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).

Gutenberg 17.5 has been released and is available for download!

Table of Contents

  1. Editor Unification
  2. Gallery Block: Random Order Setting
  3. Other Notable Highlights
  4. Changelog
  5. First time contributors
  6. Contributors

Editor Unification

The editor unification project is working to combine the Post Editor and the Site Editor into one unified editor. This release brings that goal closer by combining many of the preferences for these two editors into one shared preferences panel.

In #57477 we added a new setting to the Gallery block which allows you to give your gallery images a random order. This feature was available in the gallery shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site., but not in the gallery block, until now!

Other Notable Highlights

  • Post Featured ImageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts.: Add a useFirstImageFromPost attribute. (56573)
  • Add drag cursor to draggable list items. (57493)
  • Font Library: Add progress-bar while uploading font assets. (57463)

Changelog

Full changelog available

Enhancements

Editor Unification

  • Editor: Add the show most used blocks preference to the site editor. (57637)
  • Editor: Migrate and unify the panel preferences. (57529)
  • Editor: Unify context text cursor preference. (57479)
  • Editor: Unify list view open preference. (57504)
  • Editor: Unify right click override preference. (57468)
  • Editor: Unify show icon labels preference. (57480)
  • Editor: Unify spotlight mode preference. (57533)
  • Editor: Unify the distraction free preference. (57590)
  • Editor: Unify the show block breadcrumbs preference. (57506)
  • Editor: Unify the top toolbar preference. (57531)

Components

  • Components: Replace TabPanel with Tabs in inline color picker. (57292
  • Add compact size variant to InputControl-based components. (57398)
  • BaseControl: Connect to context system. (57408)
  • Replace TabPanel with Tabs in the Style Book. (57287)
  • Tooltip: Improve tests. (57345)
  • Update @ariakit/reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org to v0.3.12 and @ariakit/test to v0.3.7. (57547)

Font Library

  • Font Library: Remove โ€œhas_font_mime_typeโ€ function. (57364)
  • Font Library: Update font uninstall modal text. (57368)
  • Font Library: Add progress-bar while uploading font assets. (57463)
  • Font Library: Singularize install font families endpoint. (57569)
  • Font Library: Unregister font collection. (54701)

Site Editor

  • Add Template Modal: Update scroll related layout. (57617)
  • Components: Replace TabPanel with Tabs in the Font Library Modal. (57181)

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

  • Implement wp_initial_state(). (57556)
  • Server directive processing: Stop processing non-interactive blocks. (56302)
  • Interactive template: Use viewModule. (57712)
  • Navigation Block: Use dom.focus for focus control. (57362)

Site Editor

  • Site editor: Add padding to entity save panel headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitorโ€™s opinion about your content and you/ your organizationโ€™s brand. It may also look different on different screen sizes.. (57471)
  • Site editor: Add margin to entity save panel header via a classname. (57473)

Block Library

  • Post Featured Image: Add a useFirstImageFromPost attribute. (56573)
  • Gallery Block: Add random order setting. (57477)
  • Image Block: Change upload icon label. (57704)

Bug Fixes

  • Avoid using a memoized selector without dependencies. (57257)
  • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Data: Pass the โ€˜optionsโ€™ argument to data action shortcuts. (57383)
  • Preferences: Update accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both โ€œdirect accessโ€ (i.e. unassisted) and โ€œindirect accessโ€ meaning compatibility with a personโ€™s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) scope to โ€œcoreโ€. (57563)

Block Editor

  • Fix Link UIUI User interface displaying out of sync results. (57522)
  • Give iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the userโ€™s browser. fallback background color. (57330)
  • Rich text: Add HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. string methods to RichTextData. (57322)

Block Library

  • Footnotes: Fix wrong link when adding more than 9 footnotes. (57599)
  • Table: Remove unnecessary margin override in editor styles. (57699)
  • Template Part block: Fix template part path arg missing from actions. (56790)

Components

  • DuotonePicker: Fix top margin when no duotone options. (57489)
  • NavigatorProvider: Exclude size value from contain CSSCSS Cascading Style Sheets. rule. (57498)
  • Snackbar: Fix icon positioning. (57377)

Patterns

  • Pattern Overrides: Add template-lock: All to pattern inner blocks to prevent deletion/insertion. (57661)
  • Refactor the findOrCreate term method. (57655)
  • Edit source pattern in focus mode in post and site editors. (57036)

Site Editor

  • Make sure comamnd palette toggle does not disappear while being clicked. (57420)
  • Reinstate iframe CSS for editor canvas container. (57503)

Global Styles

  • Use is-layout pattern on layout generated classname. (57564)
  • Global styles revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.: Add individual headings translations, update tests. (57472)
  • Global style revisions: Move change summary code and tests to block editor package. (57411)
  • Reduce specificity of block style variation selectors. (57659)
  • Background image block support: Add tests for size and repeat output. (57474)

Post Editor

  • Fix Template preview menu item accessibility. (57456)
  • Fullscreen mode description: Use full text instead of abbreviation. (57518)
  • Improve pre-publish checks naming consistency. (57019)
  • Make the Replace featured image button perceivable by assistive technologies. (57453)

Components

  • Label the HeightControl. (57683)
  • NumberControl: Make increment and decrement buttons keyboard accessible. (57402)

Block Tools

  • Update the position of the patterns tab in the inserter menu. (55688)
  • Use full text instead of abbreviation for min height setting. (57680)
  • ResizableEditor: Fix tab order for resize handles. (57475)
  • Keep Lock button it in the toolbar until unmounted. (57229)
  • Custom fieldCustom Field Custom Field, also referred to as post meta, is a feature in WordPress. It allows users to add additional information when writing a post, eg contributorsโ€™ names, auth. WordPress stores this information as metadata. Users can display this meta data by using template tags in their WordPress themes. connections: Better description on Experiments page. (57501)

Performance

Block Library

  • File: Remove โ€˜block-editorโ€™ store subscription. (57511)
  • Remove store subscriptions from Audio and Video blocks. (57449)
  • Site Logo: Remove unnecessary โ€˜block-editorโ€™ store subscription. (57513)
  • Send numerical post id when uploading image. (57388)
  • PostFeaturedImage: Remove unnecessary โ€˜block-editorโ€™ store subscription. (57554)

Experiments

Data Views

  • DataViews: Use DropdownMenuRadioItem component when possible. (57505)
  • Align icon size + placement in Patterns data view. (57548)
  • DataViews: Add duplicate pattern action in patterns page. (57592)
  • DataViews: Add duplicate template pattern action. (57638)
  • DataViews: Add footer to Pages sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (57690)
  • DataViews: Add new page button in Pages. (57685)
  • DataViews: Add sync 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. in patterns page. (57532)
  • DataViews: Consolidate CSS selectors naming schema. (57651)
  • DataViews: Fallback to (no title) is thereโ€™s no rendered title. (57434)
  • DataViews: Hide actions menu upon selecting a layout. (57418)
  • DataViews: Make fields dependant on view.type. (57450)
  • DataViews: Memoize onSetSelection. (57458)
  • DataViews: Prevent unnecessary re-renders of Pagination. (57454)
  • DataViews: Prevent unnecessary re-renders. (57452)
  • DataViews: Update names for DropdownMenuRadioItemCustom. (57416)
  • DataViews: Use i18n._x to clarify term โ€œDuplicateโ€. (57686)
  • DataViews: Use in patterns page. (57333)
  • Dataview: Change the stacking order of table header. (57565)
  • Dataviews: Add some client side data handling utils. (57488)
  • Make title display in grid views consistent. (57553)
  • Update Table layout design details. (57644)
  • Update pagination spacing in List layout. (57670)
  • Update table header gap. (57671)
  • [Dataviews] Table layout: Ensure focus is not lost on interaction. (57340)

Patterns

  • [Pattern Overrides] Fix duplication of inner blocks. (57538)
  • [Pattern overrides] Allow multiple attributes overrides. (57573)

Documentation

  • Add links to additional local dev tools in Block Developement Environment readme. (57682)
  • Add new section to the Quick Start Guide about wp-env. (57559)
  • Block JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. schema: Add renaming key to supports definition. (57373)
  • Break out the Curating the Editor Experience doc into its own How-to Guides section. (57289)
  • Change the slug for the theme.json doc to avoid conflicts. (57410)
  • Docs/tutorial: Fix opposite condition for content generation in render.php. (57445)
  • Docs: Fundamentals of Block Development โ€“ Static or Dynamic rendering of a block. (57250)
  • Docs: Update sample code to fix React warning error on Tutorial page. (57412)
  • Fix formatting issue due to incorrect link parsing in the Quick Start Guide. (57693)
  • Fix incorrect heading level in Editor curation documentation. (57409)
  • Fix two typos in tutorial.md. (57627)
  • Fix: Create block getting started links. (57551)
  • Improve the static vs dynamic rendering comment in the block tutorial. (57284)
  • Update copyright year to 2024 in license.md. (57481)
  • Update the โ€œBuild your first blockโ€ tutorial based on user feedback. (57403)
  • Update: Material design icons link. (57550)

Code Quality

  • Editor: Unify the DocumentTools component. (57214)
  • Make getLastFocus and setLastFocus private. (57612)
  • Remove deprecated behaviors syntax. (57165)
  • Avoid extra useMarkPersistent dispatch calls. (57435)
  • Clean up code editor CSS. (57519)
  • Combine selectors in โ€˜useTransformCommandsโ€™. (57424)

Block Library

  • Background image: Add has-background classname when background image is applied. (57495)
  • File: Remove unnecessary synchronization effect. (57585)
  • Navigation: Refactor mobile overlay breakpoints to JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.. (57520)
  • Search Block: Remove unused buttonBehavior attribute. (53467)

Patterns

  • Improve inserter pattern constants. (57570)
  • Remove duplicate setting for getPostLinkProps and prefer stable naming. (57535)
  • Rename patternBlock to patternPost. (57568)

Post Editor

  • Editor: Use hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. instead of HoCs in โ€˜PostVisibilityCheckโ€™. (57705)
  • Quality: Avoid React warning when changing rendering mode. (57413)

Block Editor

  • Editor: Unify the inserter sidebar. (57466)
  • Remove unused parameters from useOnBlockDrop. (57527)

List View

  • Editor: Unify the list view sidebar between the post and site editors. (57467)
  • Add drag cursor to draggable list items. (57493)

Tools

  • Dependency Extraction Webpack 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.: Use import for module externals. (57577)
  • DependencyExtractionWebpackPlugin: Add true shorthand for requestToExternalModule. (57593)
  • DependencyExtractionWebpackPlugin: Use module for wordpress/interactivity. (57602)
  • Fix webpack not setting environment.module true. (57714)
  • Modules: Load the import map polyfill when needed. (57256)
  • Blocks: Add handling for block.json viewModule. (57437)

Testing

  • Allowed Patterns end-to-end test โ€“ move tests that run with a subset of allowed blocks into a group. (57496)
  • Clean up end-to-end tests package. (57575)
  • Fix flaky โ€˜Post publish buttonโ€™ end-to-end test. (57407)
  • Migrate โ€˜allowed patternsโ€™ end-to-end tests to Playwright. (57399)
  • Migrate โ€˜block editor keyboard shortcutsโ€™ end-to-end tests to Playwright. (57422)
  • Migrate โ€˜core settingsโ€™ end-to-end tests to Playwright. (57581)
  • Migrate โ€˜datepickerโ€™ end-to-end tests to Playwright. (57545)
  • Migrate โ€˜dropdown menuโ€™ end-to-end tests to Playwright. (57663)
  • Migrate โ€˜editor modesโ€™ end-to-end tests to Playwright. (57574)
  • Migrate โ€˜invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. blocksโ€™ end-to-end tests to Playwright. (57508)
  • Migrate โ€˜nuxโ€™ end-to-end tests to Playwright. (57542)
  • Migrate โ€˜preferencesโ€™ end-to-end tests to Playwright. (57446)
  • Migrate โ€˜publishingโ€™ end-to-end tests to Playwright. (57521)
  • Migrate โ€˜schedulingโ€™ end-to-end tests to Playwright. (57539)
  • Migrate โ€˜sidebarโ€™ end-to-end tests to Playwright. (57448)
  • Migrate โ€˜taxonomiesโ€™ end-to-end tests to Playwright. (57662)
  • Migrate editing-widgets to Playwright. (57483)
  • Migrate remaining โ€˜publish panelโ€™ end-to-end tests to Playwright. (57432)
  • Update โ€˜missing blockโ€™ end-to-end tests to use the โ€˜setContentโ€™ helper. (57509)

Build Tooling

  • Group 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 by the repository owner. https://github.com/ Action Dependabot updates. (57591)
  • WP Scripts: Build block.json viewModule. (57461)
  • Dependency Extraction Webpack Plugin: Add Module support. (57199)

First time contributors

The following PRs were merged by first time contributors:

  • @HrithikDalal: Font Library: Update font uninstall modal text. (57368)
  • @muhme: Fix two typos in tutorial.md. (57627)

Contributors

The following contributors merged PRs in this release:

@afercia @andrewhayward @andrewserong @atachibana @c4rl0sbr4v0 @carolinan @chad1008 @ciampo @DAreRodz @dcalhoun @derekblank @desrosj @ellatrix @fai-sal @fluiddot @geriux @getdave @glendaviesnz @gziolo @hbhalodia @HrithikDalal @jameskoster @jeryj @jorgefilipecosta @jsnajdr @juanmaguitar @kevin940726 @Mamaduka @matiasbenedetto @mcsf @michalczaplinski @mirka @muhme @ndiego @ntsekouras @oandregal @ockham @ramonjd @scruffian @sirreal @Soean @t-hamano @talldan @tellthemachines @youknowriad

#block-editor, #core-editor, #gutenberg, #gutenberg-new

Hallway Hangout Letโ€™s explore WordPress 6.5 Recap

This is a summary of a Hallway Hangout dedicated to exploring WordPress 6.5 and first announced in late November 2023. Thank you to @saxonafletcher and @isabel_brison for helping with the demos! This hallway hangout doesnโ€™t cover everything in the Roadmap to 6.5 post but goes through many of the features that are ready for and needing feedback. Please help test!

Video Recording:

Thank you to the 18 or so folks who joined at various points.ย 

Demos:

The following items were demoed in various ways, sometimes on live sites, sometimes as prototypes in figma, and sometimes in a draft PR state.ย 

Discussion:

Desire for a separate metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. 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). for pattern overridesย 

Question from Jorbin: โ€œDo pattern overrides include capability checks so that it is possible for someone to be able to use the pattern and the overrides without editing the pattern as a whole? What I am thinking is having a meta capability for managing the pattern and then a separate meta cap for doing overrides.โ€

This was underscored by folks on the call and a follow up 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 by the repository owner. https://github.com/ issue will be opened to pursue this further.ย 

When is something ready to ship for a release?

A discussion broke out both in the chat and on the call itself around when we deem something ready to ship, particularly as it related to pattern overrides. Right now, pattern overrides currently only work with paragraph blocks and need the ability added on a 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. by block basis due to a limitation with the block bindings 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 are plans to expand to buttons, heading, and images. This is a great chance to give feedback, share use cases, and dig in to find limitations. Generally, itโ€™s common to ship an initial state of something and iterate in future releases but we need to ensure that initial state is still properly valuable for users.ย 

Where can I learn more about block connections?

On the potential of block connections

Towards the end of the call, we had a discussion about the UXUX User experience of block connections (what will and wonโ€™t matter to a user), how useful the feature will be, what to show when thereโ€™s no value, and whether a connection can be defined by a theme. For example, you could have a theme that supports a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party.โ€™s post meta and then the theme already makes these connections to provide a seamless experience for the user to then edit as theyโ€™d like. This is definitely in line with where this work is headed.ย 

โ€œThinking about a price for example. We want to store it in meta so that we can display it both in a query 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 and on the single post in different locations. But to a user it shouldnโ€™t matter at all. For them editing it inline on the page template should feel as if it all just is in content.โ€ โ€“ Fabian in the chat.ย 

Next steps:

@annezazu will do the following:

  • Open an issue around 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). for overrides and having a separate meta capability for that.ย 
  • Update testing post to include some of the items discussed and demoed here that need more feedback.
  • Recap feedback about block connections with contributors.

#6-5, #hallway-hangout