A Week in Core – August 23, 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 August 16 and August 23, 2021.

  • 27 commits
  • 21 contributors
  • 58 tickets created
  • 5 tickets reopened
  • 43 tickets closed

Pending the appointment of the WordPress 5.9 team, a number of tickets have been fixed, waiting for the next minor and 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.(s).

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

Code changes

Build/Test Tools

  • Include the commit short summary in SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/ messages – #52644
  • Move loading the PO class to set_up_before_class()#53363
  • Move loading the WP_Community_Events class to set_up_before_class()#53363
  • Rename classes in phpunit/tests/admin/ per the naming conventions – #53363
  • Rename classes in phpunit/tests/editor/ per the naming conventions – #53363
  • Rename classes in phpunit/tests/error-protection/ per the naming conventions – #53363
  • Rename classes in phpunit/tests/feed/ per the naming conventions – #53363
  • Rename classes in phpunit/tests/formatting/ per the naming conventions – #53363
  • Use a better return type check for parse_url() in do_enclose() tests – #53635

Code Modernization

  • Check the input type in validate_file()#53635
  • Check the return type of parse_url() in WP::parse_request()#53635
  • Check the return type of parse_url() in download_url()#53635
  • Check the return type of parse_url() in ms_cookie_constants()#53635
  • Check the return type of parse_url() on PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party./Theme Editor screens – #53635
  • Correct handling of null in wp_parse_str()#53635
  • Only set auto_detect_line_endings in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher < 8.1 – #53635
  • Pass correct default value to http_build_query() in WP_Sitemaps_Provider::get_sitemap_url()#53635
  • Silence the deprecation warning for auto_detect_line_endings#53635

Customize

  • Hide native control on background position field – #53803

Editor

  • Replace the remaining references to wp.editor with wp.oldEditor#53762

External Libraries

  • Restore the phpcs:ignore statements in PHPMailer – #53953
  • Upgrade PHPMailer to version 6.5.1 – #53953

Media

  • Check the return type of _get_cron_array() in WP_Media_List_Table::prepare_items()#53949
  • Fix layout of media library modal on narrow screens – #53679
  • Increase number of media items displayed per page – #53827

Privacy

  • Add space below page selector – #53782

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/

  • Remove trailing slashes when preloading requests and add unit tests for it – #51636

Toolbar

  • Limit the icon transition style to color only – #43423

Props

Thanks to the 21 people who contributed to WordPress Core on Trac last week: @jrf (10), @SergeyBiryukov (9), @hellofromTonya (8), @mukesh27 (4), @sabernhardt (3), @joedolson (2), @zieladam (2), @audrasjb (2), @earnjam (1), @moch11 (1), @desrosj (1), @andraganescu (1), @wb1234 (1), @walbo (1), @antpb (1), @AlGala (1), @ravipatel (1), @antonvlasenko (1), @johnjamesjacoby (1), @guillaumeturpin (1), and @lucatume (1).

Congrats and welcome to our 5 new contributors of the week! @moch11, @wb1234, @AlGala, @antonvlasenko, and @guillaumeturpin ♥️

Core committers: @sergeybiryukov (19), @peterwilsoncc (3), @azaozz (2), @ryelle (2), and @desrosj (1).

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

Dev Chat Agenda for August 25, 2021

Here is the agenda for this week’s developer meeting to occur at August 25, 2021, at 20:00 UTC.

Blogblog (versus network, site) Post Highlights and announcements

Bringing to your attention some interesting reads and some call for feedback and/or volunteers

Components check-in and status updates

  • Check-in with each component for status updates.
  • Poll for components that need assistance.

Open Floor

Do you have something to propose for the agenda, or a specific item relevant to the usual agenda items above?

Please leave a comment, and say whether or not you’ll be in the chat, so the group can either give you the floor or bring up your topic for you accordingly.

This meeting happens in the #core channel. To join the meeting, you’ll need an account on the Making WordPress Slack.

#agenda, #core, #dev-chat

Editor Chat Agenda: 25 August 2021

Facilitator and notetaker: @paaljoachim

This is the agenda for the weekly editor chat scheduled for Wednesday, August 25, 2021, 04:00 PM GMT+1.

This meeting is held in the #core-editor channel in the Making WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.

  • What’s new in Gutenberg (11.3)
  • Whats next in Gutenberg: July and August.
  • Updates based on updated scope for site editing projects and WP 5.8:
    • Navigation BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. & Navigation Editor.
    • Template editor.
    • Patterns.
    • Styling.
    • Mobile Team.
  • Task Coordination.
  • Open Floor.

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

  • If you have anything to share for the Task Coordination section, please leave it as a comment on this post.
  • If you have anything to propose for the agenda or other specific items related to those listed above, please leave a comment below.

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

Upgrade/Install component meeting agenda for August 24, 2021

The next meeting is scheduled on Tuesday, August 24, 2021, at 17:00 UTC and will take place on #core-auto-updates SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/ channel.

The aim of the chat is to check the status of the rollback for failed plugin/theme updates after last Friday’s testing session and triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors./scrub tickets in the component.

Got something to propose for the agenda? Please leave a comment below.

See you later!

#core-auto-updates, #updater, #upgrade-install

CSS Chat Summary: 19 August 2021

The meeting took place here on Slack. @dryanpress facilitated and @danfarrow wrote up these notes.

CSSCSS Cascading Style Sheets. Custom Properties (#49930)

Working Time

  • @robertg has taken on src/wp-admin/css/customize-controls.css which 2900+`lines of CSS. Bon courage Robert!
  • @wazeter has looked at other contributors change files in order to see how others have approached the problem, which seems like a sensible approach

CSS Link Share / Open Floor

Thanks everyone!

#core-css, #summary

Gallery Block Refactor Dev Note

The problem

If you have ever added a custom link to an image 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. and then tried to do the same on a Gallery image, you will understand the frustration and confusion of not having consistency between different types of image blocks. This inconsistency is because the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Gallery block stores the details of the included images as nested <img> elements within the block content. Therefore, the images within a gallery look and behave different from images within an individual image block. There are some long-standing open issues related to this:

The only way to fix this with the Gallery block in its current state is to try and replicate the additional functionality that the Image block has in the Gallery block, and vice versa. While this would be possible, it would lead to an additional maintenance overhead to keep the UIUI User interface and underlying code in sync between the two blocks.

Changes made

To make the behavior of images consistent between the Image Block and Gallery, while avoiding code duplication, the core Gallery block has been refactored to save the individual images as nested core Image blocks using the standard core innerBlocks APIs. To make this work with the innerBlocks 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., the gallery structure also had to change from an ordered list to a collection of figure elements within a figure. This structure change also brings the core Gallery block into line with the W3C WAI guidelines on the grouping of images.

The structure change means that Gallery images now have the ability to add custom links, or custom styles, for each image. An example of the flexible Gallery layouts this opens up can be seen below.

Gallery images will also automatically inherit new functionality that is added to the Image block, including those added by plugins. Below is an example of a Gallery block making us of the Image wave style and vintage filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. option added by the CoBlocks pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party..

Other benefits include being able to use the standard move, drag and drop, copy, duplicate, and remove block functionalities. Keyboard navigation also benefits from the adoption of the standard block model by the Gallery block.

Accessing the new Gallery Block

To access the new Gallery block you will need to download the latest version 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/ plugin. At the time of writing the change is still under an experimental flag, so once the plugin is installed check for an experimental setting ‘Enable the refactored gallery block’ and enable it if it is present:

If this flag is not present it means that the changes have been taken out of the experimental phase.

Currently, only new gallery blocks added after the experimental flag is turned on will be in the new format, all existing galleries will be editable and viewable in the current format. You can manually transform an old format gallery to the new format by clicking the ‘Update’ button that will appear in the block toolbar.

What theme and plugin authors need to do before 5.9

To support the new Gallery block format, plugin and theme authors should aim to do the following before the December release of this change in WordPress 5.9.

  • Add additional selectors to target the new nested image block in both the editor and front end (existing selectors must remain to support the existing gallery block content). The new structure can be seen below.
<figure class="wp-block-gallery blocks-gallery-grid has-nested-images columns-default is-cropped">
	<figure class="wp-block-image size-large">
		<img
			src="http://localhost/image1"
			alt="Image gallery image"
			class="wp-image-71"
		/>
	</figure>
	<figure class="wp-block-image size-large">
		<img
			src="http://localhost/image2"
			alt="Image gallery image"
			class="wp-image-70"
		/>
	</figure>
</figure>

Example CSSCSS Cascading Style Sheets. with selectors for old and new gallery formats:

.wp-block-gallery .blocks-gallery-item img,
.wp-block-gallery .wp-block-image img {

.wp-block-gallery .blocks-gallery-item figcaption,
.wp-block-gallery.has-nested-images .wp-block-image figcaption {

Test block transformations. Temporary transformation filters have been added to handle the transformation of 3rd party blocks to and from the new core gallery block format. However, block plugins with gallery transforms should still be tested with the Gutenberg plugin to ensure these transformations work correctly.

In the future, the temporary transformation filters may be deprecated, and plugin authors will then need to update their transformations to handle the new Gallery format. Notice will be given ahead of this change being made.

Additional context and considerations

Other existing solutions

Third-party block developers are currently solving some of the problems caused by the limitations of the core Gallery block by implementing their custom Gallery blocks. These include some of the missing functionality, like the ability to add custom links to individual images. This can be problematic for site owners and content editors due to a large number of Gallery blocks that offer very similar functionality, but none of which appear to provide a close match to the functionality available with individual core Image blocks.

There do not appear to be any examples of plugins that already solve this problem in a way that utilizes Image blocks as inner blocks.

Backwards compatibility considerations

This is a breaking change due to the fundamental change in the underlying Gallery structure. Due to the large number of Gallery blocks already in use, along with themes and plugins that may rely on the existing structure, the following steps have been taken to mitigate the impact of this change on theme and plugin developers as much as possible:

  • For the initial release in the Gutenberg plugin, there will be no automatic migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. of existing gallery content. This means that all existing gallery content will behave the same in the editor and front end as it does now, so will be compatible with existing plugins and themes. Only new gallery blocks added after this change will have the new structure in the editor and the front-end.  The plan is to add automatic migration of existing gallery content when loaded in the editor to the 5.9 WordPress release.
  • Two temporary transformation filters have been added that will handle the transformation of 3rd party blocks to and from the new core gallery block format.

Possible edge cases

The refactored Gallery format has been tested against the following sample block libraries that have existing transforms to and from the core Gallery block:

The following themes have also been tested to make sure that both the existing gallery content and the new format galleries display correctly:

  • TwentyNineteen
  • TwentyTwenty
  • TwentyTwentyOne
  • Astra
  • Arbutus

While the refactored gallery works effectively with these plugins and themes, there may be edge cases in other plugins and themes that have not been accounted for. Themes that heavily modify the gallery CSS based on the existing <ul><li></li></ul> will definitely need to be updated if the same style changes need to be applied to the new gallery format.  Therefore, it is recommended that theme and plugin authors test the changed gallery block well in advance of the 5.9 release.

Additional details about this change 

Previous discussions about this change can be found on the main pull request or call for testing.


Updated Oct 18 with additional information on Transformation, and CSS selectors.
Updated Oct 25 with instructions on how to access the new Gallery block while experimental

#5-9, #core-editor, #dev-notes, #gallery, #gutenberg

Dev chat summary, August 18, 2021

@francina led the chat on this agenda. You can also read the Slack logs.

We welcomed a couple of first-time attendees, always a happy chat when it happens!

Highlighted blogblog (versus network, site) posts

The attendees did not add comments to the posts highlighted in the agenda, but Francesca encouraged everyone to test WordPress 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. with the 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. Tester pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. and report bugs.

Worth mentioning

Thanks to the 31 people who contributed to WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. last week, including 3 new contributors! Kudos to the 2 core committers of the week, too.

A Week in Core – August 16, 2021

Announcements

@annezazu reminded everyone about an upcoming deadline, to respond to the current call for testing.

@hellofromtonya invited everyone to join the weekly working session where 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 will cover testing docs, dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase., open tickets for PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 8.1 testing, and for recent test modernization. They are announced in the core-test channel in SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/, so keep an eye on them!

Component maintainers

Build/Test Tools

@sergeybiryukov announced that the WordPress test suite is compatible with PHPUnit 8 & 9, and runs tests on PHP 8.1 beta (scheduled for release in November). See tickets #46149 and #53891 for more details.

As some of these test improvements were an unavoidable backward compatibility break for plugins/themes running tests on the WordPress core framework, there is an ongoing discussion about backporting some of these changes to older branches. Two main reasons for backporting:

  • Make WP security releases easier by not having to rewrite the tests that accompany security backports for older PHPUnit versions.
  • Help minimize the impact on the extender community who need to do cross-version testing against older versions of WordPress.

You can check #53911 for more details. Feedback welcome!

General

#53635 – Work continues on making various compatibility fixes for PHP 8.1.

Upgrade/Install

#51857 – Work continues on adding rollback for failed plugin/themes updates. You can also read Upgrade/Install Meeting Notes, August 17.

Open Floor

Christian Herrmann brought up two tickets:

A lively discussion ensued about the state of old tickets that lose momentum. It’s important to keep the conversation alive. Everyone is invited to add comments to tickets, refresh patches, and bring them up during dev-chat or scrubs when they will be scheduled for WordPress 5.9 and beyond.

Francesca also pointed new attendees to some resources that can be helpful if you want to contribute to WordPress.


See you next week!

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

Navigation Editor Hallway Hangout: compare/contrast the old and new screens

Date: August 24, 2021, at 09:00 UTC

Format: Zoom (recorded). A link will be shared in the #feature-navigation-block-editor slack channel shortly before the meeting is due to commence.

Length: 45 – 60mins. No more.

Topic: comparing and contrasting the classic menu screen with the experimental 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 navigation screen.

Goal: derive a list of tasks that are required in order for the two screens to have feature parity (from both UXUX User experience and UIUI User interface perspectives).

Facilitator(s): 

Intended Audience: past and future contributors to the navigation editor and block. Contributors to other related parts of WordPress.

Note Taker: any volunteers to be the official note keeper?

Preparation:

Please could participants test drive the old and new screens. Try creating the same menus on both screens.

Then come prepared with features they feel are missing from the block-based Navigation screen that are present in the classic Menu screen, or any bugs encountered.

Image showing both the new and current navigation experiences with text saying "A new navigation editing experience is coming...".

Agenda

Introduction

  • Facilitator introductions.
  • Welcome to attendees.
  • Recap hangout topic and goal.
  • Terminology – block-based vs classic Navigation screens.

Format

  • Explain the format.
  • Facilitator will share screen to demonstrate which parts of the experience are being discussed.
  • Questions to consider about the new screen:
    • Where is it lacking polish?
    • What bugs are in evidence?
    • What steps are harder to achieve?
    • What steps are not possible to achieve?
    • What steps are easier to achieve?
    • What features are entirely missing?

Summary

  • Brief summary of key discussion points from notetaker.
  • Summary of action points including Issues to be created or further explorations required.
  • Next steps.
  • Thanks.

#block-editor, #feature-navigation-block-editor, #gutenberg, #menus

CSS Chat Summary: 12 August 2021

The meeting took place here on Slack. @notlaura facilitated and @danfarrow wrote up these notes.

CSSCSS Cascading Style Sheets. Custom Properties (#49930)

   --wp-admin--theme--primary--step-10: #1a5686;
   --wp-admin--theme--notification: #d63638;
   --wp-admin--theme--notification--contrast: #fff;
   --wp-admin--theme--success: #00a32a;
   --wp-admin--theme--info: #72aee6;
   --wp-admin--theme--warning: #dba617;
   --wp-admin--theme--error: var(--wp-admin--theme--notification);
  • @robertg asked a question about where new custom properties should be defined. @ryelle answered that they should be in custom-properties.css, in the body selector so that they can be overridden by colour themes later

How should box-shadows be handled?

Working time

  • @notlaura started the 20 minute session where contributors can work on the project while having help available in the SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/ channel
  • @robertg asked if the :hover and :focus pseudo-classes should have separate custom-properties. @ryelle answered that one custom-property can be defined for --hover and also used for :focus
  • @wazeter asked about the timeline. @notlaura replied that for the 5.9 release we would be aiming for the end of August. @ryelle clarified that this is the target for “early“ consideration. We’ll know the target for the completed project when the real cutoff has been announced but she expects it to be around early-mid October
  • @notlaura added that next week’s meeting (August 18) is the last scheduled week for working time
  • @wazeter asked where questions about quirks should be addressed. @notlaura replied post in the #core-css channel or comment in the PR
  • @robertg asked if we are just targetting color, background-color, and border-colors for now. @notlaura added box-shadow, noting that this will need some additional discussion

CSS Link Share / Open Floor

Thanks everyone!

#summary

Editor Chat Agenda: 18 August 2021

Facilitator and notetaker: @itsjusteileen

This is the agenda for the weekly editor chat scheduled for Wednesday, August 18, 2021, 04:00 PM GMT+1.

This meeting is held in the #core-editor channel in the Making WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.

  • Gutenberg 11.3.0 RC.
  • Whats next in Gutenberg: July and August.
  • Updates based on updated scope for site editing projects and WP 5.8:
    • 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 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.
    • Navigation Block & Navigation Editor.
    • Template editor.
    • Patterns.
    • Styling.
    • Mobile Team.
  • Task Coordination.
  • Open Floor.

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

  • If you have anything to share for the Task Coordination section, please leave it as a comment on this post.
  • If you have anything to propose for the agenda or other specific items related to those listed above, please leave a comment below.

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