Whose ticket is it, anyway?

The July 26 developer chat spurred a lively discussion of ticketticket Created for both bug reports and feature development on the bug tracker. ownership, milestones, and who, if anyone, makes a formal commitment to make sure a given ticket crosses the finish line and merges into CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..

This post will look at the variety of points of view that came up in that discussion. The folks who were there would like your input before the official start of the 6.4 release cycle.

Wait. Whatโ€™s the issue?

Simply put: The WordPress project, as a whole, has a variety of opinions on who takes ultimate responsibility for seeing a ticket through to commit, and on how a person signals to the project that they are that responsible person.

How did that come up in a dev chat?

The conversation got going in response to @chanthabouneโ€™s note on her WordPress 6.4 wish-list post. Josepha is the project lead for 6.4 and its women- and nonbinary-only release squad.

At that point, @joemcgill observed, โ€œIโ€™d be more concerned that something from that list would get added to the milestone and then punted because it wasnโ€™t clear who was taking responsibility for the ticket.โ€

Three basic positions emerged.

1. If you move a ticket to a milestone, you commit to finishing it.

That view gets the endorsementโ€”at least as a best practiceโ€”of chat attendees who have been around the project since well before version 5.0.

2. If you agree to own the ticket, you commit to finishing it.

Thatโ€™s the view of attendees who have joined the project since version 5.4 or later.ย 

3. If you move a ticket to a milestone, you agree to make an effort to finish it or find someone who can.

Thatโ€™s a hybrid approach that also starts to deal with the way things happen in scrubs, especially as a release cycle comes closer to launch day.

Which is this:

If you lead a scrub or other triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. meeting, and you 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.) a ticket, you do not commit to finishing that ticket.

Thatโ€™s the view of attendees who lead a lot of scrubsโ€”and those who have been triage leads on release squads.ย 

You might choose to make yourself the owner of a ticket, but it would be unreasonable to expect every scrub leader to walk out of a meeting responsible for the future of several punted tickets.

And now itโ€™s your turn.

Please comment by September 1!

Your comments are vital to what happens next and will shape how the 6.4 release squad handles ticket milestones.ย ย ย 

If you have a strong opinion in favor of one of the three numbered options, please add that number to your comment.

If you have your own view of how a person should signal their intent to finish a ticket, beyond being the gardener/milestoner or the owner, please describe that action in your comment.

Props to @audrasjb, @costdev, and @desrosj for feedback and review.

#meeting

Performance Chat Summary: 1 August 2023

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

Announcements

  • Welcome to our new members ofย #core-performance
  • RC3 is scheduled for release later today
  • Video from theย Hallway Hangoutย that occurred last week is available for those who were not able to attend.
  • Please read and leave feedback on this follow-up post byย @tellthemachinesย about how to improve the release workflow between 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/ and CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. repos during the release process

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath @swissspidy

  • @joemcgill and @mukesh27 are working on an exploration of how to improve template loading of classic and 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. themes. Ideas are welcome.
  • @swissspidy is still looking for feedback on this post about i18n performance improvements

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones

  • N/A

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

  • @weston has been working on adding async/defer to more places in core
    • Merged this PR that used defer for all block view scripts
    • Committed the use of async for the comment-reply script in core
    • Proposed adding defer to the wp-embed script, even though his analysis didnโ€™t show much performance benefit.
  • @weston reported that now that 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. Archive hasย custom metrics for WordPress scripts, heโ€™s been starting to dive into doing queries for how well sites are using the scripts 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., including to what degree theyโ€™re usingย $in_footerย and how many are currently usingย asyncย andย deferย even before our official way of doing so
  • Heโ€™s also been doing some research into which specific plugins are responsible for thoseย blocking_in_headย scripts. So weโ€™ll have some opportunities for ecosystem outreach hopefully soon
  • Review/feedback on his HTTP Archive queries would be appreciated
    • Later in the meeting, Weston followed up to share that Felix had identified a flaw in the query he was using go get counts of scripts using async and defer from the HTTP Archive. He plans to revise and share updated results

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

Measurement

Link to roadmap projects

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

  • @flixos90 plans to do another round of benchmarks for RC3 after the release today

Ecosystem Tools

Link to roadmap projects

Contributors: @mukesh27 @swissspidy @westonruter

  • @mukesh27 has been working on some follow-up issues for 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. Checker and requested feedback
    • PR #237ย โ€“ Ignore .git, node_modules, and vendor directories from the checks
    • PR #238ย โ€“ Fix errors detected by Plugin Checker
    • PR #239ย โ€“ Incorrect display of readme.txt instead of readme.md in Plugin Readme check

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • N/A

Open Floor

  • N/A

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

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

WordPress 6.3 Release Day Process

Preparation for WordPress 6.3ย final release is underway. This post shares the release process, including the timeline and how you can help. The post will be kept up to date as the release process evolves.

Release Timeline Overview

The current plan is as follows:


Dry Run โœ…

The Dry Run is a key event as a final walk-through for the final release. As noted above, the current plan is to start it on 2023-08-07 16:00. You are invited to observe and/or participate. Itโ€™ll happen in the #core Slack channel.

What happens during the dry run?

  • Review 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. reports to determine if any are critical to warrant another 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). (release candidaterelease 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).).
  • Checks and any necessary updates are made in the src/wp-admin/includes/update-core.php file.
  • Pre-release scripts are run to ensure test suites, coding standards, and other automated checks pass.

If the results are acceptable, the release goes into a 24-hour code freeze period.

24-Hour Code Freeze โœ…

After the dry run and before the release party starts, a mandatory 24-hour code freeze goes into effect.

What does this mean? No source code for 6.3.0 (i.e., in the 6.3 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".) can be changed during these 24 hours.

What happens if a critical bug is reported during this period? The release squad will meet with committers and maintainers to determine if the issue is a blockerblocker A bug which is so severe that it blocks a release..

  • If yes, another RC release happens, and the release process restarts (meaning the dry run is repeated, and then the 24-hour code freeze clock restarts).
  • If not, then the bug is targeted for 6.3.1.

The Release Party ๐Ÿ“…

EDIT: The Release Party will finally start on 2023-08-08 19:00 UTC

The release party on August 8th will start no sooner than 24h after the code freeze starts, with the exact time to be determined accordingly. You are invited to observe and/or participate. Itโ€™ll happen in the #core Slack channel.

The release party walks through the steps in the Major Version Release process for anyone who wants to follow along.

Please note releasing a major version requires more time than releasing a 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. or release candidate. There are more steps in the process. If any last-minute issues need addressing, more time will be needed.

How You Can Help

A key part of the release process is checking that the ZIP packages work on all the available server configurations. If you have some of the less commonly used servers available for testing (IIS, in particular), that would be super helpful. Servers running older versions of PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher and 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 will also need testing.

You can start this early by running the WordPress 6.3 RC3 packages, which are built using the same method as the final packages.

During the release party, options will be provided on how to help test the release package.

Tips on What to Test

In particular, testing the following types of installs and updates would be much appreciated:

  • Does a new WordPress install work correctly? This includes running through the manual install process, as well as WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ or one-click installers.
  • Test upgrading from 4.0.38, 4.9.22, 5.8.6, 5.9.5, 6.0.3, 6.1.3, 6.2.2, and 6.3 RC3, as well as any other versions possible.
  • Remove the wp-config.php file and test a fresh install.
  • Test single site and multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site/networknetwork (versus site, blog) (both subdirectory and subdomain) installations.
  • Does it upgrade correctly? Are the files listed in $_old_files removed when you upgrade?
  • Does multisite upgrade properly?

Testing the following user flows on both desktop and mobile would be great to validate each function as expected:

  • Publish a post, including a variety of different blocks.
  • Comment on the post.
  • Install a new pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party./theme, or upgrade an existing one.
  • Change the site language.
  • If youโ€™re a plugin developer, or if there are complex plugins you depend upon, test that theyโ€™re working correctly.

For a more in-depth list of what features to test, make sure to check the Help Test WordPress 6.3 post.


Thanks to @chanthaboune for the peer review

#6-3, #core, #release-process

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 by the repository owner. https://github.com/ workflow: Add a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 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, #gutenberg, #meeting, #meeting-notes-2, #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