Whatโ€™s new in Gutenberg 15.6? (19 April)

โ€œ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 release graphic 15.6


Gutenberg 15.6 has been released and is available for download!ย 

The latest version of the Gutenberg pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. includes small quality of life enhancements and many 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. The new experimental Details 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. is introduced early for community feedback, and more presets come to coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks for spacing and border controls. In the Site Editor, a themeโ€™s style variations are now also available in the left 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. to enable faster updates. Gutenberg 15.6 includes a total of 112 PRs, authored by 45 contributors, 7 of which were new contributors!

Details block, experimental

The new Details blockย 


Occasionally, you want to hide content until the reader is ready to receive it. This could be spoiler content in a movie review, the transcript of a podcast episode, or a video recording in a blogblog (versus network, site) post. With the new Details block, you can now publish hidden content that opens with a click on the arrow. Itโ€™s the first version of the block, and it is behind an experimental feature flag. To test this new functionality, visit Gutenberg โ†’ Experiments screen in the WordPress adminadmin (and super admin) and enable the Details block option. This block is still being worked on, and it might change before coming out of experiments. Feedback is encouraged.

Spacer Block gets spacing presets

Spacer Block with presents


Spacing presets were added to Dimension controls in WordPress 6.1 to make controlling space in a theme easier and provide a simplified user experience. This functionality also allows theme developers to employ fluid spacing.ย 

Since the introduction of spacing presets, it became clear from community feedback that spacing presets should also be available for the Height control in the Spacer block. This enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. in 15.6 gives theme developers much more flexibility over how spacing is applied throughout a site and enables fluid Spacer blocks!ย 

Hereโ€™s a quick example of what fluid spacing presets might look like when defined 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. using clamp(). You can learn more about fluid spacing and typography in the article Intrinsic design, theming, and rethinking how to design with WordPress over on the WordPress Developer Blog.

{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 2,
	"settings": {
		"spacing": {
			"spacingScale": {
				"steps": 0
			},
			"spacingSizes": [
				{
					"size": "clamp(1.5rem, 5vw, 2rem)",
					"slug": "30",
					"name": "1"
				},
				{
					"size": "clamp(1.8rem, 1.8rem + ((1vw - 0.48rem) * 2.885), 3rem)",
					"slug": "40",
					"name": "2"
				},
				{
					"size": "clamp(2.5rem, 8vw, 4.5rem)",
					"slug": "50",
					"name": "3"
				}
			]
		}
	}
}

Style variations in browse mode


With Gutenberg 15.6, the themeโ€™s style variations are now accessible from the left menu in the Site Editor, together with templates, template parts, and navigation menuNavigation Menu A theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. items. This change makes it easier to access style variations and pick your favorite. Clicking โ€œEdit styleโ€ opens the editor with the Styles panel active, providing quick access to the additional style controls like typography and color.

Other notable highlights

With 15.6, the Cover block includes all border-related design tools. This was a much-requested enhancement by theme developers, which reduces the need for custom block styling.ย ย 

Now, when the Global Styles panel is open in the Site Editor, clicking on any block in the canvas will automatically open the design tools for the corresponding block in the Styles panel. This enhancement will help speed up your workflow and provide fast access to design tools.

Three more visual inconsistencies were smoothened. The visualizer that shows padding and margin changes around blocks now works consistently for larger numbers. In the List View, you can now successfully drop blocks below a Group block, and the Drop Zone in the canvas now has smoother animation.ย 

Changelog

Enhancements

Block Library

  • A margin option is added to the Embedded preview block. (39384)
  • Add blockGap as a default control on Columns/Column blocks. (49526)
  • Add color tools to the Time to Read block. (49496)
  • Add spacing presets to the Spacer block. (44002)
  • Cover: Add border support using ResizableBox via BlockPopover. (41153)

Block Editor

  • Add support for hiding breadcrumbs in the Site Editor. (49518)
  • Hide page list on single page list menus. (48725)
  • Small improvements for the Document Overview labeling. (49555)
  • Add a rootClientId prop. (49475)

Global Styles

  • Add styles section to the browse mode sidebar. (49014)
  • Show child layout controls by default. (49389)

Components

  • Global Styles: Link to the block type panel when selecting a block with Styles open. (49350)
  • TreeSelect: Remove margin overrides and add new opt-in prop. (47515)
  • Update media and video icons. (49523)

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)

  • Add missing focus style to start template options previews. (49334)
  • Consistent labels for the WP logo and back links. (49659)

Experiments

  • Add a command center to the site editor. (49330)
  • Add Details/summary block. (45055)

Bug Fixes

Block Library

  • Columns: Prevent removal of locked columns from the column count change UIUI User interface. (49530)
  • Cover:
    • Fixed background causes image to be zoomed in on Safari browser on iPad. (48981)
    • Fix integration tests for ResizableBox via BlockPopover. (49497)
    • Merge block and global styles. (49434)
  • Navigation:
    • Fix exhaustive deps warning. (49291)
    • Fix fallback not rendering. (49576)
  • Image block: Fix image size control percentage selection. (49628)
  • 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.:
    • Donโ€™t display the scale control when the aspect ratio is original. (48894)
    • Show all controls when in context without postId. (49609)
  • Post 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.: Ensure the postId from the block context is used to get_the_excerpt. (49495)
  • ShortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site.: Prevent external styling of editing UI. (49723)
  • Time To Read: Fix untranslated on the front end. (49704)
  • Avoid empty Gallery block error. (49557)

Site Editor

  • Decode the site title properly. (49685)
  • Show UI to update custom links on the sidebar navigation. (48939)
  • Navigate to editor when clicking Edit in a template part. (49604)
  • Update the template title in the details panel. (49487)
  • Use the keyboard shortcuts package for the command center. (49680)
  • Fix the site editor loading in multi-site installs. (49861)

Global Styles

  • Block Level Settings: Remove WP filters in Gutenberg. (49598)
  • Border Panel: Move global styles forcing of split borders to relevant panelโ€™s onChange. (49603)
  • Remove the pointer cursor on the style variation preview. (49573)
  • Style Variation Picker: Restore pointer cursor when withHover is in use. (49596)

Block Editor

  • DropZone: Smooth animation. (49517)
  • List View: Allow dragging underneath collapsed non-empty container blocks. (49390)
  • List View: Update drop indicator line to be 4px high with a white border. (49462)
  • Tweak remove block label to make it simpler. (49529)
  • Fix redirected links to user documents. (49537)
  • Make InspectorControls tab labels translatable. (49665)
  • Update redirected support link. (49533)
  • Reusable Block: RTL styles donโ€™t get added to the wp-reusable-blocks stylesheet. (49632)
  • Fix padding and margin visualizer accuracy. (49422)

Layout

  • Only show alignment info when parent layout is constrained. (49703)
  • Try reducing the specificity of layout margin rules. (47858)

Post Editor

  • Allow root padding setting to affect padding of post title. (49460)
  • Try fixing post editor layout for wide/full Post Content blocks. (49565)
  • Allow horizontal scroll in panels in the post editor. (49611)

Components

  • Fix inbetween-inserter position in RTL languages. (49683)
  • Update Edit icon to be more consistent with other icons. (49512)
  • Update search icon to be optically more balanced. (49425)
  • Update some icons to address aliasing on high-res screens. (49381)

Performance

Documentation

  • Add section about integration testing to testing documentation. (49454)
  • Add some documentation about the Styles UI components. (49720)
  • Fix Create a Block Tutorial link on blocks package README.md. (49562)
  • Fix end-to-end command typos. (49669)
  • Fix line break issue in Schemas and Content Models section. (44768)
  • Fixes some typos. (49472)
  • getBlockOrder() โ€“ use core/block-editor instead of core/editor. (49474)
  • Fix Xcode spelling across the codebase. (49625)
  • Remove the documentation for Playwright configuration override. (49660)
  • Streamlining the New Release Issue Template. (49618)
  • Update components packageโ€™s CHANGELOG. (49586)
  • Update documentation for setGroupingBlockName. (49670)

Code Quality

Components

  • Ship TypeScript types. (49229)
  • Simplify CustomGradientPickerโ€™s utility props. (49588)

Global Styles

  • Refactor the effects panel as a generic UI Styles component. (49571)
  • Refactor the filters (duotone) panel as a generic UI Styles component. (49577)

Block Library

  • Add automated tests for Nav block editable list view. (49433)
  • Cover: Avoid adding empty background image URLURL A specific web address of a website or web page on the Internet, such as a websiteโ€™s URL www.wordpress.org. (49477)
  • Remove editor block styles leftovers. (49567)

Site Editor

  • Remove unused keyboard shortcut registration code. (49553)
  • Fix Site Editor isFeatureActive deprecation. (49545)

Tools

Testing

  • Add tests for some of the drag and drop logic. (49631)
  • Adds to gitignore a playwright.config.override.ts entry. (49329)
  • Cover block: Fix failing test. (49455)
  • Workflows: Run PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher unit tests also against current WP โ€“ 1. (46983)
  • e2e: Fix flaky columns test. (49676)
  • test: Add Writing Flow tests. (49352)

Build Tooling

  • Add workflow to check for expected wordpress/components CHANGELOG updates. (49443)
  • Docgen: Replace line breaks with spaces and remove line-ending hyphens. (49635)
  • Convert wp data controls to typescript. (49647)

First time contributors

The following PRs were merged by first time contributors:

  • @cawa-93: List View: Allow horizontal scroll in panels in the post editor. (49611)
  • @DustyReagan: Cover Block: Fixed background causes image to be zoomed in on Safari browser on iPad. (48981)
  • @eduwass: Docs: Fix end-to-end command typos. (49669)
  • @HILAYTRIVEDI: A margin option is added to the Embeded preview block. (39384)
  • @mokagio: Fix Xcode spelling across the codebase. (49625)
  • @nefeline: Post excerpt > Ensure the postId from the block context is used to get_the_excerpt. (49495)
  • @thealexandrelara: Docs: Fix Create a Block Tutorial link on blocks package README.md. (49562)

Contributors

The following contributors merged PRs in this release:

@aaronrobertshaw @afercia @andrewserong @aristath @aurooba @brookewp @carolinan @cawa-93 @chad1008 @ciampo @dcalhoun @derekblank @draganescu @DustyReagan @eduwass @fluiddot @geriux @getdave @glendaviesnz @hellofromtonya @HILAYTRIVEDI @imanish003 @jameskoster @jasmussen @jhnstn @jorgefilipecosta @Mamaduka @mirka @mokagio @nefeline @noahtallen @ntsekouras @ockham @ramonjd @richtabor @ryanwelcher @SavPhill @scruffian @Soean @t-hamano @talldan @tellthemachines @thealexandrelara @tyxla @youknowriad

Props to @ndiego for co-release leadRelease Lead The community member ultimately responsible for the Release., @joen for visuals assets @priethor, @rich, @annezazu for peer-review

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

X-post: Cultivating More Effective Contributing on Contributor Days

X-comment from +make.wordpress.org/community: Comment on Cultivating More Effective Contributing on Contributor Days

Status update on the SQLite project

This post is an update to the proposal for officially support SQLite in WordPress. The initial implementation was included in the Performance Lab 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. and then released as a stand-alone plugin.

That initial implementation was based on wp-sqlite-db by @aaemnnosttv, which in turn, was a fork of an older plugin.

Over the course of the last 6 month, issues with that implementation surfaced and the project experienced some limitations. As a result, we (@zieladam and @aristath) decided to rewrite it using a more future-proof concept.

The code has been completely rewritten to use an SQL Lexer and is now stable and able to handle all WordPress queries properly. The SQL Lexer is part of the PHPMyAdmin/SQL-Parser project (licensed under the GPLGPL GNU General Public License. Also see copyright license. 2.0) and it was adapted for WordPress, effectively implementing a MySQL to SQLite translation engine. This provides improved security, as well as compatibility.

The update has already been released in the standalone plugin and will soon be ported to the Performance Lab plugin. Most WordPress Unit Tests now pass, with the exception of a few that require patching WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..

The next step would be to implement these changes to WordPress core instead of using a plugin. To that end, we have a draft Pull Request and an accompanying Trac ticket.

Why should this be in Core and not as a plugin?

In its current form, the SQLite implementation is a plugin. Just like all plugins, it can only be installed on a pre-existing website. As a result, a site can only use an SQLite database if it already has a MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com database โ€“ effectively negating all the benefits that SQLite can bring to WordPress.

Using theย featuredย plugin is a great way to allow users to test the implementation and iron out any issues etc. However, long-term, it doesnโ€™t make sense to use it as a plugin.ย 

What are the next necessary decisions?

There needs to be a decision, if the WordPress project wants to provide an option to users during WordPress installation, so they can choose whether they want to use a MySQL or an SQLite database. If no option is available in the UIUI User interface, then users would have to manually add define( 'DB_ENGINE', 'sqlite' ); in their wp-config.php file.

Adding an option to select the database type may initially raise some eyebrows thinking that the famous 5-minute installation process will become more complicated, but in fact, itโ€™s the exact opposite: If users pick SQLite as their database, they donโ€™t need to create a MySQL db or enter their credentials in the installation screen, as no separate server is required.

A prototype of the UI changes are already available via the pull request in WordPress Core, to showcase how easy it would be to install WP using SQLite instead of MySQL.

The proof-of-concept UI in that implementation checks if the server supports SQLite and MySQL:

  • If SQLite is supported but not MySQL, then it defaults to SQLite and no UI option is shown to users. This is for example what happens in the WordPress Playgroundย โ€“ it is vanilla WordPress that defaults toย SQLite.
  • Similarly, if the server supports MySQL and not SQLite, then the installation will use MySQL and no option will be shown to users.
  • The UI option will only show if both SQLite and MySQL are supported by the server.

How can this implementation be tested?

The next step would be to thoroughly test the implementation with all the plugins you normally use. You can use the SQLite Database Integration plugin to test an SQLite database on your existing website, or better yet โ€“ you can test the pull request in WordPress Core.

If you test the plugin, keep in mind that it does not copy your current data from MySQL to SQLite, as mentioned in the call-for-testing post.

Props @zieladam for proofreading and contributing to this post, @bph for peer review

Dev Chat agenda, April 19, 2023

The next weekly WordPress developers chat will take place on April 19, 2023, at 20:00 UTC in the coreย channel ofย Make WordPress Slack.

Welcome and housekeeping

Dev Chat summary from April 12, 2023 โ€” thank you, @oglekler!

Weโ€™re looking for a volunteer to handle the meeting summary post. If youโ€™d like to help, please note in a comment below, or raise your hand at the start of the chat ๐Ÿ–๏ธ.

Announcements

Gutenberg 15.6 RC2 has been released

Highlighted posts

A Week in Core โ€“ April 17, 2023 โ€” thanks, @audrasjb!

WordPress 6.2 โ€˜Dolphyโ€™ Retrospective

WordPress 6.3 Planning Proposal & Call for Volunteers

Recap: WordPress 6.1 โ€œMishaโ€ Retrospective

Call for contributors: In-Browser WordPress Tech Demos

Experimental APIs in WordPress Core have largely been tamed โ€” this follow-up to last yearโ€™s proposal toย stop merging experimental APIs from Gutenberg to WordPress Coreย explains how this initiative is now mostly implemented.

Forthcoming releases

Updates on releases coming up.

Help needed for Component Maintainers/ Tickets

If you have a ticketticket Created for both bug reports and feature development on the bug tracker. which needs some help, do add it in the comments below.

Open floor

If you have an item for this part of the agenda, you can add the topic below.

#agenda, #core, #dev-chat

A Week in Core โ€“ April 17, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Letโ€™s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between April 10 and April 17, 2023.

  • 13 commits
  • 33 contributors
  • 39 tickets created
  • 4 tickets reopened
  • 27 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker.ย numbers are based on theย Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Bundled Themes

  • Twenty Nineteen: Fix a translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. issue in Comments navigation text โ€“ #58149

Coding Standards

  • Rename the $myHTML parameter to $text in htmlentities2() โ€“ #58129
  • Rename the $qtInit and $mceInit variables in _WP_Editors โ€“ #57839
  • Use strict comparison in wp-admin/includes/class-wp-ms-sites-list-table.php โ€“ #58139
  • Use strict comparison in wp-admin/maint/repair.php โ€“ #57839
  • Use strict comparison in wp-includes/http.php โ€“ #57839
  • Use strict comparison where strlen() is involved โ€“ #57839
  • Use strict comparison where substr() is involved โ€“ #57839
  • Use strict comparison where trim() is involved โ€“ #57839

Docs

  • Revise comments using โ€œweโ€ in various docblocks โ€“ #57052

Media

Users

  • Cache database queries within WP_User_Query class โ€“ #40613

Props

Thanks to the 33 people who contributed to WordPress Core on Trac last week: @sergeybiryukov (7), @aristath (5), @afercia (5), @poena (5), @audrasjb (3), @jrf (2), @annebovelett (1), @leamcaleese (1), @majaloncar (1), @antpb (1), @costdev (1), @kebbet (1), @joedolson (1), @adamsilverstein (1), @trepmal (1), @victoranto (1), @johnjamesjacoby (1), @sabernhardt (1), @spacedmonkey (1), @krupalpanchal (1), @jankyz (1), @mujuonly (1), @peterwilsoncc (1), @mukesh27 (1), @flixos90 (1), @rjasdfiii (1), @khoipro (1), @OllieJones (1), @srikanthmeenakshi (1), @strategio (1), @dd32 (1), @westi (1), and @azouamauriac (1).

Congrats and welcome to our 6 new contributors of the week:ย @annebovelett, @leamcaleese, @majaloncar, @victoranto, @jankyz, @srikanthmeenakshi โ™ฅ๏ธ

Core committers: @sergeybiryukov (8), @audrasjb (3), @spacedmonkey (1), and @joedolson (1).

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

Performance Chat Summary: 18 April 2023

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

Announcements

  • 2.2.0 was released yesterday
  • UPDATED from agenda: fetchpriority standaloneย 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.ย is still under review (not โ€˜approvedโ€™ as originally thought)

Priority Projects

Server Response Time

Link to roadmap projects

Contributors: @joemcgill @spacedmonkey @aristath

  • @joemcgill Happy to say that Iโ€™m back from some time off with two fully working arms, and am hopeful Iโ€™ll be able to publish some results from the profiling research I was doing earlier.
  • @spacedmonkey I have been reviewingย @aristath autoloading PR. It is nearly there.
  • @flixos90 What about the performance implications of autoloading? I believe that was still an open question in regards to whether we should move forward with this
    • @spacedmonkey Autoloading massively improve RAM usage. CPU, it is a little benefit at the moment.
    • @flixos90 Obviously autoloading is a best practice, but I think we still need to assess what really are the benefits of it in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Are there any benchmarks for those statements yet?
    • @johnbillion There were some numbers on the PR but they could do with being updated
    • @spacedmonkey https://github.com/WordPress/wordpress-develop/pull/3470#issuecomment-1490083546
    • @flixos90 Thatโ€™s a single profile though, right? There is so much variance in load time data, I think we need to do something a bit more comprehensive for the timing metrics. The 5.5 MB -> 5.15 MB looks promising though
    • @spacedmonkey I havenโ€™t done a tonne of benchmarking yet, it is a WIP.
    • @flixos90 Thatโ€™s fair, though I think we should do that sooner than later to be confident that this is actually a beneficial change for WordPress core. Also best to use medians from all the results
    • @spacedmonkey What is the KPI here? CPU usage, response time, ram usage?
    • @joemcgill Has there already been a merge proposal created for this change? Seems like something that would need broader communication and would be an opportunity to include performance data alongside the technical details?
    • @johnbillion Would be good to see separate metrics for front end, wp-adminadmin (and super admin), REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think โ€œphone appโ€ or โ€œwebsiteโ€) can communicate with the data store (think โ€œdatabaseโ€ or โ€œfile systemโ€) https://developer.wordpress.org/rest-api/, too, hopefully improvements all around
    • @spacedmonkey I am happy to run all those tests and provide data. As I say, it is WIP at the moment. I will wait until @aristath gets back to me and says it is good for a full review

Database Optimization

Link to roadmap projects

Contributors: @aristath @spacedmonkey @olliejones @rjasdfiii

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a userโ€™s browser. https://www.javascript.com & CSSCSS Cascading Style Sheets.

Link to roadmap project

Contributors: @mukesh27 @10upsimon @adamsilverstein

  • @10upsimon Regarding โ€œEnhancing the WP Scripts APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. with a Loading Strategyโ€:
    • Iteration is underway following the code review completed by several WPP team members
    • This is now ready for another round of reviewย here

Images

Link to roadmap projects

Contributors: @flixos90 @thekt12 @adamsilverstein @joemcgill

  • No updates this week

Measurement

Link to roadmap projects

Contributors: @adamsilverstein @olliejones @joemcgill @mukesh27

  • @joemcgill Iโ€™m starting to collect some ideas for enhancements to the initial automated performance workflow we added last release and would be happy for any suggestions folks here have.

Ecosystem Tools

Link to roadmap projects

Contributors: @joegrainger

  • @joegrainger for the Plugin Checker, weโ€™re working through the issues raised as part of the milestone 1 Review/QA and making good progress. Weโ€™ll continue to be working through these as over the coming weeks. Progress can be seen on theย GitHub repoย here. Feel free to take a look and leave any thoughts/ideas you may have there. Thanks!

Creating Standalone Plugins

Link to GitHub overview issue

Contributors: @flixos90 @mukesh27 @10upsimon

  • @mukesh27 I continue working on some follow-upย issues and milestone 2ย tasks
  • @flixos90 At this point for milestone 1 weโ€™re just waiting for plugin repo approval, then we can go ahead and publish the outstanding plugins Fetchpriority and Dominant Color Images
  • @flixos90 We may also want to start coordinating how weโ€™re going to re-integrate the SQLite repository into the monorepo, cc @aristath
    • For the latter, we would be good to publish from theย WordPress/performanceย repository any time now since the main effort has been completed
    • @joemcgill Seems like that should be handled before we release a version of the performance lab plugin that removes the related module
    • @flixos90 Absolutely, that would only be part of Milestone 2
    • @flixos90 asked @aristath Do you have an update onย https://github.com/WordPress/performance/pull/677? Is that ready for another review?
    • @flixos90 I wonder what is left beyond the above PR in order to sync the two codebases. At some point soon we should probably code-freeze the standalone GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โ€˜pull requestโ€™ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ repository and makeย WordPress/performanceย the source of truth again, that way weโ€™ll work in one codebase only, and we can publish from there a new version toย WP.orgย any time

New Projects / Proposals

  • @spacedmonkey I am looking into the autoloaded options in WordPress. I am just getting up to speed.
    • Wonder if anyone here, as any thoughts on the matter. Articles, plugins or other work arounds I should look at as part of my research
    • One route I am looking into, is stop using the single autoload cache key and make it so each option using itโ€™s own cache key. We can now useย wp_cache_get_multipleย to prime all autoloaded caches in one go.
    • @joemcgill Have we done any research into how many WordPress sites are able to make use of the benefits that get/set_multiple functions provide?
    • @spacedmonkey I have been looking at differnt object caching plugins
    • Sadly, many of them do not seem to implementย wp_cache_get_multiple
    • But many of these are the list have not been updated in 5+ years, it is hard to know if they are still being used. I made a mega list โ€“ย https://github.com/stars/spacedmonkey/lists/object-caching-plugins
    • @joemcgill Nice. I think it would be good for us to keep track of those numbers. Not that this should keep us from trying to optimize the caching of options, but it would help us better understand impact and ensure that any changes we make to support multi-cached options donโ€™t create a 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. for folks whose hosting doesnโ€™t support those features.
    • @spacedmonkey memcache and redis support multiple gets, it is just a matter of updating plugins to support it as well. We haveย wp_cache_supportsย in core. I wonder if we could get any data from that. We have some sites on WordPress sites php etc.

Open Floor

  • No updates

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

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

Performance Chat Agenda: 18 April 2023

Here is the agenda for this weekโ€™s performance team meeting scheduled for April 18, 2023 at 15:00 UTC.

  • Announcements
    • 2.2.0 was released yesterday
    • fetchpriority standalone 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. has been approved, aiming to publish later today
  • Priority projects
  • Open floor

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

Editor Chat Agenda: 19 April 2023

Facilitator and notetaker:ย @andraganescu

This is the agenda for the weeklyย editor chatย scheduled forย Wednesday, April 19 2023, 03:00 PM GMT+1. This meeting is held in theย #core-editorย channel in the Making WordPressย SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.

Check out WordPress 6.3 Planning Proposal & Call for Volunteers
Test out and give feedback on the Gutenberg plugin 15.6 RC3 before the final release on Wednesday. A big thank you to @bph and @ndiego for handling this release!

Key project updates:

Task Coordination.

Open Floor โ€“ extended edition.

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

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

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

Experimental APIs in WordPress Core have largely been tamed

Last yearโ€™s proposal to stop merging experimental APIs from Gutenberg to WordPress Core is now mostly implemented.

To recap: Due to 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 technical limitations, the recurring merge of the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โ€˜blocksโ€™ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party. to WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. led to a premature release of many experimental APIs.

After a long discussion and discovery process, Gutenberg introduced a distinction between Plugin-only APIs and Private APIs.

Plugin-only APIsย 

Plugin-only APIs are like early access feature previews that require community feedback to mature. They are only released as a part of the Gutenberg plugin and not merged into WordPress core. Itโ€™s implemented as follows:

// Using IS_GUTENBERG_PLUGIN allows Webpack to exclude this
// export from WordPress core:
if ( process.env.IS_GUTENBERG_PLUGIN ) {
ย ย export { pluginOnlyAPI } from './api';
}

Private APIsย 

Private APIs are internal. They are merged into WordPress core, but cannot be accessed by extenders in plugins or themes. Only the code inside the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor can access the private APIs using the dedicated utilities โ€“ please review the coding guidelines to find out more.

Aftermathย 

The goal of taming new experimental APIs has largely been achieved. Thanks to the recent coordinated effort to use the private APIs, only two new ones made it into WordPress 6.2. In contrast, previous WordPress releases introduced 14, 20, and even 40 new experimental APIs. Two is phenomenal ๐ŸŽ‰ The remaining follow-up work is being tracked separately in GitHub issue #47786

Regarding the stabilization of the existing experimental APIs, a case-by-case assessment of the several hundred experimental APIs in WordPress core will be necessary. WordPress 6.2 addressed a few such exports, and the rest will likely be gradually addressed in future releases. Some may get stabilized, others may get deprecated, and others may stay indefinitely. The upcoming WordPress Community Summit may provide some answers, as the issue of deprecating JavaScript APIs has been proposed as a discussion topic.

Many thanks to everyone for the productive discussions and efforts. The outcome of this effort is a testament to the commitment of the WordPress community to maintain high-quality software.

Props to the following editors and reviewers of this post: @gziolo @ndiego @cbringmann @mcsf @akirk @peterwilsoncc @priethor

#core, #gutenberg, #proposal

WordPress 6.3 Planning Proposal & Call for Volunteers

After the successful launch of WordPress 6.2, itโ€™s time to start planning for WordPress 6.3, and for WordPress 6.4โ€™s women and non-binary-led release. In preparation, this post includes WordPress 6.3 proposed target dates and a call for its release squad.

The timeline for the second release of 2023 takes into consideration this yearโ€™s two remaining flagship events โ€“ WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what theyโ€™ve learned throughout the year and share the joy. Learn more. Europe in early June and WordCamp US and the Community Summit in late August. To avoid having major milestones (Beta1, RC1) conflictconflict A conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with these events, this proposal suggests fitting the release process, from Beta1 to the final release, in the ten-week window between both events.

According to the schedule proposed below and the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โ€˜blocksโ€™ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ release cadence, WordPress 6.3 would include up to Gutenberg 16.1 for a total of 10 Gutenberg releases.

Proposed WordPress 6.3 Schedule

MilestoneDate
Alpha (trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision. open for 6.3 release)March 9, 2023
BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1June 27, 2023
Beta 2July 3, 2023*
Beta 3July 11, 2023
Release Candidaterelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). 1July 18, 2023
Release Candidate 2July 25, 2023
Release Candidate 3August 1, 2023
Dry RunAugust 7, 2023
WordPress 6.3 General ReleaseAugust 8, 2023

*July 4th is the US Independence Day. Although the release schedule canโ€™t adapt to all holidays worldwide, planning a beta release on that day would likely have a low turn of participants on July 4th, given the significant contributor presence in the US.

Please leave your feedback about the schedule in the comments by April 30th.

Release Leads call for volunteers

  • Release Coordinator: TBD
  • CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Tech Lead: TBD
  • Editor Tech Lead:ย  TBD
  • Core Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. Lead: TBD
  • Editor Triage Lead: TBD
  • Documentation Lead: TBD
  • Marketing & Communications Lead: TBD
  • Test Lead: TBD
  • Design Lead: TBD
  • Performance Lead: TBD

The Performance Lead was first tried as an experiment in WordPress 6.2. Although feedback collection for the WordPress 6.2 release process is still open, positive sentiment around the experiment in the #6-2-release-leads Slack channel suggests repeating the role in 6.3.

All release decisions will ultimately be this release teamโ€™s to make and communicate while gathering input from the community.

Join The Squadโ€ฆ or learn from them!

If you are interested in participating in 6.3โ€™s release squad, please show interest in the comments below. Most roles are better shared among more than one person to distribute the responsibilities.

Folks interested in joining the upcoming all-women and non-binary release squad in 6.4 will work with a mentor. While this mentorship is not tied to the 6.3 release squad, nor do mentors need to volunteer in this release, shadowing the 6.3 release process is also recommended preparation for those being part of the following release.


Thanks to @cbringmann, @francina, for the peer review and feedback

#6-3 #planning