A Week in Core โ€“ February 12, 2024

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 February 5 and February 12, 2024.

  • 71 commits
  • 245 contributors
  • 82 tickets created
  • 11 tickets reopened
  • 82 tickets closed

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

Code changes

Administration

  • Improve contrast and consistency of focus styles โ€“ #51870

Bundled Themes

  • Twenty Fifteen: Add top margin to the File blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. button styles โ€“ #58498
  • Twenty Nineteen: Add border-radius to avatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. Itโ€™s usually a square box that appears next to the userโ€™s name. images in the editor โ€“ #59285
  • Twenty Nineteen: Correct line height for Button block โ€“ #58443
  • Twenty Nineteen: Restore transition property to a single line โ€“ #58443
  • Twenty Sixteen: Add border-radius to avatar images in the editor โ€“ #59253
  • Twenty Twenty-Four: Add missing translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. functions to text strings โ€“ #60298
  • Twenty Twenty-Four: Prefix the block pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. name โ€“ #59839
  • Twenty Twenty-Three: Include Latin-extended characters in DM Sans font files โ€“ #59008
  • Twenty Twenty-Two: Prefix the pages block pattern category name โ€“ #59839
  • Twenty Twenty: Fix Table block default and custom border colors โ€“ #58022
  • Twenty Twenty: Scope .privacy-policy styles to the footer only โ€“ #60469
  • Improve focus outline in Twenty Twenty-Four โ€“ #60334
  • Cast font URLURL A specific web address of a website or web page on the Internet, such as a websiteโ€™s URL www.wordpress.org functions to string for add_editor_style() โ€“ #59704

Build/Test Tools

  • Fix 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. pulling local environment containers on Apple silicone โ€“ #59930
  • Generate a human-readable HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. coverage report โ€“ #60476
  • Make the props bot message shorter โ€“ #60417
  • Pin a specific commit for Hosting Test Reporter โ€“ #59647
  • Revert [57551] โ€“ #59647
  • Unpin PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 7.4 from the test coverage workflow โ€“ #59647
  • Adjust the metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. key time in wp_scheduled_delete() tests โ€“ #59938

Canonical

  • Introduce admin_canonical_url 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. โ€“ #59545

Coding Standards

  • Add missing fullstop to docblocks in wp-includes/vars.php โ€“ #41877
  • Replace alias join() in WP_Font_Utils โ€“ #60473

Editor

  • Add viewScriptModule handling to block.json metadata โ€“ #60233
  • Add wakeup magic method to the block bindings registry โ€“ #60282
  • Avoid double escaping on value passed for attribute in HTML 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.) processor
  • Expand Block Bindings for button block โ€“ #60481
  • Fix block style variation selector generation โ€“ #60453
  • Fix typo in FontUtils doc block โ€“ #59166
  • Improve code documentation for block bindings โ€“ #60282
  • Introduce WP_Block_Bindings_Source class โ€“ #60447
  • Make asset file optional for block scripts โ€“ #57234
  • Refactor block binding processing and attribute computation โ€“ #60282
  • Register the Google Font collection โ€“ #59166
  • Show the patterns page for classic themes โ€“ #58827
  • Update PHPDocPHPDoc (docblock, inline docs) for block bindingsโ€™s context arg โ€“ #59743
  • Update pattern overrides attribute format โ€“ #60456
  • Update the WordPress packages to 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/ 17.7RC1 โ€“ #60315
  • Block 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.: Inject hooked blocks into modified templates and parts โ€“ #59646
  • Blocks: Allow reading the script handle from asset files โ€“ #60485
  • Interactivity 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.: Integrate Server Directive Processing โ€“ #60356
  • Interactivity API: Remove empty file โ€“ #60356

Filesystem API

  • Fix typo in ftp_base::restore() โ€“ #60497

General

  • Add an option to configure the site icon in general settings โ€“ #54370, #16434
  • Remove ableist language from code comments โ€“ #60247

HTML API

  • Add subclassed has_bookmark() and fix seek() โ€“ #60474
  • Join text nodes on 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.-tag-name boundaries โ€“ #60385

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.

  • Add Translator comments for Planet URLs โ€“ #58010

Media

  • Update progress spinner position on small screens โ€“ #33049
  • enable control of progressive image output โ€“ #21668

Networks and Sites

  • Improve switch_to_blog() docblockdocblock (phpdoc, xref, inline docs) โ€“ #60332

Permalinks

  • Detect Caddy web server support โ€“ #41877

Plugins

  • Store 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. deletion results in temporary option โ€“ #59433

Quick/Bulk Edit

  • Pre-fill category fields with their status โ€“ #11302

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

  • Add featured_media field to attachments endpoint โ€“ #41692
  • Improve error handling in REST meta fields โ€“ #48823
  • Introduce the necessary endpoints for the font library โ€“ #59166
  • Provide detailed error data in REST API response โ€“ #60014

Script Loader

  • Add a timezone offset display value to wp.date.setSettings โ€“ #60105
  • Improve translators comments for wp.date.setSettings in compat file โ€“ #60412
  • always output core block global styles after base global styles โ€“ #60280
  • Add deregister module function โ€“ #60463

Shortcodes

  • Always return an array in shortcode_parse_atts() โ€“ #59249

Themes

  • Add โ€˜theme_filesโ€™ cache group to block pattern cache operations โ€“ #60120
  • update add_theme_support docblock โ€“ #60221

Toolbar

  • Add adminbar link for new sites in networknetwork (versus site, blog) installs โ€“ #41104

Upgrade/Install

  • Avoid update_option() calls during bootstrap โ€“ #60461, #60457, #60491
  • Upgrade/Install: Introduce Plugin Dependencies โ€“ #22316
  • Micro-optimizations for getting plugin_file in plugins loader 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 โ€“ #60510
  • Remove unnecessary individual subfiles from $_old_files array โ€“ #58995

Users

  • Replace table tags for color palettes in profiles โ€“ #53157

Props

Thanks to the 245 (!!) people who contributed to WordPress Core on Trac: @gziolo (14), @mukesh27 (13), @swissspidy (13), @sabernhardt (13), @poena (12), @shailu25 (11), @huzaifaalmesbah (9), @youknowriad (8), @oglekler (7), @joedolson (7), @jorbin (7), @audrasjb (7), @spacedmonkey (6), @SergeyBiryukov (6), @dmsnell (6), @get_dave (6), @hellofromTonya (5), @afercia (5), @kebbet (5), @harshgajipara (5), @johnbillion (5), @costdev (4), @nicolefurlan (4), @jonsurrell (4), @czapla (4), @TimothyBlynJacobs (3), @karmatosed (3), @pbiron (3), @desrosj (3), @afragen (3), @azaozz (3), @luisherranz (3), @dingo_d (2), @mikeschroder (2), @andraganescu (2), @johnjamesjacoby (2), @rajinsharwar (2), @nidhidhandhukiya (2), @cbravobernal (2), @dd32 (2), @wildworks (2), @pooja1210 (2), @wasiur195 (2), @scribu (2), @ajmcfadyen (2), @peterwilsoncc (2), @pitamdey (2), @santosguillamot (2), @isabel_brison (2), @bernhard-reiter (2), @mcsf (2), @ocean90 (2), @aaronrobertshaw (2), @sadpencil (1), @cfinnberg (1), @viliamkopecky (1), @ecc (1), @rcorrales (1), @cvorko (1), @flixos90 (1), @joemcgill (1), @adamsilverstein (1), @_ck_ (1), @markoheijnen (1), @Japh (1), @pmeenan (1), @derekspringer (1), @buley (1), @ericlewis (1), @bahia0019 (1), @born2webdesign (1), @kushang78 (1), @timothyblynjacobs (1), @wonderboymusic (1), @dlh (1), @obenland (1), @jameskoster (1), @kjellr (1), @stacimc (1), @h71 (1), @krupajnanda (1), @jordesign (1), @monzuralam (1), @hrrarya (1), @fnpen (1), @mhshohel (1), @bedas (1), @jeremyfelt (1), @prionkor (1), @matveb (1), @benniledl (1), @jsnajdr (1), @mnydigital (1), @onemaggie (1), @luminuu (1), @pouicpouic (1), @ugyensupport (1), @jivygraphics (1), @sumitbagthariya16 (1), @kkmuffme (1), @talldanwp (1), @dartiss (1), @upadalavipul (1), @manfcarlo (1), @mayur8991 (1), @panchalhimani711 (1), @itpathsolutions (1), @thakordarshil (1), @Ankit-K-Gupta (1), @darshitrajyaguru97 (1), @pavelevap (1), @chasedsiedu (1), @helen (1), @joshcanhelp (1), @ubernaut (1), @Cyberchicken (1), @laumindproductscomau (1), @Marcoevich (1), @tomybyte (1), @thinkluke (1), @virtality-marketing-solutions (1), @Michalooki (1), @itecrs (1), @pannelars (1), @WHSajid (1), @samba45 (1), @Mte90 (1), @tomluckies (1), @soulseekah (1), @francina (1), @webcommsat (1), @balub (1), @sarathar (1), @glendaviesnz (1), @up1512001 (1), @zodiac1978 (1), @davidbinda (1), @westonruter (1), @retrofox (1), @joefusco (1), @colorfultones (1), @acosmin (1), @alh0319 (1), @beafialho (1), @javiercasares (1), @mmaattiiaass (1), @grantmkin (1), @oandregal (1), @ajlende (1), @ahoereth (1), @alanfuller (1), @alexkingorg (1), @amykamala (1), @anonymized_10690803 (1), @apeatling (1), @ashfame (1), @atimmer (1), @aristath (1), @batmoo (1), @beaulebens (1), @blobaugh (1), @bobbingwide (1), @boonebgorges (1), @brianhenryie (1), @chanthaboune (1), @chrisdavidmiles (1), @coolmann (1), @courane01 (1), @danielbachhuber (1), @davidperez (1), @Denis-de-Bernardy (1), @DJPaul (1), @dougal (1), @DrewAPicture (1), @ethitter (1), @filosofo (1), @georgestephanis (1), @giuseppemazzapica-1 (1), @goldenapples (1), @griffinjt (1), @husobj (1), @ideag (1), @jarednova (1), @jbobich (1), @jbrinley (1), @jltallon (1), @johnciacia (1), @joppuyo (1), @jsmoriss (1), @knutsp (1), @kraftbj (1), @kraftner (1), @kurtpayne (1), @lkraav (1), @logikal16 (1), @man4toman (1), @markjaquith (1), @matt (1), @mbijon (1), @megphillips91 (1), @mikeschinkel (1), @mordauk (1), @morehawes (1), @mrwweb (1), @mte90 (1), @mzaweb (1), @nacin (1), @norcross (1), @nvwd (1), @nwjames (1), @obliviousharmony (1), @paaljoachim (1), @pauldewouters (1), @pbaylies (1), @Philipp15b (1), @pogidude (1), @retlehs (1), @rmccue (1), @ryan (1), @sabreuse (1), @sc0ttkclark (1), @sereedmedia (1), @ShaneF (1), @shidouhikari (1), @soean (1), @stephenh1988 (1), @taylorde (1), @tazotodua (1), @threadi (1), @TJNowell (1), @tollmanz (1), @toscho (1), @tropicalista (1), @Viper007Bond (1), @westi (1), @whiteshadow (1), @williamsba1 (1), @wpsmith (1), @ZaneMatthew (1), @noisysocks (1), @kevin940726 (1), and @fabiankaegy (1).

Congrats and welcome to our 28 (!!) new contributors of the week: @sadpencil, @cfinnberg, @viliamkopecky, @ecc, @cvorko, @pmeenan, @derekspringer, @born2webdesign, @kushang78, @hrrarya, @fnpen, @mhshohel, @benniledl, @mnydigital, @up1512001, @alh0319, @anonymized_10690803, @blobaugh, @chrisdavidmiles, @giuseppemazzapica-1, @jltallon, @johnciacia, @logikal16, @pbaylies, @Philipp15b, @pogidude, @tropicalista, @whiteshadow โ™ฅ๏ธ

Core committers: @gziolo (11), @youknowriad (10), @sergeybiryukov (8), @audrasjb (7), @joedolson (7), @swissspidy (5), @desrosj (5), @spacedmonkey (3), @jorbin (3), @costdev (3), @hellofromtonya (2), @dmsnell (2), @isabel_brison (2), @adamsilverstein (1), @davidbaumwald (1), and @bernhard-reiter (1).

#6-5, #core, #week-in-core

Core Editor Improvement: Power in the Details

These โ€œCoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor Improvementโ€ฆโ€ posts (labeled with the #core-editor-improvement 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 a series dedicated to highlighting various new features, improvements, and more from Core Editor related projects.ย 

Numerous small gains are slated for WordPress 6.5 that you might have missed in the excitement around more prominent features, like the Font Library. While they garner less attention, the following improvements contribute to more flexibility and efficiency, making a big difference in your everyday WordPress experience. Take a moment to learn more about themโ€”and explore how the power of details in 6.5 can transform your current workflows.

New List View shortcuts

6.5 will introduce new List View shortcuts for improved efficiency, saving you time when performing common actions with this tool:

  • Simplified access to a blockโ€™s setting menu: This update lets you open 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.โ€™s settings menu by right-clicking on a List View item, enabling swift changes as needed.
  • Quick block selection shortcut: Use CMD+A on Mac or CTRL+A on Windows to select all blocks within List View, facilitating faster batch actions.
  • Copy, paste, and cut blocks using the keyboard shortcuts youโ€™re used to when selecting blocks in List View (CMD+C and CMD+X to copy and cut blocks, and CMD+V to paste blocks).
List View opened to a Group block that's been right clicked to reveal the block settings.


View your template when editing pages or posts

A lot of code-wise work has been done to unify the Site Editor and Post Editor experiences for block themes. Thanks to these efforts, you can now view your template when editing a page in the Post/Page Editor and enjoy the same experience regardless of where youโ€™re working. This ability allows for convenient on/off toggling of the template preview, offering you even more flexibility. Similar to the Site Editor experience, selecting any part of the template triggers a snackbar notification and a quick pathway to edit the template directly.


Duplicate patterns to quickly change the sync status or make theme pattern your own

Patterns provided by a theme are currently locked. As a result, reusing them as a basis for creating your own patterns previously required several steps. WordPress 6.5 adds a new quick option to streamline this process and let you duplicate a theme pattern without the hassle. This also eases the experience of changing the sync setting.


Review a summary of styling changes and quickly view your site while saving

With so many styling options available, itโ€™s important to know whatโ€™s changing when you hit save. Now you can, thanks to a short summary that matches the summary youโ€™d see youโ€™re browsing revisions, giving you the information you need when changing up the look and feel of your site. After saving, you can then select โ€œView Siteโ€ in the updated snackbar notice to check out the front end of your site and marvel at how good it looks (or line up some additional changes).


Rename blocks for better organization

Building on the ability to rename Group blocks in List View introduced in WordPress 6.4, the next release will allow renaming nearly every block for better organization and personalization. This update makes it easy for users to see at a glance and understand how the content has been structured. On the other hand, it helps theme authors provide a more intuitive experience for those using and interacting with their themes and patterns.

List view showing Group blocks with different names, opened to a block named "Main Content" with the option to rename.

Itโ€™s worth noting that the following blocks cannot be renamed intentionally:

  • core/block
  • core/template-part
  • core/pattern
  • core/navigation

Enjoy drag-and-drop improvementsย 

Drag and drop is an essential aspect of building with blocks, providing an easy, simple way to add, combine, and rearrange content as desired. This release will introduce a diverse range of enhancements aimed at making both drag-and-drop functionality and actions more intuitive:

  • Allow dragging and dropping to the beginning or end of your content
  • Add a drag cursor when hovering over items that can be dragged in List Viewย 
  • Improve dragging and dropping between adjacent container blocks, such as Group and Cover blocks
  • Enable dragging blocks into template parts for easier placement of elements, like a site logo next to a site title
  • Show a visual indication when a block isnโ€™t allowed to be dropped, helping guide and communicate where one can and canโ€™t drag and drop
  • Allow dragging and dropping to create rows and galleries; for example, placing an image next to another will automatically create a gallery
  • In List View, collapsed blocks expand when a block is dropped into them, ensuring visibility of the dropped block
  • In List View, items are displaced to help provide a more visual and tangible experience of dragging and dropping blocks
  • In List View, a drag cursor is shown for any draggable block

Taken together, anyone using the next version of WordPress will find dragging and dropping blocks more versatile and powerful to use.

Customize your experience with a new Preferences panel

WordPress 6.5 will bring a reorganized preference modal to personalize the editor interface to your liking, including new dedicated panels for Appearance and 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) settings. You will also notice improved clarity and consistency in text descriptions and a few more new settings.

Preferences panel open to Appearance tab showing four different options to choose from.

Create consistent designs with Cover block aspect ratios

In addition to minHeight support, the Cover block now offers aspect ratio support. This means you can easily set predefined aspect ratios to customize your visuals further and help maintain design consistency with less effort. For added convenience, you can control this feature globally for all Cover blocks or adjust it individually for each block.

Use the block toolbar in Distraction Free mode for quick changes

WordPress 6.5 makes it easier to make quick customizations while staying focused in Distraction Free mode. Simply moving your mouse to the top of the editor will smoothly reveal the block toolbar. Previously, accessing the block toolbar wasnโ€™t an option in Distraction Free mode, requiring users to toggle it on and off for even minor adjustments.

Thank you to @rmartinezduque for collaborating on this post and all of the designers who helped make some of these visual assets!

#core-editor, #core-editor-improvement, #gutenberg, #site-editor

Improving block development documentation: 2023 recap and a look ahead

Over the last year, a group of contributors has been working to improve the 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. development onboarding experience within the Block Editor Handbook. In this post, I wanted to take a moment and highlight the updates made, pinpoint areas for further refinement, and outline our focus for the next few months and ways you can help.ย 

Project overview

The initiative to enhance the Block Editor Handbook began in 2020, largely sparked by the Next Steps for Block Creation Documentation discussion 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/. Since that time, the community has been consistently updating the content, with the most recent effort led by @juanmaguitar, @welcher, @mburridge, and myself.

You can view the tracking issues here:

In talking with prospective block developers, documentation was consistently one of the most recurrent pain points, especially for those who want to learn how to build custom blocks or extend the Editor using official resources. Improving the Getting Started section, as well as other extensibility docs, was a natural starting point in addressing this feedback.ย 

Here are some highlights from the work completed in the last eight months:

  • Landing page makeover: Weโ€™ve revamped the Handbookโ€™s main page to make it more inviting and informative for those new to block development.
  • Updated Getting Started chapter: This section now offers a clearer path for beginners, including:
  • Expanded Curating the Editor Experience: Previously a single page, this topic was given its own dedicated section, with more updates coming in Q1 2024.
  • Block Development Examples: We launched a GitHub repository filled with practical examples of custom blocks and Editor extensions, complete with Playground previews and downloadable versions of each example. Contributions to the repository are welcomed.
  • More visuals: Weโ€™ve added diagrams and images throughout the Handbook to clarify key ideas.

Next steps

There is still plenty of work to do on the Getting Started chapter. A few additional articles for the Fundamentals section are in the works, and the Glossary and Frequently Asked Questions articles need updating. Following that, the How-to Guides chapter is the top priority, followed by Explanations.ย 

At this point, improvement to the Reference Guides chapter is ongoing, but no fundamental restructuring is planned in the near future. If you have ideas on how this section can be improved (much of it is autogenerated from in-code documentation), please share your suggestions. The current setup is not ideal, and itโ€™s also not complete. Some code documentation is only accessible in the Gutenberg GitHub repository.

Get involved

The Block Editor Handbook contains over 400 published pages, and the effort taken in 2023 just scratches the surface. While that might seem daunting, improving the documentation is one of the easiest ways to contribute to the WordPress project, especially for quick fixes like typos or formatting. Feedback on existing content, such as the new block tutorial, is also invaluable.ย 

All documentation is hosted on 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/ GitHub repository. If you find an issue or wish to give feedback, please open a new issue there. If you would like to fix issues yourself, follow the Documentation Contributions guide to learn how to submit a pull request. You can see the list of all outstanding documentation issues using the [Type] Developer Documentation label.

If you experience any problems or have questions, reach out in the #core-editor or #docs 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/ channels. You can also leave comments here or pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test itโ€™s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of โ€œPing me when the meeting starts.โ€ me (@ndiego) directly.

Props to @greenshady for reviewing this post.

+make.wordpress.org/docs/

#block-developer-experience, #developer-documentation

Summary, Dev Chat, February 7, 2024

Start of the meeting 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/.

Curated agenda: @webcommsat

Facilitator dev chat: @joemcgill โ€“ welcoming one of 2024โ€™s new co-team reps for CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.!

Discussions

Proposal: Whatโ€™s next for the Outreach program

  • Feedback deadline: February 12, 2024. Add comments to the post.
  • A Hallway Hangout is scheduled on February 20, 2024, at 15:00 UTCย to further discuss it and next steps.
  • Actionable proposal. Potential for cross-team involvement in furthering it.

Forthcoming Releases

Maintenance releases

@jorbin reports there are currently no updates on a 6.4 release.

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

@marybaum made a request for contributors to fulfill roles of Mission Control, Committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component., Security, andย MarComms for the release parties, especially BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 on Tuesday.โ€‚

List of new updates on 6.5 including ones requiring input together with their deadlines, next 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. scrubs, and more.

PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. dependencies discussion

You can also view discussions taking place inย #core-upgrade-installย channel on Slack. This has been highlighted as a potentially very valuable feature for 6.5 and was merged into โ€˜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.โ€™ on Tuesday. Note this is the last dev chat before Beta 1.

The discussion focused on @desrosjโ€˜s first point in the update: โ€œWhen a pluginโ€™s dependencies are unmet, the plugin is deactivated, and the user is only informed of this if they visit the plugin page, and only if they visit on the same request that the deactivation occurs on. It is my opinion that plugins shouldย notย be deactivated if dependencies are suddenly unmet. This could be very unexpected for anyone unfamiliar with the concept of dependencies in the context of software. Instead, the WSOD protection should be allowed to do its job, allowing the site owner to receive an email, and see a path forward to correcting the issue.โ€

@azaozz asked if it was better for a plugin to throw a fatal error and trigger โ€œfatal errors protectionโ€ in WordPress?

@jorbin: highlighted whatever decisions are made they need to be ones that reinforce the trust users have in WordPress and in auto updates.

@desrosj: There are also some scenarios where things may reasonably continue working without the dependency, but that would break or become missing currently. This would especially be true for anything that displays content. The content would just go missing without the site owner knowing.

@azaozz: A plugin that stops working either because it was auto-disabled, or because it is missing a dependency is a bad thing that needs to be fixed.

A discussion on the use of emails to admins followed, Perhaps sending another email to the admins to alert users. View the discussion on Slack.

@jorbin: suggestion to highlight all the ways that a plugin could end up with unmet or mismet dependencies and what the expectation would be in each of them

@christopher allford : For a feature that has sat in discussion forย so longย I think pushing through with a minimal implementation (sans the consent-less deactivation) is a great first step. That will naturally incite discussions about iteration (such as sending dependency information in update metadata to let WordPress opt-out of updating incompatibilities).

Summary of two main concerns:

  1. How do we ensure weโ€™ve identified and resolved any issues with this feature during beta so we ship something that does not hurt user confidence in upgrades?
  2. How can we better communicate these changes so folks can be prepared?

Wider discussion surrounded:

  • How we determine that a large feature is โ€œreadyโ€ to ship?
  • How are can we better communicate when a feature needs further testing after being merged. For example, Is a dev-note enough or should there be some other way to communicate these changes?.

Highlighted posts

The full list of posts from the last week in core can be read on the agenda at this link.

Also, this section provides updates on the core-editor and the Developer blog, including the latest topics that need writers.

Open floor

Anyone can ask for a ticketticket Created for both bug reports and feature development on the bug tracker. or PR to be discussed during an open floor. To help us provide good feedback, please include a link to the issue you want to discuss in the dev-chat agenda notes prior to the meeting.

Props to @joemcgill for reviewing.

#6-5, #dev-chat, #summary

Dev Chat agenda, Wednesday February 7, 2024

(Updated with pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. dependencies feature discussion request)

The next WordPress Developers Chat will take place onย Wednesday February 7, 2024, at 20:00 GMTย in theย coreย channel onย Make WordPress Slack.

The live meeting will focus on the discussion of proposals and releases, updates on 6.5, and have an open floor section. Additional items will be referred to in the various curated agenda sections. If you have ticketticket Created for both bug reports and feature development on the bug tracker. requests for help, please do continue to post details in the comments section at the end of this post.

Quick links to agenda sections

Announcements

Welcome to the two team reps for the remainder of 2024: Joe McGill (@joemcgill) and Sarah Norris (@mikachan)! With the increasing collaborative approach between coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and core-editor, it is wonderful to have reps from both parts of the team. A post formally introducing them will be published later this month.

@hellofromtonya and @webcommsat are doing a handover, and Abha (@abhanonstopnewsuk on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/ to 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.) with any updates) will continue to curate the agenda until Sarah is back on February 21.

Discussions on open core proposals and releases

As advertised last week, this weekโ€™s Dev Chat will explore the recently published proposal: Whatโ€™s next for the FSE outreach program.

  • This post recommends next steps, including a rename of the channel as โ€˜outreachโ€™ to use it more widely to reach site builders and extenders. It could also be used to assist several projects which could useย Slackย support in the WordPress space for discussion, clarification, and overall ruminating on future features coming to WordPress.ย 
  • Timescales:
    • Feedback deadline: February 12, 2024.
    • A Hallway Hangout is scheduled on February 20, 2024, at 15:00 UTCย to further discuss this proposal, the comments, and the next steps.

Potential proposal for discussion at Dev Chat on February 14, 2024: Proposal: Implement a PHP autoloader in WordPress Core.

Could you help curate a Call for Volunteers to review theย open proposals on Make/Coreย and create a list of unresolved ones to discuss during Dev Chat meetings?

Highlighted posts

Phase 3 media meeting agenda โ€“ this is scheduled forย Thursday, 8 February 2024 at 00:00 GMTย in theย core-mediaย channel onย Make WordPress Slack.ย 

A Week in Core โ€“ February 5, 2024 โ€“ props to @audrasjb. Onย TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.,ย between January 29 and February 5, 2024, there were.

  • 66 commits
  • 117 contributors
  • 79 tickets created
  • 8 tickets reopened
  • 56 tickets closed
  • welcome to 25 new 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 in core

New commit message requirements in Git and a Hello props Bot. Thanks to everyone who has worked on this historically and who have brought this to its latest update.

Proposal: Implement a PHP autoloader in WordPress Core. This updates the historic work on this and a proposed implementation.

6.5 release parties schedule and host

Core-editor updates

Props to @annezazu for collating and sharing this list.

  • 17.7 RC1 is set to be released this week, marking the last 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/ version to make it into 6.5.
  • Designs are continuingย for the highlight grid for 6.5.
  • Newย marketingย related issues opened for theย 6.5 microsite,ย video featurettes, andย social media assets.
  • Font Library: work continues to merge the Font Library 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. redesign and a quick change was made to make the Font Library more discoverable, with the need for more feedback as betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 lands.
  • Pattern overrides: a PR is underway to add theย block name to the pattern content dataย to help support future features, like shuffling patterns that are within the same categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. and a larger effort is underway toย tighten up the accessibility of these non-editable bound fields.
  • Data Views: aย primary filter API was addedย to enable set filters exposed by default in theย interface for both pages (showing status) and patterns (showing sync status).
  • Link Control: work is underway to try to get in aย PR that adds a โ€œadd blockโ€ UI for the navigation block link UIย to help resolve feedback around how hard it is to add blocks to 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. Bindings: afterย lots of discussions in slack, block bindings is moving forward to support custom fields and the ability to override blocks in synced patterns. The project as a whole is veryย open to feedback from extenders to see what can be added in the future.
  • Interactivity API/Block effects (name is in flux): the PR toย officially launch this new API is very close to landingย (core reviews welcome! thank you to those who have reviewed).

Developer Blogblog (versus network, site) update

Developer Blog summary, February 1, 2024 โ€“ this includes recently published posts. The following topics still need a writer:

If you are interested in taking on a topic from this list or know someone who would be a good person to writer about them, comment on the issue or in theย #core-dev-blogย channel.

Forthcoming release updates

Next major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope.: 6.5

Updates from the release squad can be shared in the Dev Chat. In addition, there are also the following updates identified and discussed in Slack.

6.5 release updates

  1. Theย first draft of the Beta 1 announcementย is ready for review. Please share your feedback byย February 8, 13:00 UTC.
  2. For anyone following on in the 6.5 release leads channel, the latest async updates from the various areas starts at this Slack message.
    • This includes an update on the monitoring of a performance regression, which is being addressed.
    • A final decision is needed on a design concept for the feature tiles.
  3. Discussion on Patterns in Classic Themes feature and reviews to help progress this area. Update 16:06 UTC, Feb 7: this is regarded as resolved. Thank you for all those who were involved.

4. Call for Testers early draft for 6.5. Publication date is just before Beta 1. Discussion on Slack if you are able to help.

5. Next general 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. scrubs for 6.5:

Discussion on Plugin dependencies feature

You can also view discussions taking place inย #core-upgrade-install channel on Slack. This has been highlighted as a potentially very valuable feature for 6.5 and was merged into โ€˜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.โ€™ on Tuesday. Note this is the last dev chat before Beta 1.

Tickets to highlight for assistance

Tickets for 6.5 will be prioritized. Tickets can be referenced in the comments section of this agenda if you are unable to make the meeting and for asynchronous involvement.

Open floor

Raising awareness and amplifying the new core contributor sessions โ€“ the ticket is on the Marketing Team GitHub. It picks up a discussion in the sessions and from recent contributor days.

  • Action: comment on the ticket for any support you may be able to offer or if you can identify opportunities to amplify awareness of the sessions.

#6-5, #agenda, #dev-chat

A Week in Core โ€“ February 5, 2024

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 January 29 and February 5, 2024.

  • 66 commits
  • 117 contributors
  • 79 tickets created
  • 8 tickets reopened
  • 56 tickets closed

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

Code changes

Administration

  • 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): Use the default cursor style for labels and disabled form controls โ€“ #59733

Build/Test Tools

  • Introduce Props Bot workflow โ€“ #60417
  • Mock 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. 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 in WP_REST_Plugins_Controller_Test โ€“ #59647
  • Pass a token to the Codecov action โ€“ #59658
  • Some improvements to the Props Bot workflow โ€“ #60417
  • Test against 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 8.3 โ€“ #59779
  • Update the codecov/codecov-action action โ€“ #59658
  • Update third-party 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/ action โ€“ #59805
  • Remove redundant unregister call in 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. bindings tear down โ€“ #60282

Bundled Themes

  • Twenty Eleven: Fix typo in twentyeleven_widgets_init() description โ€“ #60383
  • Twenty Fifteen: Fix typo in css/blocks.css โ€“ #60383
  • Twenty Twenty-Three: Rename Comments template part โ€“ #56999

Coding Standards

  • Remove unnecessary access and internal annotations from two functions in WP_REST_Templates_Controller โ€“ #60358
  • Rename the $ID parameter to $post_id in trackback() โ€“ #59650
  • Rename the $expires_offset variable in cache_javascript_headers() โ€“ #59650
  • Update PHPCSPHP Code Sniffer PHP Code Sniffer, a popular tool for analyzing code quality. The WordPress Coding Standards rely on PHPCS. to version 3.8.1 โ€“ #60279
  • Use strict comparison for functions lookup in plugin/theme editors โ€“ #60415
  • Use strict comparison in wp-admin/update-core.php โ€“ #58061, #60415

Docs

  • Fix typo in do_robots() docblockdocblock (phpdoc, xref, inline docs) โ€“ #60405

Editor

  • Add Block Bindings API helpers โ€“ #60282
  • Add allowed_blocks field to block registration and 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/ โ€“ #60403
  • Add viewStyle property to block.json for frontend-only block style โ€“ #59673
  • Add deprecated functions from interactivity core blocks โ€“ #60380
  • Add registry for block binding sources โ€“ #60282
  • Add the Block Bindings API โ€“ #60282
  • Fix PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher warning in Layout block support โ€“ #60327
  • Fix 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. font settings in 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. โ€“ #60341
  • Fix Theme.json font settings unit test โ€“ #60341
  • Refactor the way block bindings sources are handled โ€“ #60282
  • Remove shadow support via direct attribute โ€“ #60377
  • Sanitize nested array in theme.json properly โ€“ #60360
  • Update WordPress packages to 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/ 16.7 RC3 โ€“ #60315
  • Update the WordPress packages to the Gutenberg 16.7 RC2 version โ€“ #60315
  • Update the minimum compatible version of Gutenberg โ€“ #60315
  • fix small typos in block bindings API docblocks โ€“ #60282, #60386
  • introduce dimensions.aspectRatio block support โ€“ #60365
  • reduce specificity of block style variation selector โ€“ #60312

General

  • Add tests for array_is_list polyfill added in r57337 โ€“ #55105

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API

  • Fix CDATA lookalike matching 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. CDATA โ€“ #60406
  • Fix splitting single text node โ€“ #60385
  • Fix typo setting the wrong self-closing flag
  • Fix void 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.) nesting with next_token โ€“ #60382
  • Reset parser state after seeking to bookmark โ€“ #60428
  • Test cleanup โ€“ #59647

HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. API

  • Ensure cookie names are cast to strings โ€“ #58566

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.

  • Add missing space after foreach keyword โ€“ #59656
  • Add type declaration to new method missed in [57518] โ€“ #59656
  • Delete .l10n.php files when deleting a theme โ€“ #59656
  • Ensure .l10n.php files are deleted when upgrading language packs โ€“ #59656
  • Fix plural forms parsing in WP_Translation_File โ€“ #59656
  • Improve singular lookup of pluralized strings โ€“ #59656
  • Improve singular lookup of pluralized strings โ€“ #59656
  • Load new translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. library in wp_load_translations_early() โ€“ #59656
  • Revert [57386] pending further investigation โ€“ #59656
  • Support loading .l10n.php translation files on their own โ€“ #59656

Upgrade/Install

  • When populating options, maybe_serialize instead of always serialize

Media

  • Prevent local edits during media upload โ€“ #58783, #23374
  • Enable AVIF support โ€“ #51228
  • Fix AVIF tests โ€“ #51228

REST API

  • Add route for single styles revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. โ€“ #59810
  • Support assigning terms when creating attachments โ€“ #57897

Script Loader

  • Remove unused WP_Scripts::get_unaliased_deps() method โ€“ #60438
  • Use a global variable in wp_script_modules() โ€“ #56313
  • Add import map polyfill for older browsers โ€“ #60348

Upload

  • Fallback to PclZip to validate ZIP file uploads โ€“ #60398
  • Check for and verify ZIP archives

Props

Thanks to the 117 (!) people who contributed to WordPress Core on Trac: @mukesh27 (12), @swissspidy (11), @gziolo (7), @peterwilsoncc (6), @jonsurrell (6), @costdev (5), @jorbin (5), @dmsnell (4), @youknowriad (4), @santosguillamot (4), @desrosj (4), @talldanwp (4), @czapla (4), @luisherranz (4), @azaozz (3), @joemcgill (3), @lgladdy (3), @sc0ttkclark (3), @artemiosans (3), @fabiankaegy (3), @shailu25 (3), @cbravobernal (3), @get_dave (3), @jeffpaul (2), @johnbillion (2), @kevin940726 (2), @joedolson (2), @dharm1025 (2), @harshgajipara (2), @isabel_brison (2), @audunmb (1), @britner (1), @cdevroe (1), @colorful-tones (1), @courane01 (1), @endymion00 (1), @feastdesignco (1), @halounsbury (1), @jsandtro (1), @karinclimber (1), @kevincoleman (1), @koesper (1), @maartenbelmans (1), @mathewemoore (1), @melcarthus (1), @mujuonly (1), @nerdpressteam (1), @olegfuture (1), @otto42 (1), @room34 (1), @sayful (1), @schutzsmith (1), @stephencronin (1), @svitlana41319 (1), @tnolte (1), @tobiasbg (1), @vikram6 (1), @welaunchio (1), @wpfy (1), @viralsampat (1), @adamsilverstein (1), @lukefiretoss (1), @ayeshrajans (1), @navjotjsingh (1), @Tyrannous (1), @jb510 (1), @gregbenz (1), @nickpagz (1), @JavierCasares (1), @yguyon (1), @mamaduka (1), @upadalavipul (1), @jsnajdr (1), @afercia (1), @Chouby (1), @dd32 (1), @pento (1), @noisysocks (1), @chrisdavidmiles (1), @wpscholar (1), @annezazu (1), @chanthaboune (1), @Chrystl (1), @codepo8 (1), @oglekler (1), @nicolefurlan (1), @antpb (1), @syamraj24 (1), @wildworks (1), @madhudollu (1), @westonruter (1), @mikachan (1), @poena (1), @nosilver4u (1), @darssen (1), @kraftbj (1), @engahmeds3ed (1), @barry-hughes (1), @schlessera (1), @aaronrobertshaw (1), @mmaattiiaass (1), @ramonopoly (1), @gaambo (1), @andrewserong (1), @flixos90 (1), @xknown (1), @tykoted (1), @afragen (1), @hellofromtonya (1), @ocean90 (1), @amieiro (1), @Dharm1025 (1), @Ankit-K-Gupta (1), @tanjimtc71 (1), @timothyblynjacobs (1), @spacedmonkey (1), @jrf (1), and @antonvlasenko (1).

Congrats and welcome to our 25 (!!) new contributors of the week: @audunmb, @cdevroe, @endymion00, @feastdesignco, @halounsbury, @kevincoleman, @koesper, @maartenbelmans, @mathewemoore, @melcarthus, @nerdpressteam, @olegfuture, @room34, @sayful, @svitlana41319, @vikram6, @welaunchio, @navjotjsingh, @gregbenz, @nickpagz, @chrisdavidmiles, @codepo8, @nosilver4u, @darssen, @barry-hughes โ™ฅ๏ธ

Core committers: @swissspidy (18), @youknowriad (11), @sergeybiryukov (7), @gziolo (7), @desrosj (6), @dmsnell (6), @peterwilsoncc (2), @adamsilverstein (2), @isabel_brison (2), @jorbin (2), @afercia (1), @joedolson (1), and @jorgefilipecosta (1).

#6-5, #core, #week-in-core

Developer Blog editorial meeting summary, February 1, 2024

Summary of the WordPress Developer Blogblog (versus network, site) meeting, which took place in the ย #core-dev-blog channel on the Make WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. Start of the meeting in Slack.

Attendees: @marybaum, @milana_cap @greenshady, @oglekler, second half @webcommsat, @bph (as facilitator),

Last meeting notes: Developer Blog editorial meeting summary, January 4, 2024

Updates on the site

Categories

The categories were updated a bit.

  • Blocks Development renamed to Blocks
  • ย Visual Design renamed to Design
  • Deleted โ€œLearningโ€ isnโ€™t every article a learning experience?

Since the beginning in 2022, we keep categories very high level, and become more specific with Tags.

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/ Action: label notifier

For the roundup posts, people can get notified when the next issue is available to share their teamโ€™s notes with the writer to be included in the nextย Whatโ€™s new for developers post. If people want to get GitHub notification, please let me know and Iโ€™ll update the GitHub Notifier Action.

Author Profile links

With the redesign, author links now go to 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/ profiles.ย 

Newly published post since the last meeting:

Huge โ€œThank youโ€ to the writers and reviewers for bringing fabulous content to WordPress!

Project Status

Issues Closed as not planned

Seven Posts in Progress:

Eight post on To Do column

The Todo-List is growing, and we need to increase efforts to get them published.

Topics still in need of a writer

If you are interested in taking on a topic from this list or know someone who would be a good person to writer about them, comment on the Issue or pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test itโ€™s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of โ€œPing me when the meeting starts.โ€ @bph in slack either in the #core-dev-blog channel or in a DM.

Posts in need of reviews:

New Topics approved

Open Floor

@webcommsat brought to the meeting, the discussion from last nightโ€™s dev chat meeting about the Proposal to improve the FieldguideField guide The field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page. of the WordPress release, to see โ€œwhat role the dev blog could possibly have in this as well as identifying what the blog already does and could do.

There is a wider discussion needed on communication and education of release features, but it would be good to start a more detailed discussion on potential and what is already aiding these areas within the dev blog. This can then feed into the wider considerations with other teams.โ€

Relevant links:

@webcommsat:
โ€œThe proposal now is not so much about a new version of a field guideField guide The field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page. appearing in dev blog, but looking at where and how we communicate and educate on a release, and what is needed. With the increased ability to segment to different audiences across the project, this could be a great opportunity.ย Hence, the wider input from marketing, docs, training, community, and the dev blog.

Being clear what happens in the dev blog already, giving tangible live examples to help those less familiar with the blog materials, and what could be potentially done would be a real cake yo the discussion.ย ย With the segmentation, we have just in levels of developer knowledge, we can add a valuable insight too.โ€

@greenshady, @webcommsat also brought up concerns on ownership, availability of people during release time and bandwidth of contributors.

Next steps:
@webcommsat suggested: a mapping exercise would help, and happy to try to start one we can add to with ideas. We can then add links to examples of what we have already published.

Action: After WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what theyโ€™ve learned throughout the year and share the joy. Learn more. Asia, schedule a Hallway Hangout with contributors from the editorial group and other teams to kick off work on a basic content mapย for a release and pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. existing efforts and identify gaps.

Next meeting: March 7, 2024, at 13:00 UTC in the #core-dev-blog channel

Props toโ€‚@marybaum and @greenshady for review.

#meeting, #summary

New Commit Message Requirements in Git: Hello Props Bot

Note: This post was updated to correct the format used in one example and remove references to the wapuu w.org username (not officially associated with the project). A note was also added under a list saved as a synced pattern to indicate the contents of the list may change over time. 2/2/2024 โ€“ @desrosj

In January 2022, a proposal was published on this blog to implement a new process within any 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/ repository under the WordPress organization to ensure anyone and everyone contributing to the project receives due thanks in the form of โ€œprops.โ€ The post is still almost entirely accurate and itโ€™s recommended you read that in full. Here are some highlights.

One of the greatest things about open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. is that contributions come in many shapes and sizes. Anyone can contribute regardless of skill set, experience, time zone, or background. There are countless ways for someone to get involved with open source projects.

WordPress is no different. Contributors submitting code modifications are only a small subset of the larger community. Recognizing all types of contributions is essential to establishing a healthy contributor base, and the responsibility falls on the projectโ€™s maintainers. Contributors who feel recognized and valued are more likely to continue contributing.

There is an established and documented policy on the TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress./SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. side of the project to ensure that everyone contributing to a changeset receives credit (or โ€œpropsโ€). This method has been in place for over 12 years, making generating the list of props for each release scriptable and straightforward. The process is unique to the project but frequently receives positive feedback from others in open source.

Since being merged into WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. in version 5.0, there has yet to be an equivalent process for the contributions on GitHub. The process is manual, does not account for non-code contributions, and often results in contributors not receiving credit for their work.

The post documents the state of props practices and related processes in detail for both Trac/SVN and GitHub. No major changes have been made to these practices since the publish date of that post.

After taking into account all of the feedback received from that proposal, a new policy is now in place for maintainers.

New requirement for 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/ GitHub merge commit messages

Starting today, it is required that GitHub merge commit messages for Gutenberg include credits for all contributors following the same guidance as Core SVN commits:

Props should be given to all those who contributed to the final commit, whether through patches, refreshed patches, code suggested otherwise, design, writing, user testing, or other significant investments of time and effort.

In Core SVN, this is done as Props x, y, z. In GitHub, this will be done using Co-authored-by trailers. To avoid having personal emails in the commit log of the project (or having to know which personal email someone has associated with their GitHub account at a given time), a contributorโ€™s GitHub and 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/ usernames should be used in the following format:

Co-authored-by: githubusername <dotorgusername@git.wordpress.org>

This practice defines a consistent expected pattern that can be reliably parsed by a script to collect contributions for a repository from a GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/ log in the same fashion as the Core SVN repository.

In order to make this new practice easier for committers and maintainers, a new tool has been merged into the code bases.

Introducing Props Bot

Props Bot is a new GitHub Action that will compile a list of contributors for a given pull request. The bot will leave a comment with a list of contributors formatted for use in both Trac SVN and GitHub.

The comment will be continuously updated as new activity occurs. Additionally, the bot can be manually run by adding the props-bot label to the pull request.

Types of activity included:

  • Anyone who publishes commits to the PRโ€™s 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"..
  • Anyone who left a review or responded to a review on the PR.
  • Anyone who commented on the PR.
  • Anyone who created an issue that is attached to the PR.
  • Anyone who commented on issues attached to the PR.

As of [57517] in wordpress-develop, and 91450bd in WordPress/gutenberg, Props Bot is now available. ๐ŸŽ‰

An example comment by Props Bot on a pull request.

The bot relies on an active connection between a WordPress.org and GitHub account. For a step-by-step guide on connecting these accounts, please check out the new page in the Core Handbook.ย 

The bot can be used in any GitHub repository, not just ones under the WordPress organization. However, itโ€™s required for the Gutenberg repository, and official WordPress repositories are strongly encouraged to use it since it will allow the project to appropriately credit contributors in WordPress releases more easily.

What doesnโ€™t Props Bot do?

While the basics of collecting contributors is handled by Props Bot, there are still some things not yet handled by Props Bot:

  • Manually include someone who has not directly interacted with the PR or linked issues.
  • Contributors who only interact on Trac tickets relevant to the PR need to be manually included.
  • Only the first 100 comments are currently checked (see props-bot-action 41).

As a contributor, what do I need to do?

All contributors should confirm that they have connected their GitHub and WordPress.org accounts. There are several ways to confirm this documented on the relevant page in the handbook.

The easiest way to confirm your accounts are connected is by viewing your w.org profile.

There is one additional step that all contributors should take, even if you have previously connected your accounts.

An added benefit of this new practice is that all props given using this new format will be shown on your GitHub profileโ€™s activity graph. However, this depends on your w.org Git email being added as an alias to your GitHub account (example: desrosj@git.wordpress.org). This can be done by visiting the Settings > Emails page on GitHub.ย 

Note: Youโ€™ll see an orange โ€œunverifiedโ€ notice next to your @git.wordpress.org email after adding it as an alias in GitHub. In the future, email forwarding may be configured to allow these emails to be verified. See this Making Systems request for more information.

How are unlinked contributors handled?

When unlinked contributors are detected, Props Bot will pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test itโ€™s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of โ€œPing me when the meeting starts.โ€ them in the comment, requesting they establish a connection and link to the handbook page.

Any unlinked contributors are noted in the message provided by Props Bot as a way to associate the personโ€™s contributions with their w.org account should they connect their accounts after the PR is merged. This should be included in the merge commit message.

Contributors without a connected w.org account can not be credited in the w.org Credits 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 will not have their contributions show up on their GitHub profile.

As a Core Committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. or repository maintainer, what do I need to do?

In addition to linking your profiles as described above, a new page has been created in the Core Handbook detailing best practices for Contributor Attribution (โ€œpropsโ€). This page collects related information from various parts of the handbook in one location. Please give this page a full read. Below are the specific rules around the new practice:

  • The list of Co-authored-by trailers must be preceded by a blank line.
  • Co-authored-by trailers should be the last thing in a commit message.
  • The unlinked contributors must come before the Co-authored-by trailers.
  • Unlinked contributors should be entered in one line preceded by Unlinked contributors:, each one separated by a comma and a space (, ), and a period after the last one. Example: Unlinked contributors: nacin, matt.
  • Usernames must not start with an @ (at) sign.
  • When manually adding someone, please only use their GitHub and WordPress.org usernames in the following format: Co-authored-by: githubusername <dotorgusername@git.wordpress.org>.
  • The only accounts that are allowed to be noted with a non-w.org email are bot accounts (dependabot or github-actions). Itโ€™s important to leave these bots as listed by the GitHub generated Co-authored-by trailer so future contributors know which bots were involved in the changes.
  • If there are contributors already noted with Co-authored-by in the suggested commit message, verify they are also included in the list provided by Props Bot before removing. These will be in GitHub format and should be converted to the above w.org format. Deleting the GitHub formatted ones will ensure an accurate contributor count for each commit, but itโ€™s not required. Non w.org emails will be ignored by the props parsing scripts.
  • If a contributorโ€™s w.org username is unknown, add their GitHub username to the โ€œUnlinked contributorsโ€ list.
  • If there are Signed-off-by trailers in the suggested commit message, leave them in place above Co-authored-by trailers. These serve a different purpose and are ignored in the context of collecting props.

Note: The above list is a synced pattern. As itโ€™s improved over time, the changes will be reflected in this post. The above list may be different than what was originally published.

Suppose you maintain a repository and want to use this bot in your project. In that case, the repository has an example YAML file with detailed inline documentation that you can copy into your project. Alternatively, you can add the action to one of your pre-existing workflows or submit a Request to Help Implement issue.

Other Notes

Here are a few other notes:

  • If you donโ€™t see a Props Bot comment on your PR, you may need to pull in the latest changed in trunk.
  • The action does not currently support using the @v1 notation in the value of uses for a step. For now, using trunk is recommended to help test Props Bot.
  • The Action has no tests. Contributions are more than welcome!
  • Because this practice was not in place during the 6.5 release cycle, the previously documented process will be used one more time. The timing of this change is such that the work for 6.6 in the Gutenberg release is about to begin, giving us an entire release cycle using this process and allowing the 6.6 release to switch to automating props collection from the Gutenberg repository.

Summary

While these changes do not solve contribution tracking for every team, every workflow, and every tool thatโ€™s to make WordPress, this new practice, combined with the Props Bot action, will bring a consistent standard and level of attribution that can be parsed more easily across more areas of the project.

This is version 1 of this change. All feedback and testing is welcome. There will likely be some refinements required after wider testing!

A WordPress release is a sum of all the contributions made during each release cycle, and use of this Props Bot will help us more accurately thank every contributor. โค๏ธ

Props for Props Bot Contributions

A post about props would not be complete without some props! Big props go out to @dharm1025 for helping to get the initial code converted from a generic 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 file to a GitHub Action. Thank you to @jeffpaul and @jorbin for working closely to refine the action, create the new handbook pages, modify existing ones as needed, and test the bot. And thanks to @dd32 for creating the underlying w.org API endpoint to return w.org profiles for GitHub usernames making this possible.

Others who provided feedback, historical insight, helped test, or peer reviewed this post: @pento, @talldanwp, @noisysocks, @gziolo, @swissspidy, @youknowriad, @peterwilsoncc, @joemcgill, @chrisdavidmiles, @wpscholar, @annezazu, @chanthaboune, @davidbaumwald, @cbringmann, and @desrosjbot.

Proposal: Implement a PHP autoloader in WordPress Core

Past discussions

8 years ago, a ticket was created in WordPress, suggesting a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher autoloader for WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. classes. In that ticketticket Created for both bug reports and feature development on the bug tracker., many things were discussed regarding the concept of adding a PHP autoloader in WordPress. That ticket discusses adding an 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. to allow 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. developers to register their own classes, it discusses using Composer, as well as other more nuanced topics of implementing an autoloader in WP.

It is a long thread, but a recommended read for anyone wanting to get some more context and historical data. That initial discussion was derailed several times, so for the purposes of this proposal, a new ticket was created on #60414

Since then, a lot of things have changed โ€“ both in PHP and in WordPress. Despite all these changes, WordPress Core still loads most of its codebase on each page load โ€“ regardless of whether a file is used or not. That means that WordPress takes more time to load, and at the same time consumes more memory than it should.

The time cost of including these extra files is pretty small (almost negligible), but the memory cost is not โ€“ especially for small sites running on shared hosting. By including files that are never used on a page load, weโ€™re forcing servers to keep them in-memory, which is obviously sub-optimal.

Current work

In 2022, work started in a pull request to implement a PHP autoloader for Core classes. In the 20 months since the PR was initially created, it has received feedback, has been polished, and has been tested thoroughly. It has been kept up-to-date with the 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. version of WordPress and is ready for production.

Initial tests show an improvement in loading time, CPU resources and memory consumption. On average, the improvements server-side for a new WP site with no plugins installed and using the default theme, are approximately 2-3ms for load-time, 0.5-1.5% for CPU time and 5-7% for memory consumption.

What the proposed implementation does

The implementation in that pull-request was kept simple and minimal:

  • Introduced a WP_Autoload class.
  • Added a CONST in the object, containing the classMap for classes & their filenames. A hardcoded classMap was deemed preferable because of legacy reasons. WordPress classes donโ€™t (currently) have namespaces or standardized mapping. By using a hardcoded classMap we can introduce an autoloader, and facilitate future implementations & standardization.
  • Removed the include/require/include_once/require_once calls for files containing classes throughout the WP codebase
  • Included external libraries and their respective autoloaders in the Core autoloader.

What the proposed implementation does not do:

It does not introduce an API for plugins

The implementation does not introduce an API to allow plugins/themes to add their own classes to the autoloader. Instead, it only focuses on Core classes, keeping things minimal.

Though adding an API and/or method to allow plugins to add their classes to a centralized autoloader is something we can consider for the future, it is not a requirement for this initial implementation, and it would overcomplicate the initial steps of autoloading Core.

It does not use Composer

Since the Composer vs non-composer autoloader was one of the main points of discussion in the 8-year-old ticket, itโ€™s worth mentioning here, and clarify some points:

Composer is a very mature and safe way to autoload classes. However, this initial implementation does not use it.

This proposal is for a minimally invasive, performance-optimized change. It implements autoloading using a hardcoded classMap. Still, It does take care of all the preliminary work so if it is decided that a Composer autoloader is what we want to do, then switching to that will be a relatively easy task. The current PR has a very narrow focus and serves as the first step towards modernizing the WP codebase.

Composer would allow us to automate generating the autoloader, so if deemed appropriate, we could modify the current proposal to implement that.

Adding an initial, minimal autoloader will not 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. a future Composer implementation. It is easier to start without it, and then add it if we find that we need it. Doing the reverse could prove more difficult, so this path was deemed safer as a first step.

Benefits

The result of that PR is a cleaner and faster codebase. But this change is not only beneficial to Core developers, it will also benefit the ecosystem as a whole:

  • Reduce friction for plugin developers: Right now, plugin developers usually need to check if a class exists, if it doesnโ€™t then look up its location in Core files, include the file etc. Then and only then can they safely use what WP has to offer. Adding an autoloader makes things easier and removes a friction point for plugin developers who will now be able to directly use a WP class.
  • Improved performance: โ€“ no matter how small the improvement is, it can make a big difference for hosts and larger sites.
  • This is the first step towards modernizing the WP codebase. Though in itself it may appear like a marginal (but still very worthy) performance improvement, it opens the door to more improvements in the future of WordPress without any backwards-compatibility concerns.

A word about overriding Core classes

One concern has already been raised, and I want to immediately tackle it: adding an autoloader for WordPress Core classes would mean that it will be possible to override these classes by loading another file early enough. We should not base code decisions in Core on how developers might misuse itโ€ฆ There are always ways that someone can mess up WordPress by doing the wrong thing. Being able to override Core classes can be seen both a pro and a con, depending on our point of view โ€“ but should not be a deciding factor.

  • It can benefit hosts who need to override things because of idiosyncracies in their hosting environment.
  • It can benefit site-builders who donโ€™t know any better and are currently โ€œhackingโ€ Core files, making it impossible to later apply security updates. As WP purists, we know not to ever do that, but we canโ€™t assume that everyone else is as mindful as we are.
  • It is a shift in the way we think about WP classes, and change is not easy. Autoloading classes is a battle-tested and established good practice in all modern applications.
  • When adding a new class file to WP-Core, weโ€™ll need to update the classMap accordingly. This is not a big issue however, since we wonโ€™t have to include the files we add โ€“ just add them to the class-map.

Adding a PHP autoloader to WordPress is a relatively trivial change as the PR demonstrates. It comes with nice benefits and modernizes the way we handle class loading. Because it also represents a fundamental change in the way we include files and classes in the future, your feedback would be greatly appreciated.

Props @joostdevalk for the review

Whatโ€™s new in Gutenberg 17.6? (31 January)

โ€œWhatโ€™s new in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โ€˜blocksโ€™ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/โ€ฆโ€ posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, hereโ€™s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).


Gutenberg 17.6 has been released and is available for download!

This release, which includes 264 pull requests (thatโ€™s a lot of work!), can be labeled mainly as a โ€˜code qualityโ€™ one, as it includes two important refactors in both Fonts and Interactivity APIs.

It also includes some improvements in the new โ€œData Viewsโ€ experiment, 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. 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. improvements, and finally, a feature that all developers have been waiting for: the ability to extend allowed blocks within a parent block.

New 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. allowed Blocksย 

Until now, there has been no way 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. the allowed blocks in an inner block area. This means that developers could not specify which blocks could be inside a parent block without editing the parent blockโ€™s edit file. Imagine youโ€™ve just created an amazing icon block to include in the navigation block; now, you can whitelist it using a filter.

addFilter( 'blocks.registerBlockType', 'my-great-icon-block', ( settings, name ) => {
ย ย if ( name === 'core/navigation ) {
ย ย ย ย return {
ย ย ย ย ย ย ...settings,
ย ย ย ย ย ย allowedBlocks: [ ...settings.allowedBlocks ?? [], 'my-great-icon-block' ],
ย ย ย ย }
ย ย }
ย ย return settings;
} );

Site Editor โ€“ Post Editor unification.

Several smaller edit actions are available in the post editor but not the site editor. The misalignment means users sometimes need to hop between editors, which can be frustrating. This Gutenberg version includes all page edit features in both editors.

Also, the Interactivity 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 the Fonts Library API have received a big refactor. These APIs are getting close to the 6.5 release, so itโ€™s a great time to test them.

Other Notable Highlights

New Interactivity API directives

The Interactivity API now includes several new directives that will be incredibly helpful when creating interactive blocks.

  • data-wp-on-window and data-wp-on-document to handle global events like scroll, keypress, load, ready, etc.
  • data-wp-each to render lists.
  • data-wp-run to execute custom logic while rendering an element with directives.ย 

Footnotes available for custom post types

Footnotes are available for all post types that

  • Are public and appear in the 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/.
  • Supports all of the following: editor, custom fields, and revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision..

Changelog

Features

Interactivity API

  • Addย wp-data-on-windowย andย wp-data-on-documentย directives. (57931)
  • Addย wp-eachย directive. (57859)
  • Addย wp-runย directive andย useInitย &ย useWatchย hooks. (57805)
  • Createย @wordpress/interactivity-routerย module. (57924)

Typography

  • Add defaultFontSizes option to theme.json. (56661)

Font Library

  • Font Library: Add wp_get_font_dir() function. (57730)

Custom Fields

  • Block Bindings: Disable editing of bound block attributes in editor UIUI User interface. (58085)

Block Editor

  • Add effects/box shadow tools to block inspector. (57654)

Enhancements

Components

  • Add opt-in prop for 40px default size forย BoxControl,ย BorderControl, andย BorderBoxControl. (56185)
  • BorderControl: Replace style picker with ToggleGroupControl. (57562)
  • ColorPicker: Store internal HSLA state for better slider UXUX User experience. (57555)
  • Migrate PaletteEdit and CircularOptionPicker tests from user-event to ariakit/test. (57809)
  • Replaceย TabPanelย withย Tabsย in the Editor Preferences Modal. (57293)
  • Theme: Setย colorย on wrapper. (58095)
  • Tooltip: No-op when nested inside another Tooltip component. (57202)
  • BoxControl: Update design. (56665)
  • Element: Start reexporting PureComponent. (58076)

Interactivity API

  • Render the root interactive blocks. (57729)
  • Interactivity Router: Replaceย data-wp-navigation-idย withย data-wp-router-region. (58191)
  • Interactivity: Exportย withScope()ย and allow to use it with asynchronous operations. (58013)
  • Prevent the use of components inย wp-text. (57879)
  • Remove wp-data-navigation-link directive. (57853)
  • Server Directive Processing Refactor. (58066)
  • Updateย preact,ย @preact/signalsย andย deepsignalย dependencies. (57891)

Block Editor

  • Add copy link button to Link UI. (58170)
  • Improve LinkControl preview. (57775)
  • Keep Link UI open upon initial link creation when used in RichText. (57726)
  • List View: Displace list view items when dragging (a bit more WYSIWYGWhat You See Is What You Get What You See Is What You Get. Most commonly used in relation to editors, where changes made in edit mode reflect exactly as they will translate to the published page.). (56625)
  • Show initial suggestions in rich text Link UI. (57743)
  • Disable lock button if user cannot control lock state. (57274)
  • Use ClipboardJS latest version and clean up focus loss workaround. (57156)
  • Dimensions: Add Aspect Ratio block support. (56897)

Block Library

  • Add more taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. options to the post navigation link. (48912)
  • Add: Footnotes support for other CPTโ€™s. (57353)
  • Better navigation link variations for post types / taxonomies. (56100)
  • Remove โ€œblocksโ€ from copy and delete labels. (57769)
  • Pullquote Block: Add padding and margin support. (45731)
  • Video Block: Add raw transformation fromย videoย htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (47159)
  • Aspect ratio: Remove support on the Group block for now. (58414)
  • Image block: Move UI for lightbox from 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. to the content toolbar alongside link settings. (57608)

Data Views

  • DataViews: Enable grid layout for templates & parts by default. (58137)
  • DataViews: Make dataviews powered page patterns stable. (58139)
  • DataViews: Make the โ€œManage Pagesโ€ stable. (58166)
  • Dataviews: Add Bulk actions to page. (57826)

Site Editor

  • Group templates in sidebar list. (57711)
  • Initial routing refactoring to separate preview from list view. (57938)
  • Iterate on warning text for block removal for query/post template/post content. (58138)
  • Site editor: Add global styles changes to save flow. (57470)
  • Editor: Unify the Editor Mode preference. (57642)
  • Live Preview: Show the current theme name on the theme activation modal. (57588)
  • Unify the preferences modal UI between post and site editor. (57639)
  • Remove right negative margin from pinned items. (57666)
  • Update style revision top toolbar text. (58057)

Block API

  • Block Bindings: Update source registration syntax and remove APIs that should be private. (58205)
  • Block Hooks: Do not remove toggle if hooked block is present elsewhere. (57928)

Synced Patterns

  • Add basic pattern overrides end-to-end tests. (57792)
  • Use a 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. format and supportย linkTargetย ofย core/buttonย for Pattern Overrides. (58165)

Patterns

  • Add image block support for pattern overrides. (57909)
  • Outline editable blocks that are within a content-locked container. (57901)
  • Change text on pattern reset button. (58286)

Post Editor

  • Post Lock: Use the new modal size preset. (58197)
  • Add description to the save panel 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. when nothing is checked. (57716)

Font Library

  • Update the default collection data URLURL A specific web address of a website or web page on the Internet, such as a websiteโ€™s URL www.wordpress.org to the 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/ cdn. (58186)
  • Font Library: Refactor stylesheet using CSSCSS Cascading Style Sheets. variables (58237)
  • Font Library Modal: Reset the selected font when installing a new font. (57817)
  • Font Library: Disable font library UI using a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher filter. (57818)
  • Font Library: Filter fonts upload directory. (57697)
  • Font Library: Use data or src file to define font collection data. (57734)
  • Improve font collection rest controller. (58222)
  • Make notices more consistent. (58180)
  • Updates Font Families and Font Faces endpoints context param. (58287)

Commands

  • Minor command tweaks. (58148)

Extensibility

  • Update Navigation block to render hooked inner blocks. (57754)
  • Add gettext content when translating โ€˜Headerโ€™. (51066)

Template Editor

  • Removeย template-onlyย mode from editor and edit-post packages. (57700)

New APIs

Block API

  • Block Bindings API: Add block bindings PHP registration mechanisms and โ€œPost metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.โ€ source under the experimental flag. (57249)
  • Block Bindings API: Refactor logic into Block Bindings class and singleton pattern. (57742)

Bug Fixes

Block Library

  • AvatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. Itโ€™s usually a square box that appears next to the userโ€™s name. block: Fix broken aligments in the editor. (58114)
  • Embed Block: Fix retry processing when embedding with trailing slash fails. (58007)
  • Lightbox: Fix โ€œExpand on clickโ€ control being disabled unintentionally. (56053)
  • Modified Date Block: Donโ€™t render change date tool. (57914)
  • Only prioritise Quote transform where relevant. (57749)
  • 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: Fix posts list variation detection. (58194)
  • Block Hooks API: Update Navigation block feature gate. (58388)

Components

  • Button: Always render the Tooltip component even when a tooltip should not be shown. (56490)
  • CustomSelect: Adjustย renderSelectedValueย to fix sizing. (57865)
  • ToggleGroupControl: Improve controlled value detection. (57770)
  • Tooltip: Accept specific tooltip props. (58125)
  • Tooltip: Forward and merge inner tooltip props correctly. (57878)
  • Bring back the chevron. (57807)
  • Preferences: Add a proxy to retrieve the deprecated preferences with a deprecation message. (58016)

Data Views

  • DataViews: Default sort order in templates by title. (58175)
  • DataViews: Donโ€™t always display horizontal scrollbar. (58101)
  • DataViews: Fix author sorting in templates and template parts. (58167)
  • Remove unused argument from sprintf in pagination.js. (57823)
  • DataViews: Fix safari grid row height issue. (58302)
  • DataViews: Fix table view cell wrapper and BlockPreviews. (58062)

Patterns

  • Add black border back when editing synced pattern in the post editor. (57631)
  • Outline editable blocks when in a pattern that has locked children. (57991)
  • Remove text align control for paragraph, heading, and button in contentOnly editing mode. (57906)
  • Pattern Categories: Fix capitalization. (58112)
  • Fix flaky โ€œcreate a new patternโ€ test. (57747)
  • Block Bindings: Fix bindings image placeholder showing in patterns overrides. (58252)

List View

  • Image Block: Make block name affect list view. (57955)
  • More Block: Make block name affect list view. (58160)

Block API

  • Block Hooks: Fix toggle. (57956)
  • Fix formats not working in block bindings content. (58055)

Global Styles

  • Correctly decode border color values. (57876)
  • Fix: Theme.json application of custom root selector for styles. (58050)

Data Layer

  • Data: Allow binding registry selector to multiple registries. (57943)
  • Data: Fix memoized createRegistrySelector. (57888)

Typography

  • #56734ย When there is no font, the border should not appear. Display further guidance text. (56825)
  • Fluid typography: Do not calculate fluid font size when min and max viewport widths are equal. (57866)

Block Editor

  • Fix regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5.: Content locking does not stops when an outside block is selected. (57737)
  • LinkControl: Remove unnecessary right padding of input fields. (57784)

Custom Fields

  • Block Bindings: Fix button popover not showing in patterns. (58219)

Font Library

  • Fix typo. (58193)
  • Removed and elements from Font Library Modal (58221)

Synced Patterns

  • Fix losing overrides after detaching patterns. (58164)

Interactivity API

  • Preventย wp-data-on=""ย from creatingย onDefaultย handlers. (57925)
  • Prevent usage ofย gutenberg_urlย in block-library (58242)
  • Interactivity API: Fix data-wp-on-document flaky test. (58008)
  • Interactivity API: Fix flaky test on-window. (58134)
  • Fix flaky test on-window, remove duplicate expect on-document. (58181)
  • Interactivity: Fix broken reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org usage in published package. (58258)

CSS & Styling

  • Styles revisions: Remove body padding. (57748)

Templates API

  • Fix visual indication of switch to default template in the post editor. (57718)

Site Editor

  • (editor)(fix) Append theย edit-post-header-toolbarย class in NavigableToolbar for backward compatibility with 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. GUI injections. (58154)
  • Fix site editor layout regressions. (58077)

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)

Site Editor

  • Fix font variants count color contrast ratio and l10nL10n Localization, or the act of translating code into one's own language. Also see internationalization. Often written with an uppercase L so it is not confused with the capital letter i or the numeral 1. WordPress has a capable and dynamic group of polyglots who take WordPress to more than 70 different locales.. (58117)
  • Make the site hub View Site link always visible. (57423)

Block Editor

  • Fix parent selector button focus style and metrics. (57728)
  • Restore visual separator between mover buttons when show button label is on. (57640)

Widgets Editor

  • Fix Widgets page Undo and Redo accessibility and keyboard interaction. (57677)

Performance

  • Add patterns load test. (57828)
  • Block editor: Avoid list re-rendering on select. (57188)
  • Block editor: Donโ€™t register shortcuts for preview editors. (57984)
  • Block editor: Fix performance regression afterย #57950. (57971)
  • Block editor: Use context for useBlockEditingMode. (57950)
  • BlockSwitcher: Defer transform calculations until the Dropdown is open. (57892)
  • Call variation through callback so itโ€™s only loaded when needed โ€“ in support of tracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. 59969. (56952)
  • Editor styles: Cache transform. (57810)
  • Footnotes: Combine format store subscription. (58129)
  • 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.: Calc compat styles once per page load. (57798)
  • Measure typing with the top toolbar enabled. (57709)
  • Meta boxes: Donโ€™t initialise if there are none. (57182)
  • Patterns: Avoid fetching on load. (57999)
  • Site editor: Avoid fetching themes on load. (57985)
  • Site editor: Reduce artificial loading delay from 1s to 100ms. (57953)
  • Site editor: Remove store subscription per block. (57995)
  • Template Part & Query: Avoid server requests on mount. (57987)
  • Template part block: Avoid parsing ALL patterns on mount. (57856)

Block Editor

  • Revert โ€œBlock editor: Avoid list re-rendering on selectโ€. (58147)

Post Editor

  • Editor: Use hooks instead of HoCs forย EditorNotices. (57772)

Experiments

Data Views

  • Add: Bulk actions to dataviews with the new design. (57255)
  • Data view list layout: Fix thumbnail dimensions. (57774)
  • Data views table layout: Update cell vertical alignment. (57804)
  • DataViews: Add description to pages. (57793)
  • DataViews: Add front page to pages page sidebar. (57759)
  • DataViews: Better management ofย layoutย param in templates. (58116)
  • DataViews: Make list layout the default for templates with the experiment enabled. (57933)
  • DataViews: Revert list view as default for pages. (58081)
  • DataViews: Revert list view as default for templates. (58079)
  • DataViews: Set primary field styles. (57846)
  • DataViews: Show loading / no result message for the list layout. (57764)
  • DataViews: Update template parts view. (57952)
  • DataViews: Use button for patterns, pages and templates preview field. (58071)
  • DataViews: Use table layout for templates when experiment disabled. (57960)
  • Stabilise view options button icon. (57964)
  • Update Grid layout design. (57880)
  • Update Pages preview field display. (57919)
  • Update Templates table layout. (57930)
  • Update: Show template sources on templates Dataviews sidebar. (58124)

Synced Patterns

  • Add a control to reset pattern overrides. (57845)
  • Allow heading and button in Pattern Overrides. (57789)

Typography

  • Download then upload font face assets when installing from a collection. (57694)
  • Useย slugย instead ofย idย for Font Collection. (57735)

REST API

  • Font Library Refactor. (57688)

Block Editor

  • Allow drag and drop to create Rows and Galleries. (56186)

Documentation

  • Add a video demonstration to the Quick Start Guide. (57834)
  • Button: Improveย disabled-related prop descriptions. (57864)
  • Components: Move CHANGELOG entries under the correct release. (57885)
  • Docs: Fix typo in โ€œThe block wrapperโ€ document. (58106)
  • Docs: Use โ€˜keyโ€™ in โ€˜editor.BlockEditโ€™ filter code examples. (58119)
  • Document files/directories requiring backmerging to WP CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for 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.. (58064)
  • Fix the iframe markup of the embed video in the Quick Start Guide. (57857)
  • Fix: Link to the nodejs release page. (57816)
  • Fix: Typo on BlockListBlock comments. (57814)
  • Fix: Typos on __unstableSetTemporarilyEditingAsBlocks documentation. (57768)
  • Font Library: Add font collection JSON schema. (57736)
  • Prefixes all php filters with wpdocs_. (53914)
  • Remove the unnecessary TOC and fix grammar/formatting in the Patterns doc. (57825)
  • Remove the ๐Ÿ‘‹ emoji from the Block Editor Handbook. (58023)
  • Update versions-in-wordpress.md. (57916)
  • [Type] Developer Documentation โ€“ Fix removeAllNotices dispatch on the removeAllNotices doc section of wordpress/notices. (57436)

Code Quality

Components

  • PaletteEdit: Improve unit tests. (57645)
  • Tooltip and Button: Tidy up unit tests. (57975)
  • Tooltip: Add test for classname leakage. (58182)
  • Remove unneededย margin: 0ย override forย Noticeย component consumer. (57794)
  • Shadows: Prevent empty style object when removing shadow. (58155)

Block Editor

  • Soft deprecate custom โ€˜pureโ€™ HoC in favor of โ€˜React.memoโ€™. (57173)
  • Stabilise RecursionProvider and useHasRecursion APIs. (58120)
  • Tidy up block patterns selectors. (57913)
  • Shadow: Remove additional wrapper around getShadowClassesAndStyles. (58297)

Block Library

  • Gallery Block: Remove duplicate return statement. (57746)
  • Navigation: Move the renderer class to the main navigation file. (57979)
  • Fix comments block. (57820)
  • Rename __experimentalGetGlobalBlocksByName to getBlocksByName. (58156)
  • Block Hooks API: Remove $post check from Navigation hooked blocks meta fn. (58379)
  • Post navigation link: Coding standard fixes. (58380)
  • Update docblockdocblock (phpdoc, xref, inline docs) for render_block_core_pattern. (58382)
  • Block Hooks API: Update doc block for block_core_navigation_insert_hooked_blocks. (58378)

Font Library

  • Remove WP_Font_Family class that is no longer used. (58184)
  • Font Library: Remove โ€˜versionโ€™ property from font collection schema. (58025)
  • [Fonts API] removing files and files loading no longer needed. (57972)
  • Remove unused utilities and rename class. (58342)
  • Rename the slug of the google fonts collection from โ€˜default-font-collectionโ€™ to โ€˜google-fontsโ€™. (58331)
  • Refactored download/upload logic to support font faces with multiple src assets. (58216)
  • Font Library: Addresses additional REST API feedback. (58333)

Block Directory

  • DownloadableBlocksPanel: Remove withSelect in favor of useSelect. (58109)

Patterns

  • Stabilize the pattern overrides block context. (58102)
  • Remove pattern override experiment completely. (58105)
  • Update pattern overrides to use a hard coded support array. (57912)
  • Block Bindings: Changeย core/pattern-attributesย source forย core/pattern-overrides. (58434)

Block API

  • Block Bindings: Remove the experimental flag. (58089)
  • Block Renaming โ€“ move backported WP 6.5 code to 6.5 compat dir. (58126)

Post Editor

  • Editor: Use hooks instead of HoCs in โ€˜PostScheduleCheckโ€™. (57833)

Script Modules API

  • Update the code and move it to the compat/wordpress-6.5 folder. (57778)

Data Views

  • Remove obsolete check from dataviews modal actions title. (57753)

Interactivity API

  • Removeย data-wp-slotย andย data-wp-fill. (57854)
  • Remove unusedย stateย and renameย propsย toย attributesย inย getElement(). (57974)

HTML API

  • Backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. updates from Core. (57022)

Custom Fields

  • Block Bindings: Simplify block bindings object. (58337)
  • Block Bindings: Adapt block bindings to wordpress code latest changes. (58383)

Tools

Testing

  • Addย setGutenbergExperimentsย toย requestUtils. (56663)
  • Add: End to end test to content locking stop editing as blocks behavior. (57812)
  • Attempt to fix php unit tests (variations api change). (58090)
  • Migrate โ€˜block groupingโ€™ end-to-end tests to Playwright. (57684)
  • Migrate โ€™embeddingโ€™ end-to-end tests to Playwright. (57969)
  • Migrate โ€˜typewriterโ€™ end-to-end tests to Playwright. (57673)
  • Remove unused Navigation block end-to-end test fixtures. (57848)

Build Tooling

  • Update caniuse-lite package. (58087)
  • Update the cherry pick script to work with the new version of gh. (57917)
  • Scripts: Remove unused variable in bin/list-experimental-api-matches.sh. (57771)
  • (chore) Revert bump to the v17.5.1 (draft) due to 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. in the release found by manual testing. (58027)
  • Fix misplaced ReactRefreshWebpackPlugin. (57777)
  • Automate creation of Issue for major release PHP synchronisation. (57890)
  • Remove check-latest-npm validation. (57797)
  • core-js: Only polyfill stable features. (57674)

First time contributors

The following PRs were merged by first time contributors:

  • @kt-12: Call variation through callback so itโ€™s only loaded when needed โ€“ in support of trac 59969. (56952)
  • @leomuniz: [Type] Developer Documentation โ€“ Fix removeAllNotices dispatch on the removeAllNotices doc section of wordpress/notices. (57436)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshawย @aferciaย @ajlendeย @andrewserongย @annezazuย @artemiomoralesย @arthur791004ย @atachibanaย @bacoordsย @bphย @brookewpย @c4rl0sbr4v0ย @carolinanย @chad1008ย @ciampoย @creativecoderย @DAreRodzย @dcalhounย @derekblankย @dmsnellย @draganescuย @dsasย @ecganย @ellatrixย @fluiddotย @fullofcaffeineย @gaamboย @geriuxย @getdaveย @glendaviesnzย @gonzomirย @inc2734ย @jameskosterย @jeryjย @jffngย @jorgefilipecostaย @jsnajdrย @kevin940726ย @kt-12ย @leomunizย @luisherranzย @madhusudhandย @MaggieCabreraย @Mamadukaย @matiasbenedettoย @mcsfย @michalczaplinskiย @mikachanย @mirkaย @ndiegoย @noisysocksย @ntsekourasย @oandregalย @ockhamย @oguzkocerย @pbkingย @ramonjdย @richtaborย @SantosGuillamotย @scruffianย @SiobhyBย @sirrealย @swissspidyย @t-hamanoย @talldanย @tellthemachinesย @tjcafferkeyย @tyxlaย @vcanalesย @youknowriad

Props toย @jameskosterย for visuals assets and @cbringmann for peer-review

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