Bug Scrub Schedule for 6.1

With 6.1 well underway, here’s the initial schedule of 6.1 bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. scrub sessions. These 6.1-specific ticketticket Created for both bug reports and feature development on the bug tracker. scrubs will happen each week until the final release.

Alpha Scrubs:

Hosted by @audrasjb:

Hosted by @chaion07:

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. Scrubs:

RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). Scrubs:

Check this schedule often, as it will change to reflect the latest information.

What about recurring component scrubs and triagetriage The 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:

Have a recurring component scrub or triage session?
PingPing The 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 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/. 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 coreCore Core 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.

#bug-scrub

What’s new in Gutenberg 14.2? (28 September)

“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 tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)) 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 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., smarter autocompletions and much more!

Table of Contents

Smarter suggestions for Query LoopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. block 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.

Four screenshots of the Calendar block in a 2 by 2 grid, each one of them using a different background color

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). 

A screenshot of the block inserter showing all of the block pattern categories

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 UXUX User experience. (43802)

Global Styles

  • Allow setting Letter case and Decoration to ‘None’ and add Letter case to Global Styles. (44067)
  • Block supports: Allow overriding prettify options for enqueued CSSCSS Cascading Style Sheets.. (44248)
  • Show Letter Spacing in Global Styles -> Typography -> Headings. (44142)
  • Spacing presets: Switch to using numbers instead of t-shirt sizes for labels. (44247)

Block Editor

  • Hide all floating block UIUI User interface when typing. (44083)
  • Update animation for line and sibling inserter. (44269)
  • Warning component: Align the action buttons. (44328)

Block Library

  • Calendar block: Add color supports and polish styles. (42029)
  • Embed block: Mark which attributes should be considered content. (44039)
  • List Item block: Improve writing flow. (43954)
  • Post Navigation Link block: Add arrows. (40684)
  • Query Loop block: Suggest active variation patterns.
    (44197)

Patterns

  • Add a new categoryCategory The '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)

Bug Fixes

Components

  • BlockMover: Clean up focus styles. (44241)
  • Fix animation running in loop while dragging an image on a dropzone. (44264)
  • Fix popover stacking in the customize widgets editor. (44282)
  • Link autocompleter: Enable for all blocks. (44078)
  • Remove unexpected has-text class when empty children are passed to Button. (44198)

Block Library

Bugfixes to blocks:
  • Cover block: Fix preview. (44321)
  • Freeform block: Hide “Convert to blocks” when the block locked.
    (44288)
  • Group block: Change default variation in inserter. (44176)
  • Missing block: Fix HTMLHTML HyperText 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 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. 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)
  • 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)
  • Fix demo content cover block text color. (44174)

Block Editor

  • 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 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. label from global styles headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes.. (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 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. toggle shortcut. (43428)

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 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)
  • Batch container block settings action calls. (43958)
  • 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 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. changes. (44195)
  • RangeControl component: Clarify rail vs track difference. (44057)
  • Update links in the Development Platform document. (44181)
  • Updating versions in WP for 6.0.2. (43826)

Code Quality

  • Backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. template creation changes from CoreCore Core 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 a11yAccessibility 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) in packages/components. (44277)
  • Preferences-persistence: Remove wordpress/compose dependency. (44202)
  • Refactor style engine border styles. (43594)
  • Removes whitespace from l18n-strings. (44314)
  • Renaming functions to match their naming in Core. (44266)
    (44299)
  • useInstanceId: Convert to typescript. (43790)

Updating dependencies

  • Update fast-average-color library to latest version. (44175)
  • Update json2php to v0.0.5. (44313)
  • Remove wp-editor from wp-edit-blocks dependencies. (33496)

Block Library

  • Comments Pagination blocks: Rename for consistency. (44287)
  • Embed block: Remove incorrect comments about block variations. (43834)

Components

  • Refactor NavigationMenu to ignore exhaustive-deps. (44090)
  • Refactor RangeControl to pass exhaustive-deps.
    (44271)
  • Popover: Add anchor prop which supersedes all previous anchor-related props. (43691)
  • UnitControl: Fix exhaustive-deps warnings. (44161)
  • UnitControl: Use hideHTMLArrows prop to hide spin buttons. (43985)
  • useSetting: Minor refactor. (44267)

Refactoring tests to use @testing-library/reactReact React 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)
  • Compose: Introduce in-house debounce() utility, deprecate Lodash version. (43943)
  • Lodash: Remove dependency from wordpress/widgets package. (44201)
  • Lodash: Refactor away from _.flowRight().
    (44188)

Testing

  • Storybook: Set up local visual 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. 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

VersionLoading TimeKeyPress Event (typing)
Gutenberg 14.28.4s48.69ms
Gutenberg 14.112.7s54.31ms
WordPress 6.06.4s29.97ms

Site Editor

VersionLoading TimeKeyPress Event (typing)
Gutenberg 14.24.1s44.76ms
Gutenberg 14.115.7s54.39ms
WordPress 6.05.0s26.15ms

Contributor Props

The following contributors merged PRs in this release:

@aaronrobertshaw @ajlende @annezazu @apmatthews @aristath @c4rl0sbr4v0 @carolinan @chad1008 @ciampo @dcalhoun @draganescu @ellatrix @geriux @glendaviesnz @gziolo @jasmussen @jorgefilipecosta @kebbet @kkoppenhaver @Mamaduka @matiasbenedetto @mcsf @michalczaplinski @mirka @mtias @noisysocks @ntsekouras @pagelab @ramonjd @t-hamano @talldan @tellthemachines @tyxla  @walbo @youknowriad

The following PRs were merged by first time contributors:

  • @kkoppenhaver: Update RangeControl documentation to clarify rail vs track. (44057)
  • @pagelab: Enforce coding guideline regarding the usage of quotation marks. (44305)

Kudos to all the contributors that helped with the release! 👏

Props to @priethor @bernhard-reiter @matveb @cbravobernal for their assistance with the release and props to @javiarce for the images and videos!

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

Dev Chat agenda, September 28, 2022

The next weekly WordPress developers chat will take place in the #core 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/. channel on Wednesday September 28, 2022 at 20:00 UTC .

Summary of the last Dev Chat on September 21, 2022 – posted by @webcommsat

1. Welcome

2. Announcements

WordPress 6.1 Beta 2 released – September 27, 2022

3. Blogblog (versus network, site) posts

A Week in Core – September 26, 2022 – posted by @audrasjb

Core Editor Improvement: Catalyst for creativity and control, September 26, 2022 – posted by @annezazu

Proposal: Client-side WebAssembly WordPress with no server, September 23, 2022 – posted by @zieladam.

4. Releases

i) Major releases – 6.1

  • Update on the discussion on the 6.1 release date from last week’s meeting.
  • Update from release leads/ squad

5. Component maintainers/ Tickets to highlight/ help requests

Please add any updates or tickets you wish to raise in the comments below.

6. Open Floor

Please add any items you would like to raise in open floor in the comments below.

#agenda, #dev-chat

Performance team meeting summary 27 September 2022

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

Announcements

Focus group updates

Images

@adamsilverstein @mikeschroder

GitHub project

Feedback requested

Object Cache

@tillkruess @spacedmonkey

GitHub project

Feedback requested

Site Health

N/A

GitHub project

  • We’re seeking 1-2 POCs for this group; if you’re interested, please comment here or pingPing The 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 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/.
  • No updates

Feedback requested

Measurement

N/A

GitHub project

Feedback requested

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/.

@aristath @sergiomdgomes

GitHub project

  • @aristath: No movement on the JSJS JavaScript, 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 CoreCore Core 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.

Feedback requested

Infrastructure

@flixos90

GitHub project

Feedback requested

Discussion: SQLite support

@spacedmonkey and @aristath

  • @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 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..
  • @aristath: Understand that testing could be difficult, so currently converting it to work as a 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 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

Our next chat will be held on Tuesday, October 4, 2022 at 11am EDT in the #core-performance channel in Slack.

#core-js, #core-media, #performance, #performance-chat, #summary, #hosting-community

#meta

A Week in Core – September 26, 2022

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 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 release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope., WP 6.1 🛠 Last week, we entered the 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. cycle, with the release of WP 6.1 beta 1 🚀

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

Code changes

Administration

  • Add new get_views_links method to WP_List_Table#42066
  • Allow to wrap Settings sections with custom HTMLHTML HyperText 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 HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. 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 CustomizerCustomizer Tool 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

Chore

  • Run browserslits update – #56467

Code Modernization

  • 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 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/. plugins controller test class – #56629
  • Rename WordPress Dependencies 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. class files – #37861, #55647
  • Replace double quote with single quote in test_if_failed_update()#55758
  • Various alignment fixes from composer format#39210, #55443, #56288, #56092, #56408, #56467, #55881

Cron API

  • Add error logging and hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. 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_function docblockdocblock (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
  • Fix wp_get_layout_style() parameter documentation – #55646
  • Increase the specificity of various property documentation – #55646
  • Remove a change that needs to instead be applied in 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/ 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 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 update filters – #55646
  • Various improvements and corrections to inline docs – #55646

Editor

  • Remove repetitive calls to file_get_contents() in 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 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
  • Backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. block supports (border, color, elements, spacing) from Gutenberg to WP 6.1 – #56467
  • Backport block supports filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. 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
  • Fix missing frontend section presets output – #56467
  • Fix spacing property generation in flow layout type – #56467
  • Fix text zoom on link popup editor – #53174
  • Improve block loading PHPPHP The 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
  • Revert [54305]
  • Sync changes from the Gutenberg plugin 14.1 release – #56467

External Libraries

  • Update the jQuery UIUI User interface library to version 1.13.2 – #56239
  • Update the jQuery library to version 3.6.1 – #56451

General

  • Correct the fallback logic in apache_mod_loaded()#56010
  • Ensure adminadmin (and super admin) notices are properly displayed on Site Health layout – #54624
  • Pass $action to nonce_life filter – #35188
  • Remove file_exists() checks after calling realpath()#56654
  • Replace Codex links with their HelpHub counterparts – My Sites screen – #48987
  • Revert [54225]#48987
  • 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

I18Ni18n Internationalization, 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

Media

  • Add caching to wp_count_attachments()#55227
  • Change alt attribute field to textarea in media library – #50066
  • Fix JSJS JavaScript, 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
  • Respect EXIF Rotations – #54937
  • Revert WebP generation – #55443

Menus

Networknetwork (versus site, blog) and Sites

  • Move global_terms_enabled() to its proper final resting place – #21734
  • Officially remove global terms – #21734
  • Store main site id of a network in network options – #55802

Posts, Post Types

  • Fix WP_Query parameter used by get_page_by_title()#56609, #36905
  • Post title should not be translatable in get_user_data_from_wp_global_styles method – #55392
  • Update new wp_post_class_taxonomies filter name for consistency – #37114
  • Cache get_page_by_title()#36905
  • Coding standards fixes following [54234] – #36905
  • Prevent get_sample_permalink() modifying the post object – #54736

REST API

  • Fix check for has_archive inclusion – #56618

Role/Capability

  • Add a new update_role function – #54572

Security

  • Salting functions: translate the phrase “put your unique phrase here” – #55937

Shortcodes

  • Reverse wrapping of apply_shortcodes() and do_shortcode()#55883
  • Revert default filter callback changes from apply_shortcodes to do_shortcode#55883

Site Health

  • Improve the details provided by the REST API checks – #54617

TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.

  • 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 CSSCSS Cascading Style Sheets. files for blocks – #56616
  • Simplify syncing core blocks from Gutenberg plugin to Core – #56179

Upgrade/Install

  • Add plugin URLURL A 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
  • Update sodium_compat to v1.19.0 – #56653
  • Use “placeholder” for example values in setup-config.php – #56365

Users

  • Make wp_list_authors() and wp_list_users() filterable – #17025

i18n

  • Ensure empty strings are consistently translated to ''#55941

Props

Thanks to the 173 (!!) people who contributed to WordPress Core on Trac last week: @costdev (31), @SergeyBiryukov (23), @audrasjb (19), @jrf (12), @hellofromTonya (11), @peterwilsoncc (9), @bernhard-reiter (8), @desrosj (8), @mukesh27 (7), @mcsf (5), @aristath (5), @oandregal (5), @andrewserong (5), @kebbet (5), @johnbillion (4), @gziolo (4), @Clorith (4), @afercia (4), @dd32 (4), @johnjamesjacoby (4), @adamsilverstein (4), @ramonopoly (4), @ntsekouras (4), @rafiahmedd (4), @joedolson (4), @sabernhardt (4), @isabel_brison (3), @spacedmonkey (3), @antonvlasenko (3), @madhudollu (3), @poena (3), @nacin (3), @dingo_d (2), @scribu (2), @jameskoster (2), @onemaggie (2), @scruffian (2), @chaion07 (2), @DrewAPicture (2), @wonderboymusic (2), @glendaviesnz (2), @Presskopp (2), @robinwpdeveloper (2), @czapla (2), @cbravobernal (2), @marcyoast (2), @oliverstapelfeldt (2), @wildworks (2), @clorith (2), @mikachan (2), @ironprogrammer (2), @critterverse (2), @beafialho (2), @hilayt24 (2), @colorful tones (1), @daisyo (1), @dianeco (1), @bgardner (1), @greenshady (1), @anariel-design (1), @amjadr360 (1), @joen (1), @pbiron (1), @thijso (1), @khokansardar (1), @ramon-fincken (1), @JosVelasco (1), @ChrisHardie (1), @Ipstenu (1), @monolithon (1), @pento (1), @noisysocks (1), @joehoyle (1), @wparslan (1), @JavierCasares (1), @edent (1), @shetheliving (1), @Rahmohn (1), @herregroen (1), @jffng (1), @NomNom99 (1), @kafleg (1), @garrett-eclipse (1), @chaton666 (1), @krupalpanchal (1), @haritpanchal (1), @marybaum (1), @giuseppemazzapica (1), @martinkrcho (1), @pbearne (1), @dwainm (1), @pcfreak30 (1), @igmoweb (1), @jorbin (1), @jonny-s (1), @boonebgorges (1), @kishanjasani (1), @Dharm1025 (1), @thelovekesh (1), @tanvirul (1), @soean (1), @richtabor (1), @pbking (1), @mtias (1), @luminuu (1), @juhise (1), @maksimkuzmin (1), @kraftbj (1), @joyously (1), @hellofromtonya (1), @tobifjellner (1), @rehanali (1), @engahmeds3ed (1), @petitphp (1), @presstoke (1), @ocean90 (1), @here (1), @courane01 (1), @davidbaumwald (1), @vikasprogrammer (1), @maximemeganck (1), @gabri3lmarques (1), @dlh (1), @jsnajdr (1), @Camwynsp (1), @draganescu (1), @mamaduka (1), @dmsnell (1), @sergeybiryukov (1), @azaozz (1), @zieladam (1), @paragoninitiativeenterprises (1), @ndiego (1), @felipeelia (1), @lopo (1), @manooweb (1), @Chouby (1), @hugodevos (1), @Boniu91 (1), @krishaweb (1), @timothyblynjacobs (1), @mburridge (1), @palmiak (1), @jeherve (1), @chriscct7 (1), @ryan (1), @ross_ritchey (1), @griffinjt (1), @namithjawahar (1), @whaze (1), @joostdevalk (1), @jonoaldersonwp (1), @webcommsat (1), @swissspidy (1), @schlessera (1), @afragen (1), @antpb (1), @mciampini (1), @mboynes (1), @Enchiridion (1), @oglekler (1), @jorgefilipecosta (1), @cbirdsong (1), @aaronrobertshaw (1), @youknowriad (1), @TimothyBlynJacobs (1), @chetan200891 (1), @Mte90 (1), @kevinB (1), @matveb (1), @mikeschroder (1), @tbember (1), and @tobiasbg (1).

Congrats and welcome to our 15 (!) new contributors of the week: @marcyoast, @colorfultones, @anariel-design, @amjadr360, @thijso, @khokansardar, @edent, @here, @maximemeganck, @gabri3lmarques, @Camwynsp, @hugodevos, @ross_ritchey, @cbirdsong, @tbember ♥️

Core committers: @sergeybiryukov (28), @audrasjb (23), @desrosj (20), @davidbaumwald (13), @hellofromtonya (7), @jorgefilipecosta (6), @johnbillion (5), @gziolo (5), @peterwilsoncc (5), @joedolson (4), @spacedmonkey (2), @antpb (1), @clorith (1).

#6-1, #core, #week-in-core

Core Editor Improvement: Catalyst for creativity and control

These “CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Editor Improvement…” posts (labeled with the #core-editor-improvement tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)) 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 CSSCSS Cascading Style Sheets.. This post goes through each categoryCategory The '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 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. Support

Visual listing out all of the block with typography support in four columns with a green color scheme.

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 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.
  • 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

      Visual listing out all of the block with dimension and spacing support in four columns with a blue color scheme.

      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
      • AvatarAvatar An 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 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.
      • 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

      Visual listing out all of the block with color support in four columns with an orange color scheme.

      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 filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. 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

      Visual listing out all of the block with layout support in one columns with a blue color scheme.

      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 headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. 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

      This includes 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 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/ 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 values and 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!

      #core-editor, #core-editor-improvement

      Editor Chat Agenda: 28th September 2022

      Facilitator and notetaker: @ajitbohra.

      This is the agenda for the weekly editor chat scheduled for Wednesday, September 28th, 2022, at 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/..

      If you cannot attend the meeting, you are encouraged to share anything relevant to 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

      Performance Chat Agenda: 27 September 2022

      Here is the agenda for this week’s performance team meeting scheduled for September 27, 2022, at 15:00 UTC.


      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

      Roadmap to 6.1: Core Companion

      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. 

      For more information about current feature projects, check out the Feature Projects overview page

      Theme Improvements

      This year’s default theme is further embracing blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes 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: 

      Performance initiatives 

      Various performance initiatives are underway including, but not limited to the following: 

      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 CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Join #core-performance to get involved. 

      PHPPHP The 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 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 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. 

      Specifically, hosting feedback is needed but all contributions are welcomed. You can find the Plugin Dependencies feature plugin here. Please put comments, feedback, bugs, etc. as new issues in the Plugin Dependencies repo and join #core-auto-updates.

      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 hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.

      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 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/. 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:

      For more information about the REST API, please review this developer documentation and join #core-restapi.

      Miscellaneous improvements and 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

      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. 

      Thanks to @cbringmann @annezazu @sergeybiryukov for helping craft and review this post. 

      Client-side WebAssembly WordPress with no server

      This early demo runs a full WordPress directly in the browser without a PHPPHP The 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 IDEIDE Integrated 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 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.” button on WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ and immediately start coding. This is what it could look like:

      WordPress Developer tools

      Testing code on different WordPress, PHP, and 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/ 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 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, 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.

      How does the in-browser WordPress work?

      The code lives in the GitHub repository.

      In short:

      • PHP is compiled to WASM with Emscripten
      • WordPress is packaged into a data bundle
      • A service worker traps HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. requests and re-routes them to WordPress.

      See more details below.

      PHP is compiled to WASM with Emscripten

      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, 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/. 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 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/. data types.

      You need to load the webworker-php.js in a webworker and add a tiny wrapper class:

      const php = new PHPWrapper();
      console.log(
          await php.run(`<?php echo "Hello world";`).stdout
      );
      // "Hello world"
      

      See the Dockerfile, the compilation script, and the php-wasm playground.

      WordPress is packaged into a data bundle

      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-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ 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 ApacheApache Apache is the most widely used web server software. Developed and maintained by Apache Software Foundation. Apache is an Open Source software available for free., NginxNGINX NGINX 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.

      Instead, the superglobal variables are populated “manually”:

      function request(path, method, body, cookies) {
          return php.run(`<?php
              $_POST   = json_parse('${JSON.stringify(body)}');
              $_COOKIE = json_parse('${JSON.stringify(cookies)}');
              $_SERVER['REQUEST_URI'] 	= $path;
              $_SERVER['REQUEST_METHOD']  = "${method}";
              require "wordpress/index.php";
          `);
      }
      
      

      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:

      register_shutdown_function(function() use() {
          $stdErr = fopen('php://stderr', 'w');
          fwrite($stdErr, json_encode(['status_code', http_response_code()]) . "\n");
          fwrite($stdErr, json_encode(['session_id', session_id()]) . "\n");
          fwrite($stdErr, json_encode(['headers', headers_list()]) . "\n");
      }
      
      

      The final request handler is similar to this:

      function request(path, method, body, cookies) {
          const { stdout, stderr, exitCode } = php.run(`<?php
              $_POST   = json_parse('${JSON.stringify(body)}');
              // ... Populate other superglobals...
       
              register_shutdown_function(function() use() {
                  $stdErr = fopen('php://stderr', 'w');
                  fwrite($stdErr, json_encode(['status_code', http_response_code()]) . "\n");
                  // Output other information
              }
       
              require "wordpress/index.php";
          `);
       
          const { statusCode, headers, body } =
              rawOutputToResponse({ stdout, stderr, exitCode });
          return { statusCode, headers, body };
      }
      

      The actual code is much more involved, but it’s based on the same idea.

      Node.js is supported, too

      Running WordPress in different JSJS JavaScript, 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:

      In-browser version

      WordPress is rendered in an iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. by a minimal index.htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. once both workers are loaded.

      Node.js version

      • Emscripten compiles PHP for the Node.js runtime.
      • A Node.js script loads the WebAssembly PHP and mounts a local WordPress directory inside the PHP filesystem.
      • The same Node.js script starts a web server. It serves most requests as static files, except the .php ones, which it routes to WordPress.

      WordPress is served on localhost:8888.

      Running an in-browser WordPress IDE with Stackblitz

      Stackblitz is the in-browser IDE that makes Svelte docs interactive:

      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.

      WordPress runs in Stackblitz via a Node.js server

      The minimal WordPress plugin dev setup on Stackblitz consists of:

      • A node.js WordPress server (via an npm package)
      • A plugin directory mounted inside of mu-plugins
      • A wp-scripts setup to watch and bundle the JavaScript files

      @gziolo went a step further and prepared a version with an editable Gutenberg block generated via create-block. All it took was running the npx @wordpress/create-block example-static command as shown in the create-block documentation, and restarting the dev server with npm run start:

      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.

      An in-browser WASM WordPress is really fast

      Here’s a Stackblitz WordPress setup using the webworker WordPress version:

      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 headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. to the browser. That’s a bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.. 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!

      Resources

      Props to @bph, @annezazu, and @gziolo for their thorough help with reviewing and editing this post.

      #core, #editor, #proposal

      Summary, Dev Chat, September 21, 2022

      Notes from the weekly WordPress Developers Chat, which takes place on Wednesdays at 20:00 UTC in the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. channel of the Make 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/.. 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, TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets, component maintainers and more.

      Meeting preparation and co-hosts: Props to @webcommsat and @marybaum.

      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 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).

      The meeting agenda

      Link to the start of the meeting on Slack

      2. Announcements

      • WordPress 6.1 BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 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.

      3. Blogblog (versus network, site) Posts and important links

      Twenty Twenty Two (TT2) theme accessibility discussion

      Start of the discussion on Slack

      @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 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. 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-ready tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) 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 ticketticket Created 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 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..

      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 release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. 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.


      c) Useful links and next release cycle dates
      WordPress 6.1 Development cycle
      Bug scrub schedule for 6.1

      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 filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output., 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 PHPPHP The 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, I18Ni18n Internationalization, 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 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. US!

      b) Query on the Canonical Plugins post

      @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 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? 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 Contributors Core 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 GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/

      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.

      The next dev chat will be on Wednesday September 28, 2022 at 20:00 UTC.

      Props to @webcommsat for the summary, @costdev and @marybaum for the review.

      #6-1, #core, #dev-chat, #summary