Skip to content

Comments

Update#1

Open
tu-vu-duy wants to merge 10000 commits intofocusjs:masterfrom
WordPress:master
Open

Update#1
tu-vu-duy wants to merge 10000 commits intofocusjs:masterfrom
WordPress:master

Conversation

@tu-vu-duy
Copy link
Member

No description provided.

westonruter and others added 30 commits January 5, 2026 05:58
…set()` ternaries.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61435


git-svn-id: http://core.svn.wordpress.org/trunk@60747 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…of `isset()` ternaries.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61436


git-svn-id: http://core.svn.wordpress.org/trunk@60748 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Adds server-side registration for `anchor` block support and its required fields.

Props westonruter, wildworks.
Fixes #64449.
Built from https://develop.svn.wordpress.org/trunk@61437


git-svn-id: http://core.svn.wordpress.org/trunk@60749 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This changes WordPress Core's Gutenberg integration from npm packages to checking out and building Gutenberg directly. Instead of syncing individual npm packages, Core now checks out the Gutenberg repository, builds it, and copies the build artifacts.

This enables Core to use Gutenberg's advanced features like route-based navigation, full-page rendering, and the Font Library, while also streamlining future updates.

New commands:
  * `npm run gutenberg:checkout` - Clones Gutenberg at a specified ref
  * `npm run gutenberg:build` - Runs Gutenberg's build process
  * `npm run gutenberg:copy` - Copies and transforms build output to Core
  * `npm run gutenberg:integrate` - Runs all three steps

Main changes:
  * Removes webpack configs replaced by Gutenberg's build (blocks.js, packages.js, script-modules.js, development.js, vendors.js)
  * Adds Font Library page (`/wp-admin/font-library.php`)
  * Adds copy scripts to transform Gutenberg plugin paths to Core paths
  * Moves vendor copy step from webpack to Gruntfile

New year, new process. Happy New Year!

Props youknowriad, ellatrix, sirreal, westonruter, desrosj, tellthemachines.
Fixes #64393.

Built from https://develop.svn.wordpress.org/trunk@61438


git-svn-id: http://core.svn.wordpress.org/trunk@60750 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…-i18n.json handling.

This changeset addresses two issues in the Gutenberg integration workflow:

 * Sets `wpPlugin.name` to `wp` in `build-gutenberg.js` so generated PHP files use `wp_` prefixes instead of `gutenberg_`.
 * Persists `theme-i18n.json` in the repository for WP-CLI compatibility, as this file is required but was being ignored.

Props youknowriad, swissspidy.
See #64393.

Built from https://develop.svn.wordpress.org/trunk@61439


git-svn-id: http://core.svn.wordpress.org/trunk@60751 1a063a9b-81f0-0310-95a4-ce76da25c4cd
`SCRIPT`, `STYLE`, and stylesheet `LINK` tags do not require a type attribute since the HTML5 standard was released in 2008. Removing the type attribute simplifies logic and normalizes the produced HTML content.

Developed in WordPress/wordpress-develop#10664.

Follow-up to [61411], [46164].

Props jonsurrell, sabernhardt, westonruter.
Fixes #64428. See #59883, #64442.

Built from https://develop.svn.wordpress.org/trunk@61440


git-svn-id: http://core.svn.wordpress.org/trunk@60752 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The purpose of this change is to ensure that the quote block and the quote block cite inherits the text color from the parent block, if:

* The parent has a text color set in the block settings, and
* The quote block does not have a text color set in the block settings.

Follow-up to [43799], [56087].

Props poena, melchoyce, sabernhardt, mukesh27, apermo, SergeyBiryukov.
Fixes #51236.
Built from https://develop.svn.wordpress.org/trunk@61441


git-svn-id: http://core.svn.wordpress.org/trunk@60753 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…ad of `isset()` ternaries.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61442


git-svn-id: http://core.svn.wordpress.org/trunk@60754 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…ead of `isset()` ternaries.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61443


git-svn-id: http://core.svn.wordpress.org/trunk@60755 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…Use null coalescing operator instead of `isset()` ternaries.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61443], [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61444


git-svn-id: http://core.svn.wordpress.org/trunk@60756 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…ery, General: Use null coalescing operator instead of `isset()` ternaries.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61444], [61443], [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61445


git-svn-id: http://core.svn.wordpress.org/trunk@60757 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Updates the Gutenberg ref to include changes that generate both minified and non-minified CSS files during build. Previously, the build only produced a single CSS file (e.g., `style.css`), causing missing asset errors when `SCRIPT_DEBUG` is set to `false`, as Core expects `.min.css` files.

Props peterwilsoncc, dd32, tyxla, jsnajdr, mcsf.
Fixes #64393.

Built from https://develop.svn.wordpress.org/trunk@61446


git-svn-id: http://core.svn.wordpress.org/trunk@60758 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…d` controllers.

Follow-up to [30120], [31373].

Props yogeshbhutkar, mikachan, luigipulcini, SergeyBiryukov.
Fixes #62696.
Built from https://develop.svn.wordpress.org/trunk@61447


git-svn-id: http://core.svn.wordpress.org/trunk@60759 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…t_debug()`.

This resolves a PHP warning when preparing debug information for the fatal error protection email if `::get_plugin()` returned `false` due to the failing plugin not being found.

Follow-up to [46273].

Props mukesh27, afwebdev, abcd95, sainathpoojary, ankitkumarshah, SergeyBiryukov.
Fixes #62816.
Built from https://develop.svn.wordpress.org/trunk@61448


git-svn-id: http://core.svn.wordpress.org/trunk@60760 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Adds the `--fast` flag to Gutenberg build commands, which skips TypeScript-related steps (version validation, `tsc --build`, and type declaration file checks) that aren't needed when building for WordPress Core. These steps only produce `.d.ts` files which aren't shipped with Core. Also updates the Gutenberg ref to include the commit that adds `--fast` flag support.

The build times are now comparable to the build times we had using the npm packages.

Props dmsnell, johnbillion.
See #64393.

Built from https://develop.svn.wordpress.org/trunk@61450


git-svn-id: http://core.svn.wordpress.org/trunk@60762 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Follow-up to [121/tests], [401/tests].

Props salcode, geekofshire, swissspidy, iseulde, miqrogroove, SergeyBiryukov.
Fixes #31313.
Built from https://develop.svn.wordpress.org/trunk@61451


git-svn-id: http://core.svn.wordpress.org/trunk@60763 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Previously, the WP_Block_Processor class was making a mistake in
mis-reporting whether a token matches a block type when #innerHTML spans
are involved.

This patch fixes the logic, which was originally written before a
distinction between inner HTML and top-level freeform content was built.

Developed in WordPress/wordpress-develop#10701
Discussed in https://core.trac.wordpress.org/ticket/64485

Fixes #64485.

Built from https://develop.svn.wordpress.org/trunk@61452


git-svn-id: http://core.svn.wordpress.org/trunk@60764 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…sset()` ternaries.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61445], [61444], [61443], [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61453


git-svn-id: http://core.svn.wordpress.org/trunk@60765 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…rator instead of `isset()` ternaries.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61453], [61445], [61444], [61443], [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61454


git-svn-id: http://core.svn.wordpress.org/trunk@60766 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…tead of `isset()` ternaries.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61454], [61453], [61445], [61444], [61443], [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61455


git-svn-id: http://core.svn.wordpress.org/trunk@60767 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…ead of `isset()` ternaries.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61455], [61454], [61453], [61445], [61444], [61443], [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61456


git-svn-id: http://core.svn.wordpress.org/trunk@60768 1a063a9b-81f0-0310-95a4-ce76da25c4cd
… ternaries in remaining core files.

Developed as a subset of WordPress/wordpress-develop#10654
Initially developed in WordPress/wordpress-develop#4886

Follow-up to [61456], [61455], [61454], [61453], [61445], [61444], [61443], [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props costdev, westonruter, jrf, SergeyBiryukov, swissspidy, hellofromTonya, marybaum, oglekler, dmsnell, chaion07, noisysocks, mukesh27.
See #63430.
Fixes #58874.

Built from https://develop.svn.wordpress.org/trunk@61457


git-svn-id: http://core.svn.wordpress.org/trunk@60769 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This separates dependency setup from the build process by running
the Gutenberg checkout during npm install rather than before each
build. Build times decrease by approximately 30 seconds since the
checkout now occurs once during installation.

Props youknowriad, dmsnell.
See #64393.

Built from https://develop.svn.wordpress.org/trunk@61458


git-svn-id: http://core.svn.wordpress.org/trunk@60770 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Props justlevine, masteradhoc, samiamnot, matt, bradshawtm, 4thhubbard, desrosj, jorbin, westonruter, peterwilsoncc, johnbillion

Fixes #62622

Built from https://develop.svn.wordpress.org/trunk@61459


git-svn-id: http://core.svn.wordpress.org/trunk@60771 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…ding.

Invalid args now cause an `IXR_Error` to be returned.

Comprehensive unit tests are also added for the method.

Developed in WordPress/wordpress-develop#10690

Follow-up to [1348].

Props josephscott, westonruter.
Fixes #64479.

Built from https://develop.svn.wordpress.org/trunk@61460


git-svn-id: http://core.svn.wordpress.org/trunk@60772 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Updates the Xdebug configuration in the local Docker environment to better support Windows (WSL2) users while maintaining stability for macOS and Linux.

* Enables `xdebug.discover_client_host` to allow Xdebug to automatically connect back to the IP address listed in the HTTP request headers, ensuring the debugger works reliably regardless of specific network topology.
* Sets `xdebug.client_host` to `host.docker.internal` as a fallback for `xdebug.discover_client_host`. In WSL2 networking, `localhost` resolves to the container itself rather than the host machine, preventing the debugger from connecting to the IDE; `host.docker.internal` correctly routes to the host machine across platforms.

Follow-up to [60060].

Props SirLouen, jdeep, westonruter.
See #49953.
Fixes #63979.

Built from https://develop.svn.wordpress.org/trunk@61461


git-svn-id: http://core.svn.wordpress.org/trunk@60773 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…)` test.

Follow-up to [61336].

See #64224.
Built from https://develop.svn.wordpress.org/trunk@61462


git-svn-id: http://core.svn.wordpress.org/trunk@60774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
… with `if`/`else` statements.

Developed in WordPress/wordpress-develop#10711

Follow-up to [61457], [61456], [61455], [61454], [61453], [61445], [61444], [61443], [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61463


git-svn-id: http://core.svn.wordpress.org/trunk@60775 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…()` ternaries.

These had been missed previously due to additional parentheses around the `isset()` expressions.

Developed in WordPress/wordpress-develop#10704

Follow-up to [61463], [61457], [61456], [61455], [61454], [61453], [61445], [61444], [61443], [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].

Props soean.
See #58874, #63430.

Built from https://develop.svn.wordpress.org/trunk@61464


git-svn-id: http://core.svn.wordpress.org/trunk@60776 1a063a9b-81f0-0310-95a4-ce76da25c4cd
desrosj and others added 3 commits February 19, 2026 03:40
This is a minor bugfix release. 

Props vipulgupta003.
Fixes #63763.
Built from https://develop.svn.wordpress.org/trunk@61686


git-svn-id: http://core.svn.wordpress.org/trunk@60994 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…rivileged.

Previously, WordPress allowed site owners to open registration AND to set the default new user level to "Administrator" or "Editor". While this combination may make sense for some sites, this is genrally a really really bad idea.

With this changeset:
- Administrator and Editor roles are now removed from the new user default role selector in the General Options admin screen.
- If such a role was selected before, an alert is shown in Site Health.
- A new filter is introduced: `default_role_dropdown_excluded_roles` allows developers to change the default excluded roles in the dropdown.

Props kraftbj, subrataemfluence, roytanck, dd32, ottok, jrf, eatingrules, verygoode, generosus, stevejburge, arunu1996, benniledl, audrasjb, mukesh27, swissspidy, Mte90, zodiac1978, pooja1210, davidbaumwald, johnbillion, jorbin, SirLouen, oglekler, kirasong, shailu25, huzaifaalmesbah, jsmansart.
Fixes #43936.


Built from https://develop.svn.wordpress.org/trunk@61687


git-svn-id: http://core.svn.wordpress.org/trunk@60995 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…ot truthy.

This changeset allow developers to attach custom error handlers into `wp_trigger_error()` even if `WP_DEBUG` is not truthy.
It introduces two new hooks, making `wp_trigger_error()` consistent with what is available in `_doing_it_wrong`:
- `wp_trigger_error_always_run` always fires when the given function triggers a user-level error/warning/notice/deprecation message.
- `wp_trigger_error_trigger_error` filters whether to trigger the error.

Props kkmuffme, swissspidy, audrasjb.
Fixes #60886.


Built from https://develop.svn.wordpress.org/trunk@61688


git-svn-id: http://core.svn.wordpress.org/trunk@60996 1a063a9b-81f0-0310-95a4-ce76da25c4cd
ellatrix and others added 26 commits February 19, 2026 10:26
…red post meta.

Syncs/merges the PHP changes from the Gutenberg PR WordPress/gutenberg#75366.

In Gutenberg, we have added support for real-time collaboration using CRDT documents (via the [Yjs library](https://yjs.dev/)). This work has suggested the following additions to WordPress:

1. A default "sync provider" based on HTTP polling that allows collaborators to share updates with each other. Previously, we relied on WebRTC connections between collaborators for this purpose, but it proved unreliable under many network conditions.
   - Our solution is designed to work on any WordPress installation. 
   - HTTP polling is the transport we identified as most likely to work universally.
   - Given the isolation and lifecycle of PHP processes, updates must be stored centrally in order to be shared among peers. We have chosen to store updates in post meta against a special post type, but alternate storage mechanisms are possible.
   - Collaborative editing can involve syncing multiple CRDT documents. To limit the number of connections consumed by this provider, requests are batched.
   - To prevent unbounded linear growth, updates are periodically compacted.
   - To avoid excessive load on lower-resourced hosts, this provider will benefit from usage limits (e.g., a maximum of three connected collaborators) enforced by the client (Gutenberg).

2. A new registered post meta that allows Gutenberg to persist CRDT documents alongside posts.
   - This provides all collaborators with a "shared starting point" for the collaborative session, which avoids duplicate updates.
   - Content stored in the WordPress database always remains the source of truth. If the content differs from the persisted CRDT document, the CRDT document is updated to match the database.

3. A new Writing setting that allows users to opt-in to real-time collaboration.
   - Enabling real-time collaboration disables post lock functionality and connects users to the sync provider.

4. A behavior change to autosaves is needed. When the the original author is editing a draft post (post_status == 'draft' OR 'auto-draft') and they hold the post lock, the autosave targets the actual post instead of an autosave revision. This puts the post data and the persisted CRDT document out of sync and leads to duplicate updates. When real-time collaboration is enabled, all collaborators must autosave in the same way.

This PR provides a proposed implementation of the changes above. This corresponding Gutenberg PR moves the work from the `experimental` directory to `lib/compat`:

WordPress/gutenberg#75366

Cumulative work to add this functionality can be found using this label:

https://github.com/WordPress/gutenberg/issues?q=label%3A%22%5BFeature%5D%20Real-time%20Collaboration%22%20is%3Apr

Developed WordPress/wordpress-develop#10894.

Props czarate, paulkevan, ellatrix, timothyblynjacobs, westonruter, jorgefilipecosta, mindctrl.
Fixes #64622.

Built from https://develop.svn.wordpress.org/trunk@61689


git-svn-id: http://core.svn.wordpress.org/trunk@60997 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This reverts [61600]. Other core abilities did not made into 7.0 beta 1 timeline, so adding just a single ability does not adds much value and we are temporarily reverting this addition.
This commit is just a clean execution of the revert command.

Props jorgefilipecosta, jason_the_adams, justlevine.
See #64455.
Built from https://develop.svn.wordpress.org/trunk@61690


git-svn-id: http://core.svn.wordpress.org/trunk@60998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This changeset adds `dir="auto"` to the Timezones dropdown located in Settings > General. With this attribute, the option alignment will be delegated to the user agent.

@see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/dir.

Props farhad0, swissspidy, drysand, sabernhardt, khoipro, olmostblue, sajib1223.
Fixes #60770.


Built from https://develop.svn.wordpress.org/trunk@61691


git-svn-id: http://core.svn.wordpress.org/trunk@60999 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Follow-up to [61691].

Unprops audrasjb.
See #60770.


Built from https://develop.svn.wordpress.org/trunk@61692


git-svn-id: http://core.svn.wordpress.org/trunk@61000 1a063a9b-81f0-0310-95a4-ce76da25c4cd
When applying the grunt patch at [61690], it seems the patch made the files empty instead of deleting them. This commit just tries to fix that issue.
Follow up to [61690].

Props jorgefilipecosta.
Built from https://develop.svn.wordpress.org/trunk@61693


git-svn-id: http://core.svn.wordpress.org/trunk@61001 1a063a9b-81f0-0310-95a4-ce76da25c4cd
r61689 accidentally reverted the change to src/wp-includes/certificates/ca-bundle.crt from r61685, so this commit restores it using `svn diff -c 61685 ^/trunk | patch -p0`.

Props dd32, mukesh27, johnbillion.
See #64245. See #64622.
Built from https://develop.svn.wordpress.org/trunk@61694


git-svn-id: http://core.svn.wordpress.org/trunk@61002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
… to allow custom filtering.

This changeset does the following:
- Custom statuses added via `plugins_list` now appear as tabs, to filter the related plugins
- The tab label is customizable via the new `plugins_list_status_text` hook

Follow-up to [56068].

Props juliobox, audrasjb, hellofromTonya, khokansardar, sajjad67, davidbaumwald, sukhendu2002, SirLouen, mindctrl, shailu25, huzaifaalmesbah, westonruter.
See #60495.


Built from https://develop.svn.wordpress.org/trunk@61695


git-svn-id: http://core.svn.wordpress.org/trunk@61003 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Props czarate, paulkevan, dd32.
See #64622.
Built from https://develop.svn.wordpress.org/trunk@61696


git-svn-id: http://core.svn.wordpress.org/trunk@61004 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Fixes autosave controller tests, which began failing when RTC was enabled. The tests now need to cover two different code paths:

https://github.com/WordPress/wordpress-develop/blob/15ffb4392eddb43fdd9f31e075ebc85e857664c1/src/wp-includes/rest-api/endpoints/class-wp-rest-autosaves-controller.php#L259

Props czarate.
See #64622.
Built from https://develop.svn.wordpress.org/trunk@61697


git-svn-id: http://core.svn.wordpress.org/trunk@61005 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Follow-up to [15491], [16992].

Props noruzzaman, huzaifaalmesbah.
See #64224.
Built from https://develop.svn.wordpress.org/trunk@61698


git-svn-id: http://core.svn.wordpress.org/trunk@61006 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This change introduces PHPStan static analysis configured at [https://phpstan.org/user-guide/rule-levels rule level 0], which includes: "basic checks, unknown classes, unknown functions, unknown methods called on `$this`, wrong number of arguments passed to those methods and functions, always undefined variables". Contributors may elect for a higher PHPStan rule level by creating a `phpstan.neon` which overrides `phpstan.neon.dist`.

* Fix various PHPStan level 0 errors by adding `@phpstan-ignore` comments, updating PHPDoc types, and adding missing return values.
* Remove existing `@phpstan-ignore` comments that are now obsolete or inapplicable for level 0.
* Add a new GitHub Actions workflow for PHPStan Static Analysis. Reports are currently provided as warnings with inline annotations in pull requests and do not fail the build.
* Add a `phpstan` Grunt task and include it in the `precommit:php` task to run before `phpunit`.
* Introduce a `typecheck:php` npm script and a `composer phpstan` script to run analysis in local development environments.
* Add documentation for PHPStan usage in `tests/phpstan/README.md`.

Developed in WordPress/wordpress-develop#10419

Props justlevine, westonruter, johnbillion, desrosj, SirLouen, dmsnell, oglekler, joehoyle, jorbin.
See #64238, #63268, #52217, #51423.
Fixes #61175.

Built from https://develop.svn.wordpress.org/trunk@61699


git-svn-id: http://core.svn.wordpress.org/trunk@61007 1a063a9b-81f0-0310-95a4-ce76da25c4cd
The WordPress AI Client is a provider-agnostic API for WordPress code to call generative AI models via a consistent interface. Plugins and Core can use it to provide AI driven features for users, while users maintain full autonomy in choosing which AI provider(s) they want to rely on and how they configure them.

This changeset merges the technical foundation for the WordPress AI Client into Core. This foundation was originally implemented in the https://github.com/WordPress/wp-ai-client package, which will be sunset going forward. The underlying https://github.com/WordPress/php-ai-client package is bundled with this changeset and will remain a separate library maintained by the WordPress project, for WordPress Core and the PHP ecosystem.

No AI providers are bundled out of the box. Without explicit configuration and explicit calling code, WordPress will not send prompts or data to any external service. Site owners will be able to install plugins to enable usage of specific AI providers, built on top of this foundation.

This is the first changeset of two that are most relevant for the AI Client feature. The subsequent change will introduce a configuration screen for different AI providers, where users can install provider plugins, configure their credentials, and enable the canonical WordPress AI plugin. Together, this infrastructure and UI will enable the WordPress ecosystem to build AI features in a seamless and interoperable way.

Original merge proposal: https://make.wordpress.org/core/2026/02/03/proposal-for-merging-wp-ai-client-into-wordpress-7-0/

Props jason_the_adams, flixos90, desrosj, dkotter, jorgefilipecosta, peterwilsoncc, johnbillion, jorbin, swissspidy, isotropic.
See #64591.

Built from https://develop.svn.wordpress.org/trunk@61700


git-svn-id: http://core.svn.wordpress.org/trunk@61008 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Adds missing `svn:ignore` entries for files generated by the Gutenberg build process:
* Root directory: `.gutenberg-hash`
* `src/wp-includes/assets`: ignore all generated files
* `src/wp-includes/blocks`: remove versioned directories and ignore all generated files

Follow-up to [61476].

Props ellatrix.
See #64393.

Built from https://develop.svn.wordpress.org/trunk@61701


git-svn-id: http://core.svn.wordpress.org/trunk@61009 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Bring over the changes required to implement client side media in core. This feature recently graduated from experiments and is ready for testing in beta.

Props adamsilverstein, westonruter, mamaduka, mukesh27, swissspidy, andrewserong, ellatrix, ramonjd.
Fixes #62243.


Built from https://develop.svn.wordpress.org/trunk@61703


git-svn-id: http://core.svn.wordpress.org/trunk@61011 1a063a9b-81f0-0310-95a4-ce76da25c4cd
CI run: WordPress/wordpress-develop#10988.

See #64595.

---

I've included a log of the Gutenberg changes with the following command:

```
git log --reverse --format="- %s" b441348bb7e05af351c250b74283f253acaf9138..23b566c72e9c4a36219ef5d6e62890f05551f6cb | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy
```

- Remove experimental property from Icon block (WordPress/gutenberg#75742)
- Real-time collab editing: Fix undo E2E test (WordPress/gutenberg#75740)
- Snackbar: Fix scaling issue with snackbars that update their content via a common id (WordPress/gutenberg#75709)
- Vips and worker-threads packages: remove private flag so that packages can be published to npm (WordPress/gutenberg#75752)
- Update wordpress/vips in root package.json to use a relative path (WordPress/gutenberg#75758)
- Fix change-detection and new-post E2E tests after RTC enabled by default (WordPress/gutenberg#75751)
- Query: Remove content role from block (WordPress/gutenberg#75760)
- `ToggleGroupControl`: Make unselected item color consistent across all variants (WordPress/gutenberg#75737)
- Icon-block: fix global-styles selectors (WordPress/gutenberg#75724)
- RTC: Add cap check for single taxonomy term entities (WordPress/gutenberg#75708)
- Core Data: Create icons entity (WordPress/gutenberg#75773)

Built from https://develop.svn.wordpress.org/trunk@61705


git-svn-id: http://core.svn.wordpress.org/trunk@61013 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This changeset adds the URL of the blocked HTTP request in `http_request_not_executed`.

Props wiuempe, pento, maltfield, sainathpoojary, pmbaldha, mukesh27, johnbillion.
Fixes #45164.


Built from https://develop.svn.wordpress.org/trunk@61706


git-svn-id: http://core.svn.wordpress.org/trunk@61014 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This changeset moves the Block Hooks logic from individual post type filters to the REST controller.

Props bernhard-reiter, iamadisingh, audrasjb, r1k0.
Fixes #62715.


Built from https://develop.svn.wordpress.org/trunk@61707


git-svn-id: http://core.svn.wordpress.org/trunk@61015 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Follow-up to [51653].

Props Soean.
Fixes #64675.
Built from https://develop.svn.wordpress.org/trunk@61710


git-svn-id: http://core.svn.wordpress.org/trunk@61018 1a063a9b-81f0-0310-95a4-ce76da25c4cd
…ed verification logic.

- Use a more precise regular expression for identifying "HIT" statuses to avoid false positives (e.g., "no-hit").
- Add specific verification logic for Varnish's `X-Varnish` header.
- Use a `null` value in the header mapping to indicate a header existence check, when no callback is supplied.
- Improve documentation with links for information about certain headers.

Developed in WordPress/wordpress-develop#10855

Follow-up to [61355], [54043].

Props westonruter, dmsnell.
See #63748.
Fixes #64370.

Built from https://develop.svn.wordpress.org/trunk@61711


git-svn-id: http://core.svn.wordpress.org/trunk@61019 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Developed in WordPress/wordpress-develop#10990

Follow-up to r61699, r61700.

Props westonruter, SirLouen, jason_the_adams.
See #64591, #61175.

Built from https://develop.svn.wordpress.org/trunk@61712


git-svn-id: http://core.svn.wordpress.org/trunk@61020 1a063a9b-81f0-0310-95a4-ce76da25c4cd
… `scheme`.

Developed in WordPress/wordpress-develop#10916

Props bluefuton, tfrommen, chrispecoraro, drebbits.web, westonruter.
Fixes #64635, #40784.

Built from https://develop.svn.wordpress.org/trunk@61713


git-svn-id: http://core.svn.wordpress.org/trunk@61021 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Follow-up to [35189], [35629], [35772], [61656].

See #64225.
Built from https://develop.svn.wordpress.org/trunk@61714


git-svn-id: http://core.svn.wordpress.org/trunk@61022 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.