A Week in Core – July 31, 2023

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 July 24 and July 31, 2023.

  • 21 commits
  • 40 contributors
  • 64 tickets created
  • 12 tickets reopened
  • 39 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

  • Update dashboard welcome panel for 6.3 – #58545

Bundled Themes

  • Bump version numbers for WordPress 6.3 – #57857
  • Twenty Twenty-One: Enable Dark Mode in the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.#58835

Editor

  • Fix abbreviations of “Example” in block-template-utils.php#58879
  • Fix conditionals in Template Editing Mode – #58889
  • fix duplication in templates list – #57756
  • fix popover positioning – #58847
  • initial update of npm packages for 6.3 RC3 – #58926
  • load title on navigation fallback – #58557
  • second update of npm packages for 6.3 RC3 – #58926
  • update npm packages with 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.3 RC2 – #58804

Help/About

  • Add illustrations to the Get Involved tab – #23348
  • Escape “Contribute” links, for better consistency – #23348
  • Fix the Get Involved tab on Networknetwork (versus site, blog) Adminadmin (and super admin)#23348
  • Make Contribute links translatable – #23348
  • Remove target="_blank" from the Contribute link – #23348
  • Update “Get involved in WordPress” link on the Credits tab – #23348
  • Updates to About page – #58067

Media

  • Fix Image rotation button overflow in translations – #58877

Props

Thanks to the 40 people who contributed to WordPress Core on Trac last week:

@audrasjb (9), @ramonopoly (5), @markoserb (3), @spacedmonkey (3), @richtabor (3), @mukesh27 (3), @peterwilsoncc (3), @kebbet (2), @joedolson (2), @isabel_brison (2), @huzaifaalmesbah (2), @courane01 (2), @ryelle (2), @davidbaumwald (2), @Ankit K Gupta (1), @jordesign (1), @azaozz (1), @bhrugesh12 (1), @nekojonez (1), @andrewserong (1), @oandregal (1), @scruffian (1), @get_dave (1), @flixos90 (1), @Mamaduka (1), @hasanuzzamanshamim (1), @fierevere (1), @bgardner (1), @mikinc860 (1), @poena (1), @joemcgill (1), @swissspidy (1), @sereedmedia (1), @sabernhardt (1), @kafleg (1), @jakariaistauk (1), @hareesh-pillai (1), @tobifjellner (1), @oglekler (1), and @sergeybiryukov (1).

Core committers: @audrasjb (17), @isabel_brison (2), @sergeybiryukov (1), and @joedolson (1).

#6-3, #core, #week-in-core

Performance Chat Agenda: 1 August 2023

Here is the agenda for this week’s performance team meeting scheduled for Aug 1, 2023 at 15:00 UTC. If you have any topics you’d like to add to this agenda, please add them in the comments below.


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

#agenda, #meeting, #performance, #performance-chat

Proposal: improve the editor tech workflow for major releases

Following on from this conversation, let’s look at how this process can be run more smoothly!

The Problem

Updating coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. with the latest features from 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/ 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 almost always causes problems and delays at release time. Historically, it has been done in a large batch just before 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, and the volume of changes means there is a high probability of something going wrong in the process.

A brief look through the “retrospective“ tag shows this has been a 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. pain point for a while.

The idea of syncing Gutenberg code to core earlier in the release cycle has often been mentioned as a way to fix or at least ease the pain of this process: by merging new features into core as they are developed, it’s possible to fix any bugs identified during the process as they are caught, the new features get a little extra testing in 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., and most importantly, the risk of things going wrong on the eve of major release milestones is substantially reduced, with much less stress for all involved.

So, let’s get doing this! But… why has this idea been recurrently mentioned as a good solution, and still not implemented?

The answer lies mostly in the Gutenberg development process, and its differences from the rest of core.

Iterative code

Developing features in Gutenberg often starts as a quick, messy experimental process, before stabilising into mature, tested, shippable code. And there are multiple features simultaneously in development, which means that at any given point, there is some amount of unstable code in the plugin, which is undesirable to have in core. 

The good news is that there are mechanisms already available to avoid merging unstable code into core: using the IS_GUTENBERG_PLUGIN flag means that code won’t run in core. The historical __unstable and __experimental prefixes previously used in functions are being replaced with a private 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. system that makes experimental code inaccessible to extenders.

These mechanisms are not uniformly enforced during development though, and this is where there is some room for improvement. Whereas it’s possible to measure things like code coverage, there is no good way to automate checking whether code is otherwise stable or not, so implementation is largely up to individual contributors. Here is where documentation of expectations for the development process might be useful, so folks are aware that these rules exist and why.

Package ecosystem problems

Given that core largely consumes Gutenberg code in the shape of npm packages, there are occasional hiccups due to breaking changes in dependencies that are only noticed in core. This is because the package install process pulls the latest versions of all nested dependencies that might have not yet been updated in Gutenberg. This is the sort of problem that would hugely benefit from being detected early on, so that Gutenberg code can be updated to support the breaking changes.

One thing that could help here is regenerating the package-lock file in Gutenberg and committing it back to the repo when packages are published, so that any updated dependencies can be tested as part of the plugin release process.

Fixing dependency-related breakage also needs to be prioritised, and often during the Alpha part of the cycle developers are busy building out features so it’s easy for these bugs to slip between the cracks.

One thing that could mitigate this issue is nominating the release team (or at least the editor tech part of the team) for the next release before the current release ships. The overlap would allow for handover, so the new team is aware of any pending issues that didn’t get solved during the previous cycle, and able to coordinate fixing them, or at least not be tripped up by unexpected bugs. This means there will always be someone with ownership of the process to follow up with these issues.

Release cycle timing

Another point to consider is that the core workflow of committing changes to trunk before backporting them to the release 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"., is an impediment to updating packages in trunk with the latest changes from Gutenberg until after the stable release ships. This is because the package updates for the 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). will be committed to trunk, and those package versions have only the 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 necessary for the release. 

This may not be a huge problem though, as starting the sync process only after the stable release still leaves plenty of time for testing and solving any issues.

To summarise: what needs to be done in order to successfully start syncing core and Gutenberg earlier in the release cycle?

  • On the Gutenberg side, make sure all experimental/unstable code is made private and/or put behind a feature flag;
  • On the release organisation side, have some overlap between release teams so handover is easier and ownership of ongoing issues isn’t dropped.

Further suggestions, problems, feedback and ideas are very welcome!

Thanks to @andrewserong, @ramonopoly and @mamaduka for reviewing this post and @0mirka00 and @noahtallen for the package-lock suggestion 🙂

#block-editor, #gutenberg, #release-process

Editor Chat Agenda: August 2nd 2023

Facilitator and notetaker: @fabiankaegy

This is the agenda for the weekly editor chat scheduled for Wednesday, August 2nd 2023 at 16:00 CEST The meeting is held in the #core-editor channel in the Making WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

  • Announcements
  • Project updates
  • Task Coordination
  • Open Floor – extended edition.

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

  • If you have an update for the main site editing projects, please feel free to share as a comment or come prepared for the meeting itself.
  • If you have anything to share for the Task Coordination section, please leave it as a comment on this post.
  • If you have anything to propose for the agenda or other specific items related to those listed above, please leave a comment below.

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

What’s new in Gutenberg 16.3? (26 July)

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

Gutenberg 16.3 has been released and is available for download!

16.3 is largely a maintenance release. This means that lots of bugs have been fixed behind the scenes, though this release does see some enhancements to patterns in addition to plenty of other minor improvements. Read on to find out how working with patterns has been improved.

This release consists of 180 pull requests authored by 54 contributors, including three new contributors! 🎉

Table of contents

  1. ‘Focus mode’ editing for patterns
  2. Sticky header bar on Patterns page
  3. Rename, duplicate, and delete patterns
  4. Changelog
  5. First time contributors
  6. Contributors

‘Focus mode’ editing for patterns

When editing template parts in the Site Editor the interface is in ‘focus mode’. However ‘focus mode’ was not previously available when working with patterns. This release enables ‘focus mode’ editing for patterns. (52427)

Sticky headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. bar on Patterns page

Previously on the Patterns page the header bar containing the search box scrolled out of view when you scrolled down the page. Other pages, such as the Templates page, did not have this problem and the header bar remained in view while scrolling the page. Gutenberg 16.3 fixes this and the header bar now remains firmly fixed to the top of the screen when you scroll the Patterns page. (52663)

Rename, duplicate, and delete patterns

Patterns now have a drop-down menu, accessed via the three dots, that allows you to rename, duplicate, and even delete patterns easily. Performing these operations has now been made much easier than it previously was.. (52270)

Changelog

Enhancements

Site Editor

  • Add delay and fade-in animation to loading spinner. (51902)
  • Make “My patterns” categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. permanently visible. (52531)
  • Remove “Theme patterns” heading in Pattern library. (52570)
  • Remove 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. group descriptions. (52453)
  • Show warning on removal of Post Template 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. in the site editor. (52666)
  • Swap pattern creation options. (52726)
  • Update Dashboard button tooltips in the site editor. (52465)
  • Update Site Editor frame z-index. (52180)
  • Update locked pattern tooltips. (52497)
  • Update navigation menuNavigation Menu A theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. title size & weight in detail panels. (52477)
  • Update pattern library copy. (52340)
  • Show more intuitive archive titles on Query Title block. (52521)
  • Adapt template part hint copy. (52527)

Patterns

  • Add hint to show template part move. (52395)
  • Add renaming, duplication, and deletion options. (52270)
  • Add sync tooltip. (52458)
  • Display all custom template part areas in sidebar nav. (52355)
  • Don’t override the rootClientID in create menu – only set if undefined. (52713)
  • Enable focus mode editing. (52427)
  • Remove reusable text from menu once rename hint has been dismissed. (52664)
  • Stop endless snackbars appearing. (52012)
  • Sticky header and pagination on Patterns page. (52663)
  • Update manage pattern links to go to site editor if available. (52403)
  • Separate sync status into a 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. control. (52303)

Components

  • Adding support for defined IDs in TextControl component. (52028)
  • Updated “position” default value. (52148)

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.

  • Add filter to turn off Interactivity API for a block. (52579)
  • Add runtime support for the wp-style directive. (52645)

Block Library

  • Add back old Navigation and File blocks 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/. implementation when Gutenberg is not installed. (52553)
  • Home link block: Add ‘current-menu-item’. (51478)
  • Use next40pxDefaultSize on RangeControl components. (52257)

Block Editor

  • Add maxLength to LinkControl search item URLs. (52523)
  • Make the tab labels of ColorGradientSettingsDropdown component translatable. (52669)
  • Add support for arrays to setImmutably util. (52280)
  • Stabilize defaultBlock, directInsert API’s and getDirectInsertBlock selector. (52083)

NUX

  • Restore wordpress/nux to 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.. (52455)

Bug Fixes

Patterns

  • Alternative grid layout to improve keyboard 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). (52357)
  • Add handling of sync status to the wp-adminadmin (and super admin) patterns list page. (52346)
  • Add missing decoding entities processing in Patterns and Template/Parts pages. (52449)
  • Add option to set sync status when adding from wp-admin patterns list. (52352)
  • Avoid copying global style presets via the styles compatibility hook. (52640)
  • Command Palette: Update label and icon for Patterns. (52742)
  • Ensure that the unsaved title is not persisted when reopening the modal. (52473)
  • 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. with Create Patterns menu not showing in site editor page editing. (52671)
  • Fix renaming in Site View sidebar rename saves all edits for Template Parts and Navigation Menus. (52373)
  • Fix: Patterns & template parts: Remove “apply globally” option from block settings. (52160)
  • Rename edit label to Edit Block Pattern to resolve edge case in Chrome. (52496)
  • Show uncategorized patterns on the Editor > Patterns page. (52633)
  • Site Editor Patterns: Filter out patterns that are not available in the inserter. (52675)
  • Update the title of Pattern block in the block inspector card. (52010)

Site Editor

  • Fix the pattern with the post types becomes the placeholder pattern when editing template part. (52503)
  • Fix “Manage all patterns” link appearance. (52532)
  • Fix document title icon appearance. (52424)
  • Fix entering edit mode in site editor. (52406)
  • Fix missing Add Template Part button in Template Parts page. (52542)
  • Fix undo/redo in site editor code editor’s mode. (52695)
  • Remove status icon. (52457)
  • Reset device preview type when exiting the editing mode. (52566)
  • ResizableFrame: Fix styling in Firefox. (52700)
  • Site Editor Pages: Load the appropriate template if posts page set. (52266)
  • Site Editor Patterns: Ensure sidebar does not shrink when long pattern titles are used. (52547)
  • Use lowercase p in “Manage Patterns”. (52617)
  • Do not navigate to the styles pages unless you’re in a random listing page. (52728)
  • Fix multiple navigation blocks in pattern template. (52707)
  • Don’t allow creating template part on the Patterns page for non-block themes. (52656)
  • Exit template focus when opening the W menu. (52235)

Block Library

  • Fix console warning by improving error handling in Nav block classic menu conversion. (52591)
  • Fix importing classic menus. (52573)
  • Fix: Focus loss on navigation link label editing on Firefox. (52428)
  • List block: Fix selected numbering style option. (52472)
  • Post Title: The changes should be reflected when previewing a post. (52369)
  • Quote block: Add transform to paragraph. (51809)
  • Remove synced blocks from lastBlockInserted. (52558)
  • Rich Text/Footnotes: Fix getRichTextValues for useInnerBlocksProps.save. (52682)
  • Search block: Enqueue view script through block.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.. (52552)
  • Use _get_block_template_file function and set $area variable. (52708)
  • Cover Block: Fix block deprecation when fixed background is enabled. (51612)
  • Fix image block v6 deprecation. (52822)
  • Image: Use the correct method for caption class in recent deprecation. (52853)

Accessibility

  • Change Delete page menu item to Move to trashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days.. (52641)
  • Change password input to type text so contents are visible. (52622)
  • Do not autofocus page title field in the ‘Draft a new page’ modal dialog. (52603)
  • Fix Shift+Tab to Block Toolbar. (52613)
  • Unify focus style and add default font styles. (52495)
  • Navigation block: Add notice on reduced accessibility. (52251)
  • Password protected field: Remove autofocus and improve placeholder text consistency. (52634)
  • ResizableFrame: Make keyboard accessible. (52443)
  • Site Editor: Fix navigation menu sidebar actions order and label. (52592)

Block Editor

  • Add ‘reusable’ keyword to Pattern blocks. (52543)
  • Avoid errors in Dimension visualizers when switching between iframed and non-iframed editors. (52588)
  • Ensure synced patterns are accounted for in ‘getAllowedBlocks’. (52546)
  • Fix: Remove link action of Link UIUI User interface for draft pages created from Nav block does not correctly remove link. (52415)
  • LinkControl: Add width to ensure ellipsis truncating works. (52575)
  • LinkControl: Fix mark highlight to bold. (52517)
  • Post Content link color should not be applied to placeholder component links. (52367)
  • Fix highlight change when using transform menu. (52752)
  • Fix: Apply text color selection to link color. (52379)

Components

  • Block Editor: Display variation icon in the ‘BlockDraggable’ component. (52502)
  • Copy tweak for the reusable block rename hint. (52581)
  • Fix reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.-dropdown-menu version to avoid breaking change from one of …. (52356)
  • FormTokenField: Fix token overflow when moving cursor left or right. (52662)
  • Site Editor: Make sidebar back button go back instead of up if possible. (52456)
  • Top Toolbar: Move the preferences selection into the main useSelect. (52332)

Post Editor

  • Remove a block select button from the multi-entity saving flow. (52753)
  • Fix Site editor page when JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. support is disabled. (52376)
  • Fix initial block parsing. (52417)
  • Simplify the code editor of edit-post. (52751)

Global Styles

  • DimensionsPanel: Fix unexpected value decoding/encoding. (52661)
  • Global font sizes: Ensure sizes are unique. (52483)
  • Spacing Sizes: Fix zero size typo and to be output directly. (52711)

Themes

  • Fix admin_url() for preview link of block themes. (52399)

Fonts API

  • Deprecate and make Fonts API non-functional. (52485)
  • Fix font printing regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. when metaboxMetabox A post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way. exists. (52343)

Extensibility

  • Page Content Focus: Ignore page content within a Query LoopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. block. (52351)

Performance

Post Editor

  • Fix performance regression for isEditedPostEmpty selector. (52759)

Patterns

  • Add client side pagination to patterns list. (52538)

Site Editor

  • Fix entity cache misses for single posts due to string as recordKey. (52338)

Block Library

  • Experimental: Disable TinyMCE compat with classic editor. (52325)

Experiments

Interactivity API

  • Prevent scripts from loading if behaviors are not used. (52140)

Fonts API

  • Font Face: To generate and print font-face styles for theme.json fonts. (51770)

Documentation

  • Document the new process for releasing point releases for old release branches. (49968)
  • Add layout API documentation. (52673)
  • Added README for the “caption” component. (52033)
  • Added documentation text-transform component #52072. (52243)
  • Block Editor: Add README for BlockControls. (52366)
  • Lodash: Remove completely. (52571)
  • Removed line break within the code block. (46920)
  • Theme JSON schema: Add missing block names and unify block properties. (51293)
  • Update layout architecture documentation after stabilisation. (52316)

Code Quality

Block Editor

  • Add missing @emotion/react dep to block-editor. (52475)
  • Lodash: Remove remaining _.get() from block editor and deprecate. (52561)
  • Make use of accessing private APIs from thunks directly. (52214)

Block Library

  • Footnotes: Backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. changes to excerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox. trim. (52709)
  • Navigation: Simplify the useSelect for useNavigationMenus. (51977)
  • Query Pagination: Set ‘clientId’ as useSelect dependency. (52358)
  • Search: Remove unnecessary useEffect. (52604)
  • Template Parts: Set attributes ‘area’ as useSelect dependency. (52330)

Global Styles

  • Lodash: Refactor away from _.set() in PushChangesToGlobalStylesControl. (52404)
  • Lodash: Refactor away from _.set() in getNodesWithSettings(). (52278)
  • Lodash: Refactor away from _.set() in global styles. (52279)
  • Lodash: Remove completely from site editor. (52480)

Post Editor

  • EntityRecordItem: Fix ESLint warnings and remove unnecessary memoization. (52630)
  • PostPreviewButton: Rewrite to functional, avoid state transitions in lifecycles. (44971)
  • correct a typo: Sapce -> space. (52578)

Site Editor

  • Fix incorrect ‘useSelect’ usage. (52683)
  • SiteHub: Combine site data selector 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.. (52567)

Reusable Blocks

  • Update package to use relative path. (52712)

Core Data

  • Core Data: Fix ESLint warning for ‘useEntityProp’ hook. (52757)

Tools

Testing

  • Iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.: Silence style compat warnings when in a BlockPreview. (52627)
  • Make query optional in visitAdminPage. (52413)
  • Migrate Adding Inline Token test to Playwright. (52020)
  • Migrate site editor multi-entity save flow tests. (52372)
  • Move request utils reset to global setup. (52412)
  • Nav block: Link text color inheritance fixes and tests. (51710)
  • Refactor and split navigation block end-to-end tests into separate files. (52647)
  • Try fixing block context end-to-end test failure. (52513)
  • Use posts instead of template parts for navigation color tests. (52654)
  • end-to-end Test Utils: Improve test reliability in plugins/themes and login procedures. (52144)
  • Enable jest-watch-typeahead for native tests. (51869)
  • Expand mobile editor tests. (52446)

Build Tooling

  • Backport tools: Sort PRs to be cherry picked by merged/closed date. (52667)
  • Create block interactive template. (52612)
  • Fix Webpack to watch the interactivity package files. (52642)
  • Update caniuse-lite, browserslist and core-js. (52420)
  • Lodash: Deprecate _.set(). (52407)

Project Management

  • Update issue gardening automation with new label. (52173)
  • Revert “Update Changelog for 16.1.2”. (52433)
  • 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/ workflow: Add a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher backport changes action. (52096)

First time contributors

The following PRs were merged by first time contributors:

  • @andrewhayward: Adding support for defined IDs in TextControl component. (52028)
  • @ghorivipul97: Post Content link color should not be applied to placeholder component links. (52367)
  • @sethrubenstein: Stabilize defaultBlock, directInsert API’s and getDirectInsertBlock selector. (52083)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @andrewhayward @andrewserong @anomiex @arthur791004 @BenjaminZekavica @bfintal @carolinan @Clorith @dcalhoun @derekblank @diegohaz @draganescu @ellatrix @fluiddot @fullofcaffeine @geriux @getdave @ghorivipul97 @glendaviesnz @hellofromtonya @jameskoster @jeryj @jorgefilipecosta @jsnajdr @juanmaguitar @kevin940726 @luisherranz @MaggieCabrera @Mamaduka @michalczaplinski@ mirka @noisysocks @ntsekouras @peterwilsoncc @pooja-muchandikar @Presskopp @priethor @ramonjd @richtabor @SantosGuillamot @SavPhill @SaxonF @scruffian @sethrubenstein @spacedmonkey @swissspidy @t-hamano @tellthemachines @tyxla @walbo @westonruter @youknowriad

Props to @jjameskoster for the visual assets, @greenshady for peer review, and @cbravobernal for helping to get the release published to WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/.

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

Core Editor chat summary: 26th July 2023

This post summarises the weekly editor chat meeting (agenda for 26th July meeting) held on 2023-07-26 14:00 UTC in Slack. Moderated by @get_dave.

Status Updates

Updates based on updated scope for site editing projects

Task Coordination

I was a quiet meeting…

@get_dave:

Open Floor

There we no topics raised for discussion.

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

Dev Chat agenda, July 26, 2023

The next weekly WordPress developers chat will take place on Wednesday, July 26, 2023 at 20:00 UTC in the core channel of Make WordPress Slack. All are welcome.

Announcements

Highlighted posts

A Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., July 17, 2023- props to @audrasjb

Analysis of internationalization performance posted by @swissspidy

Recording of the 6.3 product demo



6.3 live product demo Q&A

WordPress 6.4 – What’s on your wish list? – great post by @chanthaboune inviting community feedback on what tickets you would like to see, any UXUX User experience main pain points, and what’s needed for component maintainers for this next release. Feedback deadline August 15, 2023.

Forthcoming release updates

Next major WordPress release: 6.3

6.3 is scheduled for release on August 8, 2023.

Stay in the 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. with 6.3 – links for reference:

Tickets or Components help requests

Please add any items for this part of the agenda to the comments. If you can not attend dev chat live, don’t worry, include a note and the facilitator can highlight a ticketticket Created for both bug reports and feature development on the bug tracker. if needed. This part of the agenda will focus on items for 6.3.

Open floor

If you have any additional items to add to the agenda, please respond in the comments below to help the facilitator highlight them during the meeting.

#agenda, #dev-chat

Performance Chat Summary: 25 July 2023

Meeting agenda here and the full chat log is available beginning here on Slack.

Announcements

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath @swissspidy

  • @swissspidy The post above is my update in this area 🙂
  • @joemcgill One of the areas that I wanted to look into after the 6.2 Performance Analysis was how to improve the performance of template loading in both 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. theme and classic theme contexts. I am planning an initial exploration into some architectural improvements that could be made to improve both.

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones

  • No updates this week

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/. & CSSCSS Cascading Style Sheets.

Link to roadmap project

Contributors: @mukesh27 @10upsimon @adamsilverstein @westonruter

  • @10upsimon Not a massive update from my side, we’re working on wrapping up some draft Developer Reference documentation updates that we hope to finalise this week

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • @joemcgill Something I’ve been keeping an eye on…the HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. spec was recently amended to include definition for letting browsers automatically calculate the sizes attribute for lazy-loaded images (see GH issue). It’s still in early implementation, but seems like this could be a useful thing for us to implement in WP since a lot of images are being lazy loaded by default, and our default sizes attribute is usually not all that accurate unless being filtered by theme authors.
    • Thinking this would be a great Perf Lab module candidate
    • GH issue to be created in the performance repo

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27 @swissspidy

  • @swissspidy I assume there are some plans to measure performance of RC2 vs. 6.2 once it’s out.
    For that I began putting together a tool to automate this sort of benchmark: https://github.com/swissspidy/compare-wp-performance
    Initially just a 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/ Action, but now with the intention to have a script for running locally as well
    • @joemcgill This is such a nice workflow for automating this process

Ecosystem Tools

Link to roadmap projects

Contributors: @mukesh27 @swissspidy @westonruter

  • @mukesh27 Great news everyone! We have successfully completed the QA testing phase this week, and I’m happy to report that everything is working as expected. During the testing process, we identified a few issues which have been promptly raised on GH.
    • Moreover, I’m excited to announce that the technical documentation for our 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 Checker tool is now complete and merged. With the documentation in place, you can now gain a deeper understanding of the tool’s functionality and how it works. For detailed context and information, please refer to the following link: https://github.com/10up/plugin-check/tree/trunk/docs
    • To stay up-to-date with our progress, follow us on GitHub: https://github.com/10up/plugin-check/ We highly value your input! If you have any thoughts, ideas, or feedback, please don’t hesitate to share them on the repository. Your contributions are immensely valuable to us.
  • @westonruter Last week I worked on extending the benchmark-web-vitals script to support running on a mobile device (e.g. connected via USB debugging). I got stuck however, and trying to figure out some missing piece: https://github.com/GoogleChromeLabs/wpp-research/pull/58
    • @swissspidy Testing on an actual mobile device sounds cool! Maybe someone from the Puppeteer team could help with this blockerblocker A bug which is so severe that it blocks a release.?
    • @westonruter Yeah, I tried an initial reachout on Friday, but I was out yesterday. I’ll see if I got anything once I catch up
    • @swissspidy Without a device at hand, is it alternatively possible to test with throttling?
    • @westonruter I asked Felix about that too, wondering if it was a capability. It isn’t right now, so we’d have to figure out how to implement. It used to be a feature in DevTools but it seems to have been removed
    • @swissspidy CPU throttling can be found here, In Puppeteer: https://pptr.dev/api/puppeteer.page.emulatecputhrottling

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • @10upsimon I’ve been working on some UIUI User interface mocks for the standalone plugin installation via the existing PL settings screen, and we’ve arrived a pretty solid point to start execution. Currently doing some engineering discovery around what we can use from coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and other resources to facilitate the plugin management using the same process as core that we see via the Plugins > Add screen  (for installation, activation and deactivation of standalone performance plugins)

Open Floor

Our next chat will be held on Tuesday, August 1, 2023 at 15:00 UTC in the #core-performance channel in Slack.

#core-performance, #performance, #performance-chat, #summary

A Week in Core – July 24, 2023

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 July 17 and July 24, 2023.

  • 44 commits
  • 83 contributors
  • 83 tickets created
  • 13 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

  • Add a missing closing span 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.) for column sorting indicators – #32170, #57839
  • Update dashboard welcome panel for 6.3 – #58545

Build/Test Tools

  • Remove outmoded jsvalidate task from Gruntfile – #58645, #26615

Bundled Themes

  • Twenty Twenty-One: Enable Dark Mode in the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.#58835
  • Twenty Twenty-Three: Remove the perPage attribute where the query inherits from the global query. The global attribute should be used instead – #58581
  • Twenty Twenty-Three: Revert [55898]#58485

Code Modernization

  • Use str_contains() in a few more places – #58206

Coding Standards

  • Always use parentheses for class instantiation – #58831
  • Correct alignment in wp-includes/media.php#58831
  • Correct equals sign alignment in various files – #58831
  • Remove trailing tabs in wp-admin/about.php#58831, #58067
  • Use strict comparison for static strings in wp-admin/includes/class-wp-list-table.php#32170, #57839

Docs

  • Add a missing word in maybe_create_table() description – #58841
  • Fix indentation issue in WP_REST_Global_Styles_Revisions_Controller class – #57840, #58524
  • Fix various incorrect @since mentions – #58834
  • Various docblocks corrections – #57840

Editor

  • Add test for context setting in Comment Template block – #58839
  • Fix a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher notice appearing when adding a new template part – #57851
  • Fix abbreviations of “Example” in block-template-utils.php#58879
  • 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. where it was not possible to style custom block elements in theme.json#57868
  • fix popover positioning – #58847
  • load title on navigation fallback – #58557
  • update npm packages with bug fixes for 6.3 RC2 – #58804

External Libraries

  • Update deprecated jQuery code in Farbtastic lib – #57946

General

  • Commit changes after running precommit:css#57856, #58869
  • Rename wp_in_development_mode() to wp_is_development_mode()#57487

HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. 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.

  • Change wp infix in test classes to Wp#58899
  • Introduce minimal HTML Processor – #58517

Help/About

  • Add illustrations to the Get Involved tab – #23348
  • String changes in the Contribute screen – #23348
  • Update the About page for 6.3 – #58067
  • Updates to About page – #58067

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 translator comment in WP_Upgrader::generic_strings()#58831

Media

  • Adjust PDF upload handling to remove non-opaque alpha channels from previews – #39216
  • Fix Image rotation button overflow in translations – #58877
  • Fix height max value in image scaling – #50523
  • Stop using and deprecate set_imagick_time_limit(). Seems it causes more problems than it solves – #58202

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

  • Update Global 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. private methods to protected – #58846

Script Loader

  • Improve test coverage for wp_print_scripts()#58648

Upgrade/Install

  • Add correct parameters to add_option in upgrade_630 – #58821

Props

Thanks to the 83 (!) people who contributed to WordPress Core on Trac last week:

@costdev (11), @audrasjb (7), @joemcgill (7), @ramonopoly (6), @mukesh27 (6), @jrf (5), @peterwilsoncc (5), @azaozz (4), @flixos90 (4), @markoserb (4), @oglekler (4), @richtabor (4), @swissspidy (3), @spacedmonkey (3), @joedolson (3), @sergeybiryukov (3), @jorbin (2), @poena (2), @desrosj (2), @dmsnell (2), @dunhakdis (2), @huzaifaalmesbah (2), @westonruter (2), @peterwilson (1), @ryelle (1), @andrewserong (1), @gudmdharalds (1), @glendaviesnz (1), @oandregal (1), @TobiasBg (1), @Malae (1), @sabernhardt (1), @Presskopp (1), @mrinal013 (1), @Rahmohn (1), @mikachan (1), @robinwpdeveloper (1), @onemaggie (1), @dsar (1), @antpb (1), @hberberoglu (1), @mtxz (1), @densityapps (1), @ekazda (1), @matt_fw (1), @jameskoster (1), @soulseekah (1), @mikeschroder (1), @wildworks (1), @davidbaumwald (1), @annezazu (1), @saxonafletcher (1), @mwtsn (1), @hasanuzzamanshamim (1), @Ankit K Gupta (1), @get_dave (1), @scruffian (1), @nekojonez (1), @jordesign (1), @bhrugesh12 (1), @kebbet (1), @isabel_brison (1), @zieladam (1), @gitlost (1), @launchinteractive (1), @emirpprime (1), @ceer (1), @joen (1), @maysi (1), @madejackson (1), @6adminit (1), @crstauf (1), @james0r (1), @jpantani (1), @dansoschin (1), @mikinc860 (1), @priethor (1), @marybaum (1), @eidolonnight (1), @clarkeemily (1), @cbringmann (1), @meher (1), and @youknowriad (1).

Congrats and welcome to our 7 new contributors of the week: @mwtsn, @launchinteractive, @ceer, @maysi, @madejackson, @6adminit, @james0r ♥️

Core committers: @audrasjb (10), @sergeybiryukov (9), @isabel_brison (4), @ryelle (4), @bernhard-reiter (3), @joedolson (2), @davidbaumwald (2), @azaozz (2), @joemcgill (2), @desrosj (1), @antpb (1), @mikeschroder (1), @spacedmonkey (1), @flixos90 (1), and @kadamwhite (1).

#6-3, #core, #week-in-core

Performance Chat Agenda: 25 July 2023

Here is the agenda for this week’s performance team meeting scheduled for July 25, 2023 at 15:00 UTC.


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

#agenda, #meeting, #performance, #performance-chat