X-post: WordPress End of Year Celebrations!

X-comment from +make.wordpress.org/project: Comment on WordPress End of Year Celebrations!

Call to action: 2024 major releases call for volunteers

Based on the previous proposal around the 2024 Major Release Timing, itโ€™s time to call for volunteers. Since there are release dates for the upcoming three releases, letโ€™s formalize the 6.5 release squad and begin shaping the other two squads of the year ahead. Knowing who will participate in 6.6 and 6.7 in advance will let folks shadow previous releases and allow for better preparation and mentoring.

WordPress 6.5 Schedule

MilestoneDate
Alpha (trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. open for 6.5 release)October 17, 2023
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. 1February 13, 2024
Beta 2February 20, 2024
Beta 3February 27, 2024
Release Candidaterelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). 1March 5, 2024
Release Candidate 2March 12, 2024
Release Candidate 3March 19, 2024
Dry RunMarch 25, 2024
WordPress 6.5 General ReleaseMarch 26, 2024

WordPress 6.5 call for volunteers

The WordPress 6.5 release squad is still looking for diverse volunteers in every role.

Ultimately, each volunteer will only participate in a single role, and each role aims to have two to three people; past releases have shown that while itโ€™s beneficial to share the responsibility with other people, there are diminishing returns when there are too many folks involved.

The following names are not assignments, only the summary of folks who have volunteered so far:

  • Release Coordinator: Hรฉctor Prieto
  • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Tech Lead: Pascal Birchler*
  • Editor Tech Lead:ย  Dave Smith
  • Core Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. Lead: Rajin Sharwar
  • Editor Triage Lead: Anne McCarthy*
  • Documentation Lead:
  • Marketing & Communications Lead:
  • Test Lead: Anne McCarthy*, Vipul Ghori, Patrick
  • Design Lead:
  • Performance Lead: Pascal Birchler*

(*) People who have volunteered for more than one role. Their participation will be adjusted to a single focus depending on the release squadโ€™s needs.

As of today, every role has openings; if you are interested in participating, please leave a comment below by January 12th.

WordPress 6.6 and 6.7 timeline

These are the updated release dates for WordPress 6.6 and 6.7:

  • WordPress 6.6 Beta 1 is planned for June 4, and the general release for July 16 (no changes since the original proposal).
  • WordPress 6.7 Beta 1 is planned for October 1, and the general release for November 12. The dates have been pushed one week to consider WordCamp US 2024 (September 17-20) and give some breathing room in between.

Please bear in mind these dates are not fixed and might change as the year progresses. This early planning aims to provide clarity around the release timeline and shape the upcoming release squads in advance.

WordPress 6.6 and 6.7 call for volunteers

Since we have a rough idea of the WordPress 6.6 and 6.7 dates, letโ€™s start shaping their release squads. Please volunteer in the comments below if you would like to participate in these releases, being mindful of your availability throughout the year before committing. Needless to say, if your availability changes later due to unforeseen circumstances, adjustments to the squads can be made.

Thanks to this early planning, we will experiment with starting the next default theme as early as 6.6, so if you are interested in working on the successor of the amazing Twenty Twenty-Four, please raise your hand in the comments.


Thanks to @cbringmann and @chanthaboune for reviewing this post.

#planning #6-5 #6-6 #6-7

Dev Chat seasonal break, highlighted posts December 2023

(Updated post Dec 23, 2023 with volunteer call for 2024 releases; Dec 28, to add โ€˜WordPress end of year postโ€™)

It was agreed at the Dev Chat that there would be a break for a few weeks, from and including December 20, 2023, and restarting on January 10, 2024. During this period, I will be publishing a list of new posts and reminders that come up in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. If there are any others, please do add them in the comments.

Highlighted posts

End of Year WordPress celebration post from @chanthaboune, with some of the highlights by Make team.

Volunteer call for 2024 WordPress releases (December 22, 2023) โ€“ thanks to @priethor for the update, which also includes the proposed schedule for releases. If you are interested, please leave a comment on that post by January 12, 2024.

Whatโ€™s new in Gutenberg 17.3? (December 20, 2023). 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.3 has been released and isย available for download! This update incorporates numerous enhancements,ย 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.ย fixes, improvements in performance andย 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), and ongoing development of Phase 3 features.

Overflow questions from the State of the Word 2023 post.

Reminder: core team rep nominations and elections. Note: The nomination period was extended until January 12, 2024 at 23:59 UTC, to give more time forย Core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.orgย to consider and nominate other contributors and/or themselves.

Proposal to add company icons to sponsored contributors @pbiron is suggesting this approach to encourage companies to support WordPress more and so user can see where the support is coming from.

Updating WordPress to use more modern versions of Node.js/npm: Part 2 @desrosj sets out the actions contributors to core will need to take to upgrade the version of Node.js installed locally to be able toย contribute to WordPress throughย wordpress-developย orย WordPress/Gutenberg.

WordPress performance impact on Core Web Vitals in 2023, December 19, 2023

From the Developer Blogblog (versus network, site), Extending plugins using custom Slot Fills. Other new posts on the Blog.

Call for volunteers for the Dev Blog โ€“ posts in need of writers and reviewers are listed in the last Dev Blog editorial meeting from December 14, 2023.

For information, in the #fse-outreach-experiment, there was an opportunity for developers to share their theme building workflow with contributors working on theme tooling. Similar opportunities will be promoted in the future. Join the channel to keep up to date with developments.

Bug scrubs and tickets

Last bug scrub link in Slack

New bug scrubs will be added to the Bug Scrub schedule for 6.5. Could you help run a scrub or have tickets you would like to progress? Find out more about bug gardening in the Core Handbook.

@pbiron would like people to carry out unit tests that he is adding for TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets. By mid-December, there were nearly 100 ready to go. Pick up the testing challenge by following this Trac query

Update from core-editor

Props to @annezazu for preparing this update.

For information

6.5 related updates

Next major WordPress release: 6.5

For information, existing links:

Next meeting

The next dev chat will be on January 10, 2024 at 20:00 UTC.

Catch up with Dev Chats and summaries from other core meetings at this link.

#dev-chat, #summary

Updating WordPress to use more modern versions of Node.js/npm: Part 2

As of [57212] in the wordpress-develop SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. repository and 415ecc9 in 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, the versions of Node.js and npm required for WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. development are now 20.x and 10.x.

Required action by contributors

In order to continue contributing to WordPress through wordpress-develop or WordPress/Gutenberg, youโ€™ll need to upgrade the version of Node.js installed on your machine to one thatโ€™s greater than or equal to 20.10.0 (currently the most recent generally available version 20.x version). This should also update npm to the correct, expected version appropriately (10.2.3 or higher is required).

Using nvm (Node Version Manager) is the recommended and most common way to change the version of Node.js you are running. Both wordpress-develop and the Gutenberg repositories have an .nvmrc file specifying the desired version. Running nvm install within your checkoutโ€™s directory will automatically install the latest version that falls within the defined constraints.

If you need further guidance on how to install or use Node.js, npm, or nvm, there is a great tutorial explaining in great detail on learn.wordpress.org.

Note: If you have any open pull requests, you will likely need to update your 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". to include these changes to ensure they work and are tested properly.

How does Node.js versioning work?

Before diving in to some of the background for this change, here is a brief overview of how the versioning for Node.js releases works:

  • Excluding the main branch (which is always considered unstable), there are 3 states for versions: current, active (LTS or long term support), and maintenance.
  • Major versions (18.x, 19.x, etc.) are released every April and October.
  • October releases (always odd numbered) have a support life of 8 months: 6 in current state, 2 in maintenance. They enter maintenance state in April when the next major version is published.
  • April releases (always even numbered) are converted to active LTS in October after 6 months as the the current version. They remain in active LTS state for 12 months before moving to maintenance for 18 additional months.

You can read more about this on the projectโ€™s Releases page, or the projectโ€™s README file on GitHub.

Why Node.js 20 and not 18 or 21?

While itโ€™s always the preference to use the latest version of any software, thatโ€™s not always feasible. When upgrading, the team always looks to upgrade to the newest possible version at the time. Initially 18.x was targeted for the next update. However, version 20.x is now the current active LTS version. While 18.x is still in maintenance mode and will not reach end of life (EOL) until April of 2025, 20.x will not reach EOL until April 2026. Testing revealed that there were no blockers for updating to 20.x, so this was determined to be the best landing spot at this time.

While itโ€™s true that 21.x is newer and the current version of Node.js, 20.x is the current active LTS version. Because odd versions of Node.js are only supported for 8 months, the project does not typically utilize them.

Can I use Node.js 21 if I want?

Yes! You are free to use any version of Node.js over 20.10.0. But 20.x will always be used to perform any official processing and building of the two projects.

However, the Gutenberg repository will now run some tests against newer versions of Node.js as they become available with the hope that problems can be caught earlier, reducing the level of effort required to update Node.js version requirements in the future.

If you discover a problem working with the wordpress-develop or gutenberg repositories on Node.js 21.x, please open a ticketticket Created for both bug reports and feature development on the bug tracker. in the appropriate location so it can be investigated.

How does this work? There is an upper limit defined for the npm version.

The upper limit for the npm version allowed has been removed. This was previously in place because a new format for the package-lock.json file was introduced in npm 7. While the new and old formats were both forward and backward compatible, running npm install using 6 and 7 caused the format to change back and forth. There are currently no known issues that would cause similar problems, so the limit has been removed to allow contributors to use Node.js 21.x if desired, and allow for testing newer versions.

If new compatibility issues are discovered, adding a new upper limit can be explored at that time.

What about the other branches of WordPress Core?

The version of Node.js used by all branches of WordPress is currently 14.x with two exceptions: trunk and 6.4. Before today, both were using 16.x. To limit the number of different versions used throughout Core, the 6.4 branch has also been updated to use 20.x.

As a reminder, only the most recent version of WordPress is actively supported (currently 6.4.x).

Though security patches are occasionally backported to WordPress 4.1.x, this is not guaranteed and is only done as a courtesy. The build tools in these older branches were recently updated to be more consistent and reliable. The level of effort to update, test, and commit the changes required to support Node.js 20.x to all 24+ branches that can potentially receive a security update is very high and is not a good use of time until itโ€™s absolutely necessary.

Because of this, there are currently no plans to update older branches to use Node.js 20.x at this time.

Will the required version be updated to 22.x when itโ€™s released in April 2024?

Maybe. This will be evaluated to determine if the update makes sense for the project when the time comes.

Where can I learn more?

Here is a list of locations where discussions related to these changes took place:

This change will likely require some documentation and handbook updates. If you notice any adjustments that need to be made, please do point them out in the appropriate locations so that they can be corrected!

Props @jorbin for pre-publish review.

Whatโ€™s new in Gutenberg 17.3? (20 December)

โ€œ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.3 has been released and is available for download!

This update incorporates numerous enhancements, 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. fixes, improvements in performance and 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), and ongoing development of Phase 3 features.

  1. Summary of changes in global styles revision history
  2. Updated preferences panel
  3. Integration of Gravatar Service for Social Icons
  4. Other Notable Highlights
  5. Changelog
  6. First time contributors
  7. Contributors

Summary of changes in global styles revision history

A brief summary of the revision change set in the global styles and now offers a concise overview for enhanced visibility. (#56577)

Updated preferences panel

An improved organization of the preferences modal, with introduction of new panels for Appearance and Accessibility settings. (#56481)

Integration of GravatarGravatar Is an acronym for Globally Recognized Avatar. It is the avatar system managed by WordPress.com, and used within the WordPress software. https://gravatar.com Service for Social Icons

A new social icon for the Gravatar service in the social icons 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.. Gravatar, widely utilized across various WordPress platforms, provides profile pages that allow individuals to list their web presence. (#56544)

Other Notable Highlights

  • Introduces the ability to adjust the dimensions (margin and padding) of individual list-item blocks. #55874
  • Unified post editor with template and post-only editing modes. (#56671)
  • Start using modules in the interactive create-block template. (56694)

Changelog

Bug Fixes

  • (edit-site)(use-init-edited-entity-from-url) Safely access toString() on siteDataโ€˜s page_on_front. (57035)

Components

  • Fix form token field suggestion list reopening after blurring the input. (57002)

Contributors

The following contributors merged PRs in this release:

@fullofcaffeine @talldan
= 17.3.0-rc.1 =

Enhancements

  • Components: Replace TabPanel with Tabs in the editorโ€™s ColorPanel. (56878)
  • Editor: Move the edit template blocks notification to editor package. (56901)
  • Editor: Unify the preview dropdown between post and site editors. (56921)
  • Editor: Use the same PostTemplatePanel between post and site editors. (56817)
  • Tabs: Replace id with new tabId prop. (56883)
  • Update main toolbar buttons to all be compact. (56635, 56729)
  • Update preferences organization. (56481)

Components

  • FocalPointPicker with __next40pxDefaultSize. (56021)
  • Font Library: Improve usability of font variant selection. (56158)
  • Tabs: Sync browser focus to selected tab in controlled mode. (56658)
  • Use consistent styling for duotone panels. (56801)
  • BorderControl: Fix button styles. (56730)
  • DimensionControl: Add __next40pxDefaultSize prop. (56805)
  • FontSizePicker: Add opt-in prop for 40px default size. (56804)
  • QueryControls: Add opt-in prop for 40px default size. (56576)

Block Library

  • Control dimensions (margin and padding) of the list-item block. (55874)
  • Consistent default typography controls across blocks. (55208)
  • Social Icons: Add Gravatar service. (56544)
  • Tweak table block placeholder with __next40pxDefaultSize props. (56935)

Site Editor

  • Merge the post only mode and the post editor. (56671)
  • Site Editor 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.: Add โ€œAreasโ€ details panel to all templates and update icon. (55677)

Block Editor

  • Allow dragging between adjacent container blocks based on a threshold. (56466)
  • Components: Replace TabPanel with Tabs in the editorโ€™s ColorGradientControl. (56351)

Data Views

  • Update data view layout. (56786)

Layout

  • Match the front end layout classname in the editor. (56774)

Global Styles

  • Global style 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.: Show change summary on selected item. (56577)

Icons

  • Another round of HiDPI icon tweaks. (56532)

Media

  • Update external images panel in post publish sidebar. (55524)

Post Editor

  • Implement Tabs in editor settings. (55360)

Bug Fixes

  • Create-block-interactive-template: Add all files to the generated 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. zip. (56943)
  • Create-block-interactive-template: Prevent crash when Gutenberg plugin is not installed. (56941)
  • Fix end-to-end test: Update how we find the template title to match markup changes. (56992)
  • Fix: Fatal php error if a template was created by an author that was deleted. (56990)
  • Fix: PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 8.1 deprecated warning strpos(). (56171)
  • Fix: Use span on template list titles. (56955)
  • Font Library: Add font family and font face preview keys to schema. (56793)
  • Remove unnecessary CSSCSS Cascading Style Sheets. for shrinking central 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. area. (56220)
  • Revert format types hook refactor. (56859)
  • Show template center UIUI User interface when no block is selected. (56217)
  • setImmutably: Donโ€™t clone all objects. (56612)

Block Library

  • Fix error when using a navigation block that returns an empty fallback result. (56629)
  • Fixture Tests: Correctly generate fixture files for form-related blocks. (56719)
  • Image: Fix resetting behaviour for alt image text. (56809)
  • Social Links Block: Prevent Theme Styles Distorting Size. (56301)
  • Update image block save to only save align none class. (56449)

Components

  • DropdownMenuV2Ariakit: Prevent prefix collapsing if all radios or checkboxes are unselected. (56720)
  • FormToggle: Do not use โ€œ/โ€ math operator. (56672)
  • PaletteEdit: Temporary custom gradient not saving. (56896)
  • ToggleGroupControl: ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org correctly to external controlled updates. (56678)

Block Editor

  • Apply __next40pxDefaultSize to TextControl and Button component in renaming UIs. (56933)
  • Pattern inserter: Fix Broken preview layout. (56814)
  • Patterns: Keep synced pattern when added via drag and drop. (56924)

Design Tools

  • Background image support: Fix duplicate output of styling rules. (56997)
  • Fix sticky position in classic themes with appearance tools support. (56743)

Post Editor

  • Editor Canvas: Fix animation when device type changes. (56970)
  • Editor: Fix display of edit template blocks notification. (56978)

Site Editor

  • Fix active edited post. (56863)
  • Show back button when editing navigation and template area in-place with no URLURL A specific web address of a website or web page on the Internet, such as a websiteโ€™s URL www.wordpress.org params. (56741)

Typography

  • Fix order of typography sizes and families. (56659)
  • Font Library: Fix font uninstallation. (56762)
  • Navigation editor: Fix content mode. (56856)

Patterns

  • Fix top position and height of Pattern Modal Sidebar. (56787)

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.

  • Start using modules in the interactive create-block template. (56694)

Layout

  • Fix input not showing when switching to โ€œFixedโ€ width. (56660)

Data Views

  • Align data view icon usage. (56602)

Block Styles

  • Consolidate and resolve display issues between InserterPreviewPanel and BlockStylesPreviewPanel. (56011)

Inspector Controls

  • Decode some characters if used in taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. name so itโ€™s displayed correctly in 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 filters. (50376)

Accessibility

Data Views

  • Add scroll padding to dataviews container. (56946)
  • Adding aria-sort to table view headers. (56860)
  • Fix: Use span instead of heading for the template titles. (56785)

Post Editor

  • Avoid to show unnecessary Tooltip for the Post Schedule button. (56759)

Block Editor

  • Increase right padding of URL field to take the Submit button into account. (56685)

Site Editor

  • Shorter screen reader announcement after changing pages. (56339)

Components

  • Use tooltip for the Timezone only when necessary. (56214)

Performance

  • Block editor: Make all BlockEdit 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. pure. (56813)
  • Block editor: Remove 4 useSelect in favour of context. (56915)
  • Block editor: hooks: Avoid BlockEdit 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. for content locking UI. (56957)
  • Block editor: hooks: Share block settings. (56852)
  • Keycodes: Avoid regex for capital case. (56822)
  • Measure typing without inspector. (56753)
  • Media upload component: Lazy mount. (56958)
  • Paragraph: Store subscription for selected block only. (56967)
  • Perf: Reopen inspector for remaining tests. (56780)
  • useBlockProps: Combine store subscriptions. (56847)

Block Editor

  • Improve opening inserter in post editor. (57006)
  • hooks: Subscribe only to relevant attributes. (56783)

Site Editor

  • Fix typing performance by not rendering sidebar. (56927)

Components

  • ToolsPanel: Fix deregister/register on type. (56770)

Modules API

  • Load the import map polyfill only when there is an import map. (56699)

Post Editor

  • Editor: Avoid double parsing content in โ€˜getSuggestedPostFormatโ€™ selelector. (56679)

Experiments

Data Views

  • DataViews: Add story. (56761)
  • DataViews: Add support for NOT IN operator in filter. (56479)
  • DataViews: Centralize the view definition and rename list to table. (56693)
  • DataViews: Do not export strings constants. (56754)
  • DataViews: Export the view components as defaults. (56677)
  • DataViews: Fix dropdown menu actions with modal. (56760)
  • DataViews: Hide pagination if we have only one page. (56948)
  • DataViews: Implement NOT IN operator for author filter in templates. (56777)
  • DataViews: Iterate on list view. (56746)
  • DataViews: Make Actions styles the same as any other column header. (56654)
  • DataViews: Make mediaField not hidable. (56643)
  • DataViews: Rename view components. (56709)
  • DataViews: Render data async conditionally. (56851)
  • DataViews: Set proper role for AddFilterโ€™s items. (56714)
  • DataViews: Set proper semantics for dropdown items. (56676)
  • DataViews: Update sorting semantics. (56717)
  • Dataviews: Extract to dedicated bundled package. (56721)

Block Validation/Deprecation

  • Input Field Block: Use useblockProps hook in save function. (56507)

Patterns

  • Implement partially synced patterns behind an experimental flag. (56235)

Documentation

  • Add the nested blocks chapter to the platform documentation. (56689)
  • Components: Update CHANGELOG.md. (56960)
  • Doc: Search Control โ€“ add Storybook link. (56815)
  • Doc: Spinner โ€“ add Storybook link. (56818)
  • Docs: Add storybook link for spinner component. (56953)
  • Docs: Fix {% end %} tab position to show the text. (56735)
  • Docs: Fundamentals of Block Development โ€“ Minor fixes โ€“ registration-of-a-block. (56731)
  • Docs: Fundamentals of Block Development โ€“ add links. (56700)
  • Docs: Fundamentals of Block Development โ€”- Small fixes for โ€œBlock wrapperโ€. (56651)
  • Link to Dashicons. (56872)
  • Platform Docs: Add trusted by section. (56749)
  • Revert โ€œDoc: Spinner โ€“ add Storybook linkโ€. (56913)
  • Update Getting Started Guide for Gutenberg 17.2. (56674)
  • Update InnerBlocks defaultblock doc usage. (56728)
  • Update formatting and fix grammar in the Block Editor Handbook readme. (56798)

Code Quality

  • Block editor: hooks: Avoid getEditWrapperProps. (56912)
  • Block lib: Use RichText.isEmpty where forgotten. (56726)
  • Block library: Reusable caption component util. (56606)
  • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. data revisions: Remove hardcoded supports constant. (56701)
  • Editor: Cleanup default editor mode handling. (56819)
  • Editor: Move the BlockCanvas component within the EditorCanvas component. (56850)
  • Editor: Move the device type state to the editor package. (56866)
  • Editor: Unify device preview styles. (56904)
  • Fix PHP linter failing. (56905)
  • Framework: Bundle the BlockTools component within BlockCanvas. (56996)
  • Move useDebouncedInput hook to wordpress/compose package. (56744)
  • Post Editor: Rely on the editor store for the template mode state. (56716)
  • Refactor . (56335)
  • Remove Block Tools BackCompat. (56874)
  • Site and Post Editor: Unify the DocumentBar component. (56778)
  • getValueFromObjectPath: Remove memize. (56711)

Block Editor

  • Donโ€™t render undefined classname in useBlockProps hook. (56923)
  • One hook to rule them all: Preparation for a block supports API. (56862)
  • RichText: Pass value to store. (43204)
  • hooks: Manage BlockListBlock filters in one place. (56875)

Global Styles

  • Command Palette: Use getRevisions instead of deprecated selector. (56738)
  • Global styles revisions: Remove PHP unit tests that are running in Core. (56492)

Components

  • Site editor: Do not use navigatorโ€™s internal classname. (56911)

Data Views

  • DataViews: Remove TanStack. (56873)

Tools

  • Env: Migrate to Compose V2. (51339)
  • Scripts: Fix CSS imports not minified. (56516)
  • wp-env: Make env-cwd option work on Windows. (56265)

Testing

  • Migrate โ€˜editor multi entity savingโ€™ end-to-end tests to Playwright. (56670)
  • Migrate โ€˜inner-blocks-locking-all-embedโ€™ end-to-end tests to Playwright. (56673)
  • Migrate โ€˜site editor exportโ€™ end-to-end tests to Playwright. (56675)
  • RN: Add watch mode for native tests. (56788)
  • Scripts: Enable skipping Playwright browser installation. (56594)
  • Tabs: Implement ariakit/test in unit tests. (56835)
  • CustomSelectControl: Add additional unit tests. (56575)

Copy

  • Copy/fix capitalization of WordPress. (56834)

Site Editor

  • Improve text and design of the block removal warnings. (56869)

Global Styles

  • Global styles welcome guide: Add a space between translated strings. (56839)

Block Library

  • Simplify page list edit warning. (56829)

Patterns

  • End pattern page descriptions with a period. (56828)

First time contributors

The following PRs were merged by first time contributors:

Contributors

The following contributors merged PRs in this release:

@afercia @ajlende @alexstine @andrewhayward @andrewserong @apeatling @atachibana @Aurorum @benoitchantre @bph @brookewp @chad1008 @ciampo @colorful-tones @dcalhoun @derekblank @draganescu @ellatrix @fluiddot @geriux @getdave @jameskoster @jasmussen @jeherve @jeryj @jffng @jonathanbossenger @jorgefilipecosta @jsnajdr @juanmaguitar @kevin940726 @kmanijak @lithrel @luisherranz @Mamaduka @matiasbenedetto @mikachan @miminari @mtias @ndiego @nk-o @ntsekouras @oandregal @ramonjd @richtabor @scruffian @SiobhyB @t-hamano @talldan @taylorgorman @tellthemachines @tyxla @valerogarte @WunderBart @youknowriad

Many thanks to @mikachan for helping out to publish the plugin, @jameskoster for providing graphics for this post, @mikachan and @vcanales for reviewing the draft of this post.

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

Proposal: Add company icons to sponsored contributors on about page

To do this will need to ask for small icon (eg. favicon) or fetch
some aria-hidden markup and hover title etc.

I am suggesting this to encourage companies to support WP more and so user can see where the support is coming from.

Thoughts

This was prematurely published and a new/updated proposal will be coming soon
and I have been ask to expand this

Performance Chat Summary: 19 December 2023

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

Announcements

Priority Projects

Server Response Time

Link to roadmap projects and link to the GitHub project board

Contributors: @joemcgill @swissspidy @thekt12 @mukesh27 @pereirinha

Database Optimization

Link to roadmap projects and link to the GitHub project board

Contributors: @mukesh27 @thekt12

  • No updates this week

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

Link to roadmap project and link to the GitHub project board

Contributors: @mukesh27 @flixos90 @westonruter

  • @flixos90 No real update, just that Iโ€™m currently experimenting with the 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., specifically to use it in classic default themes to replace more manual custom JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.. Partly to familiarize myself with the API, partly for a first prototype of something weย couldย potentially do in the future. Should have a first draft PR up for later today. Really for reference more than anything

Images

Link to roadmap projects and link to the GitHub project board

Contributors: @flixos90 @adamsilverstein @joemcgill @pereirinha @westonruter

  • @joemcgill Last week I put togetherย a small experimentย to see how the new auto-sizes for lazy-loaded images feature is working now that itโ€™s being implemented in browsers. Based on that exploration, I put togetherย an initial module implementationย that can already be used for testing. I plan to update the PR this week.
    • Related โ€“ I also openedย a new issueย to discuss how we want to handle new modules once the unbundling project is complete. Feedback would be appreciated.

Measurement

Link to roadmap projects and link to the GitHub project board

Contributors: @adamsilverstein @joemcgill @mukesh27 @swissspidy @flixos90

  • No updates this week

Ecosystem Tools

Link to roadmap projects and link to the GitHub repo for 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

Contributors: @mukesh27 @swissspidy

  • @mukesh27 For the Plugin Check, I have been addressingย issue 342ย and have openedย PR 347, which is now ready for review and I also supported in code review process. Moreover, there is positive news that some community contributors are actively working on several issues and have raised corresponding PRs for them.ย 

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27

Open Floor

  • @desrosj I noticed that theย performance tests started failing in some older branchesย while working on some E2E test related changes. Well, it only seems to be happening for 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". currently. But Iโ€™m wondering if the needed conditions just havenโ€™t been met for the other branches.
    • @joemcgill Iโ€™m only seeing the latest commit fail according toย this list. Am I looking at the wrong thing?
    • @desrosj Thatโ€™s accurate. I was confusing the additional E2E failures with something (potentially) unrelated that Iโ€™ve fixed separately. #60095 is what I was working on. The step that is failing seems to be checking 6.1.1 for a baseline if Iโ€™m reading it correctly.
    • @joemcgill Iโ€™m going to try rerunning that one, since the same commit to the 6.3 branch worked fine.
    • @desrosj
    • FWIW, I committed the fix for 60095 in the 6.1 branch this morning, and this workflow was from yesterday. Maybe the re-run does not include changes for the other branch because they were not there when this change was made? Started aย manual runย for 6.4 to try and rule that out.

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

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

WordPress performance impact on Core Web Vitals in 2023

This post summarizes and highlights the impact that WordPress has had on Core Web Vitals (CWV) in the field in 2023, providing a metric-based retrospective at the end of the year.

TL;DR: The WordPress performance team and all WordPress contributors can be very proud of the accomplishments: The overall CWV passing rate across all WordPress sites has improved from 28.31% to 36.44% (+8.13%) on mobile devices and from 32.55% to 40.80% (+8.25%) on desktop devices. ๐ŸŽ‰

These improvements led to a visible increase of CWV passing rates even for the entire web. The performance team is currently discussing additional findings to define the focus for 2024 and is looking for further proposals and contributors for next year.

Note: This post is based on the slide deck used in a presentation for the WordPress performance year-end hallway hangout (also see recording). Feel free to review the deck as well as an alternative way to consume the numbers.

A few notes on CWV field metrics

Before looking at the 2023 metrics in more depth, a few things should be clarified.

The metrics shared in this post are exclusively field metrics. They are distinctively different from lab metrics, which are the metrics that have typically been shared in the WordPress release performance summary posts this year:

Lab metrics are benchmarks conducted on demand, typically as a synthetic A/B performance comparison. They provide an indication of whether/how a specific change is anticipated to impact performance. For example, for the lab metrics shared for the WordPress releases in the aforementioned posts, the load time performance of the respective new WordPress version was compared to that of the previous version, on the exact same setup, so that the only different variable is the WordPress version.

Field metrics on the other hand are analytics data collected from site usage and provide an indication of how performance is actually experienced by real users on real sites. For example, the Chrome User Experience Report (CrUX) provides a public dataset of performance field data from opted-in Chrome users, aggregated at the site level. The WordPress 6.3 field impact summary post shared metrics queried from that dataset, granularly broken down for just that release compared to the previous 6.2 release.

When reviewing field metrics, it is important to consider the following:

  • Field metrics are influenced by a myriad of factors, for example the active plugins and theme, the WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. version, the hosting stack, the browser(s) used by end users, their networknetwork (versus site, blog) connection, and more. So when comparing field data between two months, for example, it is impossible to limit the comparison to just one specific aspect of those.
  • Field metrics do not allow direct correlation between specific enhancements and their concrete metric impact. This is closely related to the previous point: Even if you compare the performance of a dataset of sites that enabled a specific feature before and after the change, for example, there may have been numerous other changes during that time that influence the data. Effectively, it is impossible to conduct clean A/B tests in the field.
  • Field metrics are more meaningful the larger the dataset is. Because of them being only indicators rather than โ€œproofโ€, the larger the relevant dataset the more a specific metric observation from it can be trusted. Itโ€™s also worth considering that the webโ€™s user base is incredibly diverse, so even the audience that a specific site has matters significantly for its field performance.

And yet, despite all these caveats, field metrics are the only way to validate how beneficial performance changes really are. If a performance โ€œimprovementโ€ doesnโ€™t impact real users, it effectively doesnโ€™t matter even if it looked great in the lab.

CWV breakdown and assessment

For a brief recap on Core Web Vitals (CWV), they are a set of three specific metrics:

Each of these metrics has thresholds for whether a value is considered โ€œgoodโ€, whether it โ€œneeds improvementโ€ or whether it is โ€œpoorโ€.

The CWV metrics LCP ("good" threshold of 2.5s or lower), FID ("good" threshold of 100ms or lower), and CLS ("good" threshold of 0.1 or lower)
This visualization shows the three CWV metrics and their thresholds.

These metrics can be captured for every single navigation / page load. A page load is then only considered to have โ€œgoodโ€ CWV if all three metrics show a โ€œgoodโ€ value. In other words, for a single navigation the CWV assessment is simply a binary metric of โ€œgoodโ€ or โ€œnot goodโ€.

When looking at actual CWV datasets in the field, metrics are always aggregated, typically at the site / origin level. In other words, such an aggregation encompasses all navigations that happened on that site in a given time frame. In that dimension, the CWV assessment is considered โ€œgoodโ€ if 75% or more of the navigations have a โ€œgoodโ€ CWV assessment.

Last but not least, CWV can also be assessed at a larger scale, for example across all sites using a specific technology, like WordPress. In that scenario, CWV are typically measured through a โ€œpassing rateโ€ which describes the percentage of sites that have a โ€œgoodโ€ CWV assessment. For example, if in a dataset of 1 million sites 200,000 of them have a โ€œgoodโ€ CWV assessment, the resulting passing rate is 20%.

Note that not only the overarching CWV passing rate can be measured, but also the passing rates for the individual metrics (LCP, FID, CLS and others). The CWV passing rate is however the most meaningful single metric as it is a summary of all of them.

But now letโ€™s take a look at the data. Note: All metrics highlighted in this post are CrUX passing rates from the field, based on year-over-year comparisons between October 2023 and October 2022 (unless otherwise indicated).

WordPress CWV in 2023

As already mentioned in the โ€œTL;DRโ€ at the beginning of this post, CWV for WordPress have improved significantly this year:

  • Mobile CWV passing rate improved 8.13% (from 28.31% to 36.44%).
  • Desktop CWV passing rate improved 8.25% (from 32.55% to 40.80%).

While at first glance ~8% may not sound like much, it is a quite substantial boost to the passing rates, particularly when considering their base values. Relatively speaking, the new passing rate is ~29% higher than the old one on mobile and ~25% higher on desktop.

For reference: The previous yearโ€™s improvement for CWV passing rate was 6.99% on mobile and 6.25% for desktop. So while WordPress already did a great job in the previous year, this year even exceeded those accomplishments.

Line chart of WordPress's mobile CWV passing rate gradually improving from below 30% to over 35%. There is a small drop between March and April 2023, annotated with "LCP algorithm slightly changed".
This chart shows WordPressโ€™s mobile CWV passing rate throughout the year. Note that the decline between March and April is not a result of a WordPress-specific problem (or any performance issue at all), but rather due to a change in how the LCP metric is being calculated, which was rolled out in that month.

Letโ€™s take a closer look at the individual metrics that make up CWV and how they changed this year. For simplicity, only the mobile numbers are shown below. They are slightly more important than desktop results since mobile traffic overall is higher than desktop traffic. More importantly, performance improvements carry more importance for mobile devices as they are typically less powerful and are subject to worse network conditions. It is also worth noting that the corresponding desktop numbers donโ€™t show any notable differences in trend.

  • Mobile LCP passing rate improved 8.89% (from 34.48% to 43.37%).
  • Mobile CLS passing rate improved 4.22% (from 74.76% to 78.98%).
  • Mobile FID passing rate improved 0.87% (from 96.55% to 97.42%).

As you can see, LCP saw by far the largest boost. This is an excellent outcome, as improving LCP was the main focus for the WordPress performance team this year. The rationale behind this may also be obvious when looking at the base values: The LCP passing rate of WordPress sites is the lowest performing metric, so it deserves the most attention. On the flip side, even though FID only improved by less than 1%, that is perfectly fine given its passing rate is already so high.

Based on these metrics, it can furthermore be concluded that LCP was the primary driver behind the overall CWV passing rate improvements, which confirms the focus on this metric has made sense.

Last but not least, the Time to First Byte (TTFB) passing rate should be highlighted as well: While TTFB is not a Core Web Vitals metric, it is a direct part of LCP (specifically denoting its server-side load time performance portion), and it was another partial focus this year both because of its impact on LCP and because its passing rate is very low. Here is how it improved this year:

  • Mobile TTFB passing rate improved 3.10% (from 18.67% to 21.77%).
  • Desktop TTFB passing rate improved 3.53% (from 28.44% to 31.97%).

WordPress 2023 releases impact

This section focuses on the load time performance impact of the three new WordPress versions released this year, 6.2, 6.3, and 6.4. Since the focus for all of these releases was load time performance, it is sufficient to focus solely on LCP and TTFB.

While the overarching WordPress metrics from the previous section were based on a broad year-over-year comparison, the metrics to assess the release impact were queried with a more granular approach: For each WordPress version, a dataset was established between two months based on only the intersection of sites that were on the previous WordPress version in the first month and on the newer WordPress version in the second month. The months were then chosen in a way to maximize the size of the dataset (e.g. a WordPress version always sees the highest usage in the month before the subsequent version is released).

While that approach is still by no means an A/B comparison, it eliminates at least a good portion of noise e.g. from sites on other WordPress versions or sites that newly entered or dropped out of the dataset.

WordPress 6.2 LCP and TTFB

All metric comparisons are based on the intersection of WordPress 6.1 sites in March and WordPress 6.2 sites in July. See relevant WordPress 6.2 slide.

  • Mobile LCP passing rate improved 0.01% (from 34.98% to 34.99%).
  • Mobile TTFB passing rate improved 0.65% (from 18.47% to 19.12%).
  • Desktop LCP passing rate improved 2.13% (from 46.85% to 48.98%).
  • Desktop TTFB passing rate improved 3.89% (from 25.79% to 29.68%).

WordPress 6.3 LCP and TTFB

All metric comparisons are based on the intersection of WordPress 6.2 sites in July and WordPress 6.3 sites in October. See relevant WordPress 6.3 slide.

  • Mobile LCP passing rate improved 4.72% (from 34.46% to 39.18%).
  • Mobile TTFB passing rate improved 0.78% (from 18.78% to 19.56%).
  • Desktop LCP passing rate improved 1.96% (from 48.55% to 50.51%).
  • Desktop TTFB passing rate decreased 2.15% (from 29.28% to 27.13%).

WordPress 6.4 LCP and TTFB

All metric comparisons are based on the intersection of WordPress 6.3 sites in October and WordPress 6.4 sites in November (since newer data is not available yet). See relevant WordPress 6.4 slide.

  • Mobile LCP passing rate improved 0.30% (from 37.40% to 37.70%)
  • Mobile TTFB passing rate improved 0.11% (from 18.21% to 18.32%).
  • Desktop LCP passing rate improved 0.13% (from 49.46% to 49.59%).
  • Desktop TTFB passing rate decreased 0.31% (from 25.88% to 25.57%).

Remember that all of the above metrics are just indicators and an approximation of the field impact of those releases, influenced by several factors. Itโ€™s also great to keep in mind that the adoption of those versions will continue to grow. For example, as of November ~68% of all WordPress sites were using version 6.2 or newer based on the dataset. As the adoption increases further, the performance wins from those releases will continue to scale horizontally and benefit more sites.

WordPress 2023 impact on the web

WordPress, with its high usage, has a large footprint on the web, making a significant impact on the entire internet. When WordPress performance improves, the webโ€™s performance improves. Therefore, last but not least, letโ€™s look at the performance impact that WordPress has had on the web overall.

A good starting point for that is to compare the 2023 CWV passing rate improvement of all WordPress sites with that of all sites not using WordPress:

  • As mentioned before, WordPressโ€™s mobile CWV passing rate improved 8.13%.
  • The non-WordPress mobile CWV passing rate improved by 3.68%.
  • Similarly as mentioned before, WordPressโ€™s desktop CWV passing rate improved 8.25%.
  • The non-WordPress desktop CWV passing rate improved by 5.29%.

From those numbers alone, it is clear that WordPress has made notably more progress in performance than the rest of the web, which is an amazing achievement.

It is furthermore possible to draw some conclusions on how much WordPressโ€™s impact on the overall webโ€™s improvements are. For reference, the overall webโ€™s CWV passing rate improved 5.35% on mobile and 6.26% on desktop. Based on that, a simple calculation can be used, subtracting the non-WordPress CWV passing rate improvement from that of the entire web. This leads to the following results:

  • 1.67% of the overall webโ€™s mobile CWV improvement of 5.35% comes directly from WordPress.
  • 0.97% of the overall webโ€™s desktop CWV improvement of 6.26% comes directly from WordPress.

While those numbers may seem small, this is literally WordPressโ€™s impact on CWV for the entire web! It is an excellent reminder of how important WordPressโ€™s role is for the web and how contributing to WordPress not only improves the WordPress ecosystem but also the entire web.

Considerations for 2024

With this recap of the 2023 CWV impact of WordPress, it is time to look ahead and plan for 2024. In particular there are two important considerations for the performance focus next year.

INP replaces FID as a Core Web Vitals metric

Earlier this year, a notable change to the CWV metrics was announced: The more recently introduced metric Interaction to Next Paint (INP) will replace First Input Delay (FID) in early 2024. Please refer to the linked articles for additional information on the metric and that change. The very short summary is that INP measures interactivity more accurately than FID, and due to its limitations FID ended up having very high passing rates throughout the web ecosystem โ€“ almost perfect as seen in the WordPress numbers before.

The INP metric and its "good" threshold of 200ms or lower
This visualization shows the new INP metric and its thresholds.

Since INP measures interactivity more comprehensively than FID, it implies that passing the INP assessment is more difficult than passing the FID assessment. In other words, the INP passing rate is expected to be lower than the FID passing rate. Once INP is taken into account for CWV instead of FID, this will therefore lead to a decline in the overall CWV passing rate as well. In reality, the difference is particularly relevant on mobile devices. Here is a comparison of the FID passing rate and INP passing rate of WordPress sites, based on October 2023:

  • Mobile FID passing rate is 97.42%, while mobile INP passing rate is 71.48%.
  • Desktop FID passing rate is 99.97%, while desktop INP passing rate is 98.47%.

While there is a small decline on desktop, it isnโ€™t really worth focusing on as the value is still extremely good. But for mobile, the decline is significant. In other words, it will be important in 2024 to find ways in which WordPress can improve INP passing rates on mobile, in order to make up for the loss compared to FID.

Of course this is not only relevant for WordPress, but for the entire web. Here is how the mobile CWV passing rate would change if INP was already replacing FID today (data based on October 2023):

  • WordPressโ€™s mobile CWV passing rate would be 3.64% lower (32.80% instead of 36.44%).
  • The non-WordPress mobile CWV passing rate would be 7.39% lower (40.58% instead of 48.02%).

Based on these numbers, it is at least a little comforting that WordPress will struggle with this change less than the rest of the web. Nevertheless, 3.64% CWV passing rate decline is a significant drop, so part of next yearโ€™s performance goals will be to make up for that loss, likely through a combination of INP focused improvements and a continuation of the LCP focused efforts.

TTFB focus was less impactful than (client-side) LCP focus

The second consideration for 2024 is not related to a metric change, but rather a potential takeaway from the 2023 metrics highlighted in this post: When looking at the WordPress release specific impact, it can be noted that the mobile LCP improvement was by far the highest in the 6.3 release (4.72%, compared to <1% for 6.2 and 6.4).

The WordPress 6.3 release included a number of client-side LCP enhancements, which likely led to a large chunk of those improvements, as more granularly indicated by the findings from the related field analysis from a few months ago. WordPress 6.4 and especially WordPress 6.2 were more focused on server-side LCP enhancements (i.e. TTFB enhancements), and based on the field results those releases did not lead to as large LCP wins. Even for TTFB, the picture isnโ€™t entirely clear: As expected, WordPress 6.2 has a much better TTFB win than 6.3 on desktop, but on mobile devices the two releases show almost equal TTFB wins, with 6.3 even slightly higher.

While those numbers are by no means evidence, they raise the question whether the TTFB focus in WordPress core is the right way to move the needle for load time performance. Potentially the influence of other factors outside of WordPress core on TTFB, such as plugins, themes, hosting stack, or network connection, are just too large for the core-specific server-side improvements to make an impact in the field.

This does not imply the TTFB efforts should be dropped โ€“ but likely a shift is needed. Potentially, the TTFB issues need to be addressed through other means than directly enhancing the server response time of WordPress core itself. Further research should likely be conducted to get a better understanding of how much WordPressโ€™s low TTFB passing rate stems from 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. ecosystemโ€™s performance or other aspects not directly code-related such as hosting.

2024 planning is underway

The WordPress performance team is currently working on their roadmap for 2024. A GitHub issue for performance focused project proposals has been opened and awaiting input. Youโ€™re invited to contribute any WordPress performance related proposals or ideas you may have on that issue.

While the 2024 roadmap is currently being planned, letโ€™s once again circle back to 2023: The amazing metrics shared here speak for themselves. Thank you to everyone who contributed to WordPressโ€™s incredible performance impact in 2023!

Props to @annezazu @westonruter for review and proofreading.

#analysis, #core-web-vitals, #core-performance, #performance

Performance Chat Agenda: 19 December 2023

Here is the agenda for this weekโ€™s performance team meeting scheduled for Dec 19, 2023 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

Dev Blog editorial meeting summary, December 14, 2023

Summary of the WordPress Developer Blogblog (versus network, site) meeting which took place in the ย #core-dev-blog channel on the Make WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. Start of the meeting in Slack.

Attendees: @bph, @marybaum, @ndiego, @webcommsat, @greenshady, @ironnysh. Apologies: @milana_cap

Last meeting links: summary from last meeting on November 2, 2023 โ€“ props to @milana_cap for facilitating and @webcommsat for the summary.

Updates on the Developer Blog siteย 

  1. Central documentation area
    • Following up on a previous discussion for a central area for documentation for writers, reviewers and admins, @bph has opened theย Wiki space on the GitHub Repository.ย This will put all the little details into one place and an excellent way to organize the pieces.
    • In early 2024, she will provide a tracking issue for all the updates and new docs that need to be added, and a request for a few of the editorial group to assist in writing and reviewing.ย 
  2. Redesign
    • The Developer Blog is part of theย Redesigning Developer Resources and a call for testing.
    • @ndiego has addressed some 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. feedback on theย PRย yesterday, and it is nearly complete. This update will standardize the Blog to match the pending updates to Developer Resources and provide a solid platform for additional iterations in the future. He highlighted this update will make easier future updates. By using 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. theme, future changes to the templates can be done more easily and directly. In addition, the Blog will inherit all the new functionality that has been developed for the Developer Resources site, such as, consistent spacing sizes, font sizes, local navigation, etc. Any further feedback is welcome.
    • The meeting thanked @ndiego, the Meta team and all involved for all their work on this.
    • Latest start of production expected early next week. Developer Resources will launch first, then the Blog updates. Further updates can be followed in the #website-redesign channel on Slack.ย 

Project board and status

Project Board on the Blog repo in 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/.

New posts

Six new Postsย published since the last editorial meeting.

@bph said: โ€œA hugeย thank youย to the writers, and their reviewers!! Fantastic job!โ€

Actions:

  • Proposed by @webcommsat to include co-authors, editors and detailed reviewers names in this list in future meetings/ summary to reflect their input and time. This will also help to encourage more people to volunteer their skills to review, edit and writers to work together on a post. @marybaum and others confirmed the time commitment for a co-author or editor can be considerable, and this can be reflected in the inclusion of their WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ ID. The inclusion of this additional detail was agreed to be added at the meeting. In the existing checklist, the principal writer of a post adds props to those who have been involved in the props channel on Slack.
  • Suggestions for people who are good copy editors from other WordPress contributor teams to be shared with @bph for onboarding in 2024 when some additional documentation on expectations and tools is ready.

Posts in progress

In this and the following sections of the meeting summary, the links go to the WordPress Developer Blog repo on GitHub.

To-do list

In the last few months there has been a slowing down of writing and reviewing, due to contributorsโ€™ other demands, the release, and their own work commitments. Increasing the number of volunteers in these areas will help address this. Action, as above, on identifying good copy editors from other teams.

Actions:

  • As Dev Chat has now concluded for 2023 and will be back in the second week of 2024, instead of @webcommsat sharing the monthly call out of posts that need writers in that meeting, it was agreed to wait until the next editorial meeting on January 4, 2024.ย 
  • @webcommsat will include a link to the summary of the meeting in a comment on the Dev Chat summary when published.

Future topic ideas for approval

Many new ideas for topics have come through or are in the pipeline. They are not all ready to proceed.

All the topics below were given a positive vote. Further scoping and drafting to follow. Any other comments can be added on the individual GitHub tickets listed.

Discussion on advance review of the approval list:

  • the list is now shared in the agenda reminder earlier on the day of the meeting; however, this may not give non-sponsored contributors or those in other timezones or unable to read the items that day the ability to comment most usefully or raise questions
  • the topic areas are available on the GitHub repo as live tickets and can be reviewed there at any time of the month, and comments added in advance of the Editorial meeting
  • the aim is to encourage some discussion of those topics and to flesh out an article and identify different angles
  • Actions:
    • agreed for a link to new topics to be shared regularly in the Dev Blog slack channel to raise awareness and interest in the topics and potential writers stepping forward
    • to encourage those putting ideas together to have them on the GitHub project board by a certain date (if possible) before each meeting. It may not always be possible, but in principle, encouraging this will improve the process, a more informed discussion, allow for more asynchronous contributions, and a way of encouraging engagement in the channel and discussion on GitHub.ย 

Open floor

  1. Idea for a potential post: @marybaum โ€“ โ€œFrom no-code to no-hands: three ways to generate posts in a taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. termโ€ case study
  2. @webcomms raised a previous discussion in the Slack channel. She, like many others in the group, receives requests from developers wanting to know what order to learn WordPress development, tips to help become or familiarize with WP development, etc.
    • Actions: for a discussion to be created in GitHub spaces.
    • It fits our scope
    • Similar posts to be identified from the Dev Blog
    • This will fit well with the discussion of learning paths, the Training team is tackling..

Next meeting

The next Developer Bog editorial group meeting will be on January 4, 2024, at 13:00 UTC in the #core-dev-blog channel.

#dev-blog, #summary