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 our bug tracker.
With 6.1 well underway, here’s the initial schedule of 6.1 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 sessions. These 6.1-specific ticketticketCreated for both bug reports and feature development on the bug tracker. scrubs will happen each week until the final release.
BetaBetaA 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. Scrubs:
RCrelease candidateOne 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). Scrubs:
Check this schedule often, as it will change to reflect the latest information.
What about recurring component scrubs and triagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. sessions?
The above 6.1 scheduled bug scrubs are separate and in addition.
For your reference, here are some of the recurring sessions:
Design Scrub: Every Tuesday, 16:00 UTC, in the #design channel.
Have a recurring component scrub or triage session? PingPingThe act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.”@audrasjb or @chaion07 on SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. to have it added to this page.
Want to lead a bug scrub?
Did you know that anyone can lead a bug scrub at anytime? Yes, you can!
How? Ping @audrasjb or @chaion07 on slack and let us know the day and time you’re considering as well as the report or tickets you want to scrub.
Planning one that’s 6.1-focused? Awesome! It can be added to the schedule above. You’ll get well deserved props in the weekly Dev Chat, as well as in the #props Slack channel!
Where can you find tickets to scrub?
Report 5 provides a list of all open 6.1 tickets:
Use this list to focus on highest priority tickets first.
Use this list to focus on tickets that haven’t received love in a while.
Report 6 provides a list of open 6.1 tickets ordered by workflow.
Need a refresher on bug scrubs? Checkout Leading Bug Scrubs in the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. handbook.
Questions?
Have a question, concern, or suggestion? Want to lead a bug scrub? Please leave a comment or reach out directly to @audrasjb or @chaion07 on slack.
“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-newtagtagA 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.)) are posted following every Gutenberg release on a biweekly basis, discovering new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Full Site Editing project.
Gutenberg 14.2 has been released and is available for download!
It comes with writing flow improvements, a more polished Calendar 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., smarter autocompletions and much more!
Smarter suggestions for 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. block variations
Block variations have been available in Gutenberg for a long time. They allow you to have similar versions of the same block that share some common functionality. From now on, if you have an active variation of the Query Loop block on your site and that variation has registered some block patterns, only those patterns will be suggested in the inserter.
For example, you might have a Products List block that is a variation of the Query Loop block. That Products List can also have a registered block pattern. Now, when inserting the Products List block, you will not see the default Query Loop block patterns but rather your own block pattern associated with the Products List. Pretty neat!
Improvements to the writing flow
Several improvements to the writing flow have been shipped in Gutenberg 14.2:
The sibling and line inserters now feature a more natural animation effect.
Selecting multiple blocks is now more visually consistent.
The block inserter is now hidden when the user is typing, reducing visual clutter.
Letter spacing in headings
It is now possible to modify the letter spacing of the headings directly in the Global Styles interface.
A more polished Calendar block
You can now set the background, link and text color of the Calendar block. Global Styles will now also affect the colors of the Calendar block and it will inherit the default text color from its parent block.
New “Banners” and “Footers” block pattern categories
Two new block pattern categories are introduced in order to better reflect the structure of web pages. “Banners” here refers to visually distinctive elements that help structure or contrast the contents of a page (including headings and “hero” elements).
Autocompletion for links
From now on, it is possible to autocomplete links in any block. Previously, blocks had to explicitly opt into this functionality with __experimentalSlashInserter but now links will be autocompleted everywhere! The [[ shortcut is used to trigger the autocompletion in the editor.
Editor performance improvements
Introducing a new version of the List block that uses inner blocks uncovered a previously unknown performance issue: Whenever a block that contains inner blocks was displayed for the first time on a page it would re-render once for each level of nesting! So, if a List item was inside of a List that was inside of another List block, that block would re-render 3 times! This problem has now been fixed and the initial load performance of the editor should be improved.
Changelog
Deprecations
Officially deprecate the children and node block attribute sources. (44265)
Enhancements
Components
Link/Unlink buttons: Add more polished styling and UXUXUser experience. (43802)
Global Styles
Allow setting Letter case and Decoration to ‘None’ and add Letter case to Global Styles. (44067)
Query Loop block: Suggest active variation patterns. (44197)
Patterns
Add a new categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. for block patterns called “Banners”. (44203)
Add a new category for block patterns called “Footers”. (44200)
Freeform block: Hide “Convert to blocks” when the block locked. (44288)
Group block: Change default variation in inserter. (44176)
Missing block: Fix HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. block check. (44327)
Navigation block: Fix submenu colors for imported classic menus. (44283)
Navigation block: Remove ellipses as menu icon options for now. (44222)
Pullquote block: Fix transform to quote crash. (44315)
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. block: Fix height/scale overwriting img inline styles. (44213)
Query Loop block: Fix broken preview in specific category template. (44294)
Query Loop block: Fix variation with declaredicon object with src. (44270)
Bugfixes not related to a specific block:
Avoid showing the recursion warning in previews when replacing template parts. (44256)
Ensure replacing a template part using a pattern doesn’t update the existing entity. (44221)
Block Toolbar: Update position when moving blocks. (44301)
Capture state changes scheduled between render and effect. (38509)
Writing flow: Fix partial selection when dragging in between blocks. (44230)
Global Styles
Block supports: Prioritize prettify options over SCRIPT_DEBUG. (44254)
Fix padding on the post editor when RootPaddingAwareAlignments setting is enabled. (44209)
Remove the betaBetaA 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. label from global styles 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.. (44251)
Site Editor
Make template names and descriptions dynamic. (43862)
Prevent editor from creating multiple templates when multi-clicking the “create” button. (44146)
Keycodes
Keyboard Shortcuts: Fix settings 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. toggle shortcut. (43428)
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)
Add role=application to List View to prevent browse mode triggering in NVDA. (44291)
Block label and title don’t consider variations. (44250)
Make inline toolbar navigable by arrow keys. (43645)
Text Selection in Safari: Try new fix for recent version. (44148)
Performance
Avoid calling redux actions constantly when moving the mouse or scrolling. (44325)
Prevent resize observer loops in BlockPreview. (44319)
Documentation
Include information about multiple scripts support added in WP 6.1. (44155)
Popover: Write better documentation regarding the recent 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. changes. (44195)
RangeControl component: Clarify rail vs track difference. (44057)
Update links in the Development Platform document. (44181)
BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. template creation changes from CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress..
Enforce coding guideline regarding the usage of quotation marks. (44305)
Fix missing TS types for a11yAccessibilityAccessibility (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) in packages/components. (44277)
Refactoring tests to use @testing-library/reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.
Refactor BlockControls tests to @testing-library/react. (44122)
Refactor ColorPalette tests to @testing-library/react. (44108)
Refactor KeyboardShortcutHelpModal tests to @testing-library/react. (44077)
Work to remove dependency on lodash
Compose: Introduce in-house compose and pipe utils. (44112)
Storybook: Set up local visual 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. testing. (43393)
Tooling
Ensure all packages get minor/major version bump when requested. (44317)
Performance Benchmark
The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.
Post Editor
Version
Loading Time
KeyPress Event (typing)
Gutenberg 14.2
8.4s
48.69ms
Gutenberg 14.1
12.7s
54.31ms
WordPress 6.0
6.4s
29.97ms
Site Editor
Version
Loading Time
KeyPress Event (typing)
Gutenberg 14.2
4.1s
44.76ms
Gutenberg 14.1
15.7s
54.39ms
WordPress 6.0
5.0s
26.15ms
Contributor Props
The following contributors merged PRs in this release:
@spacedmonkey: Working on dev notesdev 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
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. for 6.1
Performance improvements to REST APIREST APIThe 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/.
Can @tillkruess work on this 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
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.?
Improvements to caching 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.
Want to make sure that these changes are listed in the field notes and on the 6.1 about page, since they weren’t included on the betaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 announcement blogblog(versus network, site)
Changes like added caching to WP_Query have a big impact and need to be called out
@zzap: These will all be added to the field guideField guideThe field guide is a type of blogpost published on Make/Core during the release candidate phase of the WordPress release cycle. The field guide generally lists all the dev notes published during the beta cycle. This guide is linked in the about page of the corresponding version of WordPress, in the release post and in the HelpHub version page.
We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or pingPingThe act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” in SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.
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/.
@aristath: No movement on the JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. front recently, so focusing on general performance improvements instead, including #56636, #56637, #56654 and just a few minutes ago #56666. The process I’ve been following is to basically run vanilla WP using Xdebug-profiling, examine the results using webgrind and try to reduce the amount of function calls – as well as their cost. Generally small tweaks, with relatively big benefits. Last week #55005 was also merged in CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress., so overall I believe WP 6.1 contains a lot of nice and impactful performance changes – as highlighted by all the updates from other folks above.
@spacedmonkey: Think this is a great idea and could be useful in core for running unit tests and for other projects like wordpress-wasm. Wonder if the performance team should help take on this problem, even if it is to review the solution and ensure that there’s no performance 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..
@aristath: Understand that testing could be difficult, so currently converting it to work as a 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 in this repository. Trying to convert to something that would make sense for core and then publish in the .org repo as a featured plugin. Hoping if this is in the form of the plugin, more people will test and provide feedback. Also noting that the initial proposal focused on small-to-medium sites, but there’s great potential for growth in other areas as well where large sites can take advantage of SQLite.
@spacedmonkey: I’ve forked hyperdb and run very large multisites, can provide context here
@aristath: We’ll need lots of context once we get rolling – the prospect of pairing SQLite and hyperdb is very exciting
Welcome back to a new issue of Week in CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between September 19 and September 26, 2022.
110 commits
173 contributors
66 tickets created
13 tickets reopened
91 tickets closed
The Core team is currently working on the next major releasemajor releaseA release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope., WP 6.1 🛠 Last week, we entered the betaBetaA 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. cycle, with the release of WP 6.1 beta 1 🚀
TicketticketCreated for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.
Code changes
Administration
Add new get_views_links method to WP_List_Table – #42066
Allow to wrap Settings sections with custom HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. content – #17851
Bootstrap/Load
Confirm the value of WP_ENVIRONMENT_TYPE before using – #55741
Introduce is_*_admin_screen() aliases for is_*_admin() function family – #56400
Send 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. headers after querying posts in WP::main() – #56068
Build/Test Tools
Enable debugging when rerunning a failed workflow – #56407
Increase the timeout value for MacOS jobs – #55652
Remove unnecessary --no-interaction option from Composer commands – #54695
Temporarily allow the NPM testing workflow to fail – #56615
Test building WordPress to run from src first – #55652
Update NPM dependencies in default themes – #56641
Update NPM dependencies in default themes, part 2 – #56641
Update NPM dependencies to their latest versions – #56641
Improve how combined assets are generated – #56615
Bundled Themes
Import Twenty Twenty-Three, the new default theme for WordPress 6.1 – #56383
Twenty Twenty-One: Add a missing HTML comment for CustomizerCustomizerTool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. notice control – #55725
Twenty Twenty-Three: Bug fixes and improvements for beta 2 – #56383
Twenty Twenty: Ensure the fallback fonts is applied to all content elements for non-latin languages – #56396
Fix null to non-nullable deprecation in WP_REST_Users_Controller::update_item() – #55656
Coding Standards
Applying an alignment fix from running composer format – #56467
Correct alignment in WP_Theme_JSON_Resolver::get_core_data() – #55647
Move WP_List_Table::get_views_links() to a more appropriate place – #42066
Remove extra space in REST APIREST APIThe 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/. plugins controller test class – #56629
Rename WordPress Dependencies 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. class files – #37861, #55647
Replace double quote with single quote in test_if_failed_update() – #55758
Add error logging and 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. to wp-cron.php – #56048
Date/Time
Correct sanitization of timezone_string in sanitize_option() – #56468 – #53404
Correct sanitization of localized default timezone_string in populate_options() – #56468
Correct timezone dropdown list creation in wp_timezone_choice() – #56468
Minor tweak to support deprecated timezones on General Settings screen – #56468
Docs
Correct @see reference to deprecated_function_run in the _deprecated_functiondocblockdocblock(phpdoc, xref, inline docs) – #56625
Correct the wording in wp_lostpassword_url() description – #55646
Fix prev_text and next_text parameters type in paginate_links() – #56622, #55646
Increase the specificity of various property documentation – #55646
Remove a change that needs to instead be applied in the 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/ repo – #55646
Typo correction in _load_textdomain_just_in_time() docblock – #55646
Updates and corrections to various inline docsinline docs(phpdoc, docblock, xref) added in 6.1 – #55646
Use typed array notation for the $locales parameter in 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 update filters – #55646
Various improvements and corrections to inline docs – #55646
Editor
Remove repetitive calls to file_get_contents() in 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. editor settings – #56637
Remove duplicate use of realpath() in register_block_style_handle() – #56636
Add box-shadow support for blocks through theme.json files – #56467
Add has_archive property to the post types REST endpoint – #56467
Add post types property to wp-rest-block-patterns-controller.php – #56467
Adds template types, is_wp_suggestion, and fallback template content – #56467
BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. block supports (border, color, elements, spacing) from Gutenberg to WP 6.1 – #56467
Backport block supports 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. callback, registrations and tests to 6.1 – #56467
Backport hooks to filter theme.json data from Gutenberg to 6.1 – #56467
Fix function name case in wp_default_packages_inline_scripts() – #56467
Improve block loading PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher performance – #55005
Improves layout block support in wp_get_layout_style() – #56467
Introduce spacing presets in global style properties – #56467
Introduces fluid typography and uses Style Engine – #56467
Make template names and descriptions dynamic – #56467
Throw a more descriptive error when templates are not found – #36631
Help/About
Add a help tab in Theme Install screen for the new “Block Themes” search filter – #56405
Make translator comments version agnostic and make version translatable on the About page – #54741
Remove an unwanted whitespace in a Theme Install screen help tab string – #56405
I18Ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.
Remove code tags from translatable strings in WP_List_Table::get_views_links() – #42066
Update list of continents and cities for the timezone selection – #56468
Login and Registration
Add a new filter for the lost password link – #55388
Change alt attribute field to textarea in media library – #50066
Fix JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. TypeError with video playlists and native video – #47513
Standardise the format used to describe arguments passed to actions and filters inside wp_insert_term() and wp_update_term() – #55441
Tests
Add tests with deprecated timezone strings – #56468
Delete Link Manager plugin after running REST API plugins controller tests – #56629
Remove empty directory in WP_UnitTestCase_Base::rmdir() – #55652
Remove nested empty directories in WP_UnitTestCase_Base::rmdir() – #55652
Replace the timezone used in date/time tests – #56468
Reset timezone-related options if the tests change them – #56468
Revert removing empty directory in WP_UnitTestCase_Base::rmdir() for now – #55652, #56629
Simplify the data provider for testing whether KSES globals are defined – #55652
Text Changes
Remove self-reference (“we”) in WordPress Admin – #55758, #46057
Themes
Import Twenty Twenty-Three is now the default theme – #56383
Relocate actions firing prior to and after template loading – #54541
Tools
Fix running build scripts on Windows does not generate CSSCSSCascading Style Sheets. files for blocks – #56616
Simplify syncing core blocks from Gutenberg plugin to Core – #56179
Upgrade/Install
Add plugin URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org to the automatic update email – #53049
These “CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor Improvement…” posts (labeled with the #core-editor-improvementtagtagA 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.)) are a series dedicated to highlighting various new features, improvements, and more from Core Editor related projects.
Alongside the addition of more blocks to edit more parts of your site, more design tools are being added across all blocks to both ensure consistency in the experience and to allow folks to customize their site even more, without needing to use CSSCSSCascading Style Sheets.. This post goes through each categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. of design tools, what blocks they are available in, the progress made, and some fun examples showing off what you can now do. The result is a catalyst for creativity, with more to come on the horizon.
Typography 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. Support
These settings include font size, line height, font style, font weight, text transform, letter spacing, font family, and text decoration. When combined, these allow you to have new ways to differentiate your content, whether by making something stand out more or less. At a high level, various combinations of these options are available in the following blocks with many added for the 6.1 release cycle:
Column/Columns
Categories
Code
Comment Author Name
Comments Content
Comment Date
Comment Edit Link
Comments Reply Link
Comment Template
Paragraph
Comments
Comments Pagination
Comments Pagination Next
Comments Pagination Numbers
Comments Pagination Previous
Comments Title
Cover
Home Link
Group
Latest Comments
List
Media & Text
Page List
Post Author
Post Author Biography
Post Author Name
Post Comments Count
Post Comments Link
Post Content
Post Date
Post ExcerptExcerptAn 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.
Post Template
Post Terms
Post Navigation Link
Preformatted
Pullquote
Search
Table of Contents – not available in 6.1
Latest Posts
Navigation
Query No Results
Query Pagination
Query Pagination Next
Query Pagination Numbers
Query Pagination Previous
Query Title
Quote
Term Description
Verse
Button/Buttons
Archives
Calendar
Site Title
Site Tagline
Table
Heading
Navigation Link
Read More
To see the power of these supports in action, here’s an example of using them to personalize a button:
The audit for this set of design tools is 85.71% complete. To follow further efforts and see more details about the support added to each block, please review this tracking issue.
Dimensions and Spacing Block Support
These supports include padding, margin, block gap, height, width, and min height. As the name suggests, they give you exact control over the layout of blocks both in relation to inner blocks (like the layout of a List or Gallery) and in relation to blocks nearby. At a high level, various combinations of these options are available in the following blocks with many added for the 6.1 release cycle:
Archives
Audio
Tag Cloud
Table of contents – not available in 6.1
Table
Term Description
Spacer
Post Date
Heading
Paragraph
Query Title
Post Title
Video
List
Media & Text
Verse
Categories
Comment Edit Link
Comment Date
Comment Reply Link
AvatarAvatarAn avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name.
Site Logo
Social Links
Gallery
Button/Buttons
Code
Column/Columns
Comment Author Name
Comment Content
Comments Title
Cover
Group
Heading
Navigation
Post Author
Post Author Biography
Post Author Name
Post Excerpt
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.
Read More
Separator
Site Tagline
Site Title
To show how you can use these tools to refine your work, here’s an example of just using the block gap option to manage the layout of social links:
The audit for this set of design tools is 54.76% complete. To follow further efforts and see more details about the support added to each block, please review this tracking issue.
Colors Block Support
This includes text color, background color, link color, gradient options, and duotone filters. These options allow you to do everything from add a custom duotone 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. to all featured images in a display of posts to picking unique color combinations for your social links. At a high level, various combinations of these options are available in the following blocks with various ones added for the 6.1 release cycle:
Social Links
Gallery
Calendar
Table of Contents – not available in 6.1
Social Links
Button
Avatar – Duotone only
Code
Column/Columns
Comment Author Avatar – Background only
Comment Author Name
Comment Content
Comment Date
Comment Edit Link
Comment Reply Link
Comments
Comments Pagination
Comments Pagination Next
Comments Pagination Previous
Comments Title
Cover – Duotone only
Gallery – Background only
Group
Heading
Image – Duotone only
List
Media & Text
Navigation
Paragraph
Post Author
Post Author Biography
Post Author Name
Post Comments Count
Post Comments Form
Post Comments Link
Post Date
Post Excerpt
Post Featured Image – Duotone only
Post Navigation Link
Post Terms
Post Title
Preformatted
Pullquote
Query
Query No Results
Query Pagination
Query Pagination Next
Query Pagination Numbers
Query Pagination Previous
Query Title
Quote
Read More
Search
Separator
Site Logo – Duotone only
Site Tagline
Site Title
Social Links
Table
Table of Contents
Term Description
Verse
To see these supports in action, here’s an example of providing your own colors for social link icons that match with the branding on your site:
The audit for this set of design tools is 65.47% complete. To follow further efforts and see more details about the support added to each block, please review this tracking issue.
Layout Block Support
Of note, this support only applies to container blocks (buttons, columns, gallery, etc) since it impacts the layout of blocks within each. At a high level, various combinations of these options are available in the following blocks. Note that no new supports were added for the 6.1 cycle:
Buttons
Column
Columns
Comments Pagination
Gallery
Group
Navigation
Post Content
Post Template
Query
Query Pagination
Social Links
To see these specific container related options in play, here’s an example with the navigation block where you can quickly switch between different configurations as you find which best fits with 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. of your choosing:
The audit for this set of design tools is 52.17% complete. To follow further efforts and see more details about the support added to each block, please review this tracking issue.
Border Block Support
Thisincludes the ability to control color, radius, style, and width on each side of the border. These powerful set of tools allows for some neat ways to decorate everything from individual images to overall columns of content. At a high level, various combinations of these options are available in the following blocks with a few added for the 6.1 release cycle:
Post Featured Image
Column/Columns
Image
Avatar
Button
Code
Column/Columns
Comment Author Avatar
Comments Title
Group
Pullquote
Read More
Search
To see how borders can transform a block, here’s an example showing how a theme author can customize a featured image block to make it stand out even more:
The audit for this set of design tools is 14.28% complete. To follow further efforts and see more details about the support added to each block, please review this tracking issue.
The power of combining tools
While this post sectioned out the various design tools to make it easy to catch up on all that’s happened, remember that the true power in these tools comes when they are combined altogether. For a simple yet powerful and common example, here’s a video showing how with some very quick changes you can make a paragraph pop to better call attention to a part of your post:
For a more complex example, here’s a video showing how you can customize your featured image block with various borders and a duotone filter, long before you select the image of your choosing:
More to come
The above simply captures the initial set of work to create consistency across blocks, with tons more planned to offer an increasingly intuitive default experience for all blocks and to stabilize the underlying block support APIs. This has been a massive effort involving a flurry of PRs across multiple different 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/ releases ahead of 6.1. As these tools grow, the question of how best to scale the interface becomes more important, with explorations already underway for a better way to reset valuesand clarify inherited styles. Tied to this, it’s also important that any omission of support is deliberate in order to ensure a more cohesive experience.
Props to @markoserb for the design help with the visuals you see above and @beafialho for help with the video demos!
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/ 14.2.0
This post is meant to supplement the broader 6.1 roadmap and focuses on features that are now planned in addition to the ones previously worked on that now have clarity and momentum. Please take both posts into consideration when thinking about the upcoming release cycle and where you might be able to get involved. Keep in mind that for much of what’s mentioned in this post, work will continue beyond 6.1 and into future releases, providing ample opportunity to contribute.
This year’s default theme is further embracing 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. themes by offering various opinionated style variations from community members. This will give more folks a chance to enjoy the latest and greatest. Read the latest update here announcing the 10 style variations planned for Twenty Twenty-Three.
Outside of the default theme, the following improvements are also underway and help set the tone for additional changes:
Improve the experience of updating a theme that has the same name on WordPress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/
Add a help tab in Theme Install screen for the new “Block Themes” search 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..
You can also explore other ongoing efforts being explored in the Performance Lab plugin to test the modules to get their benefits before they become available in WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. Join #core-performance to get involved.
PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.2 compatibility
The work is continuing to improve compatibility with PHP 8.0 and 8.1 while also preparing for PHP 8.2 due out at the end of November. While 6.1 won’t be PHP 8.2 compatible, efforts are still needed today to get us there in future releases. To get involved with this work, please review the overarching tracking issue, the current open issues, and join #core-php.
Rollback and 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 Dependencies
In an effort to offer a more robust rollback and dependencies experience when a problem is encountered during an update, work is underway to test the current experience in hopes of being incorporated into Core.
Keep in mind that the rollback work is for plugins and themes whereas the dependencies is just for plugins currently.
Site Health Improvements
To help guide more folks to upgrade their versions of PHP and offer more relevant warnings about high urgency issues, messaging improvements are in progress; please follow along in this trac issue and join #core-site-health.
Introducing and refining 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.
Since Hooks continue to make up the foundation for how plugins and themes interact with WordPress Core, work continues to expand and refine what’s offered both to allow Core to accomplish more and for extenders to do the same. For 6.1, this includes the following:
REST APIREST APIThe 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/. Improvements
Since the REST API is the foundation of the WordPress block editor and provides a way for you to create your own interface, work continues to expand what’s possible when interacting with your site’s data:
Miscellaneous improvements and 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
While some work fits nicely into general categories, there’s plenty more work underway that cuts across many different parts of the WordPress ecosystem. This includes everything from database component items to internationalization to Cron API and more. For a full list of what’s planned for 6.1, please review this trac query.
If any efforts were not mentioned here that should be, please leave a comment below so we can all be made aware.
This early demo runs a full WordPress directly in the browser without a PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher server! While it isn’t fully stable yet, it is a major breakthrough that could transform learning, contributing, and using WordPress. This post explores the opportunities and explains in detail how it works.
Your help is needed to realize the vision laid out below. None of the presented mockups and early explorations are currently reliably implemented. This project needs volunteers to stabilize the code and build revolutionary tools on top of it. If you’d like to be a part of it, please say so in the comments!
Learning WordPress in the browser
The code examples in the WordPress handbook could become runeditable, like in this early preview:
Furthermore, an in-browser IDEIDEIntegrated Development Environment. A software package that provides a full suite of functionality to software developers/programmers. Normally an IDE includes a source code editor, code-build tools and debugging functionality. could lead new contributors through solving their first “Good first issue” without setting up a local development environment. Just like this early preview:
Finally, a guided code editor could become a primary teaching tool for new developers. They would click a “Build your first 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.” button on WordPress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ and immediately start coding. This is what it could look like:
WordPress Developer tools
Testing code on different WordPress, PHP, and 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/ versions currently require a tedious setup. With an in-browser WordPress IDE, it wouldn’t require any setup at all. As a developer, you would switch between the different versions by selecting different entries in a box:
Taking it further, the continuous integration pipeline could replay the failed tests right in the browser and provide a code editor to debug and fix the problem on the spot:
On a different note, the desktop and mobile apps could reuse WordPress code by running an actual WordPress instance – even when offline.
Finally, WordPress could potentially be scaled up by spinning up many tiny self-contained WASM instances directly on the edge servers.
Showcasing
Embedding a demo of your 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, pattern, or theme directly on the website makes another great use case. One such demo lives on wpreadme.com, an in-browser WordPress readme.txt editor. Here’s what the plugin directory could look like:
Today, a WordPress server is required, and ideally, one WordPress per user to always present the same initial state.
The in-browser WordPress enables one private WordPress per user with no marginal server cost. Everyone can start logged-in as an adminadmin(and super admin) with no security risks.
Furthermore, importing an existing WordPress website into WASM runtime would create a staging website. Users could try themes and plugins on a copy of their site without affecting the live sites. Then, once the staging website looks good, they’d click a button and publish the changes.
How else would you use the in-browser WordPress? Please share your ideas in the comments so more use cases can be considered in the future.
A service worker traps 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. requests and re-routes them to WordPress.
Firstly, PHP is compiled using an adjusted recipe from the php-wasm repo. It’s powered by Emscripten, a drop-in replacement for the C compiler. Unfortunately, MySQLMySQLMySQL 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/. currently cannot run as WASM. However, SQLite can, and WordPress supports SQLite via the wp-db-sqlite plugin.
Emscripten compilation yields two files: webworker-php.wasm, which is the assembly, and webworker-php.js, which downloads the assembly file, creates a virtual heap, and exposes named native functions conveniently wrapped to accept and return 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/. data types.
You need to load the webworker-php.js in a webworker and add a tiny wrapper class:
WebAssembly PHP runtime has its own filesystem and WordPress is shoehorned into it as a data bundle.
First, a fresh WordPress distribution is downloaded and patched with the wp-db-sqlite plugin. It’s about 66MB large, but an optimization pipeline makes that 46MB by minifying the PHP files and removing non-essential static assets. Getting down to just 12MB is possible, but it’s not easy.
Second, the WordPress installation process kicks in. A script serves our WordPress via the built-in PHP server and sends a special curl request to /wp-admin/install.php?step=2. Unfortunately, wp-cliWP-CLIWP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/https://make.wordpress.org/cli/ is hard-wired to MySQL and not a good match here.
Lastly, Emscripten’s file_packager turns our WordPress copy into a data file named wp.data and a JavaScript loader named wp.js. Loading both the PHP runtime from webworker-php.js and the WordPress data bundle from wp.js allows you to run <?php require “wordpress/index.php”; right in the browser!
A service worker reroutes the HTTP to WordPress
WordPress reads request information from $_SERVER, $_GET, $_COOKIE and so on. Normally these variables are populated by ApacheApacheApache is the most widely used web server software. Developed and maintained by Apache Software Foundation. Apache is an Open Source software available for free., NginxNGINXNGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers. https://www.nginx.com/., or another web server. However, in this case, there isn’t one.
That takes care of the request, but capturing the complete HTTP response is still necessary. The PHP outputs information in only two ways: stdout and stderr. The response body comes out via stdout, but the HTTP status code and headers don’t. They need to be manually streamed to stderr where the JavaScript app can capture them:
The actual code is much more involved, but it’s based on the same idea.
Node.js is supported, too
Running WordPress in different JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. runtimes is a matter of connecting these major building blocks with runtime-specific plumbing. Today there is an in-browser version and a node.js version. Here’s how they differ:
A web worker loads PHP WebAssembly, downloads WordPress, mounts it in PHP’s in-memory filesystem, and registers. Webworker is needed to avoid freezing the UIUIUser interface while handling requests.
A service worker traps the browser’s HTTP requests and re-routes the .php ones to the web worker.
WordPress is rendered in an 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. by a minimal index.htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. once both workers are loaded.
It could do the same for WordPress docs; see this early preview.
Stackblitz doesn’t need a specialized backend. It runs Node.js, npm, and webpack right in the browser via WebAssembly. Other than hosting and delivering a few megabytes of data, Stackblitz has no marginal costs. This idea is called Web Containers.
Learning WordPress and writing code used to be separated. Now they can be one and the same. From runnable code snippets to new, svelte-like docs formats, WebContainers + WebAssembly WordPress is an educational game-changer.
However, a Node.js WordPress server on Stackblitz is sluggish
Rendering a single wp-admin page takes a second locally but up to 40 seconds on Stackblitz. That’s much longer than most developers are willing to wait. Here’s why that happens:
A local Node.js WordPress server works like this:
WordPress runs on WebAssembly PHP
WebAssembly PHP runs on a native Node.js
However, a Stackblitz Node.js WordPress server has an extra layer:
WordPress runs on WebAssembly PHP
WebAssembly PHP runs on WebAssembly Node.js
WebAssembly Node.js runs on a native Chrome
It’s like a box in a box: A WebAssembly runtime in Chrome runs Node.js that has its own WebAssembly runtime. WordPress runs on the latter, not on the former, and that indirection causes a massive slowdown.
Luckily, the browser can run WebAssembly natively without an intermediate Node.js layer.
It is much faster! Unfortunately, the speed comes at the expense of simplicity.
Stackblitz requires a service worker just like the in-browser WASM WordPress. However, you can only have one per domain. Therefore, the WordPress files in this example are hosted on a Netlify domain.
Then, the Stackblitz files can’t be directly mounted into the in-browser PHP filesystem. The changes need to be synchronized manually. In this example, a node.js file watcher notifies the PHP webworker about the updates via WebSockets and onmessage/postMessage. There are bugs, but all are fixable.
Known issues
WASM WordPress issues:
The in-browser WordPress builds sometimes crash the Chrome tab, see the GitHub issue. Firefox, Safari, and node.js are much more stable.
Stackblitz integration issues:
The in-browser Stackblitz setup doesn’t watch subdirectories.
WordPress exceeds Stackblitz size limits unless imported as a node_module.
Stackblitz corrupts a predefined binary .sqlite database file. A base64-encoded version is shipped instead.
Stackblitz doesn’t pass a server-side set-cookie 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. to the browser. That’s 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.. Workaround: the express.js server handles the cookies internally.
Next steps
Your help is needed to fully realize the vision laid above. None of the presented mockups and early explorations is currently reliably implemented. This project needs contributors to stabilize the code and build revolutionary tools on top of it – see the issues list on GitHub. If you’d like to be a part of it, please say so in the comments!
Notes from the weekly WordPress Developers Chat, which takes place on Wednesdays at 20:00 UTC in the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. channel of the Make WordPress SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.. All are welcome to attend.
To view the content from any of the Slack links listed, you will need a Making WordPress Slack account to view.
1. Welcome
Dev Chat is for everyone. This meeting is not for making decisions but for sharing updates about the next releases, TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets, component maintainers and more.
The agenda is structured to help new contributors or those new to core or releases follow along more easily, and to make it easier for notetakers and for 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).
WordPress 6.1 BetaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 is now available https://wordpress.org/news/2022/09/wordpress-6-1-beta-1-now-available/ Thank you to everyone involved and contributors who came to test at the earlier release party.
@annezazu highlighted a cross-team discussion on releasing a new version of Twenty Twenty Two theme so that the committers could add the accessibility-ready label to it ahead of 6.1. This was raised as a possibility as it would be the first 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 with that label, opening the door for more people to be able to explore using various Full Site Editing (FSE) features.
@audrasjb: if adding the accessibility-readytagtagA 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.) to TT2 is that important, then suggest to only release this change (the above commit), and not all the other changes milestoned in 6.1.
@joedolson: – It’s a minor fix, but the theme is less accessible right now than it will be when 6.1 is available. – elates to the Trac ticketticketCreated for both bug reports and feature development on the bug tracker.#56067 query navigation arrow icons. Accessibility image requirements – confirmed the theme would not pass the accessibility-ready criteria with this 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..
Actions:
@annezazu: The decision feels clear to me to wait for 6.1.
Follow the discussion on the accessibility-ready tag for the TT2 theme: these are mostly in the Trac ticket #55172. @annezazu will add a recap of the discussion on the ticket.
4. Releases
a) The next major releasemajor releaseA release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. is 6.1. The Call for Testing for 6.1 was published earlier today. Actions: The post on testing is really valuable part of the process, and lots of useful information on how to take part.
@jeffpaul: main update from the squad is that the Beta 1 is available and testing is strongly desired please and thanks! b) @jeffpaul highlighted the following issues to continue discussion on the relevant Trac tickets: should the contributors revert them before Beta 2 on September 27? Is there some other more optimal result? Tickets #56400 and #19898.
Actions request: read and add directly on the tickets, particularly to comment 8 on ticket #56400 on the discussion on the naming of things.
Beta 2 release will be next Tuesday, September 27, 2022 starting at 16:00 UTC in the #core Slack channel. @jeffpaul: All are welcome, any and all testing will be welcome.
d) Discussion on date of the 6.1 release Slack thread
On today’s agenda, comment from @marctison75 relating to the date of the 6.1 release: “…are you aware that the release day (November 1, 2022) is a public holiday in many European countries (France, Italy, Spain, Belgium, Portugal, Germany, Croatia, Austria…)?”
Discussion points focused on:
this date appears to be a public holiday that affects many countries. It is also a public holiday in many countries in Europe, parts of South America, Africa, and further.
sensitivity to public holidays given comments about avoiding weekends
uncertainty about what dates could be changed at this time. Need to avoid the US elections
decision to be made by the release squad to determine what’s best, discussion valuable to take place in core/ dev chat. Availability of release squad members needed will be the key factor
question on whether the release date could be moved by just one day to November 2, 2022, like for Beta 1?
traditionally Tuesday’s are the planned release days based on past experience
primary concern is surrounding core auto-updates:
a lot of hosts are likely to auto-update irrespective of a public holiday
generally hosts auto-update when they have people on site to handle any issues so weekends are avoided
consider hosts outside the US too
a host may auto-update without realizing the implications for the users and any public holidays they have
auto-update can be enabled by any site owner via update-core.php or by 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., not only hosts
avoid days too close to the weekend.
Monday is dry run day, better to avoid dry run falling on a Sunday
Actions: @davidb: Let the Release coordinators discuss in 6.1 channel and send up the flagpole if necessary. There’s never a best time for to these things. It’s always a compromise.
@jeffpaul: Ok, we will work to sort out with release leads whether an alternate day for the release may be desired, though I imagine folks would complain about Monday of that week with the holiday following. More to come hopefully by next dev chat.
@webcommsat thanked those who had raised the issue and all the comments. Asked release squad leads to also add a comment to the dev chat summary with any decision.
5. Component maintainers and tickets
@sergeybiryukov: Date/Time: Some fixes were made to ensure that timezone strings deprecated in newer PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher versions are handled correctly by WordPress. Thanks @jrf and @costdev. Ticket #56468 for more details.
Build/Test Tools, General, I18Ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.: Permalinks: No major news this week
@webcommsat: About/ Help and Quick/ Bulk Edit: couple of issues we are trying to move forward. More on Monday in our working session.
6. Open Floor
a) @marybaum gave a welcome to our new contributors who helped with dev chat at WordCampWordCampWordCamps 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. US!
@costdev: A couple of questions that others may know the answer to:
Is this a decision or a proposal?
What does this mean for WebP? Is it going into Core at all, or has it been blocked?
What does this mean for other in-development features for Core?
Do we have a criteria for what is acceptable for Core, and what should be a Canonical 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? Or are all features Canonical Plugins unless they’re a “runaway success” as Matt said in the post?
@jeffpaul gave a reply to these questions from his perspective:
Is this a decision or a proposal?
@jeffpaul:It’s from Matt, so I would read that as a decision.
What does this mean for WebP? Is it going into Core at all, or has it been blocked?
@jeffpaul:It’s been reverted from 6.1 and seems best suited as a Canonical Plugin, based on Matt’s comment in WebP in Core for 6.1 of “This is excellent territory for a canonical plugin”.
What does this mean for other in-development features for Core?
@jeffpaul:Can you provide an example as I imagine it could depend based on what you’re referencing?@costdev: Some examples would be Rollback, Plugin Dependencies, WP Notify
@afragen: Question – Is Matt or leadership going to let us know whether existing feature projects are going to be acceptable for core or live their life as canonical plugins?
@jeffpaul: yeah that’s where I was headed… I think if we as core contributorsCore ContributorsCore contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. can collect a list of those outstanding proposals, then we could look to Core Team Reps to route those through Josepha/Matt for input as to whether they’re still ok to continue towards core merge proposal or better suited as a canonical plugin.
Do we have a criteria for what is acceptable for Core, and what should be a Canonical plugin? Or are all features Canonical Plugins unless they’re a “runaway success” as Matt said in the post?
@jeffpaul: This is all still a new process for many of us I imagine, but if I had to guess I suspect we might want to update our core proposal “process” to ensure there’s a check early on with Matt/Josepha for direction on “this is good for core merge proposal” or “this is best as a canonical plugin” so we know early on how best to be building out the feature.
@jeffpaul: answering these on my own behalf with no input from Matt, Josepha, lead devs, committers, or anyone else of significance here in core.
@costdev said it might be useful to have the issue discussed with Core during a dev chat open floor to give a little heads up, understand the reasoning of the decision, and a Q&A prior to the public announcement.
@jeffpaul: I suspect it may be more likely that we get answers from Matt async than waiting for a week where his schedule is free for dev chat (and one where others can be present to participate). As such, it may be better to gather questions folks have, again maybe via coordination with Core Team Reps, and present those to Matt/Josepha to get responses async to help guide our actions here as core contributors.
c) WordPress 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/
If you are a member of the WordPress GitHub organization, you should have received a message to enable Two Factor Authentication if it is currently disabled on your account. Please check your messages and settings.
You must be logged in to post a comment.