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

  • 33 commits
  • 31 contributors
  • 43 tickets created
  • 5 tickets reopened
  • 37 tickets closed

Pending the appointment of the WordPress 5.9 team, a number of tickets have been fixed, waiting for the next minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality.(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

  • Add schema reference to PHPUnit config files – #53363
  • Declare two TestCase classes as abstract – #53363
  • Enable running the tests on PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1 – #53891, #53635
  • Hard deprecate WP_UnitTestCase_Base::checkRequirements()#46149
  • Hard deprecate WP_UnitTestCase_Base::checkRequirements()#46149
  • Make the polyfills loading more flexible – #46149
  • Remove Unicode character from PHPUnit version check message – #53363
  • Revert [51602] for now to investigate test failures on PHPUnit < 7.0 – #46149
  • Simplify the PHPUnit test workflow – #53891
  • Add unit tests for the wp_nonce_ays() function – #53882
  • Fix failing i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill. unit tests 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. metadata – Follow up for #53238
  • Rename classes in phpunit/tests/formatting/ per the naming conventions – #53363
  • Use correct comparison in do_enclose() tests – #53635

Code Modernization

  • Check the return type of _get_cron_array() in wp_schedule_event()#53635
  • Check the return type of parse_url() in WP::parse_request()#53635
  • Correct handling of null in wp_parse_str()#53635
  • Rename the readonly() function to wp_readonly()#53858
  • Replace strftime() and gmstrftime() usage in unit tests – #53897
  • Silence the deprecation warning for missing return type in phpunit/tests/compat.php#53635

Documentation

  • Add a @see reference to the wp_mail_content_type 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. in wp_staticize_emoji_for_email()#53399
  • Add a @see reference to the xmlrpc_enabled filter in wp_xmlrpc_server::set_is_enabled()#53399
  • Correct @since version for the wp_parse_str filter – #53399
  • Fix typo in the get_block_editor_settings() description – #53922
  • Improve documentation for a few functions per the documentation standards – #53399
  • Synchronize documentation for wp_get_attachment_image_attributes filter callbacks in bundled themes – #53878

Editor

  • Preserve the original template keys when preparing a list of page templates – #53898
  • Add support for variations in block.json file – #53238

General

  • Restore (un-deprecate) the sanitize_url() function – #53876

Themes

  • Make sure the theme 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. response is not an error before operating on it in themes_api()#53913
  • Twenty Seventeen: Add support for wa.me links in Social Links menu – #51946
  • Twenty Twenty: Add support for wa.me links in Social menu – #50542

Upgrade/Install

  • Update sodium_compat to v1.17.0 – #53907
  • Use consistent capitalization for “web host” in setup messages – #53926

Props

Thanks to the 31 people who contributed to WordPress Core on Trac last week: @jrf (17), @SergeyBiryukov (7), @swissspidy (4), @hellofromTonya (4), @pbearne (3), @sabernhardt (3), @mukesh27 (3), @lucatume (2), @Ipstenu (1), @thomasplevy (1), @Toro_Unit (1), @aadilali (1), @Mamaduka (1), @jorgefilipecosta (1), @youknowriad (1), @ayeshrajans (1), @haosun (1), @jeherve (1), @desrosj (1), @schlessera (1), @gwwar (1), @pierlo (1), @ankitmaru (1), @bradparbs (1), @tmatsuur (1), @dkarfa (1), @carepsules (1), @macmanx (1), @pedromendonca (1), @iluy (1), and @knutsp (1).

Congrats and welcome to our 3 new contributors of the week! @aadilali, @carepsules, and @iluy ♥️

Core committers: @sergeybiryukov (31), and @gziolo (2).

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

Upgrade/Install component meeting agenda for August 17, 2021

The next meeting is scheduled on Tuesday, August 17, 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 and decide if it is ready for a merge proposal.

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

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

Preliminary Road to 5.9

This is a quick overview of the main areas and features currently underway for 5.9 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/. Some are in more advanced stages than others, but together they paint a picture of what we are looking forwards to.

To dive deeper into concrete tasks and areas of work, this tracking issue is the best place to follow.

Blocks + intrinsic web design

Collection of various patterns displayed at mobile resolutions.
  • One of the biggest points of friction for pattern and theme builders are the lack of responsive tools available at a 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. level. This needs to be solved in a way that doesn’t disproportionally increase interface complexity.
  • The block model is a good case to apply some intrinsic design principles, since a block can occupy a place in many different layouts and containers, for which prescriptive media queries that don’t take context into account are inflexible.
  • Each block area should be intrinsically responsive allowing blocks to compose together, wrap, stack, and organize themselves to fit the different spaces and screens. For this to work well, container blocks need to absorb more layout controls. (Container queries might help expand this further in the future.)
  • Typography tools need to become more fluid and internally support algorithmic clamping. Whenever possible, patterns should just work and accommodate themselves.

Patterns

Mosaic galleries showing different design patterns.
  • With the initial rollout of the new directory there’s a growing need to expand the inserter integration to accommodate broader categories of patterns and the experience of browsing them.
  • There’s more work to be done within the setup flow of single and multi-block selections. This also includes improving the mechanisms for transforming to and from patterns, which are still nascent.
  • Creation flows with patterns also need expanding from template parts and blocks to pages and templates.

Navigation Menus

  • The navigation block and navigation screen projects have been underway for quite some time and are a main target for 5.9. With the principal tracking issue about to be completed, a large part of the remaining work is to improve the user experience, reduce complexity, and test as much as possible on themes.

An interface for theme.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..

Global Styles panel showing the main area and the background color section.
  • 5.8 introduced the scaffolding necessary for themes to take the reins over how various aspects of blocks render and how the interface is controlled. The natural next step ahead is to develop the user interface that will allow users to interact with these style properties. This goes by the project name “global styles” and an updated design is currently in prototype stage.
  • It should be appreciated how important it is to leverage the global reach of CSSCSS Cascading Style Sheets. rules as we combine it with the power of blocks. The current structure deals with two large groups of design targets: blocks and elements. Elements represent things that can be styled globally and across blocks (such as “text”, “links”, “captions”, etc).

Design Tools: Colors, Typography, Spacing, Layout

Series of panels showing different configurations of the typography tools.
  • The effort to bring better and more consistent design tools continues to progress. These tools need to integrate smoothly with both the block 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. (through the “supports” mechanism) and theme.json. One of the main goals is consistent access to similar tools across blocks, including third-party ones.
  • Running parallel to this effort comes the work on the WordPress components system, refinements to color tools, interactivity, 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), etc.

Formalize editing flows for block themes

Displays templates as small cards in a mosaic, connecting diagrams with the different flows.
  • A large percentage of the infrastructure and features needed to build block themes are established. The UXUX User experience and design needs the most attention, though, starting by mapping into a clearer information architecture all the possible flows that are to be supported (editing templates, parts, styles, pages, etc).
  • Continue to process and take into the design process all the feedback gathered from users and theme builders.
  • Begin defining transition flows from existing 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. areas to block areas when appropriate, and explore the various aspects of theme switching.
  • Finalize and commit all remaining blocks under the “theme” categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging..

#5-9, #gutenberg

CSS Chat Agenda: August 12, 2021

This is the agenda for the upcoming CSSCSS Cascading Style Sheets. meeting scheduled for Thursday August 21 at 21:00PM UTC. The meeting will be held in the #core-css 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/..

This week, we will be continuing with a supported working session for new contributors! Please see this post with our call for contributors and more details. Our agenda is as follows:

  • Welcome
  • Housekeeping
  • Discussion around the CSS Custom Properties project (#49930)
    • Brief Overview
    • How to Get Involved
  • Open Floor
  • Working Time
  • 21:50PM UTC – Circle back, closing discussion, CSS link share

#agenda, #core-css

Editor chat summary: 11th August 2021

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

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party releases

Whats next in Gutenberg: July and August

Updates based on the scope for Site Editing projects

Updates were requested for the key projects:

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.

@mkaz provided an update:

Navigation Editor screen

@get_dave provided the update:

  • Work has continued on 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 and stability.
  • Now looking to define what is required to bring the Nav Editor out of “experimental”.
  • To this end, the team is looking to arrange a hallway hangout (or similarly public forum) to compare/contrast the classic navigation screen with the block-based navigation screen.
  • We’re also looking to 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. out or break down any “Epic” Issues from the Nav Editor tracking issue into more actionable tasks (where possible).
  • @javiarce has also been looking into and documenting the need to add some “polish” to the Nav Editor screen in order that UXUX User experience bugs/issues don’t spoil the overall experience. I believe he will look to add these as Bugs to the repo soon.
  • From this we will then look to reprioritise the task list in this tracking Issue around achieving feature parity at a user interface level (developer APIs will follow).

Block 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 and 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..

@get_dave provided the update:

Native Mobile Team

@mattchowning provided the update:

Shipped

  • Added Android support for themes that use Global Styles

Added:

In Progress:

  • Block Picker Search is almost ready to ship.
  • Embed block.
  • Editor onboarding help section.
  • GSS Font size.
  • line height.
  • colors.

Styles, Patterns and Template Editor

At the time of the meeting no updates were provided. If you are a contributor, please do leave an update in the comments below.

(Aside: see Open Floor section below where we discussed how to avoid situations where there are no updates for key projects during the meeting).

Bonus: impromptu discussion on “Full Page Patterns”

This item was not on the agenda, but it’s worth including here because some good points were raised about the value of this proposal.

  • @paaljoachim resurfaced the idea of full page patterns as an alternative to creating a page template.
  • There is a proposal to add Full Page Patterns to Core which looks to have stalled.
  • One could tell the user to add a full page pattern instead of a reusable block that needs to first be converted back to regular blocks before being filled out.
  • Adding patterns is an accident proof way of not affecting any other pages. 
  • @mkaz noted that this feature will work now – there is no limit to what can be put into a pattern.
  • @get_dave noted the key difference between Full Page Patterns and Templates is that inserting a pattern is a one time operation – once inserted it will receive no further updates should the pattern be amended in future.
  • @digamberpradhan and Frank Wazeter were both in favour and could see the value of full page patterns as a discreet concept.

Task Coordination

@paaljoachim:

@annezazu:

  • Main focuses this week are:
    • starting to recap the block theme survey (responses due by Friday!).
    • shipping the call for testing today (included lots of testing).
    • responding to feedback as responses roll in.
  • I hope to have time to do triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. once more, focused again on labelling PRs to make releases a bit easier.

@get_dave:

Open Floor

Proposal for improving the “Key project updates” section of editor chat meetings

Usability feedback on the Template settings panel in Block Editor

  • Frank Wazeter raised some feedback about the Template settings panel.
  • When you click on “new”, the default thought is to do something akin to “create new from default template,” especially because the dropdown above has “default” selected.
  • However, what you get is whatever’s set in ‘defaultBlockTemplates’, which for the vast majority, isn’t anything explicitly set.
  • Likewise, if I select another template, my initial assumption is I’m making “New from…” whatever template I set.
  • It might make more sense if there was a toggle – similar to in background color for “Color” or “Gradient” to indicate that I’m making a brand new blank template.
  • @get_dave advised creating and Issue and Frank did so after the meeting.

Wrap up

Thanks to everyone who attended the meeting!

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

Dev chat summary, August 11, 2021

@sergeybiryukov stepped up to lead this agenda-less meeting. Big thank you!

Highlighted blogblog (versus network, site) posts

From @audrasjb, another A Week in Core post highlights the moving parts of CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and recognizes a week’s worth of contributors at a time.

From @sarayourfriend provides an update on the native TypeScript proposal announcing that 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/ project supports native TypeScript.

From @notlaura comes a Call for CSS Contributors, a carryover and reminder from last week. Their next weekly work session is August 12, 2021 at 21:00 UTC in #core-css.

From @chanthaboune, participate in the WordPress 5.8 ‘Tatum’ Retrospective. Feedback is due on August 15th and is greatly appreciated to make future releases even better.

From @webcommsat comes a helpful post for spreading the word about 5.8. In this post, you will find social posts you can share and adapt on Twitter and Facebook.

From @annezazu, follow the latest call for testing through the FSE Outreach Program. It’s focused on using the navigation blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. to build out a HigherEd themed 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. with three weeks to share you feedback.

From @annezazu comes a reminder to help shape the future of theme design. If you’re a block theme author or have explored that space, please share your responses by August 15th and know they are each greatly appreciated. 

Finally, catch up with the previous episodes of WP Briefing. The podcast will return in September!

Component maintainers

Reporting in on Build/Test tools, @sergeybiryukov shared that, as of last weekend, WordPress test suite is compatible with PHPUnit 8 & 9, and runs tests on PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1 betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. (scheduled for release in November). Props to @jrf and @hellofromtonya for all the fixes and improvements that made it possible!  See ticketticket Created for both bug reports and feature development on the bug tracker. #46149 for more details.

Reporting on Date/Time, I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill., Permalinks, @sergeybiryukov said that there’s no major news this week.

Reporting on General, @sergeybiryukov shared that work has started on making various compatibility fixes for PHP 8.1. Thanks @jrf, again!  See ticket #53635 for more details.

Open Floor

Considering #49728 for the 5.9 release. Raised by @hareesh-pillai.

Since the topic of compatibility with the latest PHP versions came up, Hareesh flagged that it would make sense to include this additional ticket after it was pushed from 5.6.

Next step: @hellofromtonya moved it to the 5.9 milestone.

Invitation to contribute to testing. Raised by @hellofromtonya.

Anyone interested in contributing to testing including attempting to reproduce problems, gathering testing information (such as testing steps, acceptance criteria, dependencies), user testing, and automated testing, you’re invited to join us in #core-test channel.

Checking in on a dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include: a description of the change; the decision that led to this change 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. related to 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 folks finding issues with PHPUnit updates. Raised by @jeffpaul.

@hellofromtonya and @jrf quickly chimed in to say that a dev note is in progress with an ideal publish date of next week. The quick TL;DR is:

  • Fixture methods changed in the WP test cases, i.e. changed to snake_case
  • Wrappers for the snake_case will be backported for extenders who are testing against versions other than 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..
  • Once those backports happen, then the fixture methods in your tests need to be updated for testing against trunk.

To help extenders, command-line messages will be added as well to alert and guide devs.

Bumping the ACCEPTABLE_PHP and SUPPORTED_PHP versions in light of PHP 7.3 support ending in 3 months. Raised by @hareesh-pillai.

@sergeybiryukov recommended that this be raised as a discussion topic in the next #core-site-health meeting. He also shared that he felt it was a bit too early to bump the recommended version to PHP 8.0, as there is still ongoing work to make it more compatible.

#dev-chat, #summary

Finalizing the native TypeScript proposal

Hi folks! I’m back again with an update on the TypeScript proposal. Previously in the follow-up post I said that after two weeks we would make a decision about it. It’s been several months since then, so it’s about time to make that decision!

While there was some feedback to the proposal, nothing was raised that seemed to 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. the integration of native TypeScript into 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/ project. Indeed, some packages (like compose and components) have seen a great deal of native TypeScript introduced. In fact, compose today is fully typed and this would not be the case if it were not for native TypeScript support in Gutenberg.

Therefore, I’d like to officially announce that the Gutenberg project supports native TypeScript. We will continue to follow the guidelines laid out in the follow-up proposal, reproduced here for posterity.

For existing code:

  • The default is to use JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/.
  • When it is possible to type something simply with JSDoc, use JSDoc
  • If there are complex types, but JSDoc is still sufficient generally for consuming those types, you may extract the complex types into a types-only types.ts file to be imported into the JSDoc
  • If it is not possible to express the types using JSDoc or if the JSDoc will vastly over-complicate the ability to type a function, convert it to TypeScript

For new code:

Use TypeScript when working in a “low-level package” (as defined below) for new code. Otherwise, follow the same pattern laid out for the existing code.

Low level packages:

A low level package is a package that:

  1. Provides a public APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.; and
  2. Is not frequently contributed to.

The coding guidelines for Gutenberg will be updated to reflect this approach to TypeScript.

#javascript

Editor Chat Agenda: 11 August 2021

Facilitator and notetaker: @get_dave.

This is the agenda for the weekly editor chat scheduled for Wednesday, August 11, 2021, 03: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.2.1 and GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 11.3.0 RC.
  • Whats next in Gutenberg: July and August.
  • Updates based on updated scope for site editing projects and WP 5.8:
    • Template editor.
    • Patterns.
    • Styling.
    • 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.
    • Block 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.
    • 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

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

  • 58 commits
  • 22 contributors
  • 48 tickets created
  • 8 tickets reopened
  • 23 tickets closed

Pending the appointment of the WordPress 5.9 team, a number of tickets have been fixed, waiting for the next minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality.(s). This week was also partly dedicated to PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1 compatibility.

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

  • Add Composer dependency on the PHPUnit Polyfills package – #46149
  • Add branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". filtering for 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/. notifications workflow – #52644
  • Add schema reference to PHPUnit config files – #53363
  • Alias the Getopt class conditionally, as the class no longer exists in PHPUnit 9.x – #46149
  • Change the inheritance order of the abstract test classes – #46149
  • Correct invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. 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. in Slack payload – #52644
  • Correctly check for the trigger event when running the Slack notifications workflow – #52644
  • Declare two TestCase classes as abstract – #53363
  • Enable running the tests on PHP 8.1 – #53891, #53635
  • Expand Slack notifications for GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ Actions – #52644
  • Fix message display in test bootstrap – #53363
  • Handle removal of TestCase::getAnnotations()#46149
  • Implement use of the void solution – #46149
  • Loosen the PHPUnit restriction – #46149
  • Remove SpeedTrapListener – #46149
  • Remove Unicode character from PHPUnit version check message – #53363
  • Remove the Composer lock file from version controlversion control A version control system keeps track of the source code and revisions to the source code. WordPress uses Subversion (SVN) for version control, with Git mirrors for most repositories.#47381
  • Remove the copied-in PHPUnit 9.x MockObject files – #46149
  • Revert changes only included for testing purposes – #52644
  • Simplify redundant PHPUnit shim for setExpectedException()#46149
  • Switch to always running the tests via Composer – #47381
  • Unify the PHPUnit adapter TestCases – #46149
  • Use a custom autoloader for the PHPUnit 9.x mock object classes – #47381
  • Use the PHPUnit Polyfill TestCase as void workaround – #46149
  • Fix tests failing due to assertContains() using strict checking – #46149
  • Remove redundant @requires tags – #46149
  • Remove use of assertArraySubset() in Test_WP_Widget_Media::test_constructor()#46149
  • Replace assertFileNotExists() with assertFileDoesNotExist()#46149
  • Replace assertNotRegExp() with assertDoesNotMatchRegularExpression()#46149
  • Replace assertRegExp() with assertMatchesRegularExpression()#46149
  • Replace expectException() for PHP native errors with calls to the dedicated PHPUnit 8.4+ methods – #46149
  • Replace expectException() for PHP native errors with calls to the dedicated PHPUnit 8.4+ methods – #46149
  • Use more appropriate assertions in get_themes() tests – #53363
  • Use more appropriate assertions in get_themes() tests – #53363

Bundled Themes

  • Add / character to tags – #53870
  • Remove redundant semicolons after closing curly brackets – #53359
  • Twenty Thirteen: Correct indentation in image.php template – #53359
  • Twenty Thirteen: Remove wrapping HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. 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.) from translatable string – #53359

Code Modernization

  • Pass correct default value to new DateTime() in wp_default_packages_inline_scripts()#53635
  • Rename the readonly() function to wp_readonly()#53858
  • Replace strftime() and gmstrftime() usage in unit tests – #53897
  • Set the MySQLi error reporting off for PHP 8.1 – #52825
  • Silence the deprecation warnings for missing return type in WP_Block_List#53635
  • Silence the deprecation warnings for missing return type in WP_Hook#53635
  • Silence the deprecation warnings for missing return type in WP_REST_Request#53635
  • Silence the deprecation warnings for missing return type in WP_Theme#53635

Coding Standards

  • Correct DateTimeZone class name in WP_Customize_Date_Time_Control::get_timezone_info()#53359
  • Fix incorrect alignment in two comment blocks – #53359
  • Fix incorrect comment indent in safecss_filter_attr()#53359
  • Remove redundant semicolons after closing curly brackets – #53359
  • Silence a WPCSWordPress Coding Standards A collection of PHP_CodeSniffer rules (sniffs) to validate code developed for WordPress. It ensures code quality and adherence to coding conventions, especially the official standards for WordPress Core. warning in date_i18n()#53359
  • Use strict comparisons in wp-admin/options-discussion.php#53359
  • Use strict comparisons in wp-admin/upload.php#53359

Editor

  • Prevent 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.-editor JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. loading in other editors – #53696
  • Block Editor: Add missing border setting on button block – #53702

Media

  • Add / character to <img> tag in wp_print_media_templates()#53870
  • Hide bulk-select on new menu page – #53654

Themes

  • Correct the documented types for theme mod values – #53399

Props

Thanks to the 22 people who contributed to WordPress Core on Trac last week: @jrf (43), @SergeyBiryukov (8), @hellofromTonya (6), @johnbillion (6), @netweb (5), @desrosj (4), @ayeshrajans (3), @akabarikalpesh (2), @swissspidy (2), @shital-patel (2), @priethor (1), @daisyo (1), @Mamaduka (1), @sabernhardt (1), @dlh (1), @Clorith (1), @aristath (1), @pputzer (1), @dd32 (1), @knutsp (1), @haosun (1), and @mikeschroder (1).

Congrats and welcome to our new contributor of the week! @haosun ♥️

Core committers: @sergeybiryukov (47), @desrosj (5), @peterwilsoncc (4), @johnbillion (1), and @jorgefilipecosta (1).

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

Dev chat summary, August 4, 2021

@francina led the chat on this agenda.

Highlighted blogblog (versus network, site) posts

From @audrasjb, A Week in Core highlights the moving parts of CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and recognizes a week’s worth of contributors at a time.

From @notlaura comes a Call for CSS Contributors. If you’ve been looking for a way to sink your teeth into CSSCSS Cascading Style Sheets. Custom Properties (aka CSS variables), this is your chance to learn them well and help land them in Core.

From @sergeybiryukov comes more news on building the auto-updater ecosystem. If you work on themes and plugins, Sergey’s group would very much appreciate your feedback. The group would also like to hear from web hosts, as @ipstenu and a couple of other folks pointed out.

If you haven’t yet read @desrosj‘s post on Consistent Minor-Release Squad Leaders for Each Major Branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch".: Trial-run Retrospective and 5.8.x Releases, you’ll want to make time for it — the post is getting great reviews.

“Super interesting! … Super insightful!” — @francina

“Yeah. That’s a good read.” — @johnbillion

@francina suggested that if you’re interested in volunteering as a Release LeadRelease Lead The community member ultimately responsible for the Release. or a Release Deputy for the 5.8.x minors, please leave a comment on @desrosj‘s post.

And, from @chanthaboune and her talented production team comes the WP Briefing podcast. It’s on hiatus now, but more episodes will arrive in September. (So you’ve got time to catch up on the ones that have already dropped!)

Component maintainers

Reporting in on Build/Test tools, @sergeybiryukov had several announcements.

Ticketticket Created for both bug reports and feature development on the bug tracker. #52644: when a workflow fails, a message now gets posted to #core. That will make it easier to notice and fix failures in testing, Sergey explained and then thanked @desrosj publicly for his help on this. For details, see the ticket.

Ticket #47381: So that the WordPress Project can use more modern PHPUnit versions, this ticket makes several changes that make it easier to run unit tests against a variety of PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher versions:

  • It removes the composer.lock file.
  • The PHPUnit 9.x mock object classes use a custom autoloader.
  • And the tests now always run in Composer.

Sergey thanked @jrf publicly for her work on the changes.

Reporting on General, @sergeybiryukov thanked @jrf again and announced that work has started on a variety of compatibility fixes for PHP 8.1. Details are in Ticket #52644.

Open Floor

@francina started Open Floor with news of a streaming PHP brainstorming, learning and teaching session that happened on Friday, August 30.

If you missed it, it’s up on YouTube. Featuring @jrf, @hellofromtonya, @sergeybiryukov, and @johnbillion, @hellofromtonya described the session as a “working session on modernizing the test suites. Got consensus and an action plan.”

Tonya noted that commits are in process, and @francina asked for ways the community can help.

In Highlighted Posts, @francina had asked @desrosj what encouraging words he had for people who’d like to volunteer with major and minor releases. Now, in Open Floor, she circled back around, and Jonathan pointed out that you don’t have to have any previous experience leading a major or minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. to get involved.

So if you’re interested, please comment. And get involved!

@webcommsat brought two items from Marketing to Open Floor: one on promoting favorite features in WordPress 5.8 and one on search terms for release information. Full details are in the chat here.

Thanks and props to post reviewer @desrosj!

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