A Week in Core – February 26, 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 19 and February 26, 2024.

  • 53 commits
  • 100 contributors
  • 73 tickets created
  • 5 tickets reopened
  • 71 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

Build/Test Tools

  • Bump the Node.js version for Codespaces – #60555
  • Fix docblocks in a couple of test files to use two asterisks – #60513
  • Revert r57684#59647
  • Update JSHint config to remove deprecated options – #28236
  • Mock 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 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 tests – #59647
  • Query mariadb.org instead of mariadb.com in README test – #59647
  • Synchronize 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. 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. between Core and GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/#60387
  • Use assertSame() in WP_REST_Navigation_Fallback_Controller tests – #59655
  • Use assertSame() in comment_exists() tests – #59655
  • Use assertSame() in new_admin_email_subject 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. test – #59655
  • Use assertSame() in wp_insert_post() tests – #59655
  • Use assertSame() in wp_read_image_metadata() tests – #59655

Bundled Themes

  • Twenty Twenty-Three: Update XX-large font-sizes for 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)#58603

Coding Standards

  • Fix alignment in tests – #34668
  • Correct alignment in wp_get_attachment_image_src()#59650

Docs

  • Add a @since note for $preferred_ext parameter in wp_mime_type_icon()#31352
  • Correct the URLs that document the available images for 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/. and MariaDB for the local development environment – #59930
  • Improve docblockdocblock (phpdoc, xref, inline docs) for $x_redirect_by param in wp_redirect()#60209
  • Use more inclusive term in rest_filter_response_fields docblock – #59651

Editor

  • Add fallback for blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. version when registering block script module – #60233
  • Add id to the supported Image’s binding attributes – #60577
  • Allow symlinks in directories provided to get_block_asset_url()#59175, #58525
  • Ensure font collection metadata can be properly localized – #60509
  • Fix instance element styles for links applying to buttons – #60557
  • Format and sanitize font family names according the CSSCSS Cascading Style Sheets. spec – #60537
  • Improve PHPUnit tests for block pattern registration – #59532
  • Load pattern content only when used – #59532
  • Update Packages with the latest bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes for 6.5 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. 2 (Round 2) – #60315
  • Update Packages with the latest bug fixes for 6.5 beta 2 – #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.: Allow hooked_block filters to return null – #60580
  • Block Hooks: Fix actual/expected order in test assertions – #60506
  • Block Hooks: Introduce a new hooked_block filter – #60574
  • Block Hooks: Make test a bit easier to read – #60580

Export

  • Include featured imageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. for posts or pages – #17379

General

  • Handle missing field in WP_List_Util::pluck() – #59774

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.

  • Do not set translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. controller localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English. in bootstrap – #59656

Media

  • Ensure wp_mine_type_icon() returns expected file type – #31352
  • Fix broken media modal following [57688]#58973
  • Prevent Media Library 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. from showing with no actions – #58973

Plugins

  • Plugin Dependencies: Remove auto-deactivation and bootstrapping logic – #60457, #60491, #60510, #60518
  • Output plugin card elements in the order they’re displayed – #60488

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

  • Pass correct context to embedded items – #43439

Script Loader

  • Add hooks for script modules and interactivity API only on after_setup_theme#60411
  • Fix small typo in wp_remove_surrounding_empty_script_tags docblock – #60591
  • Inject wp_remove_surrounding_empty_script_tags function name in returned error string using sprintf – #60590

Shortcodes

  • Fix small typo in inline documentation – #60603

Themes

  • Use original template paths when switching blogs – #60290

Toolbar

  • Accessibility: Keyboard navigation for screen readers – #34668, #43633

Upgrade/Install

  • Fix upgrade count decrement on Updates page – #60589
  • Improve plugin install button appearance – #60494
  • Normalize major versions in is_wp_version_compatible()#59448

Props

Thanks to the 100 (!) people who contributed to WordPress Core on Trac: @swissspidy (16), @costdev (8), @joedolson (6), @mukesh27 (6), @joemcgill (5), @youknowriad (5), @gziolo (4), @huzaifaalmesbah (4), @afragen (3), @hellofromTonya (3), @shailu25 (3), @SergeyBiryukov (3), @sabernhardt (2), @afercia (2), @netweb (2), @azaozz (2), @kkmuffme (2), @thekt12 (2), @Ankit-K-Gupta (2), @zunaid321 (2), @antpb (2), @poena (2), @dhruvishah2203 (2), @mmaattiiaass (2), @spacedmonkey (2), @jghazally (2), @audrasjb (2), @aaronrobertshaw (2), @get_dave (2), @scruffian (2), @abletec (1), @Cheffheid (1), @alexstine (1), @sparklingrobots (1), @danieltj (1), @dionysous (1), @jorbin (1), @sessioncookiemonster (1), @wazeter (1), @oglekler (1), @kevin940726 (1), @naoki0h (1), @kirasong (1), @iamarunchaitanyajami (1), @davidbinda (1), @helgatheviking (1), @nendeb55 (1), @mikachan (1), @ryokuhi (1), @sruthi89 (1), @nithi22 (1), @ivanzhuck (1), @ukdrahul (1), @grantmkin (1), @flixos90 (1), @manfcarlo (1), @metropolis_john (1), @jeremyfelt (1), @aristath (1), @billseymour (1), @nateallen (1), @petitphp (1), @duck_ (1), @jane (1), @rcain (1), @smub (1), @batmoo (1), @axwax (1), @creativeslice (1), @dlocc (1), @nacin (1), @wonderboymusic (1), @ganon (1), @hlashbrooke (1), @chriscct7 (1), @fischfood (1), @hifidesign (1), @bosskhj (1), @antonlukin (1), @maxpertici (1), @peterwilsoncc (1), @joshuatf (1), @tomjcafferkey (1), @itschristiandale (1), @mahnewr (1), @rudlinkon, @kraftbj (1), @freewebmentor (1), @ajlende (1), @dennysdionigi (1), @bgardner (1), @westonruter (1), @bernhard-reiter (1), @mamaduka (1), @timothyblynjacobs (1), @dd32 (1), @desrosj (1), @pbiron (1), @nithins53 (1), @kafleg (1), and @vivekawsm (1).

Congrats and welcome to our 14 (!) new contributors of the week: @jghazally, @abletec, @sessioncookiemonster, @wazeter, @iamarunchaitanyajami, @sruthi89, @ukdrahul, metropolis_john, @billseymour, @rcain, @axwax, @creativeslice, @ganon, @hifidesign ♥️

Core committers: @swissspidy (13), @sergeybiryukov (7), @joedolson (6), @youknowriad (5), @costdev (4), @joemcgill (3), @hellofromtonya (3), @bernhard-reiter (3), @audrasjb (3), @gziolo (2), @peterwilsoncc (1), @kadamwhite (1), @johnbillion (1), and @desrosj (1).

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

Summary, Dev Chat, February 21, 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 and facilitation: props to @joemcgill

Announcements

WordPress 6.5 Beta 2 was released on February 20, 2024. Thanks to everyone involved and who came to help test.

Gutenberg 17.8 release is planned for Feb 28, 2024. Please help test.

Forthcoming Releases

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 shared that there is a Hallway Hangout planned for the same day as the 6.5 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. 3 release, next week. To help with a smooth release process in order to avoid a scheduling conflictconflict A conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved., she asked for volunteers for committing and Mission Control (MC). @audrasjb, @swissspidy, @davidbaumwald all agreed to be available with @hellofromtonya saying that she’ll be available to help during RCs

@joemcgill reminded everyone that we are 2 weeks away from 6.5 RC1, and dev-notes should be published as soon as possible to be included in the 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..

  • The documentation team has this this project board that is being used to track dev-notes.
  • This report on Trac shows that there are additional tickets marked with needs-dev-note.
  • @swissspidy expressed concern that the process for dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. is not clear this release, which led to some further discussion. @joemcgill pointed out that we should be following the process included in the handbook, or making sure that it is updated to be accurate.

Discussions

Check in on the recent experimental format for Dev Chats, specifically to not share highlighted posts during the meeting and instead focus on discussion of an open proposal. (Slack link)

To summarize the main topics that were raised during that discussion:

  1. Overall, response to the new format is positive.
  2. @jorbin suggested “for Alpha time, it was fantastic. I wonder if it would make sense to move more towards a focus of “How can we help the next release” during beta/RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). and then come back to the proposals”.
    • @joemcgill agreed to prioritize release discussion over proposals during the rest of this release cycle.
  3. @joemcgill asked for feedback on how to ensure we’re choosing the most useful topics for discussion
    • @jeffpaul: Seems there’s a backlog of things we could continue to pull from the Community Summit posts?
    • Action: propose a way for us to collect and nominate priorities for future discussions.

If you have additional ideas for topics that should be discussed in future meetings, or ideas for how to better organize/prioritize topics for discussion, please share in the comments.

Highlighted posts

The full list of posts from the last week in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. can be read on the agenda at this link.

Also, from last week’s agenda, this section provides updates on the core-editor and the Developer blog, including the latest topics that need writers.

Open floor

@costdev provided an update on the 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 for 6.5.

Key updates:

  1. Auto-deactivation of plugins with unmet dependencies, all bootstrapping logic, and the plugin_data option have been removed, and Plugin Dependencies now mostly runs on plugins.php and plugin-install.php.
    • This significantly reduces the footprint of Plugin Dependencies, removes the risk of the database and cache becoming out-of-sync on high traffic sites, and resolves a concern about consent-less deactivation of plugins.
  2. An 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) issue has been fixed.
  3. Plugin updates on plugins.php were failing due to some JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. that I had not guarded correctly. This has been fixed.
  4. Most of the remaining work is on messaging, and is making steady progress (PRs in re-review stage).

Here’s a summary of where things stand with each ticketticket Created for both bug reports and feature development on the bug tracker., which we’ll also be posting the meeting summary on Make/Core following this evening.

Props to @azaozz for reviewing.

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

Summary, Dev Chat, February 14, 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: props to @webcommsat

Facilitator dev chat: props to @joemcgill

Forthcoming Releases

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 another request this week 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.

@webcommsat asked if there was an update on scheduled 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 during the betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. period of 6.5. In the meantime, she marked the current schedule post as sticky as requested by @oglekler.

  • Action: The triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. leads for 6.5 can update the post with scheduled dates for 6.5

Maintenance releases

There is one ticket in the 6.4.4 milestone that is ready for back-porting. However, @jorbin advised that he does not currently expect another maintenance release before 6.5.

Discussions

Proposal: Implement a PHP autoloader in WordPress Core (Slack link)

To summarize the main topics that were raised during that discussion:

  1. A decision needs to be made about how to handle early loading/overriding of coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. classes. This seems to be the primary concern to address.
  2. There is some concern about the implementation requiring manual updating of the class file, though it’s acknowledged that this change that can be addressed in the future.
  3. A request was made that the previous blocking concerns raised in the original proposal ticket should be summarized and addressed in the new ticket, or the new one closed as duplicate unless there is substantive differences in what is being proposed beyond implementation details.

This will likely need to be included early in a release cycle (WordPress 6.6 at the earliest) and will likely need support of a core committer to help shepherd into the project.

Highlighted posts

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

Also, from last week’s agenda, this section provides updates on the core-editor and the Developer blog, including the latest topics that need writers.

Open floor

@costdev provided an update on the 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 for 6.5.

We’ve been triaging and resolving some issues since commit, many of them minor and we’ve discussed some of the larger issues and are on the path to resolving those.

After the meeting concluded, the team published the following post:
Merge Announcement: Plugin Dependencies

Props to @webcommsat for reviewing.

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

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 5.6.20 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

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

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 5.6.20 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

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

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

Dev Chat Summary, January 31, 2024

Start of meeting on Slack

This Dev Chat continues the experiment to focus chat time on discussions related to open CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. proposals and release issues, rather than repeating links already highlighted in the curated agendas.

Announcements

Following announcement of yesterday’s 6.4.3 release, @jorbin noted that there was one issue of note, but that there were workarounds available at this time. @jorbin further gave props to those who helped facilitate the release.

@hellofromtonya shared that @joemcgill has accepted his nomination to serve as a 2024 Core team rep 🎉. The search continues for a co-rep, where it’s been noted that a contributor from the Core Editor team would be a great compliment, though not required. Nominations remain open until April 1, 00:00 UTC.

Discussion on open proposals in Core

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. Publish Date

Link to post: Proposal: An update to the Field Guide

Conversation start link

Comments:

  • @jorbin was under the impression that neither the dev blogblog (versus network, site) team nor 6.4 release leads were interested in moving forward with the proposal. @webcommsat shared that 6.4 docs release leads didn’t see 6.4 as the deadline, and discussions were continuing. @joemcgill agreed that the proposal wasn’t release specific, but rather an adjustment to timing of when field guide information is released. @hellofromtonya also added that the dev blog team has opened a discussion to track the second part of the proposal.
  • @jeffpaul referred to @chanthaboune‘s comment of where best to separate field guide content based on audiences, suggesting the proposal could be adjusted accordingly. @jeffpaul added that some folks have difficulty processing field guide information to determine what is relevant and actionable, which @hellofromtonya agreed should be explored. @webcommsat agreed with the notion to target field guide content to particular audiences, but also to look at how it relates to other new content produced for the release.
  • @jeffpaul suggested the potential to target content according to the five user groups identified in Care and influence: a theory about the WordPress community.
  • @ironprogrammer asked if the field guide info would be more easily consumable if it was split into a canonical structure, such as wordpress.org/6-5/field-guide/, with subpages that match particular areas or audiences.
  • @webcommsat noted that segmentation between audiences has grown, and suggested it’s a good time to use teams’ audience-specific insights to improve the field guide format. She added that exploring how best to utilize the limited people and time for the Docs team would be an important factor in implementing improvements. @jeffpaul agreed with concerns around challenges in gathering/publishing content, but noted that the issue should be considered as separate from the proposal.
  • @jorbin shared that the original published field guide was the result of an overly long email sent to pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party developers.
  • First-time Docs Co-Lead @estelaris 🎉 asked about adding additional comments to the proposal. @jorbin noted that Make/Core comments close automatically after 180 days (~6 months). @costdev shared that adding the #keep-comments-open 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.) would reenable them, but recommended removing the tag once an updated timeframe for feedback has been reached. @jorbin updated the Core handbook to reflect this info.
  • @joemcgill pointed out that the team should review all current channels where field guide-related content is published, to check whether only updating the field guide [in one place] would sufficiently improve the broader sharing of release updates to the community. He suggested engaging with the Docs and Marketing teams to move forward, and @estelaris noted she would begin by sharing with Docs. @webcommsat suggested looping in Training as well. @laurlittle noted that the Marketing team could brainstorm on the proposal for future releases, if not 6.5.
  • In response to @joemcgill, @webcommsat noted that there have been past lists of channels and audiences, and suspects more current info should be available. She also suggested it might be helpful to have a single post that links out to the various user groups identified earlier, and to link to that post from the About page.
  • @jorbin referred back to @jeffpaul‘s input and asserted that the dev blog and other team areas might be better places to communicate field guide information, as opposed to Make/Core. @hellofromtonya asked if, considering this perspective, the proposal was actionable by the Core team, or if the proposal should be re-worked as a cross-team collaboration. @jorbin suggested that the teams publishing the field guide info would take on the proposal.
  • @joemcgill noted that it can be difficult to know the status of a proposal, suggesting some way of flagging these posts. @marybaum suggested a visual system to convey “stalled”, “live”, etc, and @joemcgill raised the idea of 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. pattern. @desrosj shared that in past proposals (example) he has added status info to the top of the post, assuming the status was clear.
  • @hellofromtonya wrapped up the discussion based on the chat, concluding that the proposal be marked closed (“not accepted”), or must be picked up by another team(s).

Actions:

  • Part 1: Move Make/Core field guide publication ahead one week, aligning with last scheduled 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., rather than RC1. Not accepted ❌
  • Part 2: Start publishing a simplified field guide to the WordPress Developer Blog. Not accepted ❌
  • Other teams to explore revising and adopting this proposal:
    • @estelaris to share the proposal with Docs.
    • @laurlittle to raise the proposal to Marketing for possible brainstorm.
    • @webcommsat to 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. in Training to gauge their interest in furthering the proposal.
    • To highlight in dev blog.

Open Floor

Props @hellofromtonya for peer review.

#6-4, #6-5, #core, #core-editor, #dev-chat, #meeting, #summary

A Week in Core – January 29, 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 22 and January 29, 2024.

  • 48 commits
  • 64 contributors
  • 60 tickets created
  • 4 tickets reopened
  • 67 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

Build/Tests Tools

  • Configure prettier properly – #60316
  • Update the caniuse data – #59657
  • Update third-party 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 be the repository owner. https://github.com/ Actions – #59805
  • 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
  • Ensure set_error_handler is cleaned up – #60305
  • Expand sanitize_text_field() tests – #60357

Bundled Themes

  • Twenty Twenty-Four: Change font family slug to lowercase – #60325

Coding Standards

  • Add missing escaping functions to WP_Customize_Control and WP_Customize_Nav_Menu_Location_Control#60324
  • Add missing escaping in Custom_Image_Header::step_2()#59278
  • Fix some spaces on 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.-supports background
  • Remove unnecessary access and internal annotations from two functions in WP_REST_Templates_Controller – #60358
  • 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 type check for in_array() in get_hooked_block_markup()#60279

Docs

  • Add missing full stop in WP_Comment_Query::parse_query() DocBlockdocblock (phpdoc, xref, inline docs)#60323
  • Fix a few typos in wp-includes/pomo/po.php#60346
  • Fix typo in _get_block_template_file() DocBlock – #59651
  • Improve various globals documentation, as per docblock standards – #59255, #59651
  • Typo correction in wp_internal_hosts docblock – #60363

Editor

  • Add Block Bindings 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. helpers – #60282
  • Add original_source and author_text to the templates 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/.#60358
  • Add registry for block binding sources – #60282
  • Add video and audio pattern categories – #60342
  • Define the labels of the pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. 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.#60322
  • Ensure PHPUnit10 compatibility for ThemeJson 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.#60305
  • 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. application of custom root selector for styles – #60343
  • Fix back to items label capitalization for the pattern categories – #60322
  • Set show_tagcloud to false for Pattern Categories – #60119
  • Unset reference used in foreach statement – #60326
  • Update the ThemeJson unit test to cover custom CSSCSS Cascading Style Sheets. feature – #60294
  • Update the WordPress packages to 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/ 16.7 RC2 version – #60315
  • fix classname output on blocks without layout – #60292
  • fix fluid font division by zero error when min and max viewport widths are equal – #60263
  • Amend PHPDocPHPDoc (docblock, inline docs) for hooked_block_{$hooked_block_type} filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.#59572, #60126
  • Introduce a new hooked_block_{$block_type} filter – #59572, #60126

General

  • Add $schema property to block and theme JSON files – #60255

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

  • Scan all syntax tokens in a document, read modifiable text – #60170
  • Support INPUT tags – #60283
  • Support PARAM, SOURCE, and TRACK tags – #60283

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 variable in string replacement – #59656
  • Improve docblocks after [57337]#59656
  • Improve edge case handling in WP_Translation_Controller#59656
  • Introduce a more performant localization library – #59656
  • Rename WP_Translation_Controller::instance() method to get_instance()#59656

Media

  • Redirect inactive attachment pages for logged-out users – #59866, #57913

Script Loader

  • Clarify in docs that wp_get_inline_script_tag() and wp_print_inline_script_tag() can take non-JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. data – #60331
  • Load the modules to the footer in classic themes – #60240
  • Only emit CDATA wrapper comments in wp_get_inline_script_tag() for 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/.#56313, #60320
  • Script Modules API: Rename wp_module to wp_script_module#56313

Props

Thanks to the 64 people who contributed to WordPress Core on Trac: @swissspidy (9), @mukesh27 (8), @gziolo (6), @jonsurrell (6), @get_dave (5), @audrasjb (5), @shailu25 (4), @dmsnell (4), @luisherranz (3), @jorbin (3), @andrewserong (3), @westonruter (3), @flixos90 (3), @jrf (2), @isabel_brison (2), @costdev (2), @peterwilsoncc (2), @antonvlasenko (2), @czapla (2), @artemiosans (2), @santosguillamot (2), @sc0ttkclark (2), @lgladdy (2), @talldanwp (2), @youknowriad (2), @fabiankaegy (2), @nareshbheda (2), @ntsekouras (2), @poena (2), @aaronrobertshaw (2), @bernhard-reiter (2), @joemcgill (2), @wildworks (2), @desrosj (1), @upadalavipul (1), @viralsampat (1), @sabernhardt (1), @pbearne (1), @vladimiraus (1), @kebbet (1), @afercia (1), @aristath (1), @chesio (1), @joppuyo (1), @lakshmananphp (1), @sergeybiryukov (1), @johnbillion (1), @tomjcafferkey (1), @timbroddin (1), @yansern (1), @RavanH (1), @onemaggie (1), @huzaifaalmesbah (1), @dlh (1), @zieladam (1), @cbravobernal (1), @hardik2221 (1), @dd32 (1), @akirk (1), @ramonopoly (1), @idad5 (1), @nefff (1), @jonsurrel (1), and @kamranzafar4343 (1).

Congrats and welcome to our 2 new contributors of the week: @vladimiraus, @hardik2221 ♥️

Core committers: @youknowriad (11), @sergeybiryukov (7), @swissspidy (6), @dmsnell (4), @desrosj (3), @jorgefilipecosta (3), @audrasjb (3), @bernhard-reiter (3), @gziolo (2), @westonruter (2), @jorbin (2), and @isabel_brison (2).

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

Dev Chat Summary, January 24, 2024

Start of meeting on Slack facilitated by @webcommsat

This DevChat starts with an experiment to shift the chat to synchronize discussions on open coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. proposals and release issues rather than reproducing links highlighted in the curated agendas.

Discussion on open proposals in Core

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.

Link to post: Proposal: The Interactivity API – A better developer experience in building interactive blocks

Conversation start link

Comments:

  • The API is well beyond the proposal stage, with nothing actionable in discussion.

Actions:

  • The proposal should be considered “accepted”.

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. API: Introduce WP_HTML::tag() for safely creating HTML

Link to PR (draft): https://github.com/WordPress/wordpress-develop/pull/5884

Conversation start link

Comments:

  • This PR was raised along with the question of how items should be added to the agenda. It was clarified that topics can be added as comments to the previous week’s chat summary, or to the current week’s agenda post (typically published on Tuesdays). And of course, any item can be raised during the open floor section of Dev Chat.
  • @dmsnell indicated that the PR for consideration is a scaled back version of a larger templating system proposal, which will not be ready for 6.5. The PR adds a helper utility, WP_HTML::tag(), to conveniently generate single HTML tags with attributes. The impetus for this feature is to provide Core and extenders a safer way to generate HTML tags, compared with reliance on proper usage of functions such as esc_attr(), which might be overlooked and introduce HTML injection vectors.
  • @jorbin would prefer that any new APIs be used by Core itself, and that there be accessory patches prepared that demonstrate how the function integrates and operates in Core. It was also suggested that a Make/Core proposal would help with gathering broader input.
  • @azaozz pointed out that enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. tickets in TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. are another form of “proposal”, and can also result in healthy discussion. He suggested starting the discussion in Trac, and then utilizing a Make/Core proposal if the ticketticket Created for both bug reports and feature development on the bug tracker. isn’t sufficient to establish consensus.
  • There continued discussion around how Core generates HTML currently, which relies on proper use of esc_*() and echo(), as well as a broader discussion around safely generating HTML. Got feedback? Join the conversation 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/., or leave a comment below.

Actions:

  • @dmsnell to create a Trac ticket and/or Make/Core proposal to discuss introduction of WP_HTML::tag().
  • @dmsnell to consider a future Make/Core proposal for the HTML API templating system, and continued discussion around generating safe HTML.

Forthcoming releases

6.4.3

Conversation start link

  • @jorbin shared the remaining open tickets for this milestone, which are scheduled for review and commit prior to a Thursday (Jan 25) RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta).:
    • #60025 – This needs additional review and testing. Any help is appreciated
    • #59866 – @peterwilsoncc and I have been work on the one and I should have an update in the next 12 hours.
  • @joemcgill requested help reviewing the approach proposed in #5926 Cache locate template paths, which would address both #60025 and #60290.

6.5

Conversation start link

See this section in the agenda for updates, helpful links, and information for the 6.5 release.

Comments:

  • @oglekler pointed out that there are several early 6.5 tickets that need attention, asking for review as some might have the potential to be completed in time for BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process..
  • @hellofromtonya indicated that the 6.5 cycle is past the “early part of alpha”, suggesting these may need to be punted if they truly require a long runway for soak time and discussion.
  • @azaozz agreed that the early keyword indicates a need for comprehensive testing, and possible reconsideration of the milestone if the testing hasn’t occurred. He also suggested that while not required, it might be preferable to fix old/known bugs during alpha, and allow beta testers to focus on “new” bugs introduced from Beta 1 and onward.
  • @jorbin suggested two interpretations of early; i.e. actually early in the alpha cycle, or just before Beta 1.
  • @hellofromtonya noted that since Beta 1 is the puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.) milestone for enhancements/features, that in her perspective, early should apply to early in the alpha cycle. She cited changes to WP_Query as an example where early would apply.
  • @afragen observed that it doesn’t seem that many early tickets are committed early in the cycle.

Open Floor

Props @hellofromTonya for peer review.

#6-4, #6-5, #core, #core-editor, #dev-chat, #meeting, #summary