The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA 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.?Create a ticket in the bug tracker.
If you can help with Dev Chat summaries in future, please raise your hand in the meeting or let a coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.team repTeam RepA 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.
Review a discussion around changing the order of the sidebar items in the Site Editor (and why it might make more sense in the future with improved blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. theme switching!).
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 TracTracAn 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.”
A query of all ticketsAwaiting Review that are flagged as 6.4 being the version that introduced the bugbugA 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 triagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. the tickets in the Awaiting Review query.
@chanthaboune advised she had not seen any new updates on the release squad as yet.
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
View 6.4 section above for tickets being discussed at bug scrubs.
@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.
@afragen: asked if any additional feedback was available on Trac TicketticketCreated for both bug reports and feature development on the bug tracker.#59448?
@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 GitHubGitHubGitHub 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
At a high level, we went through the following agenda:
Quick intros (what each person does/focuses on)
Review of WordPress performance improvements throughout 2023
Retrospective sharing field data for the cumulative performance impact of the team’s work in 2023
Discussion around interpretation of metrics
A look ahead to 2024 plans
As a reminder, hallway hangouts are meant to be casual and collaborative so folks came prepared with a kind, curious mind along with any questions or items they wanted to discuss around this important area of the project, especially since the agenda was intentionally loose to allow for it.
Please click the image above to view the slide deck
INP Discussion
@adamsilverstein@flixos90@pbearne were discussing whether INP mobile scores are due to lower powered mobile devices. The team discussed whether there may be an answer we can find. Mobile passing rate is more of a problem with INP (high chance it’s because of low powered devices). It could be networknetwork(versus site, blog) conditions as well, but lower powered devices likely to be the cause. @pbearne did raise: what would be the fix, low res images? How could we support under-powered devices? @flixos90 commented that for INP specifically it’s about JavaScriptJavaScriptJavaScript 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/.. The amount, and how it’s executed, i.e. using a worker thread comes to mind that can improve INP. WordPress doesn’t have support for worker thread. This could be a good opportunity. More about the actual JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. code, reduction of JS code and optimizing JS code.
It was suggested that the PluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Checker tool could help with? Are there any optimization tools to help here? General consensus is that folks are just not sure. @adamsilverstein mentioned that it’s not just static analysis, these INP issues don’t tend to come up, it’s more in the field when there’s a lot of JS interacting on the page simultaneously. Complicated layouts also contribute to low INP, DOM layouts — but unsure if this is our problem. Maybe likely to be in the front end, themes. Also in the combination of things, animations, app providers, tracking etc, these things add up and compete for resources on a low powered device. @westonruter shared How to diagnose slow INP in the lab: https://web.dev/articles/manually-diagnose-slow-interactions-in-the-lab.
@flixos90 highlighted the Interactivity APIAPIAn 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. (very new and not publicly available) this is the first WP coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. own JS API that is just starting to be rolled out. This would allow plugins to use an API allowed by core, htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. directives, could we improve INP through the interactivity API — great potential opportunity for the future. Static analysis in the plugin checker, could look to pointing plugin checker to interactivity API. Prevalence of cookie consent policies, are these contributing to low INP scores? The team feel this is potentially low hanging fruit as 90% of sites need one now.
@joemcgill mentioned the tricky part here is the big services that provide cookie consent provide their own JS code to drop in the page, integrations would be more challenging. @pbearne mentioned a simple basic one that works would be great. Could it be done in a way where you don’t get penalized in the stats. The team agree this is worth looking into. @pbearne asked if this could this be the case of analyzing the top 20 cookie consent plugins and see if they can be made into a canonical plugin and build from the ground up? However the potentially, tricky thing is building something into core will require extensibility similar to how the privacy policy feature was built, driven by legal requirements that are different in all places. If the extensibility is made too flexible, it may cause more INP problems.
Cost Analysis
@pbearne highlighted that there’s no tie back to numbers, costs etc in the presentation from @flixos90 — cost of search engines crawling the save in value, cost saving of hosting companies etc — wondered if there’s a way we can obtain any dollar values against what these performance improvements actually mean. @flixos90 advised that we can try to draw general conclusions but mostly to get real numbers is do individual case studies, maybe there are hosting providers that are happy to share how much LCP improved and what this means for revenue / cost, specific case studies would be the way forward here, it would be difficult to establish this more widely. Maybe there’s a call we can put out to ask any hosting providers if they’re willing to do a case study
TTFB Improvements
@joemcgill went on to discuss the second to last slide, idea that we can get more benefit from focusing on FE LCP improvements, the underlying TTFB improvements — this was Joe’s initial gut instinct, websites that care about performance fix TTFB by not hitting WP application at all, using aggressive page caching etc. However, mindful at the fact that WP 6.3 we had 2 big opportunities that had a big impact on client slide: removal of emoji loading script and image loading improvements (the addition of fetchpriority and the lazy loading improvements). Whilst focusing on FE LCP improvements are easier, do we have opportunities of similar scale that would make sense, or are we just driving server side?
@flixos90 added that the difference is that most of client side improvements that we have done are larger efforts, whereas improving server side cut off milliseconds that add up over time. There may be a point where we have no idea what to improve on the client side, but there are a few things mentioned on image sizes attribute is one of them, optimizing how large images are loaded, continuing to optimize fetchpriority and lazy loading are applied, will drive up the passing rate more. Felix added, the main indicator is when we look at mobile, this is where the big difference is happening, when you look at LCP and TTFB together, but LCP in 6.3 was a lot more (probably came from client side improvements predominantly). Desktop TTFB was more visible than mobile. We always benchmark on a desktop machine, so mobile devices are lower powered. Maybe it’s just because for mobile specifically TTFB improvements have a lower role, and it’s more about the device configuration.
@joemcgill went on to ask whether we’re just looking at the % that are getting good scores, rather than the value of TTFB or change in TTFB metric. Could we have made the same amount of improvement as desktop, but not a big enough value to go over the threshold of the passing rate. Felix mentioned he has looked at these numbers as he has assumed the same thing. When you look at aggregated data, there weren’t major improvements in similar ways. Overall scale is still not visible.
2024 Suggestions
@pbearne suggested images, do the amounts of images in the media library impact going through file numbers, orphan image sizes left around — should we have a tool to help clean this up? Some images are left behind from changing themes etc, does this bloat the number of images in the file system? If it does, would a simple tool help remove images that are not current. Here, @adamsilverstein suggested that some regenerate thumbnails plugins, URLs still point to old images if they’re removed. Thinks everyone has things in folders, if people have them in one giant directory it would impact. File loading may not be an image, but one place to look at was maybe the attachments in posts database, when doing lookups etc, maybe there are places we can eliminate here — but suspect this is a small improvement. The remaining images are mostly about storage space wasted and incurring costs. For performance on end users, doubt this has a notable impact.
@pbearne also added that the interactivity API would be a great place to investigate. @flixos90 added we should think for next year what can we do to improve interactivity, facilitate WP sites having more responsive interactions. The new metrics means this is more significant. Load time performance, but split this more to cover interactivity. The team discussed any other intentional research what leads to lower INP passing rate, hypotheses have been created but could do with having confidence in knowing where the problems lie. More research is definitely needed.
@flixos90 continued, what do the TTFB numbers mean for us? This year we have been focused on improving TTFB in core, but thinking about mobile representation, are there other ways we should try to move forward TTFB — what about enhancing APIs to provide more guardrails to plugins, there are a lot of other components to this, could argue that small changes don’t cover lower powered — something core can do better to facilitate caching for more people. Can we unlock caching for sites that have hosts that don’t provide this feature etc. @joemcgill added that we had talked about trying to use the SQLite Database as an object cache for sites that don’t have a better option — could we think on this again?
@flixos90 liked this idea, worth exploring — this would be for object caching, could we use it for page caching? Persistent object cache avoids using database requests, not that significant for overall performance. Full page caching would be more beneficial to focus on. Avoiding hitting application altogether could be better. Was looking at full page caching in the CWV dashboard, surprised that the popular caching plugins their TTFB scores are not beating the general WP TTFB numbers, seems counter intuitive. Could we dive into this more? Were these plugins specific to having the full page caching, could not be turned on. @adamsilverstein added that we can get a geographical bias, if the plugin is popular in a region with slower internet, it’s not their problem its the users. @adamsilverstein highlighted that you can breakdown on the settings page of the CWV report by geographical region. Could query this in HTTPHTTPHTTP 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 to see if there are patterns. Other considerations are all WP plugins that offer full page caching offer this at the application level, not as good as having the layer at the hosting level.
Concluding Statements
@pbearne raised that as a plugin developer, having good tests or validations that I’m doing it right, i.e. plugin checker, improving this and helping you recognise where improvements should be made, is something that can improve overall performance. More work in this field would benefit overall, especially if we can do themes as well.
@joemcgill concluded that the team are thankful to Felix for pulling these numbers together, easy to not be able to see the big picture. But really great to see the impact the performance team has made is great to see!
Props to @joemcgill for proof-reading and to @flixos90 for the excellent presentation.
Review a discussion around changing the order of the sidebar items in the Site Editor (and why it might make more sense in the future with improved blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. theme switching!).
In the meeting or in the comments for async contributions, @annezazu asks if folks can please emoji reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. with feedback to give a sense of whether she is on/off track: = good, = okay, = bad. For anything other than green, feel free to thread a comment during the meeting with feedback or link the item and add it to the comments below.
Please also add your thoughts to the discussion on the future of the core-editor chat.
Forthcoming release updates
WordPress release: 6.4
Any new issues?
New updates on 6.4.x release team or dates for 6.4.2?
For those who were missing the core contributor profile badge and should have received it after 6.4, profiles have been updated. Slack update. should have it now.
Are you able to help with future bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrubs? Bug scrubs post. Check out the tickets discussed at the bug scrub on November 28, 2023. Next scrub: December 5, 2023 at 19:00 UTC in the core SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.
Tickets or Components help requests
Please add any items for this part of the agenda to the comments – tickets for 6.5 will be prioritized. If you can not attend dev chat live, don’t worry, include a note and the facilitator can highlight a ticketticketCreated for both bug reports and feature development on the bug tracker. if needed.
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) Reminder from last week: Josepha has asked in the Team Reps channel for highlights from the last year, 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. Please do share any comments on this agenda.
b) Nominations for Core Team Reps: 2024 edition – reshare of the draft post to gather suggestions on timings related to the end date for nominations and the end of the voting period. The voting tool to use and whether an embedded voting block in discussion with other teams would be available for this edition to be finalized.
Please do consider whether you could stand for the core team repTeam RepA 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. for next year.
Exploration to support Modules and Import Maps – this post shares the collaborative effort to explore native support for modern JavaScriptJavaScriptJavaScript 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: coreCoreCore 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 patchpatchA 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 bugbugA 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!
@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?
@johnbillion Last time I did some profiling with Blackfire I also saw a very different scale of improvements compared to profiling the code in PHPPHPThe 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.
@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 noteEach 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
@joemcgillfile_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 blockBlockBlock 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
JavaScriptJavaScriptJavaScript 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/. & CSSCSSCascading Style Sheets.
@joemcgill Last week I resolved #58632 as maybelater based on @westonruteranalysis 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
@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.jsonJSONJSON, 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 GutenbergGutenbergThe 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.
@joemcgill Yeah, could be, although I think BG images are a bit easier to control when used as decorative elements and not as content, as is the case for things like cover images.
@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
@adamsilverstein I’ve been working on getting pluginPluginA 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 triagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. today
@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 headerHeaderThe 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
@pbearne#42441 has moved on, do we need a proposal for this to go into coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.?
@swissspidy To me that ticketticketCreated 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
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.
On November 10th, 2023 Gutenberg contributors met in a Hallway Hangout to discuss the best ways to triagetriageThe 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
This hallway hangout is a continuation of prior hallway hangouts in the FSE Outreach Program about release specific updates. In this session, we’ll talk through some of what’s to come in the next WordPress release with a proposed schedule for March 26th. This is being shared early to help encourage more folks to tune in and to build some excitement for this next release.
How to join
If you’re interested in joining, the Hallway Hangout will happen on 2024-01-16 21:00 . A Zoom link will be shared in the core-editorSlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel before starting and all are welcome to join, whether to listen or participate, for as long or as little as you’d like. This will be recorded and recapped.
Agenda
At a high level, expect this to take the form of a free flowing demo/presentation going through as many release priorities as possible. @annezazu and @saxonafletcher will take point to demo and share what’s being worked on. Others might jump in to share as well depending on the roadmap post for 6.5 and where work stands by that point in the release cycle.
As a reminder, hallway hangouts are meant to be casual and collaborative so come prepared with a kind, curious mind. Depending on how large the session is, we may not get to all questions live on the call but we can always include follow up in the recap.
“What’s new in GutenbergGutenbergThe 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).
The latest release includes several new enhancements, loads of bugbugA 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.
Improvements to accessibilityAccessibilityAccessibility (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 blockBlockBlock 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 revisionsRevisionsThe 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 LoopLoopThe 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)
Tabs: Update subcomponents to accept full HTMLHTMLHyperText 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)
Interactivity APIAPIAn 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)
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 URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org input field. (55549)
Form block: Use type="submit" for buttons. (55690)
Image block: Add check for lightbox values during image block migrationMigrationMoving 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)
Missing block: Use raw source for originalContent. (56014)
Navigation Link block: Register variations on post type / taxonomyTaxonomyA 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 regressionregressionA 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)
Post feature image block: Wrap images with hrefs in an A tagtagA 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 sidebarSidebarA 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 filterFilterFilters 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: 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
IframeiframeiFrame 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 imageA 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)
Move clientId key to BlockContextualToolbar. (56008)
Patterns
Add context for translators to any unclear usage of “synced”. (55935)
Use existing download function for JSONJSONJSON, 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
CoreCoreCore 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)
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’ hooksHooksIn 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)
DataViews: Add: Ability to delete custom views. (55924)
DataViews: Add: Custom views headerHeaderThe 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)
Fix: 404 link in get-started-with-create-block docs. (55932)
Fix: Create metaMetaMeta 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 invalidinvalidA 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)
Update documentation to clarify workflow branchbranchA 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)
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 PHPPHPThe 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)
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 requestA 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)
You must be logged in to post a comment.