Bug Scrub Schedule for 6.1

With 6.1 well underway, here’s the initial schedule of 6.1 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.1-specific ticketticket Created for both bug reports and feature development on the bug tracker. scrubs will happen each week until the final release.

Alpha Scrubs:

Hosted by @audrasjb:

Hosted by @chaion07:

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. Scrubs:

Focus: issues reported from the previous beta.

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). Scrubs:

Focus: issues reported from the previous RC

  • 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?

The above 6.1 scheduled bug scrubs are separate and in addition.

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 or @chaion07 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 anytime? Yes, you can!

How? Ping @audrasjb or @chaion07 on slack and let us know the day and time you’re considering as well as the report or tickets you want to scrub.

Planning one that’s 6.1-focused? Awesome! It can be added to the schedule above. You’ll get well deserved props in the weekly 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.1 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.1 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.

Questions?

Have a question, concern, or suggestion? Want to lead a bug scrub? Please leave a comment or reach out directly to @audrasjb or @chaion07 on slack.

#bug-scrub

Roadmap to 6.1: Core Companion

This post is meant to supplement the broader 6.1 roadmap and focuses on features that are now planned in addition to the ones previously worked on that now have clarity and momentum. Please take both posts into consideration when thinking about the upcoming release cycle and where you might be able to get involved. Keep in mind that for much of what’s mentioned in this post, work will continue beyond 6.1 and into future releases, providing ample opportunity to contribute. 

For more information about current feature projects, check out the Feature Projects overview page

Theme Improvements

This year’s default theme is further embracing blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes by offering various opinionated style variations from community members. This will give more folks a chance to enjoy the latest and greatest. Read the latest update here announcing the 10 style variations planned for Twenty Twenty-Three. 

Outside of the default theme, the following improvements are also underway and help set the tone for additional changes: 

Performance initiatives 

Various performance initiatives are underway including, but not limited to the following: 

You can also explore other ongoing efforts being explored in the Performance Lab plugin to test the modules to get their benefits before they become available in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Join #core-performance to get involved. 

PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.2 compatibility 

The work is continuing to improve compatibility with PHP 8.0 and 8.1 while also preparing for PHP 8.2 due out at the end of November. While 6.1 won’t be PHP 8.2 compatible, efforts are still needed today to get us there in future releases. To get involved with this work, please review the overarching tracking issue, the current open issues, and join #core-php.

Rollback and 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 Dependencies 

In an effort to offer a more robust rollback and dependencies experience when a problem is encountered during an update, work is underway to test the current experience in hopes of being incorporated into Core. 

Specifically, hosting feedback is needed but all contributions are welcomed. You can find the Plugin Dependencies feature plugin here. Please put comments, feedback, bugs, etc. as new issues in the Plugin Dependencies repo and join #core-auto-updates.

Keep in mind that the rollback work is for plugins and themes whereas the dependencies is just for plugins currently. 

Site Health Improvements

To help guide more folks to upgrade their versions of PHP and offer more relevant warnings about high urgency issues, messaging improvements are in progress; please follow along in this trac issue and join #core-site-health.

Introducing and refining 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.

Since Hooks continue to make up the foundation for how plugins and themes interact with WordPress Core, work continues to expand and refine what’s offered both to allow Core to accomplish more and for extenders to do the same. For 6.1, this includes the following:

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. Improvements

Since the REST API is the foundation of the WordPress block editor and provides a way for you to create your own interface, work continues to expand what’s possible when interacting with your site’s data:

For more information about the REST API, please review this developer documentation and join #core-restapi.

Miscellaneous improvements and 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

While some work fits nicely into general categories, there’s plenty more work underway that cuts across many different parts of the WordPress ecosystem. This includes everything from database component items to internationalization to Cron API and more. For a full list of what’s planned for 6.1, please review this trac query.

If any efforts were not mentioned here that should be, please leave a comment below so we can all be made aware. 

Thanks to @cbringmann @annezazu @sergeybiryukov for helping craft and review this post. 

Client-side WebAssembly WordPress with no server

This early demo runs a full WordPress directly in the browser without a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher server! While it isn’t fully stable yet, it is a major breakthrough that could transform learning, contributing, and using WordPress. This post explores the opportunities and explains in detail how it works. 

Your help is needed to realize the vision laid out below. None of the presented mockups and early explorations are currently reliably implemented. This project needs volunteers to stabilize the code and build revolutionary tools on top of it. If you’d like to be a part of it, please say so in the comments!

Learning WordPress in the browser

The code examples in the WordPress handbook could become runeditable, like in this early preview:

Furthermore, an in-browser IDEIDE Integrated Development Environment. A software package that provides a full suite of functionality to software developers/programmers. Normally an IDE includes a source code editor, code-build tools and debugging functionality. could lead new contributors through solving their first “Good first issue” without setting up a local development environment. Just like this early preview:

Finally, a guided code editor could become a primary teaching tool for new developers. They would click a “Build your first 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.” button on 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/ and immediately start coding. This is what it could look like:

WordPress Developer tools

Testing code on different WordPress, PHP, and 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/ versions currently require a tedious setup. With an in-browser WordPress IDE, it wouldn’t require any setup at all. As a developer, you would switch between the different versions by selecting different entries in a box:

Taking it further, the continuous integration pipeline could replay the failed tests right in the browser and provide a code editor to debug and fix the problem on the spot:

On a different note, the desktop and mobile apps could reuse WordPress code by running an actual WordPress instance – even when offline.

Finally, WordPress could potentially be scaled up by spinning up many tiny self-contained WASM instances directly on the edge servers.

Showcasing

Embedding a demo of your 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, pattern, or theme directly on the website makes another great use case. One such demo lives on wpreadme.com, an in-browser WordPress readme.txt editor. Here’s what the plugin directory could look like:

Today, a WordPress server is required, and ideally, one WordPress per user to always present the same initial state.

The in-browser WordPress enables one private WordPress per user with no marginal server cost. Everyone can start logged-in as an adminadmin (and super admin) with no security risks.

Furthermore, importing an existing WordPress website into WASM runtime would create a staging website. Users could try themes and plugins on a copy of their site without affecting the live sites. Then, once the staging website looks good, they’d click a button and publish the changes.

How else would you use the in-browser WordPress? Please share your ideas in the comments so more use cases can be considered in the future.

How does the in-browser WordPress work?

The code lives in the GitHub repository.

In short:

  • PHP is compiled to WASM with Emscripten
  • WordPress is packaged into a data bundle
  • A service worker traps HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. requests and re-routes them to WordPress.

See more details below.

PHP is compiled to WASM with Emscripten

Firstly, PHP is compiled using an adjusted recipe from the php-wasm repo. It’s powered by Emscripten, a drop-in replacement for the C compiler. Unfortunately, MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. currently cannot run as WASM. However, SQLite can, and WordPress supports SQLite via the wp-db-sqlite plugin.

Emscripten compilation yields two files: webworker-php.wasm, which is the assembly, and webworker-php.js, which downloads the assembly file, creates a virtual heap, and exposes named native functions conveniently wrapped to accept and return 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/. data types.

You need to load the webworker-php.js in a webworker and add a tiny wrapper class:

const php = new PHPWrapper();
console.log(
    await php.run(`<?php echo "Hello world";`).stdout
);
// "Hello world"

See the Dockerfile, the compilation script, and the php-wasm playground.

WordPress is packaged into a data bundle

WebAssembly PHP runtime has its own filesystem and WordPress is shoehorned into it as a data bundle.

First, a fresh WordPress distribution is downloaded and patched with the wp-db-sqlite plugin. It’s about 66MB large, but an optimization pipeline makes that 46MB by minifying the PHP files and removing non-essential static assets. Getting down to just 12MB is possible, but it’s not easy.

Second, the WordPress installation process kicks in. A script serves our WordPress via the built-in PHP server and sends a special curl request to /wp-admin/install.php?step=2. Unfortunately, wp-cliWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ is hard-wired to MySQL and not a good match here.

Lastly, Emscripten’s file_packager turns our WordPress copy into a data file named wp.data and a JavaScript loader named wp.js. Loading both the PHP runtime from webworker-php.js and the WordPress data bundle from wp.js allows you to run <?php require “wordpress/index.php”; right in the browser!

A service worker reroutes the HTTP to WordPress

WordPress reads request information from $_SERVER, $_GET, $_COOKIE and so on. Normally these variables are populated by ApacheApache Apache is the most widely used web server software. Developed and maintained by Apache Software Foundation. Apache is an Open Source software available for free., NginxNGINX NGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers. https://www.nginx.com/., or another web server. However, in this case, there isn’t one.

Instead, the superglobal variables are populated “manually”:

function request(path, method, body, cookies) {
    return php.run(`<?php
        $_POST   = json_parse('${JSON.stringify(body)}');
        $_COOKIE = json_parse('${JSON.stringify(cookies)}');
        $_SERVER['REQUEST_URI'] 	= $path;
        $_SERVER['REQUEST_METHOD']  = "${method}";
        require "wordpress/index.php";
    `);
}

That takes care of the request, but capturing the complete HTTP response is still necessary. The PHP outputs information in only two ways: stdout and stderr. The response body comes out via stdout, but the HTTP status code and headers don’t. They need to be manually streamed to stderr where the JavaScript app can capture them:

register_shutdown_function(function() use() {
    $stdErr = fopen('php://stderr', 'w');
    fwrite($stdErr, json_encode(['status_code', http_response_code()]) . "\n");
    fwrite($stdErr, json_encode(['session_id', session_id()]) . "\n");
    fwrite($stdErr, json_encode(['headers', headers_list()]) . "\n");
}

The final request handler is similar to this:

function request(path, method, body, cookies) {
    const { stdout, stderr, exitCode } = php.run(`<?php
        $_POST   = json_parse('${JSON.stringify(body)}');
        // ... Populate other superglobals...
 
        register_shutdown_function(function() use() {
            $stdErr = fopen('php://stderr', 'w');
            fwrite($stdErr, json_encode(['status_code', http_response_code()]) . "\n");
            // Output other information
        }
 
        require "wordpress/index.php";
    `);
 
    const { statusCode, headers, body } =
        rawOutputToResponse({ stdout, stderr, exitCode });
    return { statusCode, headers, body };
}

The actual code is much more involved, but it’s based on the same idea.

Node.js is supported, too

Running WordPress in different JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. runtimes is a matter of connecting these major building blocks with runtime-specific plumbing. Today there is an in-browser version and a node.js version. Here’s how they differ:

In-browser version

WordPress is rendered in an iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. by a minimal index.htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. once both workers are loaded.

Node.js version

  • Emscripten compiles PHP for the Node.js runtime.
  • A Node.js script loads the WebAssembly PHP and mounts a local WordPress directory inside the PHP filesystem.
  • The same Node.js script starts a web server. It serves most requests as static files, except the .php ones, which it routes to WordPress.

WordPress is served on localhost:8888.

Running an in-browser WordPress IDE with Stackblitz

Stackblitz is the in-browser IDE that makes Svelte docs interactive:

It could do the same for WordPress docs; see this early preview.


Stackblitz doesn’t need a specialized backend. It runs Node.js, npm, and webpack right in the browser via WebAssembly. Other than hosting and delivering a few megabytes of data, Stackblitz has no marginal costs. This idea is called Web Containers.

Learning WordPress and writing code used to be separated. Now they can be one and the same. From runnable code snippets to new, svelte-like docs formats, WebContainers + WebAssembly WordPress is an educational game-changer.

WordPress runs in Stackblitz via a Node.js server

The minimal WordPress plugin dev setup on Stackblitz consists of:

  • A node.js WordPress server (via an npm package)
  • A plugin directory mounted inside of mu-plugins
  • A wp-scripts setup to watch and bundle the JavaScript files

@gziolo went a step further and prepared a version with an editable Gutenberg block generated via create-block. All it took was running the npx @wordpress/create-block example-static command as shown in the create-block documentation, and restarting the dev server with npm run start:

However, a Node.js WordPress server on Stackblitz is sluggish

Rendering a single wp-admin page takes a second locally but up to 40 seconds on Stackblitz. That’s much longer than most developers are willing to wait. Here’s why that happens:

A local Node.js WordPress server works like this:

  • WordPress runs on WebAssembly PHP
  • WebAssembly PHP runs on a native Node.js

However, a Stackblitz Node.js WordPress server has an extra layer:

  • WordPress runs on WebAssembly PHP
  • WebAssembly PHP runs on WebAssembly Node.js
  • WebAssembly Node.js runs on a native Chrome

It’s like a box in a box: A WebAssembly runtime in Chrome runs Node.js that has its own WebAssembly runtime. WordPress runs on the latter, not on the former, and that indirection causes a massive slowdown.

Luckily, the browser can run WebAssembly natively without an intermediate Node.js layer.

An in-browser WASM WordPress is really fast

Here’s a Stackblitz WordPress setup using the webworker WordPress version:

It is much faster! Unfortunately, the speed comes at the expense of simplicity.

Stackblitz requires a service worker just like the in-browser WASM WordPress. However, you can only have one per domain. Therefore, the WordPress files in this example are hosted on a Netlify domain.

Then, the Stackblitz files can’t be directly mounted into the in-browser PHP filesystem. The changes need to be synchronized manually. In this example, a node.js file watcher notifies the PHP webworker about the updates via WebSockets and onmessage/postMessage. There are bugs, but all are fixable.

Known issues

WASM WordPress issues:

  • The in-browser WordPress builds sometimes crash the Chrome tab, see the GitHub issue. Firefox, Safari, and node.js are much more stable.

Stackblitz integration issues:

  • The in-browser Stackblitz setup doesn’t watch subdirectories.
  • WordPress exceeds Stackblitz size limits unless imported as a node_module.
  • Stackblitz corrupts a predefined binary .sqlite database file. A base64-encoded version is shipped instead.
  • Stackblitz doesn’t pass a server-side set-cookie 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. to the browser. That’s a 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.. Workaround: the express.js server handles the cookies internally.

Next steps

Your help is needed to fully realize the vision laid above. None of the presented mockups and early explorations is currently reliably implemented. This project needs contributors to stabilize the code and build revolutionary tools on top of it – see the issues list on GitHub. If you’d like to be a part of it, please say so in the comments!

Resources

Props to @bph, @annezazu, and @gziolo for their thorough help with reviewing and editing this post.

#core, #editor, #proposal

Summary, Dev Chat, September 21, 2022

Notes from the weekly WordPress Developers Chat, which takes place on Wednesdays at 20:00 UTC in the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. channel of 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/.. All are welcome to attend.

To view the content from any of the Slack links listed, you will need a Making WordPress Slack account to view.

1. Welcome

Dev Chat is for everyone. This meeting is not for making decisions but for sharing updates about the next releases, TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets, component maintainers and more.

Meeting preparation and co-hosts: Props to @webcommsat and @marybaum.

The agenda is structured to help new contributors or those new to core or releases follow along more easily, and to make it easier for notetakers and for 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).

The meeting agenda

Link to the start of the meeting on Slack

2. Announcements

  • WordPress 6.1 BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 is now available 
    https://wordpress.org/news/2022/09/wordpress-6-1-beta-1-now-available/
    Thank you to everyone involved and contributors who came to test at the earlier release party.

3. Blogblog (versus network, site) Posts and important links

Twenty Twenty Two (TT2) theme accessibility discussion

Start of the discussion on Slack

@annezazu highlighted a cross-team discussion on releasing a new version of Twenty Twenty Two theme so that the committers could add the accessibility-ready label to it ahead of 6.1. This was raised as a possibility as it would be the first 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 with that label, opening the door for more people to be able to explore using various Full Site Editing (FSE) features.

@audrasjb: if adding the accessibility-ready tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) to TT2 is that important, then suggest to only release this change (the above commit), and not all the other changes milestoned in 6.1.

@joedolson:
– It’s a minor fix, but the theme is less accessible right now than it will be when 6.1 is available.
– elates to the Trac ticketticket Created for both bug reports and feature development on the bug tracker. #56067 query navigation arrow icons. Accessibility image requirements
– confirmed the theme would not pass the accessibility-ready criteria with this 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..

Actions:

  • @annezazu: The decision feels clear to me to wait for 6.1.
  • Follow the discussion on the accessibility-ready tag for the TT2 theme: these are mostly in the Trac ticket #55172. @annezazu will add a recap of the discussion on the ticket.

4. Releases

a) 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. is 6.1.
The Call for Testing for 6.1 was published earlier today.
Actions: The post on testing is really valuable part of the process, and lots of useful information on how to take part.

@jeffpaul: main update from the squad is that the Beta 1 is available and testing is strongly desired please and thanks!
b) @jeffpaul highlighted the following issues to continue discussion on the relevant Trac tickets: should the contributors revert them before Beta 2 on September 27? Is there some other more optimal result? Tickets #56400 and #19898.

Actions request: read and add directly on the tickets, particularly to comment 8 on ticket #56400 on the discussion on the naming of things.


c) Useful links and next release cycle dates
WordPress 6.1 Development cycle
Bug scrub schedule for 6.1

Beta 2 release will be next Tuesday, September 27, 2022 starting at 16:00 UTC in the #core Slack channel@jeffpaul: All are welcome, any and all testing will be welcome.

d) Discussion on date of the 6.1 release
Slack thread

On today’s agenda, comment from @marctison75 relating to the date of the 6.1 release:
“…are you aware that the release day (November 1, 2022) is a public holiday in many European countries (France, Italy, Spain, Belgium, Portugal, Germany, Croatia, Austria…)?”

Discussion points focused on:

  • this date appears to be a public holiday that affects many countries. It is also a public holiday in many countries in Europe, parts of South America, Africa, and further.
  • sensitivity to public holidays given comments about avoiding weekends
  • uncertainty about what dates could be changed at this time. Need to avoid the US elections
  • decision to be made by the release squad to determine what’s best, discussion valuable to take place in core/ dev chat. Availability of release squad members needed will be the key factor
  • question on whether the release date could be moved by just one day to November 2, 2022, like for Beta 1?
  • traditionally Tuesday’s are the planned release days based on past experience
  • primary concern is surrounding core auto-updates:
    • a lot of hosts are likely to auto-update irrespective of a public holiday
    • generally hosts auto-update when they have people on site to handle any issues so weekends are avoided
    • consider hosts outside the US too
    • a host may auto-update without realizing the implications for the users and any public holidays they have
    • auto-update can be enabled by any site owner via update-core.php or by 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., not only hosts
  • avoid days too close to the weekend.
  • Monday is dry run day, better to avoid dry run falling on a Sunday

Actions:
@davidb: Let the Release coordinators discuss in 6.1 channel and send up the flagpole if necessary. There’s never a best time for to these things. It’s always a compromise.

@jeffpaul: Ok, we will work to sort out with release leads whether an alternate day for the release may be desired, though I imagine folks would complain about Monday of that week with the holiday following.  More to come hopefully by next dev chat.

@webcommsat thanked those who had raised the issue and all the comments. Asked release squad leads to also add a comment to the dev chat summary with any decision.

5. Component maintainers and tickets

@sergeybiryukov: Date/Time: Some fixes were made to ensure that timezone strings deprecated in newer PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher versions are handled correctly by WordPress. Thanks @jrf and @costdev. Ticket #56468 for more details.

Build/Test Tools, General, 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.: Permalinks: No major news this week 

@webcommsat: About/ Help and Quick/ Bulk Edit: couple of issues we are trying to move forward. More on Monday in our working session.

6. Open Floor

a) @marybaum gave a welcome to our new contributors who helped with dev chat at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. US!

b) Query on the Canonical Plugins post

@costdev: A couple of questions that others may know the answer to:

  • Is this a decision or a proposal?
  • What does this mean for WebP? Is it going into Core at all, or has it been blocked?
  • What does this mean for other in-development features for Core?
  • Do we have a criteria for what is acceptable for Core, and what should be a Canonical pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party? Or are all features Canonical Plugins unless they’re a “runaway success” as Matt said in the post?

@jeffpaul gave a reply to these questions from his perspective:

  • Is this a decision or a proposal?
    • @jeffpaul: It’s from Matt, so I would read that as a decision.
  • What does this mean for WebP? Is it going into Core at all, or has it been blocked?
    • @jeffpaul: It’s been reverted from 6.1 and seems best suited as a Canonical Plugin, based on Matt’s comment in WebP in Core for 6.1 of “This is excellent territory for a canonical plugin”.
  • What does this mean for other in-development features for Core?
    • @jeffpaul: Can you provide an example as I imagine it could depend based on what you’re referencing?@costdev: Some examples would be Rollback, Plugin Dependencies, WP Notify
    • @afragen: Question – Is Matt or leadership going to let us know whether existing feature projects are going to be acceptable for core or live their life as canonical plugins?
    • @jeffpaul: yeah that’s where I was headed… I think if we as 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. can collect a list of those outstanding proposals, then we could look to Core Team Reps to route those through Josepha/Matt for input as to whether they’re still ok to continue towards core merge proposal or better suited as a canonical plugin.
  • Do we have a criteria for what is acceptable for Core, and what should be a Canonical plugin? Or are all features Canonical Plugins unless they’re a “runaway success” as Matt said in the post?
    • @jeffpaul: This is all still a new process for many of us I imagine, but if I had to guess I suspect we might want to update our core proposal “process” to ensure there’s a check early on with Matt/Josepha for direction on “this is good for core merge proposal” or “this is best as a canonical plugin” so we know early on how best to be building out the feature.
    • @jeffpaul: answering these on my own behalf with no input from Matt, Josepha, lead devs, committers, or anyone else of significance here in core.
  • @costdev said it might be useful to have the issue discussed with Core during a dev chat open floor to give a little heads up, understand the reasoning of the decision, and a Q&A prior to the public announcement.
    • @jeffpaul: I suspect it may be more likely that we get answers from Matt async than waiting for a week where his schedule is free for dev chat (and one where others can be present to participate).  As such, it may be better to gather questions folks have, again maybe via coordination with Core Team Reps, and present those to Matt/Josepha to get responses async to help guide our actions here as core contributors.

c) WordPress 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/

If you are a member of the WordPress GitHub organization, you should have received a message to enable Two Factor Authentication if it is currently disabled on your account. Please check your messages and settings.

The next dev chat will be on Wednesday September 28, 2022 at 20:00 UTC.

Props to @webcommsat for the summary, @costdev and @marybaum for the review.

#6-1, #core, #dev-chat, #summary, #week-in-core

Core Editor chat summary: 21st September 2022

This post summarises the weekly editor chat meeting (agenda here) held on 2022-09-21 14:00 UTC in Slack. Moderated by @get_dave.

Status Updates

  • Version 14.1.0 of 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/ 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 was released. You can read what’s new in Gutenberg 14.1.0.
  • Following this, Minor release 14.1.1 was released 2 days ago to fix a 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. with searching for blocks.
  • Zooming out a bit, the WordPress 6.1 release schedule is proceeding. 
    • 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 was supposed to be yesterday but it turns out that’s been moved to today (21st September 2022).
    • Just in case it moves again, you can check out the full development cycle plan.
  • The last version of Gutenberg that made it into WP 6.1 was 14.1 RC1.

Updates based on updated scope for site editing projects

Task Coordination

The following items were shared by folks to update us on what work is in progress or where help is needed:

@alexstine (not present – shared from agenda):

    @annezazu:

    • Working on
      • the FSE Program Testing Call #17: Guiding the Gutenberg Gallery (everyone is welcome to participate).
      • co-coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. editor triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. duties for 6.1.
      • a Core related roadmap companion post for Make Core with a few folks.
      • a core editor improvement post on the various design tools coming to 6.1.
      • a draft of an 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) improvements roundup for 6.1.
    • Lots of writing, testing, and sharing info with folks where I can!

    @mamaduka – I am planning to start work on the new entity permission selector; it would be like `canUser` but easier to use with entities.

    @get_dave:

    • I’m switching focus to work on bugs. Found some interesting issues around LinkControl and also the Navigation 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..
    • Continuing to iterate in the background on using slugs for Navigation blocks, and also ability to add Custom Labels to the List View.

    @colorful-tones:

    • I’m really keen on trying to review the latest roadmap for WebFonts APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. and love the organized outline of features, but almost feel overwhelming and hard to know where one might focus on reviewing and providing feedback. So, any guidance is appreciated.
    • @hellofromtonya responded to say: right now, it’s blocked until the re-architecturing work is done.

    @bph:

    • For 6.1 we, Michael and I, added the label needs-dev-note to quite a few PRs in our first round of triaging.
    • Next steps is to add them in topical order to the Dev Note tracking issue. It might take another few more days to finish it.
    • Please continue to leave comments on the issue, or the PRs. I’ll catch up with you quickly. 

    Open Floor

    The full Open Floor discussion is available 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/.. It was a quiet meeting…

    Critical Bug Reporting for WordPress 6.1

    @ndiego said:

    As @annezazu alluded to, right now, my main focus is testing, testing, testing. But we need more help to ensure 6.1 is as polished as possible. I just wanted to reiterate that if anyone finds a critical bug, especially if it’s related to 6.1 features, please add it to the 6.1 Project Board and we will triage it from there.

    Thanks to everyone who attended the meeting.

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

    Dev Chat agenda, September 21, 2022

    Additional information added to section 4 releases on coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. tickets requiring attention – update added September 21, @webcommsat.

    The weekly WordPress Developers Chat will take place on Wednesday, September 21 2022 at 20:00 UTC .
    All are welcome to join the chat in the #Core channel of 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/..

    1. Welcome

    2. Announcements

    WordPress 6.1 Beta 1 release party will now be on Wednesday September 21, at approximately 16:00 UTC. Please note: the rest of the release schedule is unchanged.

    What’s new in Gutenberg 14.1 – this is the last release that goes with WordPress 6.1.

    3. Blogblog (versus network, site) posts

    A week in core – published September 19, 2022

    Releasing a new version of Twenty Twenty Two theme so that the accessibility ready label can be added. This is an important change and marks the first 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 with that label, opening the door for more people to be able to explore using various Full Site Editing (FSE) features.

    Core performance team is reviewing its missions and philosophies – document can be found in its meeting summary for September 20, 2022.

    Update on Dominant color feature, which has been highlighted in recent dev chats – discussion in the performance meeting.

    Notes from Developer blog – first editorial meeting, September 1, 2022

    4. Releases

    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. is 6.1

    a) Update from members of the release squad.

    b) The following tickets have been highlighted by @jeffpaul for focus at the meeting for discussion especially on whether it should be reverted heading into 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. 2 on Tuesday, September 27, 2022. Please check the tickets and add comments there. Tickets #56400 and #19898.

    Any other updates from release squad and those working on 6.1?

    c) Useful links
    WordPress 6.1 Development cycle

    Bug scrub schedule for 6.1

    5. Component maintainers issues / help with ticketticket Created for both bug reports and feature development on the bug tracker. requests

    Comments or asynchronous updates can be added to this agenda.

    6. Open Floor

    Comments or asynchronous updates can be added to this agenda.

    #6-1, #agenda, #dev-chat

    WordPress 6.1 Beta 1 delayed

    WordPress 6.1 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 was originally scheduled to be released today (Tuesday, September 20th) starting at 16:00 UTC. However, during the release party in #core those assembled identified an NPM test failure and three 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/ PRs (#3221#3254#3255) that were included in the 6.1 Walkthrough and were all deemed ideally resolved and properly part of the 6.1 Beta 1 release.

    The decision was made to delay the 6.1 Beta 1 release party to tomorrow, Wednesday, September 21st at 16:00 UTC to allow time to resolve the NPM test failure and wrap up reviews and commits on the Gutenberg PRs.

    The rest of the 6.1 release cycle schedule is unchanged.

    #6-1, #beta

    Performance team meeting summary 20 September 2022

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

    Announcements

    Focus group updates

    Images

    @adamsilverstein @mikeschroder

    GitHub project

    • @adamsilverstein: WebP feature was reverted following Matt’s post. Still trying to determine what a canonical pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party is and if it would work for WebP by default. Still have some fixes to land for 6.1 around image quality when WebPs are output via Performance Lab plugin.
    • @spacedmonkey: Next steps for Dominant color feature
      • We’ve run out of time to merge before 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 cutoff
      • Feedback process was a lot slower than we thought it would be
      • Should continue to work on this and try to get it in for 6.2
      • @pbearne: Version with theme flag could be merged
      • @spacedmonkey: Merging now doesn’t feel great as there are still unanswered questions. Code is ready, but not sure what feedback will push this across the line. May need to push early in 6.2 cycle and see what happens.
      • @flixos90: Feels like another merge proposal post with a concrete timeline on a merge date could be good to put out right after 6.1, so people can provide any additional feedback. Should also note the new theme support flag approach.

    Feedback requested

    Object Cache

    @tillkruess @spacedmonkey

    GitHub project

    Feedback requested

    Site Health

    N/A

    GitHub project

    • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or 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.” in SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.
    • @shetheliving: #56040 and #56041 (two Site Health checks from Performance Lab) have been merged for 6.1 and dev notes are in progress
    • @mukesh27: PR #543 for adding can-load.php to these Health Checks is ready for review

    Feedback requested

    Measurement

    N/A

    GitHub project

    • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or ping in Slack
    • @shetheliving: Reminder about the performance testing environment work started back in March: https://make.wordpress.org/core/2022/03/22/performance-team-meeting-summary-22-march-2022/. This has stalled out since then; if anyone is interested in picking it back up, let us know.
    • @flixos90: Working on a proposal to integrate the Server Timing API into Performance Lab. We have a lack of awareness for how WP is performing server-side and this simple piece of infrastructure would allow us to measure specific features/modules of the plugin to see who they are affecting PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher performance. Should an open an issue this week or next.
    • @mehulkaklotar: Continuing to work on a proposal for the plugin performance checker tool

    Feedback requested

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

    @aristath @sergiomdgomes

    GitHub project

    • N/A

    Feedback requested

    Infrastructure

    @flixos90

    GitHub project

    Feedback requested

    Discussion: Module proposal: Optimized autoloaded options

    @markjaquith

    • Options are autoloaded by default, and most options stay autoloaded even after the plugin or theme that uses them has been deactivated
    • This autoloading has a cost in terms of the performance of the query that loads autoloaded options, and also because the values of these options are kept in memory
    • Discussed a lot of ways of addressing this at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. US, and the most promising path that would have the most benefit for the most users (and fits in with this group’s philosophy on focusing on automated fixes instead of introducing new APIs) is to dynamically move options in and out of the “autoload” pool based on usage
    • Options that are used *and* are not past a certain size cutoff should be autoloaded, but large options and options that are not used, should not be autoloaded
    • Proof of concept is linked in the ticketticket Created for both bug reports and feature development on the bug tracker. and we’re looking for additional feedback
    • @pbearne already brought up the issue of options that are queried BEFORE a module could start “listening” for them to be called, but there are undoubtedly other gotchas and opportunities here
    • Especially useful would be help in developing a strategy for measuring the performance of this fix for various sizes of autoloaded options
      • @flixos90: Could leverage the Server Timing APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. (noted above) to measure the time the autoloaded options query takes, for example
    • @pbearne: Think that both @markjaquith‘s and my fixes can be used as they work best for different configurations
    • @spacedmonkey: Could we start adding a limit to the number of autoloaded options, say 250 rows? Or is the issue size in terms of memory?
      • @pbearne: If we can load just what we need, the SQL time is less
      • @markjaquith: We do this to avoid hundreds of individual queries
    • @rickjames: Is “autoloading” the thing that PHP can do for include files? I thought it was so slow as to be better to always include everything
      • @markjaquith: No, this is about quering the wp_options table for autoload = 'yes'
    • @rickjames: That gets to the lack of adequate indexes for the wp_options table; a simple change can speed up SELECTs
      • @markjaquith: There’s already an index, it’s more about the volume of data being transferred
    • @eugenemanuilov: Think we should move from defining which option is autoload-able in the database table to the option registration in WP, so a plugin/theme owner will need to register an option similarly to how settings are registered with register_setting and define whether an option is autoload-able there
    • @flixos90: Both proposals at a high level have the idea of querying what is needed, but the newer proposal does it globally while still keeping a single place of storage while the latter was aimed at having different “options lists” per template/page. The latter would be great, but it comes with heavy storage implications, so the newer proposal is probably the best place to start since it has no additional storage implications.
    • @markjaquith: Do think that the issue is data, not rows – evicting autoloaded options could help wtih both
    • @rmccue: Have run into performance problems with pulling autoloaded options from object cache, so agreed that this is an issue
    • @markjaquith: Also issue with memcache’s default config being size-limited
    • @spacedmonkey: Could we use register_settings to define if an option should be autoloaded?
    • @rmccue: CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. problem is that autoload is true by default, which is what causes issues
    • @markjaquith: Two approaches – @pbearne optimized for “literally just what this page needs”; my POC was for “never autoload things that aren’t used”
    • @spacedmonkey: So will we store an array of used options in options table?
      • @markjaquith: Current implementation only stores timestamp of last calibration, but with some additional storage we could minimize dynamic re-adding of autoloaded options
    • @rmccue: Autoloading options should minimize DB/cache calls, but not necessarily replace them. The heuristic of what should be autoloaded is key to this proposal.
      • @markjaquith: To me, it’s “things that are used and aren’t unreasonably large.” Can also honor autoload='no' while not honoring autoload='yes' as chosen by developers.
    • @spacedmonkey: Don’t love the idea of storing an array of keys. How do you generate the array? What is the average page load?
    • @rmccue: To move forward, we need a concrete proposal for how the heuristic works. Will look into the networknetwork (versus site, blog) saturation problems we’ve run into get an idea of what “unreasonable” might lok like.
    • Next steps: @markjaquith will work on detailing the heuristic further in #526 and when it’s ready, we’ll schedule another discussion for a future chat

    Our next chat will be held on Tuesday, September 27, 2022 at 11am EDT in the #core-performance channel in Slack.

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

    #meta

    Editor Chat Agenda: 21st September 2022

    Facilitator and notetaker: @get_dave.

    This is the agenda for the weekly editor chat scheduled for 2022-09-21 14:00 UTC.

    This 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/..

    If you cannot attend the meeting, you are encouraged to share anything relevant to 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

    A Week in Core – September 19, 2022

    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 September 12 and September 19, 2022.

    • 94 commits
    • 139 contributors
    • 53 tickets created
    • 2 tickets reopened
    • 71 tickets closed

    The Core team is currently working on 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., WP 6.1 🛠

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

    Code changes

    Administration

    • Add new get_views_links method to WP_List_Table#42066

    Build/Test Tools

    • Move the basic get_block_templates() test to the dedicated file – #55652
    • Rename the test for pre_option 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. to match the filter name – #37930
    • Rename the test for wp_guess_url() to match the function name – #36827
    • Replace the timezone used in date/time tests – #56468
    • Reset timezone-related options if the tests change them – #56468#55388
    • Simplify the data provider for testing whether KSES globals are defined – #55652
    • Update the test for respecting the post type in get_block_templates()#55881

    Bundled Themes

    • Fifteen: Ensure border-bottom styles are applied to the 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.#55006, #55824
    • Nineteen: Define underline thickness for links – #45925
    • Seventeen: Ensure long text wraps correctly in the Button Block – #55783
    • Twenty-One: Add a missing HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. comment for CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. notice control – #55725
    • Twenty-One: Fix Heading Block alignment when nested in Cover Block – #56050
    • Twenty-One: Remove WooCommerce related CSSCSS Cascading Style Sheets. selectors – #56366
    • Twenty-Two: Add “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) Ready” tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) to theme in repository – #55172
    • Twenty: Correctly align Social Icons block in the editor – #55987
    • Twenty: Ensure Latest Posts block set to 2 columns displays accordingly in the Editor – #56175
    • Twenty: Ensure headings styles are consistent between editor and front-en – #56194
    • Twenty: Ensure link color is inherited from paragraph in the editor – #56214
    • Twenty: Fix Heading Block alignment when nested in Cover Block – #56049
    • Twenty: Fix Social Links widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. alignment – #56474
    • Twenty: Improve support for Post Title block alignment – #56167

    Code Modernization

    • Add AllowDynamicProperties attribute to all (parent) classes – #56513, #56034
    • Fix autovivification from false to array in WP_Scripts::localize()#55656
    • Pass correct value to parse_url() in WP_Customize_Manager::get_return_url()#55656
    • Reduce CSS float usage in wp-adminadmin (and super admin) – Timezone settings – #55557
    • Remove -webkit-appearance CSS declarations – #38431
    • Replace deprecated string interpolation patterns – #55787

    Coding Standards

    • Move WP_List_Table::get_views_links() to a more appropriate place – #42066
    • Remove unwanted spaces in the WP_Block_Type class
    • Replace double quote with single quote in test_if_failed_update()#55758
    • Various alignment fixes from composer format#39210, #55443, #56288, #56092, #56408, #56467, #55881

    Comments

    • Make wp_required_field_indicator() and wp_required_field_message() output filterable – #56389, #54394
    • Remove aria-hidden="true" attribute for visible text in comment template – #55717

    Docs

    • Add missing @since history in Gallery ShortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. function – #56206, #55646
    • Clarify documentation for the nav_menu_item_id filter – #56574, #55646
    • Clarify that get_page_template() doesn’t work on block themes – #56394, #55646
    • Clarify the $allowed_protocols default value in various KSES functions – #56580
    • Correct @return type for WP_Block_Parser::parse()#56581
    • Correct @return value for wp_get_http_headers()#54225, #55646
    • Correct @since tags for some block parser properties and methods – #56581
    • Correct the wording in wp_lostpassword_url() description – #55646
    • Revert the WP_Block_Parser documentation changes now – #56581
    • Typo correction in _load_textdomain_just_in_time() docblockdocblock (phpdoc, xref, inline docs)#55646
    • Update wp_rand docblock to clarify that it returns a non-negative number – #15089
    • Use third-person singular verbs in Media 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. function descriptions, as per docblocks standards – #55646
    • Use third-person singular verbs in Template Loading functions descriptions, as per docblocks standards – #55646

    Editor

    • Add new render property in block.json for block types – #53148
    • Allow registering multiple items for all supported asset types – #56408
    • Backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. Style Engine API functions, classes and tests – #56467
    • Backport build_query_vars_from_query_block changes from GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ repository – #56467
    • Backport wp_theme_element_class_name() alias – #56467
    • Backport block supports (border, color, elements, spacing) from Gutenberg to WP 6.1 – #56467
    • Backport block supports filter callback, registrations and tests to 6.1 – #56467
    • Backport foundation for Layout block support refactor (part 1) – #56467
    • Backport foundation for Layout block support refactor (part 1) – #56467
    • Finalize the theme_json_get_style_nodes hook name – #56467
    • Fix function name case in wp_default_packages_inline_scripts()#56467
    • Fix get_block_templates() to get templates for a post type – #55881
    • Fix text zoom on link popup editor – #53174
    • Hide 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. pagination link arrows from assistive technologyAssistive technology Assistive technology is an umbrella term that includes assistive, adaptive, and rehabilitative devices for people with disabilities and also includes the process used in selecting, locating, and using them. Assistive technology promotes greater independence by enabling people to perform tasks that they were formerly unable to accomplish, or had great difficulty accomplishing, by providing enhancements to, or changing methods of interacting with, the technology needed to accomplish such tasks. https://en.wikipedia.org/wiki/Assistive_technology#56067
    • Persist preferences in user 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.#56467
    • Revert [54159] – #56467

    External Libraries

    • Update the jQuery UIUI User interface library to version 1.13.2 – #56239
    • Update the jQuery library to version 3.6.1 – #56451

    Feeds

    • Add a set of fine-grained filters to disable the different types of feed links separately – #55904

    General

    • Add a new filter for the_posts_pagination_args#53392
    • Correct path replacement regex in wp_guess_url#36827
    • Ensure admin notices are properly displayed on Site Health layout – #54624
    • Pass $action to nonce_life filter – #35188
    • Replace Codex links with their HelpHub counterparts – My Sites screen – #48987
    • Replace Codex with HelpHub in WordPress readme – #48987

    Help/About

    • Make translator comments version agnostic and make version translatable on the About page – #54741
    • Remove .hidden class when the Help Tab panel is displayed – #27697

    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.

    • Remove code tags from translatable strings in WP_List_Table::get_views_links()#42066

    Login and Registration

    • Access improvements to networknetwork (versus site, blog) signup – #40361
    • Required fields in network registration – #54344

    Options, Meta APIs

    • Add a new pre-option filter – #37930

    Plugins

    • Visually align 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 cards in Plugin Install screen – #55721, #55272

    Posts, Post Types

    • Improve performance of the get_user_data_from_wp_global_styles method – #55392
    • Update new wp_post_class_taxonomies filter name for consistency – #37114

    REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.

    • Add support for settings to specify their own additionalProperties – #56493

    Role/Capability

    • Add a new update_role function – #54572

    Site Health

    • Adjust margins for the Site Health dashboard widget – #56369
    • Improve the description for Authorization 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. checks – #54508
    • Improve the details provided by the REST API checks – #54617
    • Add a check to wp_check_php_version() whether the current PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher version is lower than the next (desired) minimum version, Set the next desired minimum PHP version to 7.2, Use that check to update the warnings in the wp_dashboard_php_nag() widget, and on the Site Health screen – #56199
    • Add a menu bubble with the critical issues count to the Tools -> Site Health submenu – #56199

    Text Changes

    • Remove self-reference (“we”) in WordPress Admin – #55758, #46057

    Themes

    • Implement file description for theme.json#55325
    • Introduces block-based template parts for Classic themes – #56467

    Upgrade/Install

    • Add plugin URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org to the automatic update email – #53049
    • Remove _copy_dir() function as originally intended – #55712, #17173
    • Update sodium_compat to v1.18.0 – #56564

    Props

    Thanks to the 139 (!!) people who contributed to WordPress Core on Trac last week: @audrasjb (29), @costdev (25), @sabernhardt (18), @SergeyBiryukov (15), @bernhard-reiter (10), @mukesh27 (10), @jrf (8), @hellofromTonya (6), @peterwilsoncc (6), @Clorith (5), @joedolson (5), @aristath (4), @desrosj (4), @kajalgohel (4), @afercia (4), @poena (4), @kebbet (4), @tahmidulkarim (3), @joyously (3), @spacedmonkey (3), @zieladam (3), @ramonopoly (3), @andrewserong (3), @multidots1896 (3), @robinwpdeveloper (3), @scruffian (2), @isabel_brison (2), @aaronrobertshaw (2), @noisysocks (2), @mamaduka (2), @netweb (2), @neychok (2), @umesh84 (2), @mrfoxtalbot (2), @Chouby (2), @webcommsat (2), @smit08 (2), @fabiankaegy (2), @ironprogrammer (2), @azaozz (2), @ocean90 (2), @antonvlasenko (2), @NomNom99 (2), @dd32 (2), @Presskopp (2), @pbiron (2), @luisherranz (1), @juliemoynat (1), @harshvaishnav (1), @ayeshrajans (1), @markjaquith (1), @knutsp (1), @welcher (1), @grandeljay (1), @bhrugesh12 (1), @annezazu (1), @mikeschroder (1), @ryokuhi (1), @utz119 (1), @kjellr (1), @bph (1), @matveb (1), @kamig478 (1), @lopo (1), @robertghetau (1), @NathanAtmoz (1), @voldemortensen (1), @jdgrimes (1), @curdin (1), @petitphp (1), @flixos90 (1), @jamesckemp (1), @paragoninitiativeenterprises (1), @nidhidhandhukiya (1), @kmadhak (1), @kapilpaul (1), @pbearne (1), @timothyblynjacobs (1), @dlh (1), @afragen (1), @devtanbir (1), @mhkuu (1), @TobiasBg (1), @cfinke (1), @sharjeelkhanvmi (1), @chaton666 (1), @davidbaumwald (1), @JosVelasco (1), @tobiasbg (1), @shetheliving (1), @dingo_d (1), @rafiahmedd (1), @wparslan (1), @monolithon (1), @glendaviesnz (1), @Ipstenu (1), @ChrisHardie (1), @oliverstapelfeldt (1), @maksimkuzmin (1), @henrywright (1), @gziolo (1), @juhise (1), @Dharm1025 (1), @garrett-eclipse (1), @jonny-s (1), @jorbin (1), @DrewAPicture (1), @dwainm (1), @giuseppemazzapica (1), @marybaum (1), @johnjamesjacoby (1), @SteelWagstaff (1), @allisonplus (1), @maartenj (1), @haritpanchal (1), @danfarrow (1), @allancole (1), @bengreeley (1), @cbravobernal (1), @ntsekouras (1), @manfcarlo (1), @helen (1), @grabmedia (1), @dilipbheda (1), @armondal (1), @youknowriad (1), @hakre (1), @talldanwp (1), @oandregal (1), @aljullu (1), @andregal (1), @adamsilverstein (1), @rolfsiebers (1), @celloexpressions (1), @laurent22777 (1), @tobifjellner (1), @jeremyfelt (1), @westi (1), and @annabansaghi (1).

    Congrats and welcome to our 18 (!!) new contributors of the week: @tahmidulkarim, @harshvaishnav, @jamesckemp, @kmadhak, @devtanbir, @mhkuu, @sharjeelkhanvmi, @monolithon, @oliverstapelfeldt, @maksimkuzmin, @jonnys, @dwainm, @giuseppemazzapica, @allisonplus, @maartenj, @grabmedia, @armondal, @laurent22777 ♥️

    Core committers: @audrasjb (40), @sergeybiryukov (24), @davidbaumwald (9), @hellofromtonya (5), @joedolson (3), @desrosj (3), @clorith (3), @gziolo (3), @azaozz (2), @spacedmonkey (1), @timothyblynjacobs (1).

    #6-1, #core, #meta5999, #meta6322, #week-in-core

    X-post: WordCamp US Contributor Day 2022 Recap

    X-comment from +make.wordpress.org/updates: Comment on WordCamp US Contributor Day 2022 Recap