Title: 2021 – Make WordPress Core

---

#  Yearly Archives: 2021

 [  ](https://profiles.wordpress.org/flixos90/) [Felix Arntz](https://profiles.wordpress.org/flixos90/)
11:05 pm _on_ December 29, 2021     
Tags: [5.9 ( 104 )](https://make.wordpress.org/core/tag/5-9/),
[dev-notes ( 646 )](https://make.wordpress.org/core/tag/dev-notes/), [feature-lazyloading ( 8 )](https://make.wordpress.org/core/tag/feature-lazyloading/),
[performance ( 413 )](https://make.wordpress.org/core/tag/performance/)   

# 󠀁[Enhanced lazy-loading performance in 5.9](https://make.wordpress.org/core/2021/12/29/enhanced-lazy-loading-performance-in-5-9/)󠁿

[Lazy-loading images was introduced in WordPress 5.5](https://make.wordpress.org/core/2020/07/14/lazy-loading-images-in-5-5/)
and later [expanded to also cover iframes in WordPress 5.7](https://make.wordpress.org/core/2021/02/19/lazy-loading-iframes-in-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](https://make.wordpress.org/core/2021/07/15/refining-wordpress-cores-lazy-loading-implementation/)
in the [Largest Contentful Paint metric (LCP)](https://web.dev/lcp/). As outlined
in the [referenced post](https://make.wordpress.org/core/2021/07/15/refining-wordpress-cores-lazy-loading-implementation/),
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](https://core.trac.wordpress.org/changeset/52065),
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](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](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:

    ```notranslate
    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](https://core.trac.wordpress.org/ticket/53675).

_Props to [@adamsilverstein](https://profiles.wordpress.org/adamsilverstein/) and
[@audrasjb](https://profiles.wordpress.org/audrasjb/) for review and proofreading._

[#5-9](https://make.wordpress.org/core/tag/5-9/), [#dev-notes](https://make.wordpress.org/core/tag/dev-notes/),
[#feature-lazyloading](https://make.wordpress.org/core/tag/feature-lazyloading/),
[#performance](https://make.wordpress.org/core/tag/performance/)

 [  ](https://profiles.wordpress.org/audrasjb/) [Jb Audras](https://profiles.wordpress.org/audrasjb/)
10:45 pm _on_ December 29, 2021     
Tags: [contributions ( 5 )](https://make.wordpress.org/core/tag/contributions/),
[contributors ( 7 )](https://make.wordpress.org/core/tag/contributors/), [team-update ( 35 )](https://make.wordpress.org/core/tag/team-update/),
[week in core ( 245 )](https://make.wordpress.org/core/tag/week-in-core/), [Year in Core ( 3 )](https://make.wordpress.org/core/tag/year-in-core/)

# 󠀁[A Year in Core – 2021](https://make.wordpress.org/core/2021/12/29/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
easily be shared, copied and modified by other developers. Public repositories are
free to host, private repositories require a paid subscription. GitHub introduced
the concept of the ‘pull request’ where code changes done in branches by contributors
can be reviewed and discussed before being merged by the repository owner. [https://github.com/](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/](https://wordpress.org/gutenberg/).

The raw data for this post are [on this public spreadsheet](https://docs.google.com/spreadsheets/d/1XY6Vt4uZUDjLPwmosp49mMZekNyIohU-8OHTefbHOsQ/edit?usp=sharing).
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** ♥️

|  | Jan | Feb | Mar | Apr | May | Jun | Jul | aug | Sep | Oct | Nov | Dec | Total | 
| **Commits** | 62 | 175 | 110 | 97 | 142 | 286 | 174 | 175 | 103 | 57 | 327 | 144 | **1852** | 
| **Tickets closed** | 236 | 315 | 372 | 147 | 182 | 355 | 248 | 210 | 157 | 88 | 271 | 151 | **2732** | 
| **Tickets reopened** | 26 | 33 | 45 | 21 | 25 | 37 | 77 | 36 | 22 | 19 | 31 | 36 | **408** | 
| **Tickets created** | 200 | 280 | 371 | 177 | 197 | 320 | 288 | 297 | 161 | 126 | 190 | 190 | **2797** | 
| **New contributors** | 14 | 43 | 14 | 22 | 35 | 37 | 15 | 12 | 18 | 14 | 71 | 10 | **305** | 
| **Contributors** | 120 | 229 | 165 | 117 | 280 | 400 | 154 | 132 | 156 | 90 | 555 | 174 | **2572** |

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/](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/](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](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](https://profiles.wordpress.org/sergeybiryukov/) (729), [@desrosj](https://profiles.wordpress.org/desrosj/)(
272), [@hellofromtonya](https://profiles.wordpress.org/hellofromtonya/) (159), [@johnbillion](https://profiles.wordpress.org/johnbillion/)(
93), [@peterwilsoncc](https://profiles.wordpress.org/peterwilsoncc/) (86), [@ryelle](https://profiles.wordpress.org/ryelle/)(
61), [@audrasjb](https://profiles.wordpress.org/audrasjb/) (59), [@noisysocks](https://profiles.wordpress.org/noisysocks/)(
54), [@joedolson](https://profiles.wordpress.org/joedolson/) (46), [@gziolo](https://profiles.wordpress.org/gziolo/)(
42), [@timothyblynjacobs](https://profiles.wordpress.org/timothyblynjacobs/) (38),
[@youknowriad](https://profiles.wordpress.org/youknowriad/) (38), [@davidbaumwald](https://profiles.wordpress.org/davidbaumwald/)(
31), [@antpb](https://profiles.wordpress.org/antpb/) (26), [@whyisjake](https://profiles.wordpress.org/whyisjake/)(
20), [@jorbin](https://profiles.wordpress.org/jorbin/) (19), [@azaozz](https://profiles.wordpress.org/azaozz/)(
18), [@jorgefilipecosta](https://profiles.wordpress.org/jorgefilipecosta/) (15),
[@johnjamesjacoby](https://profiles.wordpress.org/johnjamesjacoby/) (13), [@ocean90](https://profiles.wordpress.org/ocean90/)(
12), [@clorith](https://profiles.wordpress.org/clorith/) (10), [@spacedmonkey](https://profiles.wordpress.org/spacedmonkey/)(
9), [@adamsilverstein](https://profiles.wordpress.org/adamsilverstein/) (8), [@flixos90](https://profiles.wordpress.org/flixos90/)(
7), [@jffng](https://profiles.wordpress.org/jffng/) (6), [@pento](https://profiles.wordpress.org/pento/)(
6), [@iandunn](https://profiles.wordpress.org/iandunn/) (5), [@mikeschroder](https://profiles.wordpress.org/mikeschroder/)(
4), [@westonruter](https://profiles.wordpress.org/westonruter/) (4), [@joemcgill](https://profiles.wordpress.org/joemcgill/)(
3), [@rachelbaker](https://profiles.wordpress.org/rachelbaker/) (2), [@isabel_brison](https://profiles.wordpress.org/isabel_brison/)(
2), and [@swissspidy](https://profiles.wordpress.org/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](https://profiles.wordpress.org/marybaum/) for the copy review
and to [@flixos90](https://profiles.wordpress.org/flixos90/) and [@adamsilverstein](https://profiles.wordpress.org/adamsilverstein/)
for proofreading.

[#contributions](https://make.wordpress.org/core/tag/contributions/), [#contributors](https://make.wordpress.org/core/tag/contributors/),
[#team-update](https://make.wordpress.org/core/tag/team-update/), [#week-in-core](https://make.wordpress.org/core/tag/week-in-core/),
[#year-in-core](https://make.wordpress.org/core/tag/year-in-core/)

 [  ](https://profiles.wordpress.org/fabiankaegy/) [Fabian Kaegy](https://profiles.wordpress.org/fabiankaegy/)
1:19 pm _on_ December 28, 2021     
Tags: [5.9 ( 104 )](https://make.wordpress.org/core/tag/5-9/),
[dev-notes ( 646 )](https://make.wordpress.org/core/tag/dev-notes/)   

# 󠀁[Take more control over Inner Block Areas (as a block developer)](https://make.wordpress.org/core/2021/12/28/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](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](https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/block-api/block-api-versions.md#version-2--wordpress-56).

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:

    ```notranslate
    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:

    ```notranslate
    <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](https://github.com/WordPress/gutenberg/tree/trunk/packages/block-editor/src/components/inner-blocks#props)

    ```notranslate
    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:

    ```notranslate
    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:

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

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

    ```notranslate
    <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.

    ```notranslate
    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>
        );
    }
    ```

    ```notranslate
    <section>
        <!-- Inner Blocks get inserted here -→
        <!-- The custom html gets rendered on the same level -->
    </section>
    ```

## Example:

`block.json`

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

`index.js`

    ```notranslate
    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](https://profiles.wordpress.org/gziolo/) and [@mkaz](https://profiles.wordpress.org/mkaz/)
for reviewing and proofreading this post.

[#5-9](https://make.wordpress.org/core/tag/5-9/), [#dev-notes](https://make.wordpress.org/core/tag/dev-notes/)

 [  ](https://profiles.wordpress.org/audrasjb/) [Jb Audras](https://profiles.wordpress.org/audrasjb/)
12:06 pm _on_ December 28, 2021     
Tags: [5.9 ( 104 )](https://make.wordpress.org/core/tag/5-9/),
[core ( 742 )](https://make.wordpress.org/core/tag/core/), [week in core ( 245 )](https://make.wordpress.org/core/tag/week-in-core/)

# 󠀁[A Week in Core – December 27, 2021](https://make.wordpress.org/core/2021/12/28/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](https://make.wordpress.org/core/5-9/),
and [the beta 4 was released last week](https://wordpress.org/news/2021/12/wordpress-5-9-beta-4/)
🛠

Ticketticket Created for both bug reports and feature development on the bug tracker.
numbers are based on the [Trac timeline for the period above](https://core.trac.wordpress.org/timeline?from=12%2F27%2F2021&daysback=7&authors=&ticket=on&changeset=on&repo-=on&repo-design=on&repo-tests=on&sfp_email=&sfph_mail=&update=Update).
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/](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](https://core.trac.wordpress.org/ticket/54382)
 * Make sure the `$customize_url` variable is always defined in the adminadmin (
   and super admin) menu – [#54682](https://core.trac.wordpress.org/ticket/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](https://core.trac.wordpress.org/ticket/53658)

### Build/Test Tools

 * Allow the PHPCSPHP Code Sniffer [PHP Code Sniffer,](https://github.com/squizlabs/PHP_CodeSniffer)
   a popular tool for analyzing code quality. The [WordPress Coding Standards](https://github.com/WordPress/WordPress-Coding-Standards/)
   rely on PHPCS. plugin in Composer configuration – [#54686](https://core.trac.wordpress.org/ticket/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](https://core.trac.wordpress.org/ticket/54487)
 * Separate the tests for recommended PHPPHP The web scripting language in which
   WordPress is primarily architected. WordPress requires PHP 7.4 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](https://www.mysql.com/) versions in `readme.
   html` – [#41490](https://core.trac.wordpress.org/ticket/41490)

### Bundled Themes

 * Twenty Twenty-Two: Sync updates from GitHubGitHub GitHub is a website that offers
   online implementation of git repositories that can easily be shared, copied and
   modified by other developers. Public repositories are free to host, private repositories
   require a paid subscription. GitHub introduced the concept of the ‘pull request’
   where code changes done in branches by contributors can be reviewed and discussed
   before being merged by the repository owner. [https://github.com/](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](https://core.trac.wordpress.org/ticket/54318)

### Coding Standards

 * Remove unwanted whitespaces after [[52404]](https://core.trac.wordpress.org/changeset/52404)–
   [#54675](https://core.trac.wordpress.org/ticket/54675)

### Docs

 * Improve the `@since 5.9.0` note for `WP_Theme_JSON::PRESETS_METADATA` – [#53399](https://core.trac.wordpress.org/ticket/53399)

### Docs

 * Typo correction in `validate_file()` comments – [#53399](https://core.trac.wordpress.org/ticket/53399)
 * Typo correction in `wp_dropdown_languages()` DocBlockdocblock (phpdoc, xref, 
   inline docs) – [#53399](https://core.trac.wordpress.org/ticket/53399)
 * Typo correction in `wp_get_layout_style()` introduced in 5.9 – [#53399](https://core.trac.wordpress.org/ticket/53399)

### Editor

 * Add `edit_theme_options` capabilitiescapability A **capability** is permission
   to perform one or more types of task. Checking if a user has a capability is 
   performed by the `current_user_can` function. Each user of a WordPress site might
   have some permissions but not others, depending on their role. For example, users
   who have the Author role usually have permission to edit their own posts (the“
   edit_posts” capability), but not permission to edit other users’ posts (the “
   edit_others_posts” capability). to `wp_navigation` post type – [#54487](https://core.trac.wordpress.org/ticket/54487)
 * Add missing default template areas to the post/page editor settings – [#54679](https://core.trac.wordpress.org/ticket/54679)
 * Add support for nameless font sizes in `WP_Theme_JSON` – [#54640](https://core.trac.wordpress.org/ticket/54640),
   [#54487](https://core.trac.wordpress.org/ticket/54487)
 * Explicitly declare `$post_types` and `$area` properties in `WP_Block_Template`
   class – [#54670](https://core.trac.wordpress.org/ticket/54670)
 * Update wordpress packages for Beta 4 – [#54487](https://core.trac.wordpress.org/ticket/54487)

### External Libraries

 * Update the SimplePie library to version 1.5.7 – [#54659](https://core.trac.wordpress.org/ticket/54659)
 * Update the SimplePie library to version 1.5.8 – [#54659](https://core.trac.wordpress.org/ticket/54659)

### General

 * Fix `'rel'` argument in `Tests_Functions_wpListBookmarks` test datasets – [#53839](https://core.trac.wordpress.org/ticket/53839)

### Login and Registration

 * Use secondary button style for the Language switcher – [#54692](https://core.trac.wordpress.org/ticket/54692)
 * Add a filterFilter Filters are one of the two types of Hooks [https://codex.wordpress.org/Plugin_API/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](https://core.trac.wordpress.org/ticket/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/](https://wordpress.org/)
   plugin page URL in the Plugin Installation modal – [#54362](https://core.trac.wordpress.org/ticket/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/](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](https://core.trac.wordpress.org/ticket/54596)

### Script Loader

 * Skip getting `'can_compress_scripts'` option in `script_concat_settings()` during
   install – [#54634](https://core.trac.wordpress.org/ticket/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](https://core.trac.wordpress.org/ticket/54683)

## Props

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

**Congrats and welcome to our 5 new contributors of the week:** [@rickcurran](https://profiles.wordpress.org/rickcurran/),
[@bijayyadav](https://profiles.wordpress.org/bijayyadav/), [@manfcarlo](https://profiles.wordpress.org/manfcarlo/),
[@aezazshekh](https://profiles.wordpress.org/aezazshekh/), [@rainbowgeek](https://profiles.wordpress.org/rainbowgeek/)
♥️

**Core committers:** [@sergeybiryukov](https://profiles.wordpress.org/sergeybiryukov/)(
12), [@hellofromtonya](https://profiles.wordpress.org/hellofromtonya/) (8), [@audrasjb](https://profiles.wordpress.org/audrasjb/)(
6), [@isabel_brison](https://profiles.wordpress.org/isabel_brison/) (1), and [@jffng](https://profiles.wordpress.org/jffng/)(
1).

[#5-9](https://make.wordpress.org/core/tag/5-9/), [#core](https://make.wordpress.org/core/tag/core/),
[#week-in-core](https://make.wordpress.org/core/tag/week-in-core/)

 [  ](https://profiles.wordpress.org/annezazu/) [annezazu](https://profiles.wordpress.org/annezazu/)
8:29 pm _on_ December 27, 2021     
Tags: [agenda ( 1,140 )](https://make.wordpress.org/core/tag/agenda/),
[core-editor ( 756 )](https://make.wordpress.org/core/tag/core-editor/), [core-editor-agenda ( 189 )](https://make.wordpress.org/core/tag/core-editor-agenda/),
[meeting ( 405 )](https://make.wordpress.org/core/tag/meeting/)   

# 󠀁[Editor Chat Agenda: 29 December 2021 (skipped)](https://make.wordpress.org/core/2021/12/27/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](https://wordpress.org/news/2021/12/wordpress-5-9-beta-4/).
For specific steps and areas to test, you can follow this post on [how to test 5.9 features](https://make.wordpress.org/test/2021/11/30/help-test-wordpress-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](https://profiles.wordpress.org/paaljoachim/) and myself will follow
up on any open ended questions or topics left on this thread.

[#agenda](https://make.wordpress.org/core/tag/agenda/), [#core-editor](https://make.wordpress.org/core/tag/core-editor/),
[#core-editor-agenda](https://make.wordpress.org/core/tag/core-editor-agenda/), 
[#meeting](https://make.wordpress.org/core/tag/meeting/)

 [  ](https://profiles.wordpress.org/ajitbohra/) [Ajit Bohra](https://profiles.wordpress.org/ajitbohra/)
3:59 pm _on_ December 27, 2021     
Tags: [core-editor ( 756 )](https://make.wordpress.org/core/tag/core-editor/),
[core-editor-summary ( 185 )](https://make.wordpress.org/core/tag/core-editor-summary/),
[editor ( 223 )](https://make.wordpress.org/core/tag/editor/), [gutenberg ( 546 )](https://make.wordpress.org/core/tag/gutenberg/),
[meeting notes ( 227 )](https://make.wordpress.org/core/tag/meeting-notes/)   

# 󠀁[Editor chat summary: Wednesday, 22 December 2021](https://make.wordpress.org/core/2021/12/27/editor-chat-summary-wednesday-22-december-2021/)󠁿

This post summarizes the latest weekly Editor meeting ([agenda](https://make.wordpress.org/core/2021/12/21/editor-chat-agenda-22-december-2021/),
[slack transcript](https://wordpress.slack.com/archives/C02QB2JS7/p1640181632168800)),
held in the [#core-editor](https://wordpress.slack.com/messages/C02QB2JS7) SlackSlack
Slack is a Collaborative Group Chat Platform [https://slack.com/](https://slack.com/).
The WordPress community has its own Slack Channel at [https://make.wordpress.org/chat/](https://make.wordpress.org/chat/)
channel, on[ Wednesday, December 22, 2021, 14:00 UTC](https://www.timeanddate.com/worldclock/fixedtime.html?iso=20211222T1400).

## General Updates

 * [Whats new in Gutenberg 12.2.0.](https://make.wordpress.org/core/2021/12/22/whats-new-in-gutenberg-12-2-22-december/)
 * [WordPress 5.9 Beta 4](https://wordpress.org/news/2021/12/wordpress-5-9-beta-4/)
 * [WordPress 5.9 Must Haves](https://github.com/WordPress/gutenberg/projects/62)

## Updates on the key projects

## **Mobile**

[@hypest](https://profiles.wordpress.org/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](https://github.com/WordPress/gutenberg/pull/37279).
 * Bottomsheet back-button navigation [issue](https://github.com/WordPress/gutenberg/pull/37426).

**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](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](https://profiles.wordpress.org/mkaz/)

A few bits on documentation:

 * In [PR 37348](https://github.com/WordPress/gutenberg/pull/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](https://developer.wordpress.org/block-editor/contributors/documentation/#code-examples)
   was also updated for guidance.
 * [PR 36183](https://github.com/WordPress/gutenberg/pull/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](https://developer.wordpress.org/block-editor/reference-guides/core-blocks/).
   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](https://github.com/orgs/WordPress/projects/11/views/1),
   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](https://profiles.wordpress.org/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](https://github.com/WordPress/gutenberg/pull/37554) in Reusable
   Blocks.
 * Plus removed a lot of [unused code](https://github.com/WordPress/gutenberg/pull/37581)
   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](https://profiles.wordpress.org/priethor/)

 * Congratulating first-time contributors for joining efforts during the 12.2 release
   cycle:
    - [@wpe_bdurette](https://profiles.wordpress.org/wpe_bdurette/) 
    - [@Chris](https://profiles.wordpress.org/chris/) Lubkert 
    - [@anoopd](https://profiles.wordpress.org/anoopd/)
    - [@jhned](https://profiles.wordpress.org/jhned/) 
    - @djave-co
    - @jonahtanjz
 * Kudos to [@mikachan](https://profiles.wordpress.org/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/](https://wordpress.org/gutenberg/)
   team

[@fabiankaegy](https://profiles.wordpress.org/fabiankaegy/)

 1. I’d love to get some eyes on [this Dev Note](https://github.com/WordPress/gutenberg/pull/26031#issuecomment-996785144)
    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](https://github.com/WordPress/gutenberg/discussions/37448)‘
    here and get some opinions on the topic.

[Read complete transcript](https://wordpress.slack.com/archives/C02QB2JS7/p1640181632168800)

[#meeting-notes](https://make.wordpress.org/core/tag/meeting-notes/), [#core-editor](https://make.wordpress.org/core/tag/core-editor/),
[#editor](https://make.wordpress.org/core/tag/editor/), [#gutenberg](https://make.wordpress.org/core/tag/gutenberg/),
[#core-editor-summary](https://make.wordpress.org/core/tag/core-editor-summary/)

 [  ](https://profiles.wordpress.org/sergeybiryukov/) [Sergey Biryukov](https://profiles.wordpress.org/sergeybiryukov/)
2:09 am _on_ December 25, 2021      

# 󠀁[Updater initiative status report: December 25, 2021](https://make.wordpress.org/core/2021/12/25/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](https://make.wordpress.org/core/2021/05/03/feature-project-updates-on-updating-the-updaters/).

## 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/](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](https://core.trac.wordpress.org/changeset/51815).
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](https://core.trac.wordpress.org/changeset/52351).

### 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](https://profiles.wordpress.org/aristath/) did a [first exploration](https://github.com/aristath/updater-tweaks-poc/tree/main/includes/db),
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](https://github.com/WordPress/wordpress-develop/pull/1547).
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/](https://slack.com/).
The WordPress community has its own Slack Channel at [https://make.wordpress.org/chat/](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](https://profiles.wordpress.org/peterwilsoncc/) suggested proposing
a feature project. Right now, there is a [Google Document](https://docs.google.com/document/d/1Y5URlKW9GE89u7R3-z5o-0i5-9OVZd9HFaILhUE7mLA/edit)
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](https://wordpress.slack.com/app_redirect?channel=core-auto-updates)
chats, Tuesdays at 5PM UTC in 2022.

Thanks!

Thank you [@francina](https://profiles.wordpress.org/francina/) and [@aristath](https://profiles.wordpress.org/aristath/)
for the peer review.

 [  ](https://profiles.wordpress.org/webcommsat/) [Abha Thakor](https://profiles.wordpress.org/webcommsat/)
9:39 pm _on_ December 22, 2021     
Tags: [5.9 ( 104 )](https://make.wordpress.org/core/tag/5-9/),
[dev chat ( 919 )](https://make.wordpress.org/core/tag/dev-chat/), [summary ( 974 )](https://make.wordpress.org/core/tag/summary/)

# 󠀁[Dev Chat summary: December 22, 2021](https://make.wordpress.org/core/2021/12/22/dev-chat-summary-december-22-2021/)󠁿

[Dev Chat agenda](https://make.wordpress.org/core/2021/12/22/dev-chat-agenda-for-15-december-2021-2/).

The meeting was led by [@webcommsat](https://profiles.wordpress.org/webcommsat/)
and [@marybaum](https://profiles.wordpress.org/marybaum/).

[Start](https://wordpress.slack.com/archives/C02RQBWTW/p1640203203188800) 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/](https://slack.com/). The
WordPress community has its own Slack Channel at [https://make.wordpress.org/chat/](https://make.wordpress.org/chat/).

You can find last week’s notes in at [Dev chat summary, December 15, 2021](https://make.wordpress.org/core/2021/12/16/devchat-meeting-summary-december-15-2021/).

## Announcements

Please join the discussion [@chanthaboune has started on 2022 release planning.](https://make.wordpress.org/core/2021/12/17/discussion-2022-major-release-timing/)

### 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!](https://wordpress.org/wordpress-5.9-beta4.zip)
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.](https://wordpress.org/news/2021/12/wordpress-5-9-beta-4/)
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](https://make.wordpress.org/core/2021/11/22/wordpress-5-9-revised-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.](https://make.wordpress.org/core/5-9)

## Blogblog (versus network, site) posts to note

[What’s new in Gutenberg 12.2](https://make.wordpress.org/core/?p=92944&)? (December
22, 2021)
[A Week in Core](https://make.wordpress.org/core/2021/12/21/a-week-in-core-december-20-2021/).
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](https://wordpress.slack.com/archives/C02RQBWTW)
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](https://make.wordpress.org/test/2021/11/30/help-test-wordpress-5-9-features/).
This replaces the ongoing call for FSE testing promotions until after 5.9 is released.
Thanks [@annezazu](https://wordpress.slack.com/team/U02S2V0TP)

[WordPress 5.9 is now available for translation](https://make.wordpress.org/polyglots/2021/12/16/wordpress-5-9-ready-to-be-translated/).
The new theme with this release, [Twenty Twenty-Two](https://translate.wordpress.org/projects/wp-themes/twentytwentytwo/),
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](https://wordpress.org/news/2021/11/take-the-2021-wordpress-annual-survey-and-view-the-2020-results/)
closes next week on December 30, 2021. Still time to complete it.

## Component Maintainers update

### **Build/Test Tools Component**

Update via [@sergeybiryukov](https://profiles.wordpress.org/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](https://make.wordpress.org/core/2021/?output_format=md#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](https://core.trac.wordpress.org/ticket/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](https://core.trac.wordpress.org/ticket/54661)
   for more details.

Thanks [@johnbillion](https://wordpress.slack.com/team/U02QDTXPP) and [@johnillo](https://profiles.wordpress.org/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](https://make.wordpress.org/core/2021/?output_format=md#l10n)󠁿. 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](https://profiles.wordpress.org/sergeybiryukov/): No
major news this week.

### **Quick/Bulk Edit component**

Update from [@nalininonstopnewsuk](https://profiles.wordpress.org/nalininonstopnewsuk/):
For the [Quick/ Bulk Edit component](https://make.wordpress.org/core/components/editor/quick-bulk-edit/),
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](https://profiles.wordpress.org/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](https://docs.google.com/spreadsheets/d/1S2QU4K6aYMoaNuiDu1lEf9r2hOzHQgsUzMgZcTxdPgg/edit#gid=0)
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](https://profiles.wordpress.org/maksimkuzmin/)  would like some comments
on this [message in Slack](https://wordpress.slack.com/archives/C02RQBWTW/p1640203219189500)
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 easily be shared,
copied and modified by other developers. Public repositories are free to host, private
repositories require a paid subscription. GitHub introduced the concept of the ‘
pull request’ where code changes done in branches by contributors can be reviewed
and discussed before being merged by the repository owner. [https://github.com/](https://github.com/)
Issues and Projects. **

[@Sergio Scabuzzo](https://wordpress.slack.com/team/U8UTZ87KR) from the measurement
group in the team encouraged contributors to look at the ideas. [https://github.com/WordPress/performance/projects](https://github.com/WordPress/performance/projects)

**3. A second enhancement proposal**

[@maksimkuzmin](https://profiles.wordpress.org/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](https://core.trac.wordpress.org/ticket/16264).

**4. Bug report potentially related to 5.9**

[@afragen](https://profiles.wordpress.org/afragen/): FYI, posted bug report and 
PR for [#54682](https://core.trac.wordpress.org/ticket/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](https://profiles.wordpress.org/webcommsat/).
Thanks to [@marybaum](https://profiles.wordpress.org/marybaum/) and [@sergey](https://profiles.wordpress.org/sergey/)
for proofing.

[#5-9](https://make.wordpress.org/core/tag/5-9/), [#dev-chat](https://make.wordpress.org/core/tag/dev-chat/),
[#summary](https://make.wordpress.org/core/tag/summary/)

 [  ](https://profiles.wordpress.org/antonvlasenko/) [Anton Vlasenko](https://profiles.wordpress.org/antonvlasenko/)
8:16 pm _on_ December 22, 2021     
Tags: [block-editor ( 139 )](https://make.wordpress.org/core/tag/block-editor/),
[core-editor ( 756 )](https://make.wordpress.org/core/tag/core-editor/), [gutenberg ( 546 )](https://make.wordpress.org/core/tag/gutenberg/),
[gutenberg-new ( 216 )](https://make.wordpress.org/core/tag/gutenberg-new/)   

# 󠀁[What’s new in Gutenberg 12.2? (22 December)](https://make.wordpress.org/core/2021/12/22/whats-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/](https://wordpress.org/gutenberg/)…”
posts (labeled with the [#gutenberg-new](https://href.li/?https://make.wordpress.org/core/tag/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](https://href.li/?https://make.wordpress.org/core/2020/05/20/ways-to-keep-up-with-full-site-editing-fse/)
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](https://github.com/WordPress/gutenberg/releases/tag/v12.2.0) has
just been released! It’s the last minor Gutenberg release in 2021. This release 
improves compatibility with the upcoming [WordPress 5.9 release](https://make.wordpress.org/core/5-9/)
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](https://make.wordpress.org/core/2021/?output_format=md#seamless-navigation-between-the-site-editor-and-the-template-list)
 * [Improvements to post comments](https://make.wordpress.org/core/2021/?output_format=md#improvements-to-post-comments)
 * [A new home for border controls](https://make.wordpress.org/core/2021/?output_format=md#a-new-home-for-border-controls)
 * [New font sizes in the `FontSizePicker` component](https://make.wordpress.org/core/2021/?output_format=md#new-font-sizes-in-the-fontsizepicker-component)
 * [Improved color picker](https://make.wordpress.org/core/2021/?output_format=md#improved-color-picker)
 * [Preview for Block Styles in the Widget Editor](https://make.wordpress.org/core/2021/?output_format=md#preview-for-block-styles-in-the-widget-editor)
 * [Changelog](https://make.wordpress.org/core/2021/?output_format=md#changelog)
 * [Performance benchm](https://make.wordpress.org/core/2021/?output_format=md#performance-benchmark)
   [ark](https://make.wordpress.org/core/2021/?output_format=md#performance-benchmark)

## 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](https://github.com/WordPress/gutenberg/pull/36488),
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](https://github.com/WordPress/gutenberg/pull/36065)
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](https://github.com/WordPress/gutenberg/pull/36890)
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](https://github.com/WordPress/gutenberg/pull/34061),
and sets which border properties are displayed in the ToolsPanel by default. The
ToolsPanel, [first introduced in Gutenberg 11.3](https://make.wordpress.org/core/2021/08/18/whats-new-in-gutenberg-11-3-18-august/),
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](https://github.com/WordPress/gutenberg/pull/37038)
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](https://github.com/WordPress/gutenberg/pull/37067).
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](https://make.wordpress.org/core/2021/11/29/whats-new-in-gutenberg-12-0-24-november/)
on hover for the Block Editor, this release [brings this functionality](https://github.com/WordPress/gutenberg/pull/37012)
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](https://github.com/WordPress/gutenberg/pull/36890))
 * Comment Template block: Handle nested comments. ([36065](https://github.com/WordPress/gutenberg/pull/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](https://codex.wordpress.org/The_Loop):
   Improve context handling in inner blocks. ([37196](https://github.com/WordPress/gutenberg/pull/37196))
 * Image: Reflect media deletion in the editor. ([35973](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/36950))
    - Refactor modal padding to be simpler and more flexible. ([37323](https://github.com/WordPress/gutenberg/pull/37323))
    - Remove Navigation Menus from the Appearance menu. ([37212](https://github.com/WordPress/gutenberg/pull/37212))
    - Add clearance for appender in submenus. ([36720](https://github.com/WordPress/gutenberg/pull/36720))
 * Refactor handling of padding for group and column blocks. ([37356](https://github.com/WordPress/gutenberg/pull/37356))
 * Template Part: Add actions that fire during the loading process of block template
   parts. ([36884](https://github.com/WordPress/gutenberg/pull/36884))

#### Styles and design tools

 * Add the `Welcome Guide` option to the `More Global Styles Actions` dropdown. (
   [37180](https://github.com/WordPress/gutenberg/pull/37180))
 * Make the `Blocks` section more distinguishable. ([37293](https://github.com/WordPress/gutenberg/pull/37293))
 * Move the `Edit colors` button to a standard menu item. ([36842](https://github.com/WordPress/gutenberg/pull/36842))
 * Move Duotone palette to the bottom of global styles gradients. ([37253](https://github.com/WordPress/gutenberg/pull/37253))
 * Border controls: display border properties in the `ToolPanel`. ([34061](https://github.com/WordPress/gutenberg/pull/34061))

#### Components

 * FontSizePicker: Use an incremental sequence of numbers as labels for the available
   font sizes at the segmented control (conditionally). ([37038](https://github.com/WordPress/gutenberg/pull/37038))
 * ColorPalette: Improve accessibility and visibility. ([36925](https://github.com/WordPress/gutenberg/pull/36925))
 * ToolsPanel: Standardize input control label margin. ([36387](https://github.com/WordPress/gutenberg/pull/36387))
 * Unify styles for `ColorIndicator` with how they appear in Global Styles. ([37028](https://github.com/WordPress/gutenberg/pull/37028))
 * Update `PanelColorGradientSettings` component to use dropdowns. ([37067](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/37175))
 * Add client-side routing for Site Editor. ([36488](https://github.com/WordPress/gutenberg/pull/36488))
 * Add a new `aria-pressed` attribute to the `Toggle navigation` button. ([37351](https://github.com/WordPress/gutenberg/pull/37351))
 * Template revert flow: Make label description source agnostic. ([37004](https://github.com/WordPress/gutenberg/pull/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](https://reactjs.org/) Fast Refresh for block development.(
   [28273](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/36938))

#### Widgets Editor

 * Implement preview for blocks. ([37012](https://github.com/WordPress/gutenberg/pull/37012))

#### Post Editor

 * Template Part block should not be available in the Post Editor inserter. ([37157](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/37229))

#### Block Library

 * Fix return type in the DocBlockdocblock (phpdoc, xref, inline docs). ([37352](https://github.com/WordPress/gutenberg/pull/37352))
 * Fix deprecated usage of passing null to `explode` function. ([37392](https://github.com/WordPress/gutenberg/pull/37392))
 * Gallery:
 * Fix color issue for captions with hyperlinks in the Gallery block. ([37033](https://github.com/WordPress/gutenberg/pull/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 7.4 or higher. ([37132](https://github.com/WordPress/gutenberg/pull/37132))
 * Remove placeholder border. ([37050](https://github.com/WordPress/gutenberg/pull/37050))
 * Post Comments:
 * Fix form-submit styles by adding button classes to the submit button in the post-
   comments block. ([37245](https://github.com/WordPress/gutenberg/pull/37245))
 * Fix width of the post comment form input. ([37238](https://github.com/WordPress/gutenberg/pull/37238))
 * Use block markup for the comment form button when using a block theme. ([37315](https://github.com/WordPress/gutenberg/pull/37315))
 * Comments Pagination Block: Add default styling. ([37057](https://github.com/WordPress/gutenberg/pull/37057))
 * Image:
 * Set image display mode to `grid` when no alignment is set to align caption `onresize`
   event properly. ([35787](https://github.com/WordPress/gutenberg/pull/35787))
 * Fix resizer controls being hidden in Safari when switching between alignments.(
   [37210](https://github.com/WordPress/gutenberg/pull/37210))
 * Navigation:
 * Fix `gutenberg_` prefixed function references in Core. ([37021](https://github.com/WordPress/gutenberg/pull/37021))
 * Fix navigation justifications. ([36991](https://github.com/WordPress/gutenberg/pull/36991))
 * Fix vertical alignment of page list in the modal. ([37321](https://github.com/WordPress/gutenberg/pull/37321))
 * Remove hardcoded typography units. ([37349](https://github.com/WordPress/gutenberg/pull/37349))
 * Fix vertical layout. ([37009](https://github.com/WordPress/gutenberg/pull/37009))
 * Switch to `addEventListener` event for load event in the navigation block view
   script. ([37135](https://github.com/WordPress/gutenberg/pull/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/](https://wordpress.org/plugins/)
   or can be cost-based plugin from a third-party.. ([37187](https://github.com/WordPress/gutenberg/pull/37187))
 * Navigation Link Control: Hide the `Transforms` component when no options are 
   available. ([37284](https://github.com/WordPress/gutenberg/pull/37284))
 * Remove the deprecated navigation area block from the inserter. ([37026](https://github.com/WordPress/gutenberg/pull/37026))
 * Query Loop: Add `useBlockPreview` component, fix alignment of the `Query Loop`
   block in the editor. ([36431](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/36681))
 * Search: Fix application of border color class in the editor. ([37242](https://github.com/WordPress/gutenberg/pull/37242))
 * Template Part:
 * Fix `isMissing` condition check. ([37370](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/36898))
 * Update the `micromodal` package to include a click-through fix. ([36837](https://github.com/WordPress/gutenberg/pull/36837))

#### Components

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

#### Site Editor

 * Allow global styles sidebar panels to fill vertical space. ([36845](https://github.com/WordPress/gutenberg/pull/36845))
 * Display a notice if export fails. ([37131](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/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/](https://developer.wordpress.org/themes/advanced-topics/child-themes/).(
   [37074](https://github.com/WordPress/gutenberg/pull/37074))
 * Hide the block appender in the Template Part editor. ([37213](https://github.com/WordPress/gutenberg/pull/37213))
 * Improve notification when saving content in the Site Editor. ([36897](https://github.com/WordPress/gutenberg/pull/36897))
 * Improve handling of parsed requests. ([37209](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/37347))
 * Template Editor Mode: Hide editor mode switcher. ([37359](https://github.com/WordPress/gutenberg/pull/37359))
 * Use server definition for the Template Areas. ([37215](https://github.com/WordPress/gutenberg/pull/37215))
 * Fix the white screen of death on the Templates page when user avatars are disabled.(
   [37458](https://github.com/WordPress/gutenberg/pull/37458))

#### Styles

 * Allow selector ordering to ensure `theme.json` root selector margin takes precedence.(
   [36960](https://github.com/WordPress/gutenberg/pull/36960))
 * Custom keys from `theme.json`: Fix kebabCase conversion. ([37380](https://github.com/WordPress/gutenberg/pull/37380))
 * Do not remove theme presets if defaults are hidden. ([37008](https://github.com/WordPress/gutenberg/pull/37008))
 * Fix CSS Custom Properties for presets in the Site Editor. ([36851](https://github.com/WordPress/gutenberg/pull/36851))
 * Fix how `appearanceTools` works. ([37254](https://github.com/WordPress/gutenberg/pull/37254))
 * Fix styles for previews and patterns. ([37296](https://github.com/WordPress/gutenberg/pull/37296))
 * Font sizes: Update default values. ([37381](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/36424))

#### Design Tools

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

#### Compatibility with Core and library code

 * Fix array key warning in block supports layout. ([37101](https://github.com/WordPress/gutenberg/pull/37101))
 * Templates: Search for old template names in the parent theme too. ([36910](https://github.com/WordPress/gutenberg/pull/36910))
 * Fix theme requirement validation when using WordPress 5.8. ([37226](https://github.com/WordPress/gutenberg/pull/37226))
 * Fix WordPress 5.9 check for conditionally running code. ([37235](https://github.com/WordPress/gutenberg/pull/37235))
 * Fix mistake in the`_remove_theme_attribute_in_block_template_content` function.(
   [37137](https://github.com/WordPress/gutenberg/pull/37137))
 * Gallery: Enable the new gallery block by default if running in Core. ([37134](https://github.com/WordPress/gutenberg/pull/37134))

#### Packages

 * Core Data: Fix returning empty array in the `getEntityRecords` function for unknown
   entities. ([36984](https://github.com/WordPress/gutenberg/pull/36984))
 * Include `@babel/core` as a dependency where applicable. ([37328](https://github.com/WordPress/gutenberg/pull/37328))
 * Format library: Fix unsetting highlight color. ([37062](https://github.com/WordPress/gutenberg/pull/37062))

#### Block Editor

 * Mark the last change as persistent on save. ([36887](https://github.com/WordPress/gutenberg/pull/36887))
 * Fix content loss when ungrouping template parts or reusable blocks. ([37280](https://github.com/WordPress/gutenberg/pull/37280))
 * Simplify the `RESET_BLOCK` action to fix the loss of content when using template
   part focus mode. ([37283](https://github.com/WordPress/gutenberg/pull/37283))

#### Post Editor

 * Multi-Entity Saving: Decode HTML entities in item titles. ([37353](https://github.com/WordPress/gutenberg/pull/37353))

### Documentation

 * Update documentation related to schemas. ([37294](https://github.com/WordPress/gutenberg/pull/37294))
 * Remove versioning in theme schema descriptions. ([37165](https://github.com/WordPress/gutenberg/pull/37165))
 * Fix the broken link on the plugin description page. ([37362](https://github.com/WordPress/gutenberg/pull/37362))
 * Handbook:
 * Add information about skip links to the block theme overview. ([36555](https://github.com/WordPress/gutenberg/pull/36555))
 * Add closing ticks for `blockGap` code example. ([37338](https://github.com/WordPress/gutenberg/pull/37338))
 * Add how-to guide documentation template. ([36694](https://github.com/WordPress/gutenberg/pull/36694))
 * Add link and details for `npx` in create block tutorial. ([37376](https://github.com/WordPress/gutenberg/pull/37376))
 * Consolidate React Native documentation. ([36685](https://github.com/WordPress/gutenberg/pull/36685))
 * Fix a link to the how-to guide template. ([37191](https://github.com/WordPress/gutenberg/pull/37191))
 * Move classes used in the navigation block from the component to the new readme.(
   [37375](https://github.com/WordPress/gutenberg/pull/37375))
 * Update Format API how-to guide. ([37298](https://github.com/WordPress/gutenberg/pull/37298))
 * Update broken links. ([37121](https://github.com/WordPress/gutenberg/pull/37121))
 * Improve formatting of headings in the contributors’ guide. ([36689](https://github.com/WordPress/gutenberg/pull/36689))
 * Fix `type` for `prefix` transformation. ([36362](https://github.com/WordPress/gutenberg/pull/36362))
 * Fix broken links in the Resources section. ([37307](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/37129))
 * Packages:
 * Block Editor:
    - Add a documentation note about inner blocks and excerpts. ([36405](https://github.com/WordPress/gutenberg/pull/36405))
    - Update example of usage for `suggestionsQuery` component. ([37281](https://github.com/WordPress/gutenberg/pull/37281))
 * Componentes:
    - Add missing changelog entries. ([37384](https://github.com/WordPress/gutenberg/pull/37384))
    - Fix code formatting for card components. ([37268](https://github.com/WordPress/gutenberg/pull/37268))
    - Fix importing from the wrong package. ([37192](https://github.com/WordPress/gutenberg/pull/37192))
    - Fix missing link for shortcut documentation. ([36800](https://github.com/WordPress/gutenberg/pull/36800))
    - Update `QueryControls` README.md. ([37233](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/37176))

### Code Quality

#### Compatibility with Core

 * Better synchronization between Gutenberg and Core code. ([37141](https://github.com/WordPress/gutenberg/pull/37141))
 * Move WordPress 5.9 `wp-admin` menus compatibility code to `lib/compat` folder.(
   [37257](https://github.com/WordPress/gutenberg/pull/37257))
 * Move the block page templates hook into `compat/5.9` folder. ([37142](https://github.com/WordPress/gutenberg/pull/37142))
 * Move template loader hooks and functions into `lib/compat` folder. ([37149](https://github.com/WordPress/gutenberg/pull/37149))
 * Synchronize `wp_is_block_theme` function and `block-templates` block support 
   with Core. ([37218](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/37282))
 * Port `Global Styles` code to `lib/compat/wordpress-5.9`:
 * CSS custom properties. ([37334](https://github.com/WordPress/gutenberg/pull/37334))
 * Front assets. ([37335](https://github.com/WordPress/gutenberg/pull/37335))
 * Rename `WP_Theme_JSON_Resolver` methods to make them compatible with Core. ([37393](https://github.com/WordPress/gutenberg/pull/37393))

#### Packages

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

#### Site Editor

 * Remove unused PHP code. ([36997](https://github.com/WordPress/gutenberg/pull/36997))
 * Revert `Site Editor: Set the on the list page to be the same as the CPT name`.(
   [37270](https://github.com/WordPress/gutenberg/pull/37270))

#### Block Library

 * Remove `gutenberg_` prefix from `@wordpress/block-library`. ([37341](https://github.com/WordPress/gutenberg/pull/37341))
 * Block Library: Rename Query Pagination blocks. ([37091](https://github.com/WordPress/gutenberg/pull/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](https://github.com/WordPress/gutenberg/pull/37136))
 * Update Multi-Entity Saving test to improve reliability. ([37139](https://github.com/WordPress/gutenberg/pull/37139))
 * Sanitize flaky test report file names. ([37390](https://github.com/WordPress/gutenberg/pull/37390))
 * Retry login again after a bad nonce request to prevent intermittent test failures.(
   [37219](https://github.com/WordPress/gutenberg/pull/37219))
 * Fix `Multi-entity saving` and `Template parts` related tests. ([37333](https://github.com/WordPress/gutenberg/pull/37333))
 * Fix `Heading` test. ([37382](https://github.com/WordPress/gutenberg/pull/37382))
 * Re-enable most of the navigation block end-to-end tests. ([37214](https://github.com/WordPress/gutenberg/pull/37214))
 * Use global transients for PHPUnit tests. ([37122](https://github.com/WordPress/gutenberg/pull/37122))
 * Fix usage of `useSetting('color.palette')`. ([37108](https://github.com/WordPress/gutenberg/pull/37108))
 * Add tests for the new gallery hooks. ([36801](https://github.com/WordPress/gutenberg/pull/36801))

#### Linting

 * ESLint:
 * Add support for ESLint v8. ([36283](https://github.com/WordPress/gutenberg/pull/36283))
 * Fix Babel config resolution when a custom ESLint config is present. ([37406](https://github.com/WordPress/gutenberg/pull/37406))

#### Build Tooling

 * Specify PHP version in Composer. ([37007](https://github.com/WordPress/gutenberg/pull/37007))
 * Remove unused `jest-serializer-enzyme` dependency. ([37373](https://github.com/WordPress/gutenberg/pull/37373))
 * Remove some labels from the `Experiments` section of the changelog. ([37098](https://github.com/WordPress/gutenberg/pull/37098))
 * `npm`:
 * Fix package dependencies issues discovered with `pnpm`. ([37396](https://github.com/WordPress/gutenberg/pull/37396))
 * Use the latest minor version of webpack in Gutenberg. ([37371](https://github.com/WordPress/gutenberg/pull/37371))
 * Fix build failure on Windows. ([37189](https://github.com/WordPress/gutenberg/pull/37189))

---

## Performance benchmark

| Version | Time to render first block | Keypress event (typing) | 
| Gutenberg 12.2 | 5.672 s | 42.38 ms | 
| Gutenberg 12.1 | 5.484 s | 37.17 ms | 
| WordPress 5.8 | 5.807 s | 46.5 ms |

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

[#block-editor](https://make.wordpress.org/core/tag/block-editor/), [#core-editor](https://make.wordpress.org/core/tag/core-editor/),
[#gutenberg](https://make.wordpress.org/core/tag/gutenberg/), [#gutenberg-new](https://make.wordpress.org/core/tag/gutenberg-new/)

 [  ](https://profiles.wordpress.org/marybaum/) [marybaum](https://profiles.wordpress.org/marybaum/)
5:14 pm _on_ December 22, 2021     
Tags: [agenda ( 1,140 )](https://make.wordpress.org/core/tag/agenda/),
[core ( 742 )](https://make.wordpress.org/core/tag/core/), [dev chat ( 919 )](https://make.wordpress.org/core/tag/dev-chat/)

# 󠀁[Dev Chat agenda for 22 December 2021](https://make.wordpress.org/core/2021/12/22/dev-chat-agenda-for-15-december-2021-2/)󠁿

## 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! ](https://wordpress.org/wordpress-5.9-beta4.zip)

## Blogblog (versus network, site) posts of note

[Beta 4 fixes 20 bugs that surfaced in Beta 3.](https://wordpress.org/news/2021/12/wordpress-5-9-beta-4/)
Please test them and report your findings on the announcement post.

[What’s new in Gutenberg 12.2](https://make.wordpress.org/core/?p=92944&)?

[@audrasjb](https://profiles.wordpress.org/audrasjb/) has the latest issue of [A Week in Core](https://make.wordpress.org/core/2021/12/21/a-week-in-core-december-20-2021/).

Here is the [revised release schedule.](https://make.wordpress.org/core/2021/11/22/wordpress-5-9-revised-release-schedule/)

And [please join the discussion @chanthaboune has started on 2022 release planning.](https://make.wordpress.org/core/2021/12/17/discussion-2022-major-release-timing/)

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](https://make.wordpress.org/core/tag/agenda/), [#core](https://make.wordpress.org/core/tag/core/),
[#dev-chat](https://make.wordpress.org/core/tag/dev-chat/)

[#agenda](https://make.wordpress.org/core/tag/agenda/), [#dev-chat](https://make.wordpress.org/core/tag/dev-chat/)

[#agenda](https://make.wordpress.org/core/tag/agenda/), [#core](https://make.wordpress.org/core/tag/core/),
[#dev-chat](https://make.wordpress.org/core/tag/dev-chat/)

# Post navigation

[← Older posts](https://make.wordpress.org/core/2021/page/2/?output_format=md)