Enhanced lazy-loading performance in 5.9

Lazy-loading images was introduced in WordPress 5.5 and later expanded to also cover iframes in WordPress 5.7. In the upcoming WordPress 5.9 release, the implementation for both has received some fine tuning to improve performance.

A performance analysis from mid-2021 had discovered that the lazy-loading implementation from WordPress had been causing a slight performance regression in the Largest Contentful Paint metric (LCP). As outlined in the referenced post, the reason for that was that images and iframes in the initial viewport would be marked to lazy-load them, since the WordPress implementation would mark nearly all images with loading="lazy". The aforementioned post then further explains that this can be improved by skipping addition of loading="lazy" for the first content image or 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., which in the vast majority of cases will appear within the initial viewport. WordPress can only make educated guesses around that and not be 100% certain, but an analysis taking into account 50 popular themes showed that the enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. brought LCP improvements across the board, up to 30% faster page load. WordPress 5.9 now comes with this refinement implemented, leading to the corresponding enhanced LCP performance.

How it works

So far, fine tuning which images and iframes should be lazy-loaded or not has been possible using the wp_img_tag_add_loading_attr and wp_iframe_tag_add_loading_attr filters, and these are still available as before. However, to improve the performance out-of-the-box without requiring a developer to customize the behavior, WordPress will now skip the very first “content image or iframe” on the page from being lazy-loaded. The term “content image or iframe” here denotes any image or iframe that is found within content of any post in the current main 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. as well any featured imageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. of such a post. This applies to both “singular” and “archive” content: In a “singular” context the first image or iframe of the (only) post is not lazy-loaded, while in an “archive” context the first image or iframe of the first post in the query is not lazy-loaded.

Customizing the behavior

The approach of not lazy-loading the first content image or iframe enhances LCP performance correctly for the majority of themes, which use a single-column layout for post content. For themes with alternative layouts such as multi-column, a new wp_omit_loading_attr_threshold 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. is now available and can be used to change how many of the first images/iframes should be skipped from being lazy-loaded – per the above, the default is 1. It is recommended for theme authors to use this filter in cases where based on the layout it is likely to have more than one content image/iframe in the initial viewport.

For example, a theme that uses a three-column grid of posts in its archives could leverage the filter to override the threshold to 3 on archive pages, which would then result in the first three content images/iframes not being lazy-loaded. The following code snippet illustrates what that could look like:

function skip_lazyloading_on_first_three_archive_images( $omit_threshold ) {
    if ( is_home() || is_archive() ) {
        return 3;
    }
    return $omit_threshold;
}
add_filter( 'wp_omit_loading_attr_threshold', 'skip_lazyloading_on_first_three_archive_images' );

The refinement of the lazy-loading implementation should notably improve LCP performance for most sites that rely on it, while not having adverse effects for sites where the default heuristics described above do not apply to. That is only a solid starting point though. In the future, specifically with the more semantic content specification that 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.-based themes will facilitate, we will be able to further fine tune the lazy-loading implementation by using the available block information.

For more background information on the changes described above, see #53675.

Props to @adamsilverstein and @audrasjb for review and proofreading.

#5-9, #dev-notes, #feature-lazyloading, #performance

A Year in Core – 2021

Here’s some aggregate data for 2021 about WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. contribution on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.. Please note: it only include code contributions and it does not include contributions on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can 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/ repositories like 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/.

The raw data for this post are on this public spreadsheet. You might find that easier to read if you have low vision or colorblindness; the graphics below are a snapshot pulled together to include as much information as possible in this blogpost.

General Trac overview

In 2021, the WordPress Core team shipped 1852 commits. 2797 tickets were opened, 2732 tickets were closed, and 408 were reopened.

Also, 2572 people contributed to WordPress source code using Trac, and 305 people made their very first contribution to WordPress Core ♥️

JanFebMarAprMayJunJulaugSepOctNovDecTotal
Commits6217511097142286174175103573271441852
Tickets closed236315372147182355248210157882711512732
Tickets reopened263345212537773622193136408
Tickets created2002803711771973202882971611261901902797
New contributors144314223537151218147110305
Contributors120229165117280400154132156905551742572
This chart can be scrolled horizontally

Check out the Trac timeline in the graph below:

Here’s how many props and new contributors the Core project had per month. The most prolific month was November, in the WordPress 5.9 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. cycle, followed by June (WP 5.8 beta cycle).

Components activity

How did 2021’s commits break out by Core Component?

The most prolific components were:

  • Build/Test Tools with 310 commits (17% of all listed commits)
  • Docs with 198 commits (11% of all listed commits)
  • Editor with 188 commits (10.5% of all listed commits)
  • Bundled Themes with 144 commits (8% of all listed commits)
  • Coding Standards with 140 commits (8% of all listed commits)
  • Then comes Media, 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/., Code Modernization, External Librairies, Administration, Upgrade/Install, Site Health and Posts/Post Types. The other components each had fewer than 30 commits this year.

Data fetched from 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/ profiles

The data below comes from matching contributors’ usernames, as mentioned in Trac props, with their profiles on WordPress.org. One caveat: usernames that did not match a profile on dotorg, or that left blank their country/company information, filled in non-exploitable info got ignored. After all, “The Universe” or “The place to be” are not known countries 😆

Contributions by country

The next graph shows the number of props received by country. The top eight countries, based on the number of props received, are these:

  • United States with 1142 contributions
  • France with 266 contributions
  • Russia with 227 contributions
  • The Netherlands with 225 contributions
  • India with 219 contributions
  • Australia with 211 contributions
  • United Kingdom with 112 contributions
  • Canada with 102 contributions

Contributors (people) by country

In 2021, people from more than 56 countries contributed to WordPress Core.

The top eight countries by contributions, expressed as the number of props received, are:

  • United States with 155 people
  • India with 58 people
  • United Kingdom with 34 people
  • France with 26 people
  • Germany with 23 people
  • The Netherlands with 20 people
  • Canada with 16 people
  • Australia with 15 people

Contributions by company

In 2021, people from at least 236 companies contributed to WP Core.

These companies each contributed (well, their people did) to more than 50 commits:

  • Automattic with 785 contributions
  • Yoast with 379 contributions
  • Whodunit with 215 contributions
  • Advies en zo with 191 contributions
  • Bluehost with 146 contributions
  • Human Made with 131 contributions
  • Google with 87 contributions
  • iThemes with 73 contributions
  • Dekode Interaktiv with 52 contributions

Contributors (people) by company

The graph below is also interesting, because it shows that a huge number of companies have only one contributor—or a very few contributors. The exceptions are Automattic, with 85 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. on Trac in 2021, Yoast (18 contributors) and 10up. Only those three companies had more than ten people credited on Trac in 2021.

What did 2021 hold for Core Committers?

33 Core Committers committed code to the WordPress SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. repository this year:

@sergeybiryukov (729), @desrosj (272), @hellofromtonya (159), @johnbillion (93), @peterwilsoncc (86), @ryelle (61), @audrasjb (59), @noisysocks (54), @joedolson (46), @gziolo (42), @timothyblynjacobs (38), @youknowriad (38), @davidbaumwald (31), @antpb (26), @whyisjake (20), @jorbin (19), @azaozz (18), @jorgefilipecosta (15), @johnjamesjacoby (13), @ocean90 (12), @clorith (10), @spacedmonkey (9), @adamsilverstein (8), @flixos90 (7), @jffng (6), @pento (6), @iandunn (5), @mikeschroder (4), @westonruter (4), @joemcgill (3), @rachelbaker (2), @isabel_brison (2), and @swissspidy (1).

Of the 1852 commits, 729 were made by people working at Yoast, 426 from employees of Automattic, and 272 came from Bluehost people:

Thanks to @marybaum for the copy review and to @flixos90 and @adamsilverstein for proofreading.

#contributions, #contributors, #team-update, #week-in-core, #year-in-core

Take more control over Inner Block Areas (as a block developer)

Prior to WordPress 5.9 the only way to work with inner 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. was to use the <InnerBlocks /> component. One downside of this approach is that in the editor this creates additional DOM nodes that wrap the markup of the inner blocks. This makes it more difficult to style these inner blocks areas to match what the enduser will see on the site.

With WordPress 5.9 we’re introducing a new reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. hook called useInnerBlocksProps that allows you to change this and take more control over the markup of inner blocks areas. The useInnerBlocksProps is exported from the @wordpress/block-editor package same as the InnerBlocks component itself and supports everything the component does. It also works like the useBlockProps hook introduced with apiVersion: 2 in WordPress 5.6.

To use the hook, take the object returned from calling the hook and spread it onto the host element you want to render the inner blocks into. For example:

function BlockEdit(props) {
    const blockProps = useBlockProps();
    const innerBlocksProps = useInnerBlocksProps();

    return (
        <section {...blockProps}>
             <div {...innerBlocksProps} />
        </section>
    );
}

The above code will render to the following markup in the editor:

<section>
    <div>
        <!-- Inner Blocks get inserted here -->
    </div>
</section>

The hook also accepts two arguments:

  1. The first argument accepts an object containing additional props that are added to the element in the dom. For example, to add a custom class name to the inner blocks area you pass { className: 'my-class' } as the first argument.
  2. The second argument is also an object and can contain any properties to control the behavior of the inner blocks area. It accepts all options like allowedBlocks, template, templateLock, renderAppender, etc. You can find the full list of supported properties in the InnerBlocks props documentation
useInnerBlocksProps( additionalWrapperProps, innerBlocksProps );

Saving the inner blocks

To save inner blocks content there is a special variant of the hook, this is similar to the component-based approach that uses <InnerBlocks.Content /> in the save method of a block. For 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., you add .save to the end of the hook like so:

function BlockSave( props ) {
    const innerBlocksProps = useInnerBlocksProps.save( { className: 'my-class' } );

    return (
        <section {...innerBlocksProps} ) />
    );
}

When you use the useInnerBlocksProps.save() hook it only accepts the first parameter, these are the options you want to add to the container element.

Why use hooks?

The hooks allow for new options and nice enhancements. For example, you can take the object returned from the useBlockProps hook—these contain the properties for the block’s wrapping container—and pass them to the useInnerBlocksProps hook. This reduces the number of elements we need to create. For example:

function BlockEdit(props) {
    const blockProps = useBlockProps();
    const innerBlocksProps = useInnerBlocksProps( blockProps );

    return (
        <section {...innerBlocksProps} />
    );
}
<section>
    <!-- Inner Blocks get inserted here -->
</section>

Another benefit to using the hook approach is using the returned value, which is just an object, and deconstruct to get the react children from the object. This property contains the actual child inner blocks thus we can place elements on the same level as our inner blocks.

function BlockEdit(props) {
    const blockProps = useBlockProps();
    const { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps );

    return (
        <section {...innerBlocksProps}>
            { children }
            <!-- Insert any arbitrary html here at the same level as the children -->
        </section>
    );
}
<section>
    <!-- Inner Blocks get inserted here -→
    <!-- The custom html gets rendered on the same level -->
</section>

Example:

block.json

{
    "apiVersion": 2,
    "name": "example/block",
    "title": "Example",
    "category": "text",
    "editorScript": "file:./index.js"
}

index.js

import { registerBlockType } from '@wordpress/blocks';
import { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';

import metadata from './block.json';

function BlockEdit(props) {
    const blockProps = useBlockProps( { className: 'my-class' } );
    const innerBlocksProps = useInnerBlocksProps(
        blockProps,
        { allowedBlocks: [ 'core/heading', 'core/paragraph', 'core/image' ] }
    );

    return (
        <section {...innerBlocksProps} />
    );
}

function BlockSave(props) {
    const blockProps = useBlockProps.save( { className: 'my-class' } );
    const innerBlocksProps = useInnerBlocksProps.save( blockProps );

    return <section {...innerBlocksProps} />
}

registerBlockType( metadata, {
    edit: BlockEdit,
    save: BlockSave,
} )

Thank you, @gziolo and @mkaz for reviewing and proofreading this post.

#5-9, #dev-notes

A Week in Core – December 27, 2021

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 December 20 and December 27, 2021.

  • 28 commits
  • 45 contributors
  • 36 tickets created
  • 1 tickets reopened
  • 25 tickets closed

The Core team is currently working on the next major release, WordPress 5.9, and the beta 4 was released last week 🛠

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 “File” to Theme/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 Editor menu names and relocate “Plugin File Editor” to Tools for 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 – #54382
  • Make sure the $customize_url variable is always defined in the adminadmin (and super admin) menu – #54682

Application Passwords

  • Show HTTPSHTTPS HTTPS is an acronym for Hyper Text Transfer Protocol Secure. HTTPS is the secure version of HTTP, the protocol over which data is sent between your browser and the website that you are connected to. The 'S' at the end of HTTPS stands for 'Secure'. It means all communications between your browser and the website are encrypted. This is especially helpful for protecting sensitive data like banking information. required message without filtering when not enabled or not in local environment – #53658

Build/Test Tools

  • Allow the PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS. plugin in Composer configuration – #54686
  • Restore the https URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for browserify-aes#54487
  • Separate the tests for recommended PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher and 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/. versions in readme.html#41490

Bundled Themes

  • Twenty Twenty-Two: Sync updates from GitHubGitHub GitHub is a website that offers online implementation of git repositories that can 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/ for BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 4 – #54318

Coding Standards

Docs

  • Improve the @since 5.9.0 note for WP_Theme_JSON::PRESETS_METADATA#53399

Docs

  • Typo correction in validate_file() comments – #53399
  • Typo correction in wp_dropdown_languages() DocBlockdocblock (phpdoc, xref, inline docs)#53399
  • Typo correction in wp_get_layout_style() introduced in 5.9 – #53399

Editor

  • Add edit_theme_options capabilities to wp_navigation post type – #54487
  • Add missing default template areas to the post/page editor settings – #54679
  • Add support for nameless font sizes in WP_Theme_JSON#54640, #54487
  • Explicitly declare $post_types and $area properties in WP_Block_Template class – #54670
  • Update wordpress packages for Beta 4 – #54487

External Libraries

  • Update the SimplePie library to version 1.5.7 – #54659
  • Update the SimplePie library to version 1.5.8 – #54659

General

  • Fix 'rel' argument in Tests_Functions_wpListBookmarks test datasets – #53839

Login and Registration

  • Use secondary button style for the Language switcher – #54692
  • Add a 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 allow to disable the Login screen language dropdown – #54675

Plugins

  • Escape the 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/ plugin page URL in the Plugin Installation modal – #54362

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

  • Support . in theme directory names in WP_REST_Global_Styles_Controller, WP_REST_Templates_Controller, and WP_REST_Themes_Controller#54596

Script Loader

  • Skip getting 'can_compress_scripts' option in script_concat_settings() during install – #54634

Toolbar

  • Show the Customize link on front end when using a block theme if any plugins use the 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.#54683

Props

Thanks to the 45 people who contributed to WordPress Core on Trac last week: @costdev (7), @hellofromTonya (8), @SergeyBiryukov (5), @audrasjb (5), @jrf (4), @johnbillion (3), @spacedmonkey (2), @schlessera (2), @david.binda (2), @pbiron (2), @ocean90 (2), @marybaum (1), @walbo (1), @youknowriad (1), @rickcurran (1), @TimothyBlynJacobs (1), @ntsekouras (1), @get_dave (1), @joyously (1), @bijayyadav (1), @kafleg (1), @felipeelia (1), @williampatton (1), @manfcarlo (1), @chintan1896 (1), @joen (1), @Mamaduka (1), @dimadin (1), @henry.wright (1), @aezazshekh (1), @rainbowgeek (1), @afragen (1), @sabernhardt (1), @faisal03 (1), @gziolo (1), @jameskoster (1), @poena (1), @annezazu (1), @clorith (1), @courane01 (1), @dryanpress (1), @desrosj (1), @Presskopp (1), @ipstenu (1), and @kjellr (1).

Congrats and welcome to our 5 new contributors of the week: @rickcurran, @bijayyadav, @manfcarlo, @aezazshekh, @rainbowgeek ♥️

Core committers: @sergeybiryukov (12), @hellofromtonya (8), @audrasjb (6), @isabel_brison (1), and @jffng (1).

#5-9, #core, #week-in-core

Editor Chat Agenda: 29 December 2021 (skipped)

This week’s meeting is being skipped due to anticipated low attendance at the end of year. Meetings will resume on January 5th, 2022. You’re encouraged to use this time to help test WordPress 5.9 Beta 4. For specific steps and areas to test, you can follow this post on how to test 5.9 features.

If you have anything you’d like to discuss or share asynchronously though, please share in the comments of this post. This includes the following:

  • If you have an update for the main site editing projects.
  • If you have anything to share for Task Coordination.
  • If you have anything you’d like to raise that typically would be discussed in the Open Floor section.

@paaljoachim and myself will follow up on any open ended questions or topics left on this thread.

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

Editor chat summary: Wednesday, 22 December 2021

This post summarizes the latest weekly Editor meeting (agenda, slack transcript), held in the #core-editor 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/. channel, on Wednesday, December 22, 2021, 14:00 UTC.

General Updates

Updates on the key projects

Mobile

@hypest

Shipped

Functionality to customize color for selected words (GSS related).

Fixes

  • Heading 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. newline when splitting issue.
  • Bottomsheet back-button navigation issue.

In Progress

  • Upgrade to ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Native v0.66.
  • Finalizing GSS Font size and line height.
  • Improving reliability of the mobile translations pipeline.

No other project updates at this time.

Task Coordination

@mkaz

A few bits on documentation:

  • In PR 37348 docs were refactored to use JSX/Plain as the toggles for code examples. We don’t need to limit examples to ES5 anymore, so this makes it clearer the difference. Documentation contributor guide was also updated for guidance.
  • PR 36183 adds generated coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. block documentation from the block.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. files. Published here. The item to note is if you change a block.json in a core block, you will need to run npm run docs:build. Your failing commit will tell you have a local change.
  • Take a look at WP 5.9 project board for docs and dev notes, I’m reached out to those listed. We have a goal of getting notes published before RC1, but with late fixes and holidays we won’t have them all. So, if you have any to write, try to make it a priority when you return in the new year.

@mamaduka

  • I’ve been working on WP 5.9 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 for Site Editor and Template Mode.
  • Fixed embed handing in Reusable Blocks.
  • Plus removed a lot of unused code from Site Editor.

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.

Open Floor

@priethor

  • Congratulating first-time contributors for joining efforts during the 12.2 release cycle:
  • Kudos to @mikachan for becoming a member 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/ team

@fabiankaegy

  1. I’d love to get some eyes on this Dev Note I drafted here as I am not sure what the correct process for.
  2. I’d love to share discussion on ‘opening the editor interface to more extensibility‘ here and get some opinions on the topic.

Read complete transcript

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

Updater initiative status report: December 25, 2021

During 2021, a group of contributors worked to update the WordPress updaters and add some features to make auto-updates safer and dependencies more reliable.

The expected outcomes were outlined in this post in May 2021.

Outcomes 1 and 2 – Make sure the zips download and unpacking are safe and create a mechanism to rollback 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 & theme updates in case of failure

The two goals were solved with one solution, which was merged in Core in September. However, due to some failures on the Chassis/Vagrant development environment, the feature, along with other related tickets, was reverted during WordPress 5.9 Beta period.

Next steps

For the feature ready to be shipped with WordPress 6.0, the discovered issue with Chassic/Vagrant should be resolved. Outreach to hosting companies needs to be done to ensure production environments will behave as expected.

Help required – Hosting companies

Would it be possible to get a hosting company to set up different environments to test the 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. in multiple scenarios? Including testing on shared servers from hosting providers who aggressively throttle resources.

Outcome 3 – Have managed updates (database migrations)

@aristath did a first exploration, but nothing substantial was presented to the other contributors yet.

Next steps

Evaluate if this is beneficial for plugin developers and create user stories before writing code, to make sure the solution addresses a specific, shared problem.

Outcome 4 – Create a unified JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. convention for requirements and dependencies

After a lot of conversations, the contributors moved away from a JSON file in favor of a “Requires Plugins” 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. based on feedback to this PR. Then, they focused on adminadmin (and super admin) UIUI User interface improvements using that header to solve what appears to be the most common use case: protect the user from fatal errors when installing a plugin without the required dependencies and guide them to complete the installation.

Looking back at the conversations (TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. and 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 looks like there is not enough clarity on the best possible method to solve the user issue, or what “dependencies” mean (soft vs. hard dependencies).

For plugin developers, the main issue is to avoid different plugins introducing implementations to check for the existence of dependencies and take appropriate actions. This is, in fact, something that is already happening. The problem is solved by each plugin developer. Would it be possible to solve it with a unified convention?

For end-users, the issue is with add-ons. For them to work, they need another plugin to be activated. If plugin and theme developers don’t properly check for the existence of plugins before using them, there is a risk of getting fatal errors on the user site.

Next steps

@peterwilsoncc suggested proposing a feature project. Right now, there is a Google Document with some notes about the solutions but the problem and the why are missing. This project is not tied to a release right now since it is still in the discovery phase.

  • Evaluate the problem from the point of view of plugin developers. Is it beneficial to have a unified solution for CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. or does it not make a difference? Help from the plugin team and plugin authors is needed.
  • Write the user stories from the end-of-user point of view.
  • Write a proposal for a feature project with the findings from the two explorations.

Do you want to help?

If you want to help, please join the #core-auto-updates chats, Tuesdays at 5PM UTC in 2022.

Thanks!

Thank you @francina and @aristath for the peer review.

Dev Chat summary: December 22, 2021

Dev Chat agenda.

The meeting was led by @webcommsat and @marybaum.

Start of the Dev Chat meeting in the Make WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds 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/..

You can find last week’s notes in at Dev chat summary, December 15, 2021.

Announcements

Please join the discussion @chanthaboune has started on 2022 release planning.

WordPress 5.9 release updates

The WordPress 5.9 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. 4 has landed. Please download and test! Thanks to everyone who has been involved in the release so far and getting the Beta 4 out the door.

Beta 4 fixes 20 bugs that surfaced in Beta 3. Please test them and report your findings on the announcement post.

It does not look like a Beta 5 will be necessary at this stage. RC1 is scheduled for January 4, 2022. The revised 5.9 release schedule.

If there are no big issues, the release will continue to follow the plan from November 22, 2021 – more details on the 5.9 post.

Blogblog (versus network, site) posts to note

What’s new in Gutenberg 12.2? (December 22, 2021)

A Week in Core. Three new contributors to core this week – welcome to them all.
The next New Contributor Meeting for core is scheduled for 12 January 2022 at 19:00 UTC. If you have any questions on contributing to core before that, just bring them up here in #core any time outside of any ongoing meeting, or in the open floor section of the weekly dev chat, and someone should follow up.

Please continue to share the Help test WordPress 5.9 features. This replaces the ongoing call for FSE testing promotions until after 5.9 is released. Thanks @annezazu

WordPress 5.9 is now available for translation. The new theme with this release, Twenty Twenty-Two, can also be translated. Thanks to all the polyglots across the world who have started working on translating the next release.

The annual community survey closes next week on December 30, 2021. Still time to complete it.

Component Maintainers update

Build/Test Tools Component

Update via @sergeybiryukov: Some enhancements were made to the 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. suite:

  • Reduce the use of unnecessary randomness in tests to increase the overall reliability of the tests. See ticketticket Created for both bug reports and feature development on the bug tracker. #37371 for more details.
  • Remove an assertion in filter_rest_url_for_leading_slash(). This assertion could mask the fact that some other tests don’t perform an assertion. See ticket #54661 for more details.

Thanks @johnbillion and @johnillo, a new contributor! 

Date/Time, 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

Update via @sergeybiryukov: No major news this week.

Quick/Bulk Edit component

Update from @nalininonstopnewsuk: For the Quick/ Bulk Edit component, we are continuing to work through and reading all the previous materials in the background while the primary focus is on 5.9. We want to run 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. scrub on the tickets the week after 5.9 is out. 

About / Help page component

Update via @webcommsat: More updates have been done this week on the text and Figma. Will update the ticket today.

You can also join the collaborations cross-team on social media posts on the release features.

Open Floor

  1. Proposal for an enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. ticket. 

@maksimkuzmin  would like some comments on this message in Slack before Jan, 12?

Will raise a ticket and provide a UIUI User interface draft. Design input suggested.

Discussion suggested moving the ticket to 6.0.

2. Request to add thoughts on the Performance Team GitHubGitHub GitHub is a website that offers online implementation of git repositories that can 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/ Issues and Projects. 

@Sergio Scabuzzo from the measurement group in the team encouraged contributors to look at the ideas. https://github.com/WordPress/performance/projects

3. A second enhancement proposal

@maksimkuzmin suggested: Most of the times bespoke themes built relying on page templates to set up specific page to the specific type of page. E.g. Search Page is bound to the page-search.php template in the code. The major lack of functionality is to have a function that will quickly retrieve page(s) by the given template name. Without building a WP Query, etc. Sort of get_page_by_template( $template_file ).

This enhancement will further be discussed and potentially reconsidered in a pre-existing ticket: #16264.

4. Bug report potentially related to 5.9

@afragen: FYI, posted bug report and PR for #54682, believed to be 5.9 related.

Next meeting

Dev Chat will take place next week, Wednesday 29 December 2021 at 20:00 UTC in the Make WordPress Core Slack for a quick check-in.

Props: Dev Chat summary by @webcommsat. Thanks to @marybaum and @sergey for proofing.

#5-9, #dev-chat, #summary

What’s new in Gutenberg 12.2? (22 December)

“What’s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)) are published following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.


If you observe the Gregorian Calendar, New Year’s Eve is fast approaching, which means that the time has come for the next release of Gutenberg!

Gutenberg 12.2 has just been released! It’s the last minor Gutenberg release in 2021. This release improves compatibility with the upcoming WordPress 5.9 release and 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. Also, it brings new features, code quality 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. You can find the release highlights below.

Table of contents

Seamless navigation between the Site Editor and the Template List

Gutenberg 12.2 takes the Template List one step beyond, improving its user experience and performance. Thanks to its new client-side routing, WordPress doesn’t need to reload the page when navigating between the Site Editor and the Template List, reducing the time spent rendering unneeded HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. code.

Improvements to post comments

Starting with Gutenberg 12.2, the Comments Query Loop block is now able to display nested comments. This improves user experience as it is now much easier to understand if a comment responds to another comment or is just a first-level comment.

Also, the new Comments Pagination Numbers block allows displaying page numbers inside the Comments Pagination block, which in turn can be used inside the Comments Query Loop block. This improves the UIUI User interface because users can quickly navigate the comments using the page number.
Also, the pagination in the Comments Query Loop block now works similar to the pagination for posts.

A new home for border controls

Although lots of blocks are already taking advantage of border supports, this release switches border supports to the ToolsPanel, and sets which border properties are displayed in the ToolsPanel by default. The ToolsPanel, first introduced in Gutenberg 11.3, offers progressive discovery options for those provided through block supports, improving the user experience and consolidating the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. UI.

New font size labels in the FontSizePicker component

Gutenberg 12.2 improves the way font sizes are displayed in the sidebar by using a sequence of numbers (1, 2, 3, 4, 5) as labels for the font sizes. These simplified labels can accommodate use cases with complex CSSCSS Cascading Style Sheets. values, helping users understand the available font sizes.

Improved color picker

More components are being iterated in this release. In an effort to reduce sidebar clutter and improve the design tools user experience, all blocks, including those that use custom color implementation, can now take advantage of the new dropdown-based color picker. This improved UI is easier to use, especially when editing a few colors back-to-back.

Preview for Block Styles in the 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. Editor

While Gutenberg 12.0 introduced block styles preview on hover for the Block Editor, this release brings this functionality to the Widgets Editor, too. It’s now possible to preview style variations in the Widgets Editor when editing blocks that support this (e.g., Image, Table, Button blocks) by hovering or focusing over the style name, for full 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) support.

Changelog

Enhancements

Block Library

  • New block: Add Comments Pagination Numbers block. (36890)
  • Comment Template block: Handle nested comments. (36065)
  • Comments 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.: Improve context handling in inner blocks. (37196)
  • Image: Reflect media deletion in the editor. (35973)
  • Navigation:
  • Add navigation blocks post-processing after migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. from menu items. (36950)
  • Refactor modal padding to be simpler and more flexible. (37323)
  • Remove Navigation Menus from the Appearance menu. (37212)
  • Add clearance for appender in submenus. (36720)
  • Refactor handling of padding for group and column blocks. (37356)
  • Template Part: Add actions that fire during the loading process of block template parts. (36884)

Styles and design tools

  • Add the Welcome Guide option to the More Global Styles Actions dropdown. (37180)
  • Make the Blocks section more distinguishable. (37293)
  • Move the Edit colors button to a standard menu item. (36842)
  • Move Duotone palette to the bottom of global styles gradients. (37253)
  • Border controls: display border properties in the ToolPanel. (34061)

Components

  • FontSizePicker: Use an incremental sequence of numbers as labels for the available font sizes at the segmented control (conditionally). (37038)
  • ColorPalette: Improve accessibility and visibility. (36925)
  • ToolsPanel: Standardize input control label margin. (36387)
  • Unify styles for ColorIndicator with how they appear in Global Styles. (37028)
  • Update PanelColorGradientSettings component to use dropdowns. (37067)

Site Editor

  • Add the 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. back to the Appearance menu. (37175)
  • Add client-side routing for Site Editor. (36488)
  • Add a new aria-pressed attribute to the Toggle navigation button. (37351)
  • Template revert flow: Make label description source agnostic. (37004)

Packages

  • Scripts: Enable ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. Fast Refresh for block development. (28273)
  • List Reusable Blocks: Refactor ImportForm into a functional component and use hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.. (36938)

Widgets Editor

  • Implement preview for blocks. (37012)

Post Editor

  • Template Part block should not be available in the Post Editor inserter. (37157)

Bug Fixes

  • Remove 4 instances of gutenberg text-domain from CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. (37229)

Block Library

  • Fix return type in the DocBlockdocblock (phpdoc, xref, inline docs). (37352)
  • Fix deprecated usage of passing null to explode function. (37392)
  • Gallery:
  • Fix color issue for captions with hyperlinks in the Gallery block. (37033)
  • Fix documentation and function naming for gallery block registration in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher. (37132)
  • Remove placeholder border. (37050)
  • Post Comments:
  • Fix form-submit styles by adding button classes to the submit button in the post-comments block. (37245)
  • Fix width of the post comment form input. (37238)
  • Use block markup for the comment form button when using a block theme. (37315)
  • Comments Pagination Block: Add default styling. (37057)
  • Image:
  • Set image display mode to grid when no alignment is set to align caption onresize event properly. (35787)
  • Fix resizer controls being hidden in Safari when switching between alignments. (37210)
  • Navigation:
  • Fix gutenberg_ prefixed function references in Core. (37021)
  • Fix navigation justifications. (36991)
  • Fix vertical alignment of page list in the modal. (37321)
  • Remove hardcoded typography units. (37349)
  • Fix vertical layout. (37009)
  • Switch to addEventListener event for load event in the navigation block view script. (37135)
  • Don’t request the deprecated navigation areas endpoint outside of the 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. (37187)
  • Navigation Link Control: Hide the Transforms component when no options are available. (37284)
  • Remove the deprecated navigation area block from the inserter. (37026)
  • Query Loop: Add useBlockPreview component, fix alignment of the Query Loop block in the editor. (36431)
  • Query Pagination: core/query-pagination-next and core/query-pagination-previous blocks: change the markup on the first and last pages of the pagination. (36681)
  • Search: Fix application of border color class in the editor. (37242)
  • Template Part:
  • Fix isMissing condition check. (37370)
  • Use Core version of template and template part post types and REST endpoints for WordPress 5.9, with backward compatibility for WordPress 5.8. (36898)
  • Update the micromodal package to include a click-through fix. (36837)

Components

  • Card: Support the extraSmall option for the size prop. (37097)
  • Drop Zone: Fix HTML drop issues with the Windows browsers. (37151)
  • Don’t load Radio and RadioGroup components directly. (36934)
  • DuotonePicker typo fix. (36662)
  • Element: Ensure that the package uses the up-to-date React types. (37365)
  • Fix incorrect rendering of ToggleGroupControl‘s active state. (37332)
  • Hide the remove control point button because removing it would break gradient control. (37186)
  • Import experimental Heading and Text Components. (37290)
  • Make the color popover on the gradient picker appear as expected. (37115)
  • Remove unused reakit-utils dependency from peer dependencies. (37369)
  • Storybook: Fix deprecated disabled key. (37112)
  • ToggleGroupControl: Fix extra update on incoming change. (37224)

Site Editor

  • Allow global styles sidebar panels to fill vertical space. (36845)
  • Display a notice if export fails. (37131)
  • Fix edit template part link in 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. dropdown. (37249)
  • Fix template resolution to give precedence to PHP templates defined in a child themeChild theme A Child Theme is a customized theme based upon a Parent Theme. It’s considered best practice to create a child theme if you want to modify the CSS of your theme. https://developer.wordpress.org/themes/advanced-topics/child-themes/.. (37074)
  • Hide the block appender in the Template Part editor. (37213)
  • Improve notification when saving content in the Site Editor. (36897)
  • Improve handling of parsed requests. (37209)
  • Sync Export 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. error codes. (37347)
  • Template Editor Mode: Hide editor mode switcher. (37359)
  • Use server definition for the Template Areas. (37215)
  • Fix the white screen of death on the Templates page when user avatars are disabled. (37458)

Styles

  • Allow selector ordering to ensure theme.json root selector margin takes precedence. (36960)
  • Custom keys from theme.json: Fix kebabCase conversion. (37380)
  • Do not remove theme presets if defaults are hidden. (37008)
  • Fix CSS Custom Properties for presets in the Site Editor. (36851)
  • Fix how appearanceTools works. (37254)
  • Fix styles for previews and patterns. (37296)
  • Font sizes: Update default values. (37381)
  • Remove CSS that causes conflictconflict A conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with theme.json. (36424)

Design Tools

  • Border Style Control: Update styling for consistency with border width control. (37244)
  • Border panel:
  • Don’t restore deselected border color when width gets changed. (37049)
  • Update the value of the ColorPicker component when color is cleared. (37048)
  • Gradients
  • Fix clearing a custom gradient from throwing a React warning. (37051)
  • Enable adding custom gradient when gradients are disabled. (36900)

Compatibility with Core and library code

  • Fix array key warning in block supports layout. (37101)
  • Templates: Search for old template names in the parent theme too. (36910)
  • Fix theme requirement validation when using WordPress 5.8. (37226)
  • Fix WordPress 5.9 check for conditionally running code. (37235)
  • Fix mistake in the_remove_theme_attribute_in_block_template_content function. (37137)
  • Gallery: Enable the new gallery block by default if running in Core. (37134)

Packages

  • Core Data: Fix returning empty array in the getEntityRecords function for unknown entities. (36984)
  • Include @babel/core as a dependency where applicable. (37328)
  • Format library: Fix unsetting highlight color. (37062)

Block Editor

  • Mark the last change as persistent on save. (36887)
  • Fix content loss when ungrouping template parts or reusable blocks. (37280)
  • Simplify the RESET_BLOCK action to fix the loss of content when using template part focus mode. (37283)

Post Editor

  • Multi-Entity Saving: Decode HTML entities in item titles. (37353)

Documentation

  • Update documentation related to schemas. (37294)
  • Remove versioning in theme schema descriptions. (37165)
  • Fix the broken link on the plugin description page. (37362)
  • Handbook:
  • Add information about skip links to the block theme overview. (36555)
  • Add closing ticks for blockGap code example. (37338)
  • Add how-to guide documentation template. (36694)
  • Add link and details for npx in create block tutorial. (37376)
  • Consolidate React Native documentation. (36685)
  • Fix a link to the how-to guide template. (37191)
  • Move classes used in the navigation block from the component to the new readme. (37375)
  • Update Format API how-to guide. (37298)
  • Update broken links. (37121)
  • Improve formatting of headings in the contributors’ guide. (36689)
  • Fix type for prefix transformation. (36362)
  • Fix broken links in the Resources section. (37307)
  • Remove the semicolons from the JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. examples. (37129)
  • Packages:
  • Block Editor:
    • Add a documentation note about inner blocks and excerpts. (36405)
    • Update example of usage for suggestionsQuery component. (37281)
  • Componentes:
    • Add missing changelog entries. (37384)
    • Fix code formatting for card components. (37268)
    • Fix importing from the wrong package. (37192)
    • Fix missing link for shortcut documentation. (36800)
    • Update QueryControls README.md. (37233)
  • Site Editor: Update support documentation URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in the Welcome Guide. (37176)

Code Quality

Compatibility with Core

  • Better synchronization between Gutenberg and Core code. (37141)
  • Move WordPress 5.9 wp-admin menus compatibility code to lib/compat folder. (37257)
  • Move the block page templates hook into compat/5.9 folder. (37142)
  • Move template loader hooks and functions into lib/compat folder. (37149)
  • Synchronize wp_is_block_theme function and block-templates block support with Core. (37218)

Global Styles

  • Do not register Global Styles custom post typeCustom Post Type WordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept. in WordPress 5.9. (37282)
  • Port Global Styles code to lib/compat/wordpress-5.9:
  • CSS custom properties. (37334)
  • Front assets. (37335)
  • Rename WP_Theme_JSON_Resolver methods to make them compatible with Core. (37393)

Packages

  • Dependency Extraction Webpack Plugin: Sort externalized dependencies report. (37377)
  • Block Editor:
  • 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. component: Use block settings to pass assets. (37193)
  • Remove duplicate block styles. (37133)
  • Specify the WordPress versions where API is deprecated. (37150)
  • Components
  • Refactor DatePicker into a functional component. (36835)
  • Storybook: Update to version 6.4. (37367)
  • Data
  • Ensure that redux is listed as a dependency. (37364)
  • wordpress/data: Refactor use-select component in preparation for adding types. (37017)
  • Scripts: Update dependencies shared with other WordPress packages. (37395)

Site Editor

  • Remove unused PHP code. (36997)
  • Revert Site Editor: Set the on the list page to be the same as the CPT name. (37270)

Block Library

  • Remove gutenberg_ prefix from @wordpress/block-library. (37341)
  • Block Library: Rename Query Pagination blocks. (37091)

Tools

Testing

  • End-to-end Tests:
  • Increase delay in image block end-to-end test to fix intermittent failure when clearing URL field. (37136)
  • Update Multi-Entity Saving test to improve reliability. (37139)
  • Sanitize flaky test report file names. (37390)
  • Retry login again after a bad nonce request to prevent intermittent test failures. (37219)
  • Fix Multi-entity saving and Template parts related tests. (37333)
  • Fix Heading test. (37382)
  • Re-enable most of the navigation block end-to-end tests. (37214)
  • Use global transients for PHPUnit tests. (37122)
  • Fix usage of useSetting('color.palette'). (37108)
  • Add tests for the new gallery hooks. (36801)

Linting

  • ESLint:
  • Add support for ESLint v8. (36283)
  • Fix Babel config resolution when a custom ESLint config is present. (37406)

Build Tooling

  • Specify PHP version in Composer. (37007)
  • Remove unused jest-serializer-enzyme dependency. (37373)
  • Remove some labels from the Experiments section of the changelog. (37098)
  • npm:
  • Fix package dependencies issues discovered with pnpm. (37396)
  • Use the latest minor version of webpack in Gutenberg. (37371)
  • Fix build failure on Windows. (37189)

Performance benchmark

VersionTime to render first blockKeypress event (typing)
Gutenberg 12.25.672 s42.38 ms
Gutenberg 12.15.484 s37.17 ms
WordPress 5.85.807 s46.5 ms

Thank you, @priethor, for coordinating the release process, proofreading, and helping to select release highlights!
Thank you, @jameskoster and @joen for helping me to prepare visual assets and proofreading the release post!
Thank you, @mamaduka, for uploading the plugin to 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/!
Kudos to all the other contributors who have helped to make this release possible.

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

Dev Chat agenda for 22 December 2021

Announcements

The WordPress 5.9 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. 4 has landed. Please download and test! 

Blogblog (versus network, site) posts of note

Beta 4 fixes 20 bugs that surfaced in Beta 3. Please test them and report your findings on the announcement post.

What’s new in Gutenberg 12.2?

@audrasjb has the latest issue of A Week in Core.

Here is the revised release schedule.

And please join the discussion @chanthaboune has started on 2022 release planning.

Got other posts that should get the CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. team’s attention? Please add them in the comments.

Upcoming releases

The current upcoming 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 version 5.9.

RC1 is set to release on 4th January and means two things:

Hard string freeze, including all the strings for the About page.

And Trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. branches to 6.0 alpha, so if you have a feature you’d like to see in the next major version, this is the time to start on it!

Component Maintainers

From now until launch, devchat will skip a formal check-in so the group can have a longer Open Floor. If you’re a maintainer who’d like to get help with a blockerblocker A bug which is so severe that it blocks a release. or share success, add your item to the comments.

Open Floor

Add your topic to the comments, and enjoy priority for your topic at the beginning of Open Floor.

See you Wednesday at 20:00 UTC!

#agenda#core#dev-chat

#agenda#dev-chat

#agenda, #core, #dev-chat, #week-in-core