Bug Scrub Schedule for WordPress 6.3

It’s time to schedule the 6.3 bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrub sessions!
These 6.3 specific ticketticket Created for both bug reports and feature development on the bug tracker. scrubs will happen each week until the final release.

Alpha Bug Scrubs

Beta Bug Scrubs
Focus: issues reported from the previous beta.

  • TBD

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). Bug Scrubs (if needed)
Focus: issues reported from the previous 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)..

  • TBD

Check this schedule often, as it will change to reflect the latest information.

What about recurring component scrubs and triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. sessions?

For your reference, here are some of the recurring sessions:

Have a recurring component scrub or triage session?
PingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” @audrasjb, @chaion07, @oglekler, or @mukesh27 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/. to have it added to this page.

Want to lead a bug scrub?

Did you know that anyone can lead a bug scrub at any time? Yes, you can!

How? Ping @audrasjb, @chaion07, @oglekler, or @mukesh27 on Slack with the day and time you’re considering as well as the report or tickets you want to scrub.

Planning one that’s 6.3-focused? Awesome! It can be added it to the schedule here. You’ll get well deserved props in Dev Chat, as well as in the #props Slack channel!

Where can you find tickets to scrub?

  • Report 5 provides a list of all open 6.3 tickets:
    • Use this list to focus on highest priority tickets first.
    • Use this list to focus on tickets that haven’t received love in a while.
  • Report 6 provides a list of open 6.3 tickets ordered by workflow.

Need a refresher on bug scrubs? Checkout Leading Bug Scrubs in the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. handbook.

Thanks to @chaion07, @oglekler, or @mukesh27 for helping to put together the agenda.

#6-3, #bug-scrub, #core

Editor chat summary: June 21st, 2023

This post summarizes the weekly editor chat meeting (agenda for June 21st meeting) held on Wednesday, June 21st 2023, 03:00 PM GMT+1 in Slack. Moderated by @fabiankaegy.

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/ 16.1 RC1 will be released later today. 16.0 was released last week alongside the regular Whats new in Gutenberg post.

WordPress 6.3 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 will be released in less than a week on Tuesday, June 27th. A good overview of the various tasks still in progress can be found in the WordPress 6.3 Editor Tasks Project on GitHub.

Even though the release of the beta is happening one day before the public release of Gutenberg 16.1 the plan is still to include all the features up until 16.1 in WordPress 6.3.

Key project updates

Open Floor

@tjnowell raised a PR that fixes an issue with CSS @container queries break editor styles getting loaded via add_editor_style. The PR is currently waiting for a review.

@aurooba shared the discussion currently happening about finding a new name for the “Command Center”. We also had a discussion about how a decision gets made in these cases. If you have thoughts about the name, please add your thoughts to the ticketticket Created for both bug reports and feature development on the bug tracker..

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

WP Feature Notifications Meeting Notes: 2023-06-14

Cross-posted from https://github.com/WordPress/wp-feature-notifications/discussions/351

Meeting agenda: #349
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/. discussion: https://wordpress.slack.com/archives/C2K1C71FE/p1686754838505239

WCEU debrief

Project visibility

  • There was some discussion during the meeting around visibility; several new contributors were not aware of the project before the Contributor Day. How can we address this as the project?
  • @Sephsekla to work to post more on the Make CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blogblog (versus network, site), with both meeting notes and other updates
  • How else can we promote the project? Potentially work with other media, e.g. news sites and podcasts.
  • Everyone is encouraged to spread awareness, this doesn’t need to be @Sephsekla‘s area only.
  • Hopefully the upcoming survey will spread awareness as well.

Notifications survey

  • At WCEU Contributor Day, @terragirl worked on a survey on the current notices/notifications experience within WordPress.
  • This can inform our direction/user stories.
  • It will also provide potential marketing stats, and raise awareness of the project.
  • Some concerns around data and GDPR, do we want to collect emails to follow up?
  • The consensus is that this should be removed, it’s largely unnecessary and adds unnecessary risk.

Redesign to integrate wordpress/components

Splitting the project

  • In Split this project between the API and Hub #339 @dartiss proposed splitting the project, with the data model and APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. in one feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. and the hub in another.
  • This would allow easier adoption of the new API without finalising the UIUI User interface for the dashboard
  • However there are some concerns about how to handle display if we don’t include the new UI by default
  • The hub could be the default solution, but pluggable and easily disabled, so any custom solution can take over with the same API calls (e.g. Calypso).

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) review planning

  • We have a number of A11yAccessibility 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) tickets open at present.
  • It would be good to have a full audit of the UI before we continue much further, to ensure we are fully accessible from launch.
  • This would be a good opportuniy to work with the Accessibility Team.

Reduction of repository/endpoint scope for 0.3.0 release

  • @bitmachina had previously recommended reducing the scope of the endpoints for our next release.
  • However with the addition of new contributors, this may no longer be necessary. @terragirl is now also working on the REST endpoints, so we will process on all of them and reevaluate as necessary.

#feature-notifications

Dev Chat agenda, June 21, 2023

The next weekly WordPress developers chat will take place on Wednesday, June 21, 2023 at 20:00 UTC  in the core channel of Make WordPress Slack. All are welcome.

1. Welcome and housekeeping

Summary from the Dev Chat on June 14, 2023 – props to @webcommsat.

2. Announcements

3. Highlighted posts

This proposal was published on June 20, 2023 sets the criteria for determining when WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. has reached compatibility with a specific PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher version that WordPress supports, the removal of ‘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. support’ classification, and a phased approach for moving to compatible. Thanks to the group of contributors who have been working on this proposal. Comments can also be added to the post itself.

A Week in Core – June 19, 2023 – props to @audrasjb for pulling together.

Between 12 and 19 June, 2023 on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress., there were:

  • 41 commits
  • 61 contributors, with 9 new contributors during this period
  • 66 tickets created
  • 7 tickets reopened
  • 40 tickets closed

Gutenberg 16.0 is now available for download from the plugins repository. What’s new in Gutenberg 16.0? (14 June) – thanks to @ndiego.

Full Site Editing Program has a new call, number 24 – deadline for comments June 28, 2023.

What’s new for Developers, June 2023 from the Developer Blogblog (versus network, site). The latest updates are focused around 6.3.

4. Forthcoming release updates

Some of the links in this section act as reminders or to help new contributors. To allow for greater discussion on tickets/ blockers for 6.3, not all these links may be re-shared in the dev chat itself.

6.3 – next major WordPress release

Upcoming: Beta 1 for the 6.3 release on Tuesday June 27, 2023

6.3 dev notes tracking issue is out. If you can help docs in the release, do let them know.

6.3 Editor tasks board – contact @ndiego to work on one of the 6.3 tasks on this board.

Bug scrub schedule for 6.3 – there are two more this week on June 22 and June 27.

Stay in the loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. on 6.3 with:

6.4

WordPress 6.4 Development Cycle

5. Tickets or Components help requests

Please add any items for this part of the agenda to the comments. If you can not attend dev chat live, don’t worry, include a note and the facilitator can highlight a ticketticket Created for both bug reports and feature development on the bug tracker. if needed. Tickets for 6.3 will be prioritized.

6. Open floor

If you have any additional items to add to the agenda, please respond in the comments below to help the facilitator highlight them during the meeting.

#6-3-2, #agenda, #dev-chat

A Week in Core – June 19, 2023

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 June 12 and June 19, 2023.

  • 41 commits
  • 61 contributors
  • 66 tickets created
  • 7 tickets reopened
  • 40 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

Build/Test Tools

  • Revert accidental change to .env – #50523
  • Add @covers annotation to wp_set_object_terms() tests – #57841
  • Various term related test improvements – #57841

Bundled Themes

  • Fix Twenty Fourteen button 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. line-height – #58444
  • Remove load_theme_textdomain() calls from default themes – #58318
  • Twenty Seventeen: Improve Grid View variation rendering in the editor for the Post List block – #58531

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

  • Remove unused usermeta global cache group – #58175

Coding Standards

  • Use strict comparison in wp-includes/class-wp-list-util.php#57839
  • Use strict comparison in wp-includes/class-wp-oembed.php#57839
  • Use strict comparison in wp-includes/pomo/entry.php#57839
  • Use strict comparison in wp-includes/pomo/mo.php#57839
  • Use strict comparison in wp-includes/pomo/streams.php#57839
  • Use strict comparison in wp-includes/pomo/translations.php#57839

Docs

  • Use third-person singular verbs in various function descriptions, as per docblocks standards – #57840
  • Use third-person singular verbs in various function descriptions, as per docblocks standards – #57840
  • Use third-person singular verbs in various function descriptions, as per docblocks standards – #57840
  • Use third-person singular verbs in various function descriptions, as per docblocks standards – #57840

Editor

  • Skip file_exist check for core blocks. – #58385
  • use layout.wideSize as max viewport width – #58522
  • use logarithmic scale for fluid typography – #58523
  • Fix lint issues in WP_Theme_JSON::sanitize method – #58462
  • Ignore unregistered block style variations from theme.json#58462

Filesystem API

  • Attempt to create directory in copy_dir()#41855

Formatting

  • Support aria content attributes – #55370

General

  • Replace some instances of “blogblog (versus network, site)” with “site” in documentation, translator comments, and user-facing text strings – #58117
  • fix overridden typos – #58464

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.

  • Allow to short-circuit load_textdomain()#58035

KSES

  • Add support for CSSCSS Cascading Style Sheets. repeat() function – #58551

Media

  • Deprecate the ‘edit_custom_thumbnail_sizes’ 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. and disable the “Apply changes to [Thumbnail|All|All except thumbnail]” UIUI User interface in the image editor. Add a (boolean) filter to reenable that UI – #57685
  • Display the “Copy URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org” and “Download file” row actions when the “Unattached” filter is applied – #57890, #57893
  • Redirect deprecated wp-admin/media.php file – #57612
  • Remove duplicate div containers – #50523
  • Update adminadmin (and super admin) image editor design – #50523

Posts, Post Types

  • Introduce item_trashed post type label – #51387

Script Loader

  • Add a check to see in style is registered in wp_maybe_inline_styles – #58394

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.

  • Prevent deprecation notices clearing terms – #57923

Themes

  • Change the order of path check in is_block_theme method – #58520
  • Fix caching issue in get_post_templates method in WP_Theme#57886
  • Inline render blocking CSS classic-themes.css#58480
  • add wp_get_remote_theme_patterns function – #58460

Upgrade/Install

  • Log in link should look like a link – #40470

Props

Thanks to the 61 people who contributed to WordPress Core on Trac last week:

@costdev (12), @sergeybiryukov (11), @afercia (9), @poena (7), @audrasjb (7), @peterwilsoncc (6), @spacedmonkey (6), @aristath (6), @joedolson (5), @oglekler (4), @azaozz (4), @mukesh27 (3), @sabernhardt (3), @kebbet (3), @swissspidy (2), @joemcgill (2), @ntsekouras (2), @nrqsnchz (2), @NekoJonez (2), @antpb (2), @isabel_brison (2), @prashantbhivsane (2), @nihar007 (2), @piyushtekwani (1), @algorithmsunlocks (1), @mayur8991 (1), @flixos90 (1), @adamsilverstein (1), @nkeller15 (1), @drw158 (1), @chaion07 (1), @ocean90 (1), @chouby (1), @karmatosed (1), @james-roberts (1), @jrf (1), @talldanwp (1), @nidhidhandhukiya (1), @crs1138 (1), @johnbillion (1), @ignatggeorgiev (1), @pbiron (1), @ramonopoly (1), @ramonopoly.
(1), @Aristath (1), @kapilpaul (1), @oandregal (1), @krupalpanchal (1), @jorbin (1), @pamprn09 (1), @rianrietveld (1), @maniu (1), @hellofromTonya (1), @caraffande (1), @zunaid321 (1), @rsiddharth (1), @ryokuhi (1), @nataliat2004 (1), @xavortm (1), @menakas (1), @dd32 (1)

.

Congrats and welcome to our 9 new contributors of the week: @prashantbhivsane, @piyushtekwani, @algorithmsunlocks, @mayur8991, @nkeller15, @crs1138, @maniu, @caraffande, @nataliat2004 ♥️

Core committers: @sergeybiryukov (9), @peterwilsoncc (6), @joedolson (6), @spacedmonkey (5), @audrasjb (5), @isabel_brison (3), @oandregal (3), @swissspidy (2), @johnbillion (1), @azaozz (1).

#6-3, #core, #week-in-core

Performance Chat Summary: 20 June 2023

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

Announcements

  • Welcome to our new members of #core-performance [Slack thread]
  • Release 2.4.0 scheduled for later today
    • Agreed to postpone this to Tuesday June 20 to support several team members being out for the US holiday
  • Upcoming 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 for the 6.3 release on Tuesday June 27, 2023
  • Updates to our CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Performance Handbook with the introduction of the Profiling PHP performance with XHProf article

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones

  • No updates this week

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

Link to roadmap project

Contributors: @mukesh27 @10upsimon @adamsilverstein @westonruter

  • @joemcgill For Script Loading Strategy: https://core.trac.wordpress.org/ticket/12009
    • Most of the PR for adding support for `async` and `defer` has been approved for commit. Unfortunately, keeping in support for inline scripts is blocking the current PR, so we’re going to remove that part of the implementation this week and commit the rest. This just means that if anyone tries to add an `async` or `defer` strategy to a handle that has an inline script attached in an `after` position, the original script will be loaded with a blocking strategy instead.
    • @spacedmonkey I code reviewed the above and approved it for commit
    • @joemcgill we will likely ask for another review once we’ve implemented the changes
    • @10upsimon Nothing more from my side, I’ll be working with @joemcgill on the reversal of delayed after inline scripts, and further testing
    • @spacedmonkey Should we talk about the comment – https://github.com/WordPress/wordpress-develop/pull/4391#issuecomment-1598421109 . Or leave it open floor. I think this should be in core and I want to work out a path to unblock it
    • @10upsimon this is the same level of push back we’re receiving on the Trac ticket itself. It’s a long standing aversion to support delayed inline scripts. I’d like to see it in core as well, if possible.
    • @joemcgill I think we’ve exhausted this conversation for now. The focus this week should be to get the majority of this feature committed and we can advocate for extending support for inline scripts during the beta period.
    • @spacedmonkey Could it be commit before the beta and then if we can resolve the inline style stuff, then we can do a part revert?
    • @joemcgill Andrew has indicated in the PR thread that we could continue that conversation during the beta period, yes

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • @adamsilverstein Some recent developments on the modern image front: the new version of Safari includes JpegXL support which was a bit of a surprise and somewhat exciting. If other browsers follow suit, maybe the format will become useful for the web and WordPress?! In addition, Edge canary has apparently added AVIF support, so we will hopefully see all major browsers supporting AVIF soon.  I created a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. to add AVIF support to core on the existing ticketticket Created for both bug reports and feature development on the bug tracker. that is ready for testing –  https://core.trac.wordpress.org/ticket/51228
  • @thekt12 and @flixos90 are also working on finalising https://github.com/WordPress/wordpress-develop/pull/4495 this week
    • @spacedmonkey I have been code review and profiling this. We are awaiting a new version that improves PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher performance.

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • @joemcgill Over the weekend, the Theme Unit Testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. data that we rely on briefly went offline and broke the automated performance tests in Core. There is an open ticket about bringing that code directly into our repo, rather than relying on the Theme Unit Test data, but there is also conversation happening about moving all of that code into the WP organization. Original thread: https://wordpress.slack.com/archives/C02RQBWTW/p1687140431658569 For now, I don’t think we need to take immediate action, but is something to consider over the coming weeks.

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger @mukesh27

  • @joegrainger We are working on the last check for Milestone 2 for the Plugin Checker. Once complete we’ll be moving onto further QA/Testing and remediating over this week and next. Progress can be seen on the GitHub repo here. Feel free to take a look and leave any thoughts/ideas you may have in the repo. Thanks!

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • @flixos90 Still awaiting approval of the Dominant Color Images 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 in the plugin repo

Open Floor

  • @spacedmonkey This ticket has been very active – https://core.trac.wordpress.org/ticket/58368
    • TLDR, WP_Commey_Query does count queries using order by, resulting in bad performance. Comment type is not a database index.
    • @joemcgill That ticket needs an owner and and agreed upon patch in the next week. Seems like a stretch at the moment.
    • @spacedmonkey I am not sure we can add indexes easily to a table like comments. The person on the ticket has 5 million comments in this database. Adding an index normally locks a table on a high traffic like that, it could be a problem. I think we will have to puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.) to 6.4. I will update the ticket.
      • @rmccue I think we’ve added indexes on large tables before, seem to recall .com needing to orchestrate a slow rollout of them
  • @joemcgill Do we know who is ensuring the fix for https://core.trac.wordpress.org/ticket/58457 is getting synced from the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ repo? This process still seems very manual and error prone to me.
  • @spacedmonkey Would useful to get eyes on – https://github.com/WordPress/gutenberg/pull/51116

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

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

Proposal: Criteria for Removing “Beta Support” from Each PHP 8+ Version

Officially WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. currently provides “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. support” (or “beta compatibility”) for PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.0, 8.1, and 8.2, as per the compatibility table in the handbook. The term “beta support” was first used in 2020 for WordPress 5.6 and PHP 8.0, though no criteria were set for determining when it could be removed. When should WordPress Core be considered compatible with a specific PHP version? Could it be compatible even with known and documented incompatible exceptions? This proposal is being set forth by a group of trusted contributors (see the props list below) who have consistently focused on the overall forward and backward compatibility of WordPress in the context of PHP as a way to outline any criteria, data, or roadmap needed to answer these questions.

The scope and goals of this proposal are:

  • Set the criteria for determining when WordPress Core has reached compatibility with a specific PHP version that WordPress supports.
  • Once the criteria are met, then the “beta support” classification can be removed for that WordPress version and beyond.
  • Set a phased approach for moving from “beta support” to compatible with exceptions (optional) to fully compatible.

The proposal starts with an understanding of what “compatibility” means, then dissects the meaning to identify indicators, and finally uses the indicators to build decision-making criteria.

What is outside the scope of this proposal?

  • Theme or 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 compatibility. There is no guarantee that any theme or plugin a site owner uses is compatible with or safe to upgrade to a PHP version. Rather, this proposal is for WordPress Core itself.
  • List of supported PHP versions. It is not for determining which PHP versions WordPress should support, e.g. PHP EOL (End of Life), raising the minimum supported PHP version, etc.

Quick navigation

  1. What compatibility means
  2. Identifying indicators
  3. Proposed compatibility criteria
  4. “Beta Support” removal process
  5. Conclusion

1. What compatibility means

Because of the nature of WordPress usage and the commitment to our user base, compatibility is to be considered in the eyes of those users. The goal is to elevate the broader ecosystem to a state that is compatible with PHP 8. That requires that the Core software not just be compatible on its own, but also provides defenses against common problems seen in the transition to PHP 8, while continuing to function on older versions of PHP.

~ What does compatibility mean here? from WordPress and PHP 8.0 by @desrosj

Building upon the above quote, compatibility means:

WordPress Core’s compatibility with a specific PHP version happens when enough sites run without issues (a) in the ways users configure and use their sites (b) while also continuing to function on all older PHP versions WordPress supports.

Notice this description intentionally focuses on users with emphasis on the ways users use WordPress. WordPress is committed to being user-first. Technical decisions (including compatibility) should first focus on users and thus usage.

Is full 100% compatibility required before removing “beta support”?

No. This proposal does not require a full 100% compatibility requirement for removing “beta support”. Instead, it takes a more pragmatic phased approach.

Some PHP version features or changes are breaking changes that (a) may require more effort and time to fully resolve or (b) may not be fully resolvable due to various reasons such as external dependencies, backward compatibility, etc.

Imagine the scenario where the bulk of WordPress Core is compatible with a specific PHP version but there are one or more incompatibilities yet to be resolved. Should those incompatibilities 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. removing “beta support”? Or could those be accepted and documented as exceptions?

This proposal proposes the following phases:

  • “beta support”
  • compatible with documented exceptions
  • full compatibility

Reaching full 100% compatibility may not always be possible or it may take extensive amount of time. This should not block the removal of the “beta support” label. If one version is blocked, then all versions after that version are also blocked. By taking a phased approach, the project retains flexibility to take decisions that are best for users and the broader ecosystem.

2. Identifying indicators

In dissecting the above meaning, the keys to achieve compatibility reside in:

  • Enough sites: enough sites running on a given PHP version over enough time.
  • Issues: all known compatibility issues resolved or accepted as incompatible.
  • BC: compatibility changes are backward compatible with all earlier PHP versions WordPress supports.

Enough sites: What does a minimum threshold of sites signify?

Enough sites should indicate a variety of different usages. Usages are important.

It can indicate WordPress itself runs with different technical stacks of themes, plugins, configurations, and hosted environments.

WordPress is never used in isolation (without any theme or plugins), so WordPress itself being able to run on PHP 8 does not indicate “full” compatibility…

The state of PHP 8 support within the broader ecosystem (plugins, themes, etc.) is impossible to know.

~ WordPress and PHP 8.0 by @desrosj

Usages can also indicate a variety of the WordPress functionality is being used by users. Why is this important? It can indicate how much of the WordPress Core’s source code is being run on a specific PHP version with the different technical stacks.

Issues: What does “issues” signify?

If the number of sites running on a specific PHP version continues to grow over time, then an inference could be made that the sites run without issue. How so? The thinking is: why would the usage grow over time if there are compatibility issues blocking sites from running on the version? Using that logic, the growth of “enough sites” over time can indicate there are no known compatibility “issues”.

Historically, WordPress relies on users to provide feedback and report issues. Thus, the “issues” indicator also means all known compatibility issues are resolved or excluded. (Note: In TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress., the phpNN keyword convention (e.g. php80, php81, and php82) identifies a PHP compatibility issue or task. A new php-compatibility focus is also proposed for further help with identifying compatibility tickets.)

Thus, “issues” can be considered as a combination of the growth of enough sites over time and all reported and known compatibility issues are resolved or accepted as incompatible.

What is resolved?

A known issue is resolved by various actions including fixed, closed, accepted as not impacting compatibility, or documenting as being incompatible.

Backward compatibility: How does backward compatibility relate to PHP versions?

Users and user confidence. WordPress has a long history of prioritizing backward compatibility (also known as BC and back compatback compat Backward compatibility - a desire to ensure that plugins and themes do not break under new releases - is a driving philosophy of WordPress. While it is a commonly accepted software development practice to break compatibility in major releases, WordPress strives to avoid this at all costs. Any backward incompatible change is carefully considered by the entire core development team and announced, with affected plugins often contacted. It should be noted that external libraries, such as jQuery, do have backward incompatible changes between major releases, which is often going to be a greater concern for developers.) to ensure WordPress runs for users regardless of which PHP version they are using. In this way, users can upgrade to a newer PHP version with the confidence their site will continue to function.

PHP 8 introduces many breaking changes, meaning the changes in the language do not work on versions older than PHP 8. To make WordPress compatible with PHP 8, changes must also stay compatible with all PHP versions it supports.

How can backward compatibility be determined?

Each change must not change the previously intended behavior or code usage (e.g. function names or signatures, input types or data structures, return types or data structures, etc.) and must work on all WordPress supported PHP versions.

The adopted approach is to add automated tests prior to the compatibility change and then ensure the change does not alter the behavior or code usage.

3. Proposed compatibility criteria

Using the above indicators, let’s build criteria for determining when a WordPress version is compatible with a specific PHP version.

All of these indicators must be true for a specific PHP version:

  • Enough sites: At least 10% (i.e. usage percentage) of all WordPress sites running on a specific or newer PHP version for at least 3 months.
    • The usage percentage is calculated by combining usages of the target version plus all newer versions. For example, the PHP 8.0 % of usage is the sum of usage from 8.0, 8.1, 8.2, etc.
  • Issues:
    • All reported and known compatibility issues are resolved.
    • All accepted incompatibilities are documented as exceptions from full compatibility.
  • BC: Full backward compatibility is maintained for all older PHP versions WordPress supports, demonstrated with automated tests for each compatibility change.

The criteria in action for WordPress 6.3

Let’s see the proposed compatibility criteria in action. Could the “beta support” label be removed in WordPress 6.3 for different PHP 8 versions?

As of June 19, 2023:

  • Enough sites:
    • PHP 8.0: 13.49% (+8.92% from PHP 8.1 +1.41% from PHP 8.2 = 23.82% ✅ )
    • PHP 8.1: 8.92% (+1.41% from PHP 8.2 = 10.33% ✅ )
    • PHP 8.2: 1.41%
  • Issues:
    • Current list of reported issues:
    • Possible Incompatibilities for acceptance consideration:
      • Named parameters: Should WordPress be fully-compatible with named parameters? There are backward compatibility (BC) considerations to consider. Once WordPress is compatible with a specific PHP version, the names of function/method parameters can never change as any changes would be a BC break (See Trac 57838).
      • Explicitly setting default value of the flags parameter for htmlentities() et all (See Trac 53465).
  • BC: there are no known unresolved backward compatibility issues, though there is not a specific keyword available for tracking.

PHP 8.0 and 8.1 meet the minimum “enough sites” criteria, but have open tickets that need to be resolved to pass the “issues” criteria. Once each is resolved or accepted as incompatible, then it is possible for WordPress 6.3 to be declared compatible (possibly with incompatibility exceptions) with PHP 8.0 and 8.1.

Why not use the automated test suites as the compatibility indicator?

Automated tests are an important part of the testing and feedback 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. strategy in software development. A good set of tests can identify problems before the code ships to users.

But as previously noted, users are not running WordPress by itself, but rather as part of a stack of technologies. Knowing the majority of possible usage scenarios (such as an array of different themes and plugins) to use as test data is difficult. Thus, automated testing is part of an overall strategy when combined with the other indicators previously noted.

The automated tests are not included as part of the indicators. Currently the WordPress automated test suites are not yet significant or good enough to indicate with confidence that the source code is fully compatible and meets all of the above criteria.

What is required for the test suites to be considered significant and good enough?

  • The vast majority of the code would need to be exercised by the tests.
  • A broad set of scenarios for what should (happy path) and shouldn’t (unhappy path) happen in the ways users configure and use WordPress.

Currently, the WordPress Core’s automated test suites do not meet this criteria. For example, using the published code coverage report, less than half of the code is being exercised by tests. (Note: the published code coverage report is misleading as it represents “unclean” code coverage. The actual percentage is significantly lower. Work is ongoing to improve the reporting .) In addition, the test suites need to grow their testing scenarios to include the different ways users use WordPress.

4. “Beta Support” removal process

Once the above criteria are met, then the “beta support” classification can be removed for the next major WordPress release. Since only the most recent major 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". of WP is supported, previous versions of WP with “beta support” for a PHP version will remain, even if security updates are pushed to older branches after the fact.

The process for each PHP version:

  • Verify all of the above criteria are met.
    • Pull the site usage numbers to verify usage meets the criteria.
    • Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. all php-compatibility tickets for the PHP version (phpNN keyword) to ensure all tickets are resolved.
    • Verify backward compatibility.
  • Gather the list of accepted incompatibilities.
  • Identify and resolve dependency needs, such as a 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. change for Site Health to get the “recommended PHP” version via an 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. call.
  • When adding the next 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. to to the PHP Compatibility and WordPress Versions handbook page, do not add the * next to that specific PHP version. If there are incompatibilities, add ** next to the PHP version and list each incompatibility below the table.

5. Conclusion

This post presents a thoroughly referred recommendation for when to remove “beta support” from PHP 8 and newer versions. The criteria were a result of the feedback from several contributors listed below. However, it is only a proposal and is not concrete. Adjustments can be made to this proposal based on feedback from contributors in the comments below. If you have any thoughts, please do leave them below!

Unless there is a need to republish a modified version of this proposal for further feedback, after a consensus is reached and any needed approval from leadership to implement this proposal is received, the following action items would need to be addressed:

  • The Make WordPress Core handbook should be updated in the appropriate places to:
    • outline the criteria and process for reviewing each “beta support” PHP version with each WordPress major release.
  • Trac:
    • Add php-compatibility focus, which will be listed in “Contributor Focuses”.
    • Contributors should scrub all tickets for PHP compatibility to:
      • Add the php-compatibility focus with a description of “Relating to PHP forward and backwards compatibility. A phpNN keyword identifies the PHP version that introduced the incompatibility”.
      • Update the PHP version phpNN keyword, if necessary.
      • Determine the ticketticket Created for both bug reports and feature development on the bug tracker. status and next step toward resolution, including: close with a message why, complete, or get consensus on ones to be accepted as incompatible.
  • Any other action items identified while discussing this proposal.

Props to @jrf @joemcgill @mikeschroder @desrosj @azaozz @costdev @ironprogrammer @antonvlasenko for contributing to this post through providing feedback and proof-reading.

#php, #php-8-0, #php-compatibility

Performance Chat Agenda: 20 June 2023

Here is the agenda for this week’s performance team meeting scheduled for June 20, 2023 at 15:00 UTC.

  • Announcements
    • Upcoming 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 for the 6.3 release on Tuesday June 27, 2023
    • Updates to our CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Performance Handbook with the introduction of the Profiling PHP performance with XHProf article
  • Priority projects
  • Open floor

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

Editor Chat Agenda: June 21st 2023

Facilitator and notetaker: @fabiankaegy

This is the agenda for the weekly editor chat scheduled for Wednesday, June 21st 2023 at 16:00 CEST The meeting is held in the #core-editor channel in the Making 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/..

  • Announcements
  • Project updates
  • Task Coordination
  • Open Floor – extended edition.

If you are not able to attend the meeting, you are encouraged to share anything relevant for the discussion:

  • If you have an update for the main site editing projects, please feel free to share as a comment or come prepared for the meeting itself.
  • If you have anything to share for the Task Coordination section, please leave it as a comment on this post.
  • If you have anything to propose for the agenda or other specific items related to those listed above, please leave a comment below.

#agenda, #core-editor, #core-editor-agenda, #meeting

Editor Chat Summary: 14 June 2023

This post summarized the editor chat from  Wednesday, June 14, 2023, 14:00 UTC (agenda) held in the #core-editor channel moderated by @bphFull transcript

Announcements

  • Gutenberg 16.0 is now available for download from the plugins repository. Release leadRelease Lead The community member ultimately responsible for the Release., Nick Diego published the release post What’s new in Gutenberg 16.0? (14 June)
  • WordPress 6.3 is less than two weeks away from 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 (June 27) This is the second to last 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/ release, and it needs lots of testing.
  • The FSE Call for testing 24 is a great way to learn about the new features and at the same time provide feedback before the beta releases, deadline for comments is June 28

New Developer Blogblog (versus network, site) posts

Project updates

Task Coordination

@Leonardus Nugraha, 6.3 release squad docs team,

published the Dev Notes tracking issue for WordPress 6.3. It’s the first time, Leo is working on this, so he definitely requires your help finding all the PRs that would need a dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase..


@ndiego 6.3 Editor Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. release squad
If anyone is looking to contribute and work on an issue, the items on the Editor Tasks for 6.3 board are the most important for 6.3

Open Floor

@bernhard-reiter

This is more of an early pre-announcement, but @fullofcaffeine has been working on a PR that will enable us to publish a point releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. for a previous version series even if a new stable release has already been published. (E.g. if the current Gutenberg version is 15.9.1, and we discover a serious 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. in 15.8.1, the changeset will allow us to publish a 15.8.2 release with a bugfix.) Since it is a somewhat substantial change to the release GHA workflow, we’re planning to land it only after GB 16.1 has been published, in order not to interfere with WP 6.3. We’re currently targetting July 5 (see). Here’s some more info shared by @fullofcaffeine.


@Hanzala 

“[I] missed last few meetings due to some work stuff but it feels good to finally join today’s meeting. Hope to contribute on some task in a coordinated way. just wanted to share that”.

Birgit: “It’s good to have you join us today and we are all looking forward to your contributions. Bangladesh and WPDeveloper have been contributing quite a lot lately  Especially for 6.2. Thank you!

Hanzala: “Yeah many people are really interested. Hope we can find some impactful contributors.”

Props to @paaljoachim for review.

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

Dev Chat Summary, June 14, 2023

The notes from the weekly WordPress developers chat which took place on June 14, 2023 at 20:00 UTC in the core channel of Make WordPress Slack.

Key links

Announcements

A proposal is ready and will be published soon on setting the criteria for removing “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. support” from each PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8+ version. It includes seeing the criteria in action for WordPress 6.3 which could possibly mean removing “beta support” label from PHP 8.0 and 8.1 – maybe. @hellofromtonya: it is just waiting for one additional contributors.

What’s new in Gutenberg 16.0. This latest 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 release has a preview of many editor enhancements and features in store for WordPress 6.3.

Highlighted posts

A Week in Core – June 12, 2023 – courtesy of @audrasjb. Seven new contributors last week on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress..
Changes on Trac between June 5 and June 12, 2023:

  • 30 commits
  • 48 contributors
  • 67 tickets created
  • 3 tickets reopened
  • 44 tickets closed

20 years of WordPress at WordCamp Europe. This summary of WCEU 2023 touches on high points from the event and two highlight videos.


Updates on forthcoming releases

Beta 1 for the 6.3 release will be on Tuesday June 27, 2023

WordPress 6.3 will be the next 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.. Stay in the loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. by checking out:

Tickets/ Component maintainers blockers/ updates

Tickets relating to 6.3 were prioritized.

@joemcgill raised a potential concern about ticketticket Created for both bug reports and feature development on the bug tracker. #12009. Full discussion starts at this Slack thread.

A Performance Team’s priority for the 6.3 release is to enhance the APIs for script registration to support async and defer attributes. After initial implementation, a final decision is needed about support for inline scripts. Urgent action: more views requested from someone familiar with this APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. in the next few days.

Open floor

a) WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. tables updates

During Contributor Day, these were the core numbers from Trac:

  • 14 tickets created (Trac only)
  • 181 ticket updates
  • 68 unique tickets updated.
  • 4 change commits
  • 13 new GH pull requests
  • 15 patches uploaded.

GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ specific numbers during Contributor Day are being collated.

A big thanks to all involved in Contributor Day, those attending especially first-time contributors. Special thanks to @desrosj, @sergeybiryukov, @oglekler, @webcommsat and everyone else who helped on the day and with preparation, and those who assisted with setting up local environments and encouraging new contributors.

Thank you to @jorbin @swissspidy @ocean90 and @joedolson for getting some attendee contributions committed during the event as well!

Are you interested in helping draft Dev Chat summaries? Volunteer at the start of the next meeting on the #core Slack channel.

Props to @webcommsat and @ironprogrammer for items relating to this meeting.

#6-3, #dev-chat, #summary