Summary, Dev Chat, November 29, 2023

Notes from the weekly WordPress developers chat which took place on Wednesday, November 29, 2023 at 20:00 UTC in the core channel of Make WordPress Slack.

  • Start of the meeting in SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..
  • Props to @hellofromtonya for facilitating the live meeting and @webcommsat for preparing the agenda used.
  • Dev Chat summary from November 27, 2023 – props to @marybaum for facilitating and the summary.
  • If you can help with Dev Chat summaries in future, please raise your hand in the meeting or let a coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. team repTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts. know by commenting on this post.

Announcements

What’s new in Gutenberg 17.1

Gutenberg v17.2.0 Release Candidate 1 is out! Let’s get testing.

Highlighted posts

Summary of the Hallway Hangout on the triage extensibility issue

Hallway Hangout: let’s explore WordPress 6.5 – this will take place on Zoom on Tuesday, January 14, 2024 at 21:00 UTC. All welcome to join, whether it is to listen or participate too. There will be a recording and recap published. The event will be in the form of a free flowing demo/ presentation going through as many 6.5 release priorities as possible. The release has a proposed schedule of March 26, 2024.

No other posts were highlighted during the meeting.

Update from core-editor

This is an experimental new section.

Update on the Core Editor via @annezazu

@annezazu requests some feedback on these topics:

  • please add an emoji (green for good, orange for okay, red for bad) to each point in the slack discussion or comment on this post indicating which topic you are commenting on
  • for anything other than green, feel free to thread a comment in the slack discussion.

Please also add your thoughts to the discussion on the future of the core-editor chat.

Forthcoming release updates

Current WordPress release: 6.4

No issues raised.

Updates on the minor releases

@jorbin: “I have been chatting with a handful of folks to identify a team to lead 6.4.2. Waiting on some responses to DMs, but hope to have a team in place this week. Once that team is in place, the first task will be to identify a time table for the release. As of now, it’s unknown if that will be next month or the month after. From my scrubbing of TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress., I haven’t seen severe enough to make next month a must release time.

“I’ll also add that I am going to be one of the folks leading 6.4.2 and I intend to get some scrubs started next week either way.”

4.x queue:

  • All tickets in the milestone
  • A query of all tickets Awaiting Review that are flagged as 6.4 being the version that introduced 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..
  • @hellofromtonya highlighted: Want to help? One way is to triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. the tickets in the Awaiting Review query.

Next major WordPress release: 6.5

Are you able to help with future bug scrubs?

A number of early scrubs have been scheduled – Bug scrubs post. The next scrub: December 5, 2023 at 19:00 UTC in the core Slack channel. Can you help with any of the tickets that were discussed at the last bug scrub on November 28, 2023. Some of these tickets require testing. Please add any comments or test results to the actual tickets on Trac.

@chanthaboune thanked those preparing and organizing scrubs, and all involved with discussing tickets.

To help with asynchronous contribution and encourage more people to take part in scrubs, @webcommsat is adding a link to the start of each scrub on the Bug Scrub post.

Tickets or Components help requests

  1. View 6.4 section above for tickets being discussed at bug scrubs.
  2. @jorbin highlighted that Gutenberg PR 56574 is proposing changing how synced patterns are edited to require users to leave the post editor to edit them. Additional discussion requested.
  3. @afragen: asked if any additional feedback was available on Trac Ticketticket Created for both bug reports and feature development on the bug tracker. #59448?
  4. @afragen re-requested feedback on #58281. Discussion followed on raising awareness to garner additional feedback:
    • Suggestion was made for a call for testing on Make/core blogblog (versus network, site). @afragen highlighted there has been minimal responses during the past two years plus to calls for testing from the Make WordPress posts for Rollback 1/2. Feedback calls also posted in the #core-test channel
    • a Hallway Hangout was suggested if @afragen and @costdev‘s schedule would allow for it. A previous discussion on Slack was highlighted. Running a live session where people can watch it in action, view what needs to be tested, and ask questions could raise greater awareness, testing and feedback. It would enable greater testing for complicated features.

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.

a) @webcommsat: If any devs familiar with the release are able to work alongside Documentation for reviews on the update to End User docs, you can find the 6.4 HelpHub list in this tracker view.

b) Reminder from last week: Josepha has asked in the Team Reps channel for highlights from the last year. To be inclusive, if you have any item you feel should be included about core’s achievements or items in progress, please add them to the comments on this post for @webcommsat and @hellofromtonya who are preparing the bullet points to send for core.

b) Nominations for Core Team Reps: 2024 edition – reshare of the draft post.
There are discussions on shared voting approach and an embedded voting block. This may not be available in time for the current core elections, and other options discussed in team reps, such as, more teams using the project’s Learn WordPress poll facility for voting rather than a mixture of platforms and personal accounts, and move towards similar processes to especially help new team reps.

Actions:
– Abha & Tonya: dates to be updated for end of nominations and voting close so the post can be published
– final proof (tweak of previous posts)
– set up of the voting tool and host ready for the election post
– list of what core has achieved this past year to be completed, and the nominations post can link to this to encourage people to stand and support core team as a rep for 2024
– all: please do consider whether you could stand for the core team rep for next year.

Matrix bridge issues raised during the meeting:

  • thanks all for the reports on Matrix bridge.
  • the reports are being tracked at 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/ https://github.com/WordPress/Matrix/issues/new/choose2
  • delay in Matrix messages coming through during Dev Chat, and reports of only seeing Matrix messages in Element on macOS, not seeing all the messages that otherwise are likely posted directly to Slack
  • @chanthaboune suggested a testing exercise of the Matrix bridge in a social chat outside of Dev Chat

Props to @afragen for review.

Dev chat summary, November 22, 2023

Here’s what happened in the dev chat from November 22, with @marybaum facilitating, on this agenda. If you would like more detail, check out the chat transcript.

Announcements

What’s new in Gutenberg 17.1

Highlighted posts

Exploration to support Modules and Import Maps – this post shares the collaborative effort to explore native support for modern 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/. modules and import maps within the WordPress ecosystem to enhance the developer experience. Head over to the post if you’d like to get involved.

New section: coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-editor updates

@annezazu was in the house to kick off an experiment: instead of a separate editor chat, the editor team will have its own section for updates in the Core devchat.

In the meeting, the discussion started with a cut-and-paste of her comment on the agenda; then folks could question and comment on the items they were interested in. The result was a clear view of the huge job the editor team has been doing—and continues to polish.

Tickets

The group skipped over the standard upcoming-releases section to bring up two tickets whose stakeholders particularly wanted to get eyeballs on.

#59758 went first and got a commitment to test its patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. from the attendee who showed up at the meeting specifically to advocate for it.

The other, #59866, got attention in a 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. scrub that happened just before this summary appeared on the Make blogblog (versus network, site).

Thanks to the folks who helped move both those tickets in the right direction!

#dev-chat, #meeting, #summary

Performance Chat Summary: 28 November 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 and link to the GitHub project board

Contributors: @joemcgill @swissspidy @thekt12 @mukesh27 @pereirinha

  • @joemcgill Main thing happening here at the moment is the ongoing template loading work, captured in this tracking issue
  • @thekt12 Did some profiling for #58196 Performance metrics didn’t show any improvement which is kind of not what was observed in blackfire. https://github.com/WordPress/wordpress-develop/pull/5281#issuecomment-1830164940
    • @joemcgill That’s interesting. I wonder if it’s due to profilers like Blackfire not getting the benefits of the opcode cache? I can try to reproduce locally
    • @thekt12 I am not so sure about that. May be you could try and see what you observer.
    • @joemcgill Will do. I like the removal of the file_exists check and memoizing the path list regardless, so we may want to commit this anyway as a test to see if we could cache this for longer than the current request?
    • @thekt12 Yes we can do that
    • @johnbillion Last time I did some profiling with Blackfire I also saw a very different scale of improvements compared to profiling the code in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher without it. It has a much greater overhead than I expected.

Database Optimization

Link to roadmap projects and link to the GitHub project board

Contributors: @mukesh27 @thekt12

  • @mukesh27 I worked following PRs:
  • @thekt12 not a performance related thing but still something introduced by caching #59661
    • 2nd scenario in this – https://core.trac.wordpress.org/ticket/59661#comment:7 is something I feel is hard to solve, I just wanted to know do we add dev notedev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. in such a scenario.
  • @pbearne Mad Idea (may not be new): Could we store all the files in site in a cache and then only check file exists if not in cache and invalidate when we fail to open a file that cache said it had and was missing
  • @joemcgill file_exists checks have shown to really not be that expensive in production due to the opcode cache, but there are places where we could avoid using them and instead read the file in a try/catch 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. and handle the errors gracefully.
  • @joemcgill For longer-term caching of file content that is expensive to read and parse (e.g., block patterns, etc.) this issue is worth following: #59719

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 and link to the GitHub project board

Contributors: @mukesh27 @westonruter @flixos90

  • @joemcgill Last week I resolved #58632 as maybelater based on @westonruter analysis that showed that >86% of inline scripts are printed before the script they’re attached to, so making inline scripts deferrable do not seem like a priority for now. Better to document for developers how to use this feature in a way that ensures they’re not forcing their scripts to be blocking. I think we can conduct another analysis in the future to see how often async/defer scripts are being downgraded to blocking scripts due to this problem, using the data-wp-strategy attribute we add to mark intended strategy for debugging purposes

Images

Link to roadmap projects and link to the GitHub project board

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill @pereirinha @westonruter

  • @westonruter Image Loading Optimization is now working end-to-end! After the pull requests for detection and storage have been merged, I’ve now got drafted a PR for the optimization piece. It’s nearing ready for review, hopefully today.
  • @joemcgill I’ve got a draft of a proposal for updating our default sizes attribute in progress using the layout properties from theme.json an observation is that it would be really nice to find a more declarative way to understand the root padding values that are currently referenced in theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. by their CSS variable names. Not sure if anyone is aware of any other conversations related to that idea that have been started elsewhere.
  • @joemcgill Meanwhile, I noticed several places where 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/ is setting images as background CSS, where our optimizations are not being applied. That could be worth an exploration to see how we can optimize.
  • @westonruter I’m intending to target this as well with Image Loading Optimization
    • @joemcgill I can open a tracking issue in our performance repo
  • @westonruter At the moment it’s just targeting img elements to optimize, but it has the pieces to also preload background images.
  • @joemcgill I’m more concerned about the use of very large file sizes, but proper resource hinting would be good to handle as well
  • @swissspidy Speaking of very large file sizes, I’m looking into the client-side image compression work in GB, to see what can be done for 6.5
    • @dmsnell not sure if you know libvips or not, but I noticed they have a WASM build. it’s killer feature, in my opinion, is the ability to stream image operations and avoid loading entire large images in memory at once. Also it’s just a really high quality library

Measurement

Link to roadmap projects and link to the GitHub project board

Contributors: @adamsilverstein @joemcgill @mukesh27 @swissspidy @flixos90

  • @adamsilverstein I’ve been working on getting 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 / automated performance testing adoption, making some slow progress
  • @joemcgill There was a strange issue with @mukesh27 PR earlier today. The Performance Test failed due to twentytwentyone not being available. There is a new PR running now that I’m watching to see if it also suffers from the same issue. Something we may need to triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. today

Ecosystem Tools

Link to roadmap projects and link to the GitHub repo

Contributors: @mukesh27 @swissspidy @westonruter

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • No updates this week

Open Floor

  • @adamsilverstein I have a couple of items. First, I wanted to share this Issue on WooCommerce – https://github.com/woocommerce/woocommerce/issues/41556 which reports some compatibility issues after they moved a script to the 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. and used defer (originally it was in the footer)
    • … after they adopted the script strategy feature
    • some of the issues may be fixed “upstream” or they may revert the change. in any case, I think it is interesting to see the challenges large plugins like this have making a change/adopting a new approach
  • @adamsilverstein 2nd: I have created a proposal for an oEmbed optimization module for the PL plugin – https://github.com/WordPress/performance/issues/888 appreciate any feedback
  • @pbearne #42441 has moved on, do we need a proposal for this to go into coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.?
    • @swissspidy To me that ticketticket Created for both bug reports and feature development on the bug tracker. is the proposal 
    • @flixos90 Yeah, I don’t think it needs a proposal. Just potentially further discussion on the ticket. I left some thoughts there last week
    • @joemcgill I’d like to get feedback from more folks outside this group. I’m still personally uneasy about making this decision without more input outside this group. I’d raise it in a dev-chat at minimum

Our next chat will be held on Tuesday, December 5, 2023 at 16:00 UTC in the #core-performance channel in Slack.

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

Performance Chat Agenda: 28 November 2023

Here is the agenda for this week’s performance team meeting scheduled for Nov 28, 2023 at 16: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

Summary Hallway Hangout Triage Gutenberg Extensibility Issues

On November 10th, 2023 Gutenberg contributors met in a Hallway Hangout to discuss the best ways to triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. the Extensibility Issues for inclusion into 6.5 or later version of WordPress. 

TL;DR 

The action items from this meeting are:

  • Go through the project board and add impact, effort, and next steps labels
  • Advocate for high-impact issues that are blocking adoption
  • Focus engineering efforts on lower hanging fruit issues that can be solved more easily
  • Have a check in meeting in early December to discuss progress

Attendees: @ndiego, @karmatosed @fabiankaegy, @jeffpaul, @luminuu @bph , @joemcgill, and Jacklyn Biggin. Later Jakob Trost.

Continue reading

What’s new in Gutenberg 17.1 (22 November)

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

Gutenberg 17.1 has been released and is available for download!

The latest release includes several new enhancements, loads of bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes, and continued work on Phase 3 features.

  1. Improvements to accessibility and writing flow
  2. Design tools: block spacing for Quote block
  3. Other notable highlights
  4. Changelog
  5. First-time contributors
  6. Full contributor list

Improvements to 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) and writing flow

There are a few improvements that contribute to a better editing experience:

  • The Image and Media&Text blocks properly show the pressed state for the link button 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. toolbar (56123).
  • The buttons block now mimicks the list behavior: enter twice on the last button goes to the next line (56134).
  • New keyboard shortcut in the list view (CMD+A on Mac, CTRL+A on Windows) to select all blocks (54899).
Video showing how media blocks now show a toggled link button when linked, pressing Enter twice in the buttons block to escape it, and pressing CMD+A successively to expand the selection range.

Design tools: block spacing for Quote block

The Quote block has gained support for layout and so it’s now possible to control the spacing of its inner blocks (56064).

New block spacing control in the quote block.

Other notable highlights

  • Escape on Block Toolbar returns focus to Editor Canvas (55712).
  • Continue polishing the 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.: return the user to the editor and global styles panel after a revision is applied (55881), improve copy text (55868), load unsaved revision in the preview (55880).
  • Patterns: in the front-end, they show embeds (55979), and the site editor’s pattern page now shows theme patterns specified in theme.json (55877).

Changelog

See full changelog.

Enhancements

Block Library

  • Navigation block: Fix Inaccurate description of the Show icon button setting. (55429)
  • 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.: Add accessibility markup at the end of the loop in all cases. (55890)
  • Template Part: Add fallback to the current theme when not provided. (55965)
  • Update components to use __next40pxDefaultSize. (56022)

Components

  • Tabs: Improve focus behavior. (55287)
  • Tabs: Update subcomponents to accept full HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. element props. (55860)
  • TextControl: Add opt-in prop for 40px default size. (55471)
  • ToggleGroupControl: Add opt-in prop for 40px default size. (55789)

Patterns

  • Move “Manage patterns” below “Detach pattern”. (56018)
  • Show theme patterns from directory in site editor. (55877)

Global Styles

  • Global Style Revisions: Ensure consistent back button behaviour. (55881)
  • Global Styles Revisions: More descriptive text timeline. (55868)
  • Global styles revisions: Add route for single styles revisions. (55827)

Block Locking

  • Block Quick Navigation: Truncate text. (56142)

Block Editor

  • Button block: Support double enter to skip to default block. (56134)

Design Tools

  • Add block gap support to Quote block. (56064)

Post Editor

  • “Detach” text change in template options. (55870)

Site Editor

  • Site editor: Add edit page slug field. (55767)

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.

  • Server directive processing: Process only root blocks. (55739)

Block settings menu

  • Remove the extraneous template part title in replace control. (55603)

List View

  • Add keyboard shortcut to select all blocks. (54899)

New APIs

  • Download blob: Remove downloadjs dependency. (56024)

Bug Fixes

Block Library

  • Background Image Support: Hide the background image reset button when there’s no image. (55973)
  • Background image support: Fix focus loss when resetting background image. (55984)
  • Custom Link: Decode value in URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org input field. (55549)
  • Fix lightbox trigger styles. (55859)
  • Form block: Use type="submit" for buttons. (55690)
  • Image block: Add check for lightbox values during image block migrationMigration Moving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies.. (56057)
  • Image block: Don’t show pointer cursor on linked image in the editor. (55882)
  • Lightbox: Fix button misalignment in gallery image. (56060)
  • Lightbox: Fix close button position. (56125)
  • Missing block: Use raw source for originalContent. (56014)
  • Navigation Link block: Register variations on post type / taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. registration. (54801)
  • Pattern: Fix regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. error in post type templates. (55858)
  • Pattern: Process embeds. (55979)
  • Post feature image block: Wrap images with hrefs in an A 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.). (55498)
  • Quote Block: Fix the Quote block layout supports. (55240)
  • Read More block: Reduce text decoration specificity. (56038)

Data Views

  • DataViews: Add missing key to ResetFilters component. (56189)
  • DataViews: Fix issue with irrelevant statuses. (55967)
  • DataViews: Fix nested button tags on 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.. (56089)
  • DataViews: Fix pagination on manual input. (55940)
  • DataViews: Fix spacing issue in top-level bar. (56151)
  • DataViews: Fix status 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. upon switching the default views from the sidebar. (55856)
  • DataViews: Make items per page an even number. (55906)
  • DataViews: Make used taxonomy private. (55918)
  • DataViews: Reset pagination upon filter change. (55797)
  • Dataviews: Add a missing icon for the side by side view. (55925)

Components

  • DropdownMenu: Remove extra vertical space around the toggle button. (56136)
  • DropdownMenuV2: Prevent default on Escape key presses. (55962)
  • DropdownMenuV2: Use the Icon component to render radio checks. (55964)

Typography

  • Fix fatal error in WP_Fonts_Resolver::Get_settings(). (55981)
  • Font Library: Create fonts dir if a font face needs to use the filesystem. (56120)
  • Font Library: Fix font installation failure. (55893)

Block 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.: Bubble events from html element instead of body element to fix drag chip positioning. (56099)
  • Post Featured ImageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts.: Handling correctly when uploading a file without mime type. (56133)
  • Block Editor: Fix Block editor crash. (56051)
  • Move clientId key to BlockContextualToolbar. (56008)

Patterns

  • Add context for translators to any unclear usage of “synced”. (55935)
  • Use existing download function for 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. downloads to fix non-ASCII encoding. (55912)

Inspector Controls

  • Global Styles: Don’t show “Apply Styles Globally” button in non-block based themes. (56033)

Template Editor

  • Templates: Update filter to call all of the individual methods. (55980)

Global Styles

  • Global styles revisions: Load unsaved revision item into the revisions preview. (55880)

Post Editor

  • Edit Post: Fix pattern modal reopening when making the title empty again. (55873)

Data Layer

  • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. data: Fix wrong store results when page receives less items that what is stored. (55832)

Accessibility

Data Views

  • DataViews: Add labels to “in-filters”. (56001)
  • DataViews: Show actions label. (56027)

Components

  • Fix the image link button pressed state. (56123)

Block Editor

  • Fix mismatching link control action buttons visual order and DOM order. (56042)
  • Escape on Block Toolbar returns focus to Editor Canvas. (55712)

Site Editor

  • Prevent sidebar focus in site editor on small screens. (55934)

Block Library

  • Heading level dropdown: Remove obtrusive tooltips in favor of visible text. (56035)

Performance

Tooling

  • Add a metric to trace template navigation in the site editor. (55796)

List View

  • ListViewBlock: Combine ‘useSelect’ 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.. (55889)

Block Editor

  • Block Editor: Optimize ‘Block Hooks’ inspector controls. (56101)
  • Block Editor: Optimize BlockListAppender. (56116)

Site Editor

  • Avoid rerendering the sitehub unnecessarily. (55818)

Layout

  • Block Editor: Optimize layout style renderer subscription. (55762)

Experiments

Data Views

  • DataViews: Add ability to create custom views. (55773)
  • DataViews: Add control to reset all filters at once. (55955)
  • DataViews: Add delete and restore actions. (55781)
  • DataViews: Add initial “Side by side” prototype. (55343)
  • DataViews: Add new page size option. (56112)
  • DataViews: Add rename functionality to custom views. (55997)
  • DataViews: Allow users to add filters dynamically. (55992)
  • DataViews: Update ‘All pages’ sidebar heading. (56148)
  • DataViews: Update ‘View’ button. (56144)
  • DataViews: Update all templates page. (55848)
  • DataViews: Update author and title fields in template’s list. (56029)
  • DataViews: Update filters in view configuration. (55735)
  • DataViews: Add filters to table columns. (55508)
  • DataViews: Add: Ability to delete custom views. (55924)
  • DataViews: Add: Custom views 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. indication. (55926)
  • DataViews: Remove unnecessary label when no visible filters exist. (55838)

Documentation

  • Add a first block type page to the platform documentation. (56109)
  • Add new block development “Quick Start Guide” and update the create-block-tutorial-template. (56056)
  • Clean up DataViews docs: filter.id is not used. (55833)
  • DataViews: Document enableSorting and enableHiding. (55988)
  • DataViews: Document actions. (55959)
  • Doc: Corrected + updated links. (56084)
  • Doc: Fixes wrong link in #56084. (56106)
  • Docs: Changes imports from wp.editor to wp.blockEditor for PlainText and RichText. (55841)
  • Fix formatting issue in the “Get started with create-block” doc. (55872)
  • Fix: 404 Link on git workflow docs. (55897)
  • Fix: 404 link in get-started-with-create-block docs. (55932)
  • Fix: Create metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. block link in block attributes documentation. (55804)
  • Fix: Filter duotone link on block-supports documentation. (55896)
  • Fix: Two invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. links on docs/contributors/documentation/README.md. (55843)
  • New additional resource for wp-env. (55987)
  • Update documentation to clarify workflow 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". for release package publishing. (56183)
  • Update jest links to the new site. (55802)

Code Quality

  • Block lib: Remove multiline=false (deprecated). (56113)
  • Delete unused SelectedBlockPopover component. (55821)
  • Fix: Remove unrequired nullish coalescing. (55854)
  • Fix: Use of integer value in a conditional rendering condition on Gradients. (55855)
  • Give nice unique names to block controls HOCs. (55795)
  • Migrating PatternTransformationsMenu. (56122)
  • Migrating block inserter media tab components. (56195)
  • Move document tools motion to header-edit-mode layout level. (55904)
  • Only render block toolbar if blockType has value. (55861)
  • Refactor Edit Widgets Document Tools Navigation to own component. (55778)
  • Refactor Selected Block Tools. (55737)
  • Refactor Site Editor Document Tools Navigation to own component. (55770)
  • Remove BlockStyles.Slot empty component. (55991)
  • Remove obsolete queryContext. (56034)
  • Remove unnecessary empty className. (55998)
  • Rename Unforward to Unforwarded and export the named const. (55820)
  • Render Selected Block Tools in Header when using Top Toolbar. (55787)
  • Reusable Blocks: Unlock a private hook and a component at the file level. (55809)
  • Server directive processing: Improve how block references are saved. (56107)
  • Share the editor settings between the post and site editors. (55970)
  • Site Editor: Fix deprecation console error in top toolbar. (55678)
  • Site Editor: Unlock global styles’ private hooks at the file level. (55800)
  • Site Editor: Update edited entity sync logic. (55928)
  • Site Editor: Use EditorProvider instead of custom logic. (56000)
  • SiteEditor: Optimize BackToPageNotification component. (56102)
  • SiteEditor: Refactor disable non page content blocks. (56103)
  • Unify the PageUrl and PageSlug components between site and post editors. (56203)

Data Views

  • DataViews: Fix translatable string. (56075)
  • DataViews: Remove filter.name. (55834)
  • DataViews: Remove reset values from filters. (55839)
  • DataViews: Remove unnecessary sortingFn prop from field description. (55989)
  • DataViews: Simplify filters API. (55917)
  • DataViews: Update actions API. (56026)

Block Editor

  • Rich text: Remove preserveWhiteSpace serialisation differences. (55999)
  • Rich text: highlight format: Gracefully handle old span format. (56071)
  • Update Link Control labels to use gray-900. (55867)

Components

  • DisclosureContent: Migrate from reakit to @ariakit/react. (55639)
  • Divider: Migrate from reakit to @ariakit/react. (55622)
  • RadioGroup: Migrate from reakit to ariakit. (55580)

Site Editor

  • Core Data: Move the template lookup to core-data selectors/resolvers. (55883)
  • Don’t use ‘useEntityRecord’ to only dispatch actions. (56076)

Block Library

  • Navigation: Refactor the PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher render function to make it easier to make changes in the future. (55605)
  • Update blockEditor.__unstableCanInsertBlockType hook namespace. (55845)

Data Layer

  • Data: Fix ESLint warnings for the ‘useSelect’ hook. (55916)

Post Editor

  • Edit Post: Use a single ‘useSelect’ hook for getting selectors. (55902)

Colors

  • Add Unit testing for duotone enhanced pagination. (55542)

Patterns

  • Split up the block editor inserter patterns tab into separate component files. (55315)

Design Tools

  • Block styles: Remove __unstableElementContext in favour of useStyleOverride. (54493)

Tools

  • Issue Templates: Add default type labels to issue templates. (55826)
  • Label enforcer: Make the warning message less scary for new contributors. (55900)
  • Quote feature requestfeature request A feature request should generally begin the process in the ideas forum, on a mailing list, as a plugin, or brought to the attention of the core team, such as through scope meetings held for each major release. Unsolicited tickets of this variety are typically, therefore, discouraged. label. (55862)

Testing

  • Disable ‘no-conditional-in-test’ ESLint rule for Playwright. (56088)
  • Fix ‘Block Switcher’ test file name for Playwright end-to-end tests. (55840)
  • Fix flaky ‘Meta boxes’ end-to-end tests. (56083)
  • Migrate ‘CPT locking’ end-to-end tests to Playwright. (55929)
  • Migrate ‘Meta boxes’ end-to-end tests to Playwright. (55915)
  • Migrate ‘Plugins API’ end-to-end tests to Playwright. (55958)
  • Migrate ‘annotations’ end-to-end tests to Playwright. (55966)
  • Migrate ‘container blocks’ end-to-end tests to Playwright. (56141)
  • Migrate ‘inner-blocks-prioritized-inserter-blocks’ end-to-end tests to Playwright. (55828)
  • Migrate ‘inner-blocks-render-appender’ end-to-end tests to Playwright. (55814)
  • Migrate ‘meta-attribute-block’ end-to-end tests to Playwright. (55830)
  • Migrate Child Block Test to Playwright. (55199)
  • Migrate flaky PostPublishButton end-to-end tests to Playwright. (52285)
  • Perf Tests: Stabilise the Site Editor metrics. (55922)
  • Playwright Utils: Fix ‘clickBlockOptionsMenuItem’ helper. (55923)
  • Query block enhanced pagination: Simplify test setup. (55805)
  • Site editor template preview: Add end-to-end test and aria-pressed attribute to template preview toggle. (56096)
  • Upgrade Playwright to 1.39.0. (54051)
  • end-to-end Utils: Add setPreferences and editPost utils. (55099)
  • end-to-end Utils: Add support for web-vitals.js. (55660)

Build Tooling

  • Package @ariakit/test should be a dev dependency. (56091)

First-time contributors

The following PRs were merged by first time contributors:

Full contributor list

The following contributors merged PRs in this release:

@afercia @andrewhayward @andrewserong @anomiex @anton-vlasenko @aristath @artemiomorales @bph @brookewp @c4rl0sbr4v0 @chad1008 @ciampo @DAreRodz @dcalhoun @dsas @ellatrix @flootr @fluiddot @gaambo @glendaviesnz @gziolo @jameskoster @jeryj @jhnstn @joanrodas @jorgefilipecosta @JorgeVilchez95 @jsnajdr @juanmaguitar @kevin940726 @Mamaduka @masteradhoc @matiasbenedetto @ndiego @ntsekouras @oandregal @peterwilsoncc @pooja-muchandikar @priethor @ramonjd @renatho @richtabor @sacerro @scruffian @shimotmk @SiobhyB @Soean @swissspidy @t-hamano @talldan @tellthemachines @torounit @tyxla @WunderBart @youknowriad


Props to @joen for designing the assets and @annezazu for reviewing this draft.

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

Performance Chat Summary: 21 November 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 and link to the GitHub project board

Contributors: @joemcgill @swissspidy @thekt12 @mukesh27 @pereirinha

  • @thekt12 I was working on template loading research for – https://github.com/WordPress/gutenberg/issues/45601 this were the findings-
    • register_block_core_template_part accounts for ~7% of load time ~80ms. The function calls
    • build_template_part_block_variations, which accounts for 99% of the function time. This function is called in almost every page. The root reason for this is deep down in the call stack it calls WP_Theme_JSON_Resolver::get_merged_data, which calls WP_Theme_JSON::__construct for parsing theme jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML..
    • Another interesting thing we found is that by disabling build_template_part_block_variations, for pages that don’t require it, we found there is an improvement of ~80ms which align to the total time needed for register_block_core_template_part.
    • Disabling change that was made – https://github.com/WordPress/gutenberg/issues/45601#issuecomment-1516214955 tested on default homepage of TT4
    • Before Change – https://blackfire.io/profiles/933e16a5-0932-41e3-8fb7-a21c10dc3811/graph
    • After Change- https://blackfire.io/profiles/c225c202-974c-4a9c-886f-ef731273461c/graph
    • The challenge is how to tell apart pages that have variations from pages that don’t
  • @thekt12 In short – we can get some improvement for pages if we disable variations for pages we don’t need it. Root cause is however parsing of theme json.
  • @joemcgill Interesting! It sounds like the ongoing work to add improved caching to WP_Theme_JSON data is still the most promising improvement, if we can come up with a good strategy for doing so. #57789 Is that your read?
  • @thekt12 Yes, improving WP_Theme_JSON is the most promising improvement. In addition we can also disable variations for pages that don’t need them to be loaded.
  • @joemcgill So the question then is how to know when a variation needs to be loaded and when not?
    • @thekt12 Yes this is something I am trying to figureout.
  • @thekt12 A snapshot of before and after. And the change improve ~80ms in total load time too [link to image]
  • @joemcgill I think creating a TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. ticketticket Created for both bug reports and feature development on the bug tracker. for further exploration would be the best next step, since this was originally only being discussed in the GB repo, but will require coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. changes, I believe.
  • @joemcgill Related to the above, I’ve been working on #59719 some this week, with hopes of having something sharable this week.

Database Optimization

Link to roadmap projects and link to the GitHub project board

Contributors: @mukesh27 @thekt12

  • @pbearne I have refreshed #42441 and fixed an issue with update_options function. Does it need a proposal for core, or can it just get merged? Do we need/want an upgrade routine/CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress. command to remove all the oversized options from autoload list?
    • @joemcgill When we last looked at that issue, my understanding was that we weren’t totally sold that the approach to change the DB values was ready, or at least needed some broader consensus and testing. Not sure if @flixos90 had a different opinion. Regardless, having this refreshed and looked over with fresh eyes is wonderful!
    • @flixos90
    • Thanks for iterating on this. I’m planning to take another look at this today or tomorrow. We still have to indeed decide on what to do with the database value, but there were other issues in the original PR, so having an update is great.
    • @joemcgill At minimum, I would love to see the approach written up on the ticket rather than just in the PR so the DB changes being proposed are clear.

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 and link to the GitHub project board

Contributors: @mukesh27 @10upsimon @westonruter @flixos90

  • @joemcgill This effort is worth keeping an eye on: https://make.wordpress.org/core/2023/11/21/exploration-to-support-modules-and-import-maps/
  • @flixos90 I have continued iterating on https://github.com/WordPress/performance/pull/733, which is that new Speculation Rules module. I created a feature 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". for it yesterday, as this definitely shouldn’t ship until January or so, whenever that browser feature becomes generally available
    • Currently thinking about what would be the customization needs there and how that could be exposed via a simple 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.. The Speculation Rules API is very bespoke in that it allows all sorts of nesting with “and” and “or” and “not” conditions, so I feel making that entire API e.g. 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. would be too error-prone. And maybe it’s too low-level to expose at that degree entirely. But there are definitely certain more specific aspects that need to be customizable per site
    • I’m also in contact with some of the Chromium folks working on this on the browser side, to get a better sense of some of those implications

Images

Link to roadmap projects and link to the GitHub project board

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill @pereirinha @westonruter

  • @joemcgill I’ve been working on some initial explorations for improving the way WP calculates the sizes attribute with some success. Working on wrapping up some initial exploration and writing up some options we may be able to pursue there.
  • @flixos90 Weston is OOO as mentioned above, but he has made a lot of progress on the image loading optimization efforts (using client-side detection). For example, https://github.com/WordPress/performance/pull/878 was merged into the feature branch last week

Measurement

Link to roadmap projects and link to the GitHub project board

Contributors: @adamsilverstein @joemcgill @mukesh27 @swissspidy @flixos90

  • @joemcgill Nothing new from me this week, but I do have on my to do list to do a broader profiling report of 6.4 to identify any additional server timing opportunities for the 6.5 cycle.
  • @swissspidy On #59900 I shared some initial thoughts on using a proper test matrix for the core performance tests
    • @joemcgill Is there any specific feedback you’re looking for?
    • @swissspidy Maybe some thoughts on how we’d like the summary to look like on GH (there’s an example link in my comment), and how important it would be to be able to run the same matrix locally as well.

Ecosystem Tools

Link to roadmap projects and link to the GitHub repo

Contributors: @mukesh27 @swissspidy @westonruter

  • @clarkeemily we are intending to reach out to 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 review team again today to continue the remaining roadmap to v1.0.0 here https://github.com/WordPress/plugin-check/issues/283

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

Open Floor

  • @luisherranz Well, I was about to say that following up on last week’s mention of the exploration of a Modules API, I had just published this post in Make Core to make people aware of the initiative and collect feedback. But the same link just popped up in the middle of the conversation (I published it an hour ago) 
  • @clarkeemily The performance have suggested organising an ‘End of Year Hallway Hangout‘ with the intention of having the following as a loose agenda:
    • Retrospective sharing field data for the cumulative performance impact of the performance team’s work in 2023
      • Potential questions/discussion/interpretation on metrics
    • Talking about 2024 plans
    • There are 2 options here if folks could vote:
      • Thursday December 7 – won with 4 votes
      • Thursday December 14

Our next chat will be held on Tuesday, November 28, 2023 at 16:00 UTC in the #core-performance channel in Slack.

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

Performance Chat Agenda: 21 November 2023

Here is the agenda for this week’s performance team meeting scheduled for Nov 21, 2023 at 16: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

Developer Blog editorial meeting summary: November 2, 2023

complete transcript of the meeting can be found in the #core-dev-blog channel in 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/..

Agenda

  • Site updates and new posts
  • Project Board
  • In Progress
  • Today
  • Needs Review
  • To be approved
  • Open Floor

Notes of the last editorial meeting on October 5, 2023 – props to @webcommsat

Props to @milana_cap for facilitating the meeting.

Attendees for Nov 2, 2023 meeting: @milana_cap, @greenshady, @marybaum, @webcommsat, @oglekler, @ndiego .@bph was unable to attend – thanks to Birgit for preparing items in advance for the meeting.

Site updates and new posts

New Posts published since the last meeting:

@milana_cap shared: “A huge thank you to the writers, and their reviewers! Fantastic job!”

Project Status

Posts In progress

To-do list

  1. A tutorial about the highlights of the browser and focus modes of the Navigation Block
  2. Using the Grid layout type for theme creators Justin Tadlock: this will wait as it is still in experimental phase.
  3. How to manage block governance
  4. Tutorial on building block-based templates in classic themes
  5. Tutorial on building patterns and block styles with Details/Summary block Justin Tadlock will be working on this.
  6. Optimizing your WP_Query queries for better performance Olga Gleckler
  7. How to disable specific blocks in WordPress
  8. How to add commands to the command palette Writers needed, Justin volunteered if needed.
  9. Creating a custom External Template for the @wordpress/create-block package
  10. Overview of the coding standards tooling available to WordPress developers
  11. An overview of the “Auto-inserting Blocks” feature coming in 6.4. This initial proposal is now being discussed in this ticket – Note timescale for this post will be post 6.5.

@marybaum is revising the long-form type post. @greenshady to support with code samples and @webcommsat with proofing.

Writers are needed for the remainder of the items on the to-do list. Call to be shared in dev chat when possible.
Wider calls to encourage people to add to the relevant 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/ issue if they can assist with collaborating on these items.

Actions: If you know someone or want to write one of these posts yourself, comment in the Developer-Blog channel on Slack.

Reviews needed

There are no posts currently in the queue marked ready for review. More are expected with the release slated for November 7, 2023.

To be approved

  • At the moment, the queue for items for discussion or topics for approval is empty.
  • @greenshady to add some new topics for next month’s meeting.
  • @webcommsat: From early signs of what could be in 6.5, I think there will be quite a few use case blogs to come out of there in the future.
  • @milana_cap: to propose a few 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/ topics.
  • @marybaum: potentially one on using the post-content 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. inside the Cover block, and a topic related to a block theme.
  • @ogleckler: proposed a topic on design in Figma for blocks. Discussion followed in the meeting: @webcomms suggested sharing the idea with the Design team and with the release contributors who worked with Figma for potential interest in scoping/ key inclusions, or to take it up to write. Strong interest in the editorial group about a post on designing a block theme in Figma. New issue created for the Dev Blogblog (versus network, site) to take this forward.

@webcommsat proposed that in general, adding ideas for topics to the board makes it:

  • easier to raise awareness and target potential contributors 
  • adding a basic scope /inclusions from discussions in the editorial group
  • there have been a couple of discussions in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and documentation during the release journey about use case of features. Some of these would be potentially good dev blogs. Helping scope out some of these topics can help people commit to taking them on or to better understand the next steps. This has been seen with other new topic proposals
  • agreement from the group on this and promoting potential contributors to add ideas to the board
  • @webcommsat with @codente and @nalininonstopnewsuk have been marking items up from the 6.4 release documentation tracker where there has been some interest already in writing about particular items and will encourage these ideas for the Dev Blog board.

Open floor

1) @greenshady raised a conversation about resolving how writers upload images to their draft posts.  

Issue: Slack convo. In this instance, the published post was missing two images. They later had to be pulled from the original Google Doc and the post updated. Two older posts needed the same solution too where an image URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org was added which was no longer valid.

Solution: make sure folks are uploading images to the Developer Blog WordPress install and not hotlinking from Google Docs or elsewhere. I updated two older posts in the past week where this was done and the image URL was no longer valid. 

Further questions: any guidance needed on checking images uploaded have been checked for virus/malware? The system does not allow upload of svg files for this reason.

Actions:

  • add further instruction in the contributing guide for writers, the checklist on GitHub, and to prompt checks when they are ready for the post to be edited. @greenshady to add a ticketticket Created for both bug reports and feature development on the bug tracker. for these additions.
  • @webcommsat requested to add to the checklist/ guide for images to be given a useful name and alt text to be added when uploaded. All agreed and a sub section on images suggested, and to include guidance on image sizes, image naming and alt attributes.

2) Discussion around using using the /blog URL instead of /news for the Dev Blog

Clarification shared that this would not change the URL, just add a redirect from /news to /blog.

@ndiego shared: The reasoning behind using /blog is to match the brand name, “WordPress Developer Blog”. This would be too build on the branding cultivated in the past year around this name.

Discussion points:

  • only news items on the blog are the round-ups
  • concern that ‘blog’ url might give an impression that it is personal opinion rather than posts from the project WordPress. Alternative suggestions for its name were suggested, including “guides”, “tutorials”, “guidelines”, “journal”, “writings”, “Developments”, but not felt to cover the breadth of content, would need a rebranding exercise, and would mean potential duplication/ overlap with Learn WP content. Suggested a way of addressing reservations about url ‘blog’ could be to add further clarification in the purpose and writing guidelines so that it was clear to potential writers that articles were not personal blogs.
  • @webcommsat highlighted that there is a wider discussion to be continued on overlap and working alongside Learn WordPress in both directions.
  • @ndiego clarified the specific aim of the redirect question is to help people find the Developer Blog not to change or widen its current scope. He confirmed it is about search and helping people find it. There are people typing in developer.wordpress.org/blog and wonder why it didn’t go to the WordPress Developer Blog.
  • @greenshady raised that /news was not the preferred option originally to match the scope, but there was an issue early on where there was a potential plan to reserve /blog . The option to use /blog is now possible from the information shared by Nick.

Solution proposed:

  • to go ahead with the redirect and there by keep both /news and /blog in use, subject to further discussion with @bph on her return
  • relook at the published purpose/ guidelines for writers to make sure there is no potential misunderstanding for submissions/ writing. This is turn would save time for this group, writers and reviewers. Add a list of the type of articles that appear on the blog to assist contributors to know how to target pitches, articles and language, as well as helping give some next steps for new writers.

3) Trying to avoid duplications of series names in the Developer Blog and other parts of the project, e.g. Learn WP
@webcommsat highlighted this topic to avoid confusion from both audience and search engine perspectives, especially where items are not cross-linked.

For example, there is a “What’s New for Developers” series on the Blog, so it would be better to avoid having the exact replica title in other public-facing resources from the project. Where one communication is a follow-up to an existing one elsewhere in the project, it should reference it to help people find similar resources and help their learning journey. There may need to be some manual proactive cross-linking.

Solution proposed:

  • cross-linking to be encouraged, and this can help for search in terms of authenticity and credibility of information about WordPress, and in terms of readers’ journeys.
  • avoiding exact duplication or too similar naming of titles. Specific titles that cross link should be less likely to cause confusion, eg Hallway hangout – What’s New for Developers in 6.4 covered topics from the article series on the Blog, and cross-referenced in the event itself. Suggested that posts about a forthcoming event or write-ups would benefit the user / attendee with cross-referencing.
  • the discussion also highlighted how more synchronization between Learn WP and the Dev Blog might be helpful
  • a recommendation to add 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. to posts, which makes it so much easier for users, and shorter search result descriptions in the P2P2 A free theme for WordPress, known for front-end posting, used by WordPress for development updates and project management. See our main development blog and other workgroup blogs. and the internet too.

Next meeting

Update: change to the next meeting date. It will now take place on December 14, 2023 at 13:00 UTC.

#core, #core-dev-blog, #dev-blog, #meeting

Performance Chat Summary: 14 November 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 and link to the GitHub project board

Contributors: @joemcgill @swissspidy @thekt12 @mukesh27 @pereirinha

  • @swissspidy Translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. performance:
    • Published blog post about merging the feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins.
    • PR is still in code review
  • @flixos90 I updated https://github.com/WordPress/wordpress-develop/pull/5267 yesterday, which improves performance of parsing `theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.` files on every page load for sites using a persistent object cache, and I then opened an equivalent 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/ PR https://github.com/WordPress/gutenberg/pull/56095 (since that change should be implemented and tested in Gutenberg first)
    • PR is ready for review! You can use either PR for testing (as they are the same) but the Gutenberg one is the one that needs to be prioritized
  • @joemcgill Work is ongoing on our Template Loading focus. The most important thing for this week is probably to address #59719, which will unblock several of the other pieces of work.
  • @joemcgill I’ve also been tracking a 6.4 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. that was related to our earlier server response time work #59847

Database Optimization

Link to roadmap projects and link to the GitHub project board

Contributors: @mukesh27 @thekt12

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 and link to the GitHub project board

Contributors: @mukesh27 @10upsimon @westonruter @flixos90

  • @flixos90 A few months ago, I had been exploring a PL module for the new Speculation Rules 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., which allows “speculative prerendering”. TL;DR when you hover over a link, it prerenders the relevant content under certain conditions so that when you actually click, the page loads instantly.
    • I yesterday updated the PR, which is still only a draft: https://github.com/WordPress/performance/pull/733 But there have been recent developments in the spec and it is likely going to be available in Chromium without requiring an Origin-Trial, at which point it may be worth advancing this further. Right now you can test it through the Origin-Trial if you like, instructions are on the PR.
    • I have also added a few new “learn more” resources to the PR description that may be worth reading to get familiar with the purpose and behavior of the API

Images

Link to roadmap projects and link to the GitHub project board

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill @pereirinha @westonruter

  • @joemcgill I’m in the early stages of looking at how we can improve the way WP calculates the sizes attributes of images. I’m currently looking at whether we can add this information during 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. rendering, using the WP_HTML_Tag_Processor and the theme.json layout settings. I hope to have some ideas to share in the next few days.
  • @westonruter For image loading optimization, the pull request for the storage component is ready for review: https://github.com/WordPress/performance/pull/878 – next I’m working on the optimization piece to applied the stored page metrics that have been detected.

Measurement

Link to roadmap projects and link to the GitHub project board

Contributors: @adamsilverstein @joemcgill @mukesh27 @swissspidy @flixos90

  • @swissspidy We‘re now measuring more stuff in the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. performance tests, like localized setup and memory usage

Ecosystem Tools

Link to roadmap projects and link to the GitHub repo

Contributors: @mukesh27 @swissspidy @westonruter

  • No updates this week

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

Open Floor

  • @luisherranz I’d like to mention that @cbravobernal and I have started experimenting with possible APIs to support modules and import maps in WordPress.
    • We have started in Gutenberg, as we want to test them out in the frontend (with the Interactivity API) and the Editor (with the work @jsnajdr is doing on Block Lazy Loading).
    • The goals of this initiative and the report of our progress are here:
    • There are a couple of experiments already, and we plan to do a third one. It’d be great to have your feedback and insights
    • @flixos90 Great to see this move forward! Would you say the most useful way for us is to review the different PRs and their approaches? Are there other concrete questions where feedback is needed?
    • @luisherranz I’d say that for now, starting to get your opinion on those PRs or even the tracking issue would be great.
  • @clarkeemily Another Gutenberg issue brought up: https://github.com/WordPress/gutenberg/issues/55892 if anyone has time to review please?

Our next chat will be held on Tuesday, November 21, 2023 at 16:00 UTC in the #core-performance channel in Slack.

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