Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
652 commits
Select commit Hold shift + click to select a range
28fd8e2
Administration: Fix the CSS Coding Standards in edit.css.
afercia Sep 28, 2026
9d58227
Administration: Fix the CSS Coding Standards in forms.css.
afercia Sep 28, 2026
8d43a3f
Administration: Fix the CSS Coding Standards in install.css.
afercia Sep 28, 2026
48f79dd
Administration: Fix double empty line in common.css.
afercia Sep 28, 2026
44682a8
Tests: Assert the REST settings item schema.
lancewillett Sep 28, 2026
e2a8486
Tests: Assert the REST pattern directory item schema.
lancewillett Sep 28, 2026
0b821b0
Build/Test Tools: Remove the plural forms regression test's network d…
lancewillett Sep 28, 2026
3ec4d21
Tests: Assert the REST pattern directory schema title.
lancewillett Sep 28, 2026
026e636
Plugins: Run fatal error check for network-active plugin edits.
westonruter Sep 28, 2026
c3b186c
External Libraries: Update jQuery Migrate to 3.6.0.
peterwilsoncc Sep 28, 2026
2029a2f
Docs: Fix various documentation standards in `pluggable.php`.
peterwilsoncc Sep 29, 2026
966e3cd
Administration: Fix the CSS Coding Standards in list-tables.css.
afercia Sep 29, 2026
d41ef15
Administration: Fix the CSS Coding Standards in login.css.
afercia Sep 29, 2026
4ebbb7c
Administration: Fix the CSS Coding Standards in media.css.
afercia Sep 29, 2026
a411b06
Administration: Fix the CSS Coding Standards in nav-menus.css.
afercia Sep 29, 2026
21ffaaf
Administration: Fix the CSS Coding Standards in site-health.css.
afercia Sep 29, 2026
c19966c
Administration: Fix the CSS Coding Standards in themes.css.
afercia Sep 29, 2026
ffdd19d
Administration: Fix the CSS Coding Standards in widgets.css.
afercia Sep 29, 2026
ab7eddd
Administration: Fix the CSS Coding Standards in customize-preview.css.
afercia Sep 29, 2026
09dc06e
Administration: Fix the CSS Coding Standards in dashicons.css.
afercia Sep 29, 2026
e6aeae9
Administration: Fix the CSS Coding Standards in editor.css.
afercia Sep 29, 2026
c78fb1b
Administration: Fix the CSS Coding Standards in media-views.css.
afercia Sep 29, 2026
7be7295
Administration: Fix the CSS Coding Standards in _admin.scss.
afercia Sep 29, 2026
68a82ff
Administration: Fix the CSS Coding Standards in wp-embed-template-ie.…
afercia Sep 29, 2026
2bec0b2
Administration: Fix double colon pseudo-element notation in themes.css.
afercia Sep 29, 2026
3ffb1df
Icons: Support keyword-based search in the icons registry.
t-hamano Sep 29, 2026
82ca272
Docs: Correct typo in the `WP_Block_Parser::add_inner_block()` DocBlock.
SergeyBiryukov Sep 29, 2026
f332afb
Tests: Assert unsupported requests for read-only REST controllers.
lancewillett Sep 29, 2026
9fe152a
Tests: Avoid unnecessary image upload in REST server tests.
lancewillett Sep 29, 2026
7729702
Tests: Initialize the REST API test server only when needed.
lancewillett Sep 29, 2026
6ce03d9
Tests: Reduce setup overhead in canonical post status tests.
lancewillett Sep 29, 2026
a412e5f
Tests: Cover newline preservation in wpautop().
lancewillett Sep 29, 2026
b04207f
Tests: Use assertWPError() in post tests.
lancewillett Sep 29, 2026
928fbcb
Tests: Make meta test data providers static.
lancewillett Sep 29, 2026
a595156
Tests: Add unit tests for more Ajax handlers.
lancewillett Sep 30, 2026
6681f58
Build/Test Tools: Update PHPStan to 2.2.16.
westonruter Sep 30, 2026
b24d8fb
Network and Sites: Improve a11y of network admin pages.
peterwilsoncc Sep 30, 2026
258644c
Docs: Adds missing documentation for three parameters in core classes.
SergeyBiryukov Sep 30, 2026
b22b240
Tests: Document value comparisons in bookmark tests.
lancewillett Sep 30, 2026
8bffa57
Tests: Improve isolation for randomized query tests.
lancewillett Sep 30, 2026
d2b57b8
Tests: Load upgrade functions in schema tests.
lancewillett Sep 30, 2026
46d8a45
Tests: Restore locale state between tests.
lancewillett Sep 30, 2026
bb54668
Tests: Check that REST settings endpoints omit context.
lancewillett Sep 30, 2026
28e84bd
Tests: Check REST global styles context parameters.
lancewillett Sep 30, 2026
2a31ddb
Tests: Check REST navigation fallback context parameters.
lancewillett Sep 30, 2026
d00884f
Tests: Test retrieving a page through the REST API.
lancewillett Sep 30, 2026
716320a
Tests: Check REST themes context parameters.
lancewillett Sep 30, 2026
3f4eb17
Tests: Check REST block patterns context parameters.
lancewillett Sep 30, 2026
8c02b2f
Docs: Update Node.js and npm versions in the README.
lancewillett Sep 30, 2026
b8d3a98
Build/Test Tools: Fix loopback requests in the Docker environment.
westonruter Sep 30, 2026
373e362
KSES: Deprecate wp_kses_html_error().
dmsnell Sep 30, 2026
dc829be
Build/Test Tools: Make sure to preserve the contents of the uploads d…
afercia Oct 1, 2026
88b2d10
Docs: Update Microsoft and Apple documentation links for app icons in…
SergeyBiryukov Oct 1, 2026
01df9c7
Tests: Document object-value comparisons in block bindings tests.
lancewillett Oct 1, 2026
948ef7e
Tests: Document object-value comparisons in abilities API tests.
lancewillett Oct 1, 2026
2ca6eae
Tests: Reuse the media fixture for attachment filesize tests.
lancewillett Oct 1, 2026
3e36adf
Toolbar: Constrain the site icon's size.
whyisjake Oct 1, 2026
0004f4d
Tests: Use static metadata for image editor filter tests.
lancewillett Oct 1, 2026
db63954
Tests: Clean up intermediate image test files.
lancewillett Oct 1, 2026
27bde35
Tests: Isolate widget globals between tests.
lancewillett Oct 1, 2026
71d87b1
Tests: Order REST tag-exclusion results by ID.
lancewillett Oct 1, 2026
6fccc81
Tests: Use the styles instance in the styles ETag test.
lancewillett Oct 1, 2026
49790ed
Tests: Improve isolation for multisite tests.
Oct 1, 2026
a970e91
Tests: Improve isolation for media tests.
lancewillett Oct 1, 2026
498d0a8
Canonical: Cache `redirect_guess_404_permalink()`.
peterwilsoncc Oct 1, 2026
7aad64a
Code Quality: Declare the `$wp_query` global where it is used.
westonruter Oct 2, 2026
441b562
Code Quality: Pass documented values for deprecated arguments.
westonruter Oct 2, 2026
fee6a84
Code Quality: Declare the `$wpdb` global in wp-admin scripts.
westonruter Oct 2, 2026
c23817e
Bundled Themes: Fix block width in the editor.
t-hamano Oct 2, 2026
7b59813
Tests: Check block pattern categories REST context metadata.
lancewillett Oct 2, 2026
ce66e06
Tests: Check site export REST context metadata.
lancewillett Oct 2, 2026
7660435
Tests: Check URL details REST context metadata.
lancewillett Oct 2, 2026
19c73be
Tests: Reset permalinks before database rollback.
lancewillett Oct 2, 2026
6534bac
Tests: Preserve title-tag support between tests.
lancewillett Oct 2, 2026
ff2924e
Tests: Restore the icons registry between tests.
lancewillett Oct 2, 2026
a1b4960
Tests: Reset cached admin bar visibility before tests.
lancewillett Oct 2, 2026
ffc74b8
Tests: Restore theme support after Customizer manager tests.
lancewillett Oct 2, 2026
80387d8
Tests: Reset development mode after tests.
lancewillett Oct 2, 2026
b423911
Tests: Isolate the layout block gap variation test.
lancewillett Oct 2, 2026
13eccba
Tests: Reset the mailer before admin email tests.
lancewillett Oct 2, 2026
e377546
Tests: Handle video shortcode instance numbers in tests.
lancewillett Oct 2, 2026
6a66b37
Tests: Restore thumbnail support after tests.
lancewillett Oct 2, 2026
fe55855
Tests: Restore theme support after Customizer widget tests.
lancewillett Oct 2, 2026
e7e9631
Tests: Unregister the hooked block after REST template tests.
lancewillett Oct 2, 2026
46b7d17
Tests: Verify block binding sources are removed on unregister.
lancewillett Oct 2, 2026
0a78044
Tests: Document object value comparisons in POMO tests.
lancewillett Oct 2, 2026
8be40b0
Tests: Document object value comparisons in user tests.
lancewillett Oct 2, 2026
01c3daa
Tests: Document object value comparisons in formatting tests.
lancewillett Oct 2, 2026
024799a
Tests: Document object value comparisons in adjacent post tests.
lancewillett Oct 2, 2026
9c677c9
Tests: Clear cached users before testing user cache updates.
lancewillett Oct 2, 2026
df85d59
Tests: Document object value comparisons in query tests.
lancewillett Oct 2, 2026
5aa17d4
Tests: Use strict assertions in REST API tests.
lancewillett Oct 2, 2026
774837f
Tests: Document object value comparisons in post tests.
lancewillett Oct 2, 2026
d1b25df
Code Quality: Resolve `variable.undefined` errors in `wp-mail.php` an…
SergeyBiryukov Oct 2, 2026
f4350cd
Sitemaps: Remove XSL stylesheets.
peterwilsoncc Oct 3, 2026
8c96024
Tests: Improve REST API test isolation.
lancewillett Oct 3, 2026
2591f87
Tests: Assert unsupported block directory requests.
lancewillett Oct 3, 2026
f7616f3
Tests: Assert unsupported pattern directory requests.
lancewillett Oct 3, 2026
8323af2
Tests: Guard REST context tests against empty endpoints.
lancewillett Oct 3, 2026
4a4dda2
Tests: Document value comparisons in option tests.
lancewillett Oct 3, 2026
0d7f6f6
Tests: Clarify comparisons in multisite tests.
lancewillett Oct 3, 2026
a29b6cf
Tests: Document value comparisons in cron tests.
lancewillett Oct 3, 2026
66d4890
Tests: Make hook test data providers static.
lancewillett Oct 3, 2026
dcd149a
Code Quality: Remove an always-true check when scheduling a Customize…
SergeyBiryukov Oct 3, 2026
37938e4
Build/Test Tools: Mock the `wp_remote_fopen()` test request.
lancewillett Oct 4, 2026
f3cf7a0
Tests: Explain intentional loose comparisons in test helpers.
lancewillett Oct 4, 2026
79f49e5
Tests: Cover sitemap provider filtering and registry lookups.
lancewillett Oct 4, 2026
12728ef
Tests: Cover the term data block bindings source.
lancewillett Oct 4, 2026
440ce37
Tests: Make option test data providers static.
lancewillett Oct 4, 2026
e0fa2c9
Tests: Make Abilities API test data providers static.
lancewillett Oct 4, 2026
cb186b3
Media: Test for DOMDocument before checking embedded alt text.
joedolson Oct 4, 2026
f6c99fb
Code Quality: Remove PHP version checks for unsupported versions from…
SergeyBiryukov Oct 4, 2026
4b2afb9
Application Passwords: Clarify environment type required for non-SSL …
peterwilsoncc Oct 5, 2026
7c9b76b
Privacy: Correctly escape page title in `get_the_privacy_policy_link()`.
peterwilsoncc Oct 5, 2026
b3ddd57
Editor: Add text-shadow block support.
t-hamano Oct 5, 2026
b2411e7
Code Quality: Remove redundant `isset( $imagick )` check in `WP_Debug…
SergeyBiryukov Oct 5, 2026
02a5cad
Login and Registration: Clarify the password fields on the install sc…
afercia Oct 5, 2026
57c4558
Tests: Remove live requests from HTTP function tests.
lancewillett Oct 5, 2026
794e479
Build/Test Tools: Add Composer advisory policy configuration.
lancewillett Oct 5, 2026
d1f1adc
Tests: Clean up the playlist shortcode test upload.
lancewillett Oct 5, 2026
166f263
Tests: Make theme test data providers static.
lancewillett Oct 5, 2026
01bf29e
Tests: Document post object value comparisons.
lancewillett Oct 5, 2026
571d338
Tests: Document term value comparisons.
lancewillett Oct 5, 2026
21549b0
Tests: Use strict comparisons for clamped date objects.
lancewillett Oct 5, 2026
18b8e12
Tests: Use strict comparisons for database row values.
lancewillett Oct 5, 2026
4679c67
Tests: Use strict comparisons for XML-RPC term responses.
lancewillett Oct 5, 2026
2d2a97c
Tests: Document unserialized object value comparisons.
lancewillett Oct 5, 2026
5d09201
Tests: Clarify comparisons in top-level test files.
lancewillett Oct 5, 2026
eededae
Tests: Cover term data escaping in block bindings.
lancewillett Oct 5, 2026
097d794
Tests: Cover paused extension storage.
lancewillett Oct 5, 2026
aee05d9
Tests: Cover recovery mode links.
lancewillett Oct 5, 2026
069b360
Bootstrap/Load: Enable `WP_DEBUG` by default on local environments.
peterwilsoncc Oct 5, 2026
d05c9ce
Tests: Reset changeset revisions support between Customizer tests.
westonruter Oct 5, 2026
1cc992c
Editor: Ensure CSS variable names are generated consistently.
peterwilsoncc Oct 6, 2026
49b718f
Media: Track the original attachment for edited images.
peterwilsoncc Oct 6, 2026
98c5f51
Networks and Sites: Remove duplicate "newuser" ID on the Edit Site Us…
audrasjb Oct 6, 2026
3623f0d
Script Loader: Prefetch assets for the next admin screen.
westonruter Oct 6, 2026
5d4c1ab
Tests: Serve the site without a port in a prefetch test.
westonruter Oct 6, 2026
92166f3
I18N: Ignore non-string values in the locale getters.
sirreal Oct 6, 2026
df0ed06
General: Bump the pinned hash for Gutenberg to `50ad79e`.
t-hamano Oct 6, 2026
2bf0714
HTML API: Improve character reference decoding performance.
sirreal Oct 6, 2026
62e779e
Build/Test Tools: Normalize file paths for comparison in `HookDocBlock`.
SergeyBiryukov Oct 6, 2026
ec18c2d
Build/Test Tools: Correct file path normalization in `HookDocBlock`.
SergeyBiryukov Oct 6, 2026
84d6fd8
HTTP: Improve relative path resolution in `WP_Http::make_absolute_url…
aaronjorbin Oct 6, 2026
8b97db2
Embeds: Remove support for Imgur oEmbeds.
aaronjorbin Oct 6, 2026
61bf04c
Export: Ensure post IDs are integers when building a WXR export.
aaronjorbin Oct 6, 2026
b2e1199
REST API: Require both capabilities to change a post's sticky status.
aaronjorbin Oct 6, 2026
362ee07
Posts, Post Types: Fire dynamic status transition hooks only for regi…
aaronjorbin Oct 6, 2026
791c7fc
Query: Prevent exposure of comments on unviewable posts.
aaronjorbin Oct 6, 2026
0dd4d1c
Administration: Treat contextual help tab links as selectors.
aaronjorbin Oct 6, 2026
79ff428
Docs: Narrow unused deprecated parameters in PHPStan types.
swissspidy Oct 6, 2026
61b1a5a
Docs: Improve list table documentation and types.
westonruter Oct 7, 2026
c6d9c9b
General: Bump the pinned hash for Gutenberg to `954fe7f9e04`.
peterwilsoncc Oct 7, 2026
da76470
Icons: Move `public` to collections and add `core-admin` collection.
t-hamano Oct 7, 2026
702a0d0
Block Bindings: Add support for Icon block's icon attribute.
t-hamano Oct 7, 2026
6788d11
I18n: Make plugin activation `aria-label` translatable in `updates.js`.
audrasjb Oct 7, 2026
707f1a0
Comments: Improve the accessibility of links in the admin Comments ta…
afercia Oct 7, 2026
dee70ee
Users: Improve the usability and consistency of the admin notices rel…
afercia Oct 7, 2026
36e7c85
Administration: Improve consistency of the disabled buttons styling.
afercia Oct 7, 2026
c181fea
Code Quality: Remove redundant `array_values()` call on IPTC keywords.
SergeyBiryukov Oct 7, 2026
ea7e9d3
Administration: Improve the styling of the disabled buttons in colors…
afercia Oct 7, 2026
c64de70
I18N: Improve PHPStan types for the localization API.
westonruter Oct 7, 2026
7119e1b
KSES: Reimplement with Tag Processor.
dmsnell Oct 7, 2026
80c6c39
I18N: Resolve new PHPStan errors for nooped plurals.
westonruter Oct 7, 2026
f670e8a
Docs: Add refined string types for PHPStan.
westonruter Oct 7, 2026
776e07b
Code Quality: Remove a no-op assignment of `$addl_path` in `redirect_…
SergeyBiryukov Oct 7, 2026
ec8bf88
Build/Test Tools: Update PHPStan to 2.3.0.
westonruter Oct 7, 2026
ab2373a
Editor: normalize block gap values in layout and fix grid axial gap.
tellthemachines Oct 7, 2026
ee50497
Users: Prevent duplicate email change admin notices on multisite.
afercia Oct 8, 2026
d77ff0f
Database: Add `NO_BACKSLASH_ESCAPES` to `wpdb::$incompatible_modes`.
tyxla Oct 8, 2026
7f90101
Administration: Improve focus management and screen reader announceme…
afercia Oct 8, 2026
36f64d2
Administraiton: Remove double semicolons from CSS files.
afercia Oct 8, 2026
20ae9fa
Themes: Improve semantics and accessibility of the Theme installer di…
afercia Oct 8, 2026
1d2908e
Code Quality: Remove an always-true check when clearing the 404 error…
SergeyBiryukov Oct 8, 2026
46f64ab
Posts, Post types: Introduce pre-flight filter to `wp_count_posts()`.
peterwilsoncc Oct 8, 2026
1b24d89
Privacy: Add JavaScript docs to `privacy-tools.js`.
peterwilsoncc Oct 9, 2026
b5a6bfa
Feeds: Fix feed build date for ID-only and partial queries.
westonruter Oct 9, 2026
d5abaae
Tests: Remove empty `collaboration` tests directory.
westonruter Oct 9, 2026
b0dc430
Emoji: Fix defects in emoji scripts and add type checking.
westonruter Oct 9, 2026
b3320d0
HTML API: Remove unreachable code from HTML Processor.
westonruter Oct 9, 2026
fda50e8
General: Remove unnecessary empty lines in docblocks.
afercia Oct 9, 2026
8a5b626
Customize: Make sure the loading spinner is visible.
afercia Oct 9, 2026
7f15640
Users: Fix the admin email placeholder in the Application Password Cr…
johnbillion Oct 9, 2026
6e800fa
Editor: Restore the Classic Block (TinyMCE) elementpath UI.
afercia Oct 9, 2026
7f6eac8
KSES: Normalize all block delimiters.
dmsnell Oct 9, 2026
f74d740
Editor: Disable the Classic Block (TinyMCE) elementpath UI.
afercia Oct 9, 2026
3591842
Editor: Update Google Fonts API endpoint for WordPress 7.2.
t-hamano Oct 9, 2026
fd20633
KSES: Only serialize non-empty block JSON attributes.
dmsnell Oct 9, 2026
10bbb65
Tests: Reduce REST attachment quality fixture overhead.
lancewillett Oct 9, 2026
9b2abab
Docs: Use lowercase for native PHP types in `@param` and `@return` tags.
SergeyBiryukov Oct 9, 2026
074fe8f
Tests: Make cron data providers static.
lancewillett Oct 10, 2026
b9bb074
Tests: Use strict assertions for Customizer menu item metadata.
lancewillett Oct 10, 2026
40c0b8a
Tests: Mock remote image requests in cropping tests.
lancewillett Oct 10, 2026
b2c233e
Tests: Check cURL hook references without a live request.
lancewillett Oct 10, 2026
ec4d30f
Tests: Isolate core ability registration fixtures.
lancewillett Oct 10, 2026
f96b444
Tests: Restore server and PHP settings after load tests.
lancewillett Oct 10, 2026
21020c2
Tests: Reject unsupported block pattern category requests.
lancewillett Oct 10, 2026
8448439
Tests: Reject unsupported block pattern requests.
lancewillett Oct 10, 2026
aa1f947
Tests: Reject unsupported block type requests.
lancewillett Oct 10, 2026
e830fda
Tests: Reject unsupported theme requests.
lancewillett Oct 10, 2026
179af91
Tests: Reject unsupported global styles revision requests.
lancewillett Oct 10, 2026
e1a8605
Tests: Reject unsupported navigation fallback requests.
lancewillett Oct 10, 2026
7148cd9
Tests: Reject unsupported widget type requests.
lancewillett Oct 10, 2026
4e8a1a7
Tests: Reject unsupported site export requests.
lancewillett Oct 10, 2026
4222877
Tests: Reject unsupported font collection requests.
lancewillett Oct 10, 2026
a52e34f
Tests: Use a local fixture for HTTP streaming tests.
lancewillett Oct 10, 2026
ca2204c
Tests: Assert unsupported URL Details requests.
lancewillett Oct 10, 2026
fff0d40
Tests: Ensure default icons exist for rendering tests.
lancewillett Oct 10, 2026
43efb30
Tests: Restore the stylesheet after layout tests.
lancewillett Oct 10, 2026
4fa9283
Tests: Verify matched routes in site export OPTIONS checks.
lancewillett Oct 10, 2026
1c277e1
Admin: Admin notice accessibility improvements.
joedolson Oct 10, 2026
8e54d21
Tests: Assert unsupported sidebar REST requests.
lancewillett Oct 10, 2026
5a8695e
Tests: Restore the original Interactivity API instance.
lancewillett Oct 10, 2026
0eeb51c
Tests: Restore table pointers after schema tests.
lancewillett Oct 10, 2026
3440ab2
Tests: Expand HTML character reference decoding coverage.
lancewillett Oct 10, 2026
f2ecb8f
Tests: Cover the post data Block Bindings source.
lancewillett Oct 10, 2026
0876679
Tests: Report HTTP fixture startup failures.
lancewillett Oct 10, 2026
d7640ec
Tests: Assert unsupported global styles REST requests.
lancewillett Oct 10, 2026
ffdef39
Tests: Assert unsupported autosave deletion requests.
lancewillett Oct 10, 2026
57b5ab2
Tests: Verify settings REST method behavior.
lancewillett Oct 10, 2026
043c4d3
Admin: Add tooltip support to toggle tips.
joedolson Oct 10, 2026
9d65c0e
Media: Improve the updating of the attachments tiles labels.
afercia Oct 10, 2026
273f693
HTML API: Restore spec-mirroring structure in HTML Processor.
westonruter Oct 10, 2026
403cb8b
Docs: Allow `false` in the documented type of `WP_REST_Posts_Controll…
SergeyBiryukov Oct 10, 2026
4d5d152
Build/Test Tools: Remove the direct `check-node-version` dependency.
lancewillett Oct 11, 2026
abb9a4a
Build/Test Tools: Add `accordion.js` to TypeScript checking.
lancewillett Oct 11, 2026
0d859ba
Build/Test Tools: Add descriptions for registered Grunt tasks.
lancewillett Oct 11, 2026
b01c351
Media: Improve focus handling on repeated image edits.
joedolson Oct 11, 2026
4b712b2
Canonical: Generate stable cache for `redirect_guess_404_permalink()`.
peterwilsoncc Oct 11, 2026
6718bd3
Admin: Add screen option to turn off moving meta boxes.
joedolson Oct 11, 2026
f3b5e8a
Users: Associate profile screen descriptions with their controls.
JJJ Oct 11, 2026
098fe1d
Twenty Twenty Three: Add aria-label to primary menu.
joedolson Oct 11, 2026
e0dd355
Docs: Remove variable names from `@return` tags.
SergeyBiryukov Oct 11, 2026
f8b9634
General: Send correct HTTP statuses for db-error/maintenance drop-ins.
peterwilsoncc Oct 11, 2026
d467743
Tests: Cover `validate_plugin_requirements()`.
lancewillett Oct 12, 2026
059e463
Tests: Cover plugin paused-state and recovery functions.
lancewillett Oct 12, 2026
2c4a0c2
Tests: Cover `validate_plugin()`.
lancewillett Oct 12, 2026
b1bfeaf
Editor: Ignore theme.json values of unexpected types
ramonjd Oct 12, 2026
380cab3
Tests: Expand coverage for the icon collections REST endpoint.
t-hamano Oct 12, 2026
b6512b1
Core Abilities: Add the `core/settings-get` ability.
jorgefilipecosta Oct 12, 2026
e8a9e23
Toolbar: Move "Howdy" into user menu item to free up space.
mcsf Oct 12, 2026
35e6ce2
Build/Test Tools: Add comment moderation end-to-end tests.
lancewillett Oct 12, 2026
e0c7cfa
Tests: Cover scheduled publication and the Scheduled posts view.
lancewillett Oct 12, 2026
df8a00e
JSON schema: Send empty object defaults as `{}` for union types
gziolo Oct 12, 2026
569ded8
HTML API: add a parsing benchmark tool under tests/performance/html-api.
sirreal Oct 2, 2026
9eaec22
HTML API benchmark: ignore the fetched corpus directory.
sirreal Oct 2, 2026
a4786ce
HTML API benchmark: ignore the fetched corpus from the root .gitignor…
sirreal Oct 2, 2026
1654660
HTML API benchmark: shuffle each round's order, warm up longer under …
sirreal Oct 9, 2026
1faa0a6
HTML API benchmark: add a differential test of parsing behavior betwe…
sirreal Oct 9, 2026
f834251
HTML API benchmark: widen the differential test and show per-round re…
sirreal Oct 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ LOCAL_DIR=src
# Valid options are 'on' and 'off'.
LOCAL_NGINX_COMPRESSION=off

# How long browsers may cache static assets served by the web server, as an nginx `expires` value.
# Valid options are 'off' and a duration such as '1y'. A far-future duration matches typical
# production behavior, but edited CSS and JavaScript is then served stale until a hard reload.
LOCAL_NGINX_STATIC_EXPIRES=off

# The PHP version to use. Valid options are 'latest', and '{version}-fpm'.
LOCAL_PHP=latest

Expand Down
26 changes: 0 additions & 26 deletions .eslintignore

This file was deleted.

113 changes: 86 additions & 27 deletions .eslintrc-jsdoc.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,88 @@
module.exports = {
rules: {
'require-jsdoc': 'off',
'valid-jsdoc': [ 'error', {
prefer: {
arg: 'param',
argument: 'param',
extends: 'augments',
returns: 'return',
/**
* ESLint v10 flat config file for JSDoc linting.
* This config is based on the original valid-jsdoc rules.
*/

const jsdocPlugin = require( 'eslint-plugin-jsdoc' );

module.exports = [
{
plugins: {
jsdoc: jsdocPlugin,
},
settings: {
jsdoc: {
tagNamePreference: {
'arg': 'param',
'argument': 'param',
'extends': 'augments',
'returns': 'return',
},
preferredTypes: {
'array': 'Array',
'bool': 'boolean',
'Boolean': 'boolean',
'float': 'number',
'Float': 'number',
'function': 'Function',
'int': 'number',
'integer': 'number',
'Integer': 'number',
'Number': 'number',
'object': 'Object',
'String': 'string',
'Void': 'void',
},
},
preferType: {
array: 'Array',
bool: 'boolean',
Boolean: 'boolean',
float: 'number',
Float: 'number',
int: 'number',
integer: 'number',
Integer: 'number',
Number: 'number',
object: 'Object',
String: 'string',
Void: 'void',
},
requireParamDescription: false,
requireReturn: false,
} ],
},
rules: {
'jsdoc/check-alignment': 'error',
'jsdoc/check-indentation': [ 'error', {
excludeTags: [
'deprecated',
'example',
'param',
'property',
'return',
'since',
'todo',
],
} ],
'jsdoc/check-line-alignment': [ 'error', 'always', {
tags: [ 'param', 'property' ],
} ],
'jsdoc/check-param-names': 'error',
'jsdoc/check-property-names': 'error',
'jsdoc/check-syntax': 'error',
'jsdoc/check-tag-names': [ 'error', {
definedTags: [
'memberOf',
'output',
'ticket',
'link',
],
} ],
'jsdoc/check-types': 'error',
'jsdoc/no-blank-blocks': 'error',
'jsdoc/no-blank-block-descriptions': 'error',
'jsdoc/require-description': 'error',
'jsdoc/require-hyphen-before-param-description': [ 'error', 'never' ],
'jsdoc/require-jsdoc': 'error',
'jsdoc/require-param': [ 'error', {
enableFixer: false,
} ],
'jsdoc/require-param-description': 'error',
'jsdoc/require-param-name': 'error',
'jsdoc/require-param-type': 'error',
'jsdoc/require-property': 'error',
'jsdoc/require-property-name': 'error',
'jsdoc/require-property-description': 'error',
'jsdoc/require-property-type': 'error',
'jsdoc/require-returns': 'error',
'jsdoc/require-returns-check': 'error',
'jsdoc/require-returns-description': 'error',
'jsdoc/require-returns-type': 'error',
'jsdoc/valid-types': 'error',
},
},
};
];
55 changes: 55 additions & 0 deletions .github/actions/setup-npm/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: 'Set up npm'
description: 'Installs the npm version required by the devEngines field of package.json, so every job resolves dependencies identically. Keeps the bundled npm when the field is absent.'

inputs:
working-directory:
description: 'Optional. The directory holding the package.json to read the required npm version from. Defaults to the workspace root.'
required: false
default: '.'
cache:
description: 'Optional. Whether to restore and save the npm cache. Defaults to true.'
required: false
default: 'true'

runs:
using: 'composite'
steps:
- name: Install npm
id: npm
env:
WORKING_DIRECTORY: ${{ inputs.working-directory }}
run: |
NPM_VERSION="$(jq -r '.devEngines.packageManager.version // empty' package.json)"
if [ -n "$NPM_VERSION" ]; then
# Contributors need the floor; CI stays on that major's newest release.
npm install --global "npm@${NPM_VERSION/>=/^}"
echo "Required npm version: $NPM_VERSION"
else
echo "No devEngines.packageManager.version, keeping the bundled npm."
fi
echo "Installed npm version: $(npm --version)"

# actions/setup-node cannot restore the npm cache: it locates the
# directory with `npm config get cache`, which runs before this step
# and fails the devEngines check under the bundled npm.
echo "cache-dir=$(npm config get cache | tr -d '\r')" >> "$GITHUB_OUTPUT"

# Scopes the cache key to this package and keeps the hashFiles patterns
# workspace-relative and free of a "./" prefix, so they match the same
# files as every other cache key.
PATH_PREFIX=""
if [ "$WORKING_DIRECTORY" != '.' ] && [ -n "$WORKING_DIRECTORY" ]; then
PATH_PREFIX="${WORKING_DIRECTORY%/}/"
fi
echo "path-prefix=$PATH_PREFIX" >> "$GITHUB_OUTPUT"
working-directory: ${{ inputs.working-directory }}
shell: bash

- name: Cache npm downloads
if: ${{ inputs.cache == 'true' }}
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ steps.npm.outputs.cache-dir }}
key: npm-cache-${{ runner.os }}-${{ runner.arch }}-${{ steps.npm.outputs.path-prefix }}lock-${{ hashFiles(format('{0}package-lock.json', steps.npm.outputs.path-prefix), format('{0}patches/**', steps.npm.outputs.path-prefix)) }}
restore-keys: |
npm-cache-${{ runner.os }}-${{ runner.arch }}-${{ steps.npm.outputs.path-prefix }}lock-
20 changes: 20 additions & 0 deletions .github/actions/smoke-check/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: 'Smoke check a WordPress installation'
description: 'Serves an installed single site with PHP built-in web server and checks that its front end, REST API, and admin respond.'

inputs:
admin-user:
description: 'The username of an administrator account on the site.'
required: true
admin-password:
description: 'The password of the administrator account.'
required: true

runs:
using: 'composite'
steps:
- name: Serve the site and check it
shell: bash
run: bash "${GITHUB_ACTION_PATH}/smoke-check.sh"
env:
WP_ADMIN_USER: ${{ inputs.admin-user }}
WP_ADMIN_PASSWORD: ${{ inputs.admin-password }}
117 changes: 117 additions & 0 deletions .github/actions/smoke-check/smoke-check.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
#!/bin/bash
#
# Smoke checks an installed WordPress single site over HTTP.
#
# Runs from the root of the installation, with WP-CLI available. Multisite is not supported because
# a network's domain lives in wp-config.php and the database, not just an option.

set -euo pipefail

: "${RUNNER_TEMP:?}" "${WP_ADMIN_USER:?}" "${WP_ADMIN_PASSWORD:?}"

site_port=8889
site_url="http://127.0.0.1:${site_port}"
server_log="${RUNNER_TEMP}/server.log"
jar="${RUNNER_TEMP}/cookies.txt"
: > "${jar}"
response="${RUNNER_TEMP}/response.txt"
code="${RUNNER_TEMP}/http-code.txt"
http_code=''

version="$(wp core version)"

# Nothing undoes these, so the site is only good for this check afterwards.
wp option update home "${site_url}"
wp option update siteurl "${site_url}"
# A fresh install shows posts here already, but the front page check below needs it.
wp option update show_on_front posts
# Both make requests no check asked for, and the update checks call api.wordpress.org.
wp config set DISABLE_WP_CRON true --raw
wp config set WP_HTTP_BLOCK_EXTERNAL true --raw

# opcache counts php -S as a web SAPI, so the runner's JIT runs here and segfaults.
php -d opcache.jit=disable -S "127.0.0.1:${site_port}" -t . > "${server_log}" 2>&1 &
server_pid=$!

stop_server() {
local status=$?
kill "${server_pid}" 2> /dev/null || true
wait "${server_pid}" 2> /dev/null || true
[ "${status}" -eq 0 ] || cat "${server_log}" || true
exit "${status}"
}
trap stop_server EXIT

# No connection prints 000 and exits 7, which set -e would take as fatal.
deadline=$(( SECONDS + 30 ))
while :; do
ready_code="$(curl --silent --max-time 5 --output /dev/null --write-out '%{http_code}' "${site_url}/" || true)"
[ "${ready_code}" = '000' ] || break
[ "${SECONDS}" -lt "${deadline}" ] || { echo '::error::the server never answered'; exit 1; }
sleep 1
done

fail() {
echo "::error::${1}"
tail -n 20 "${response}"
exit 1
}

# An HTTP error returns to the caller. No reply at all is fatal.
fetch() {
local path="${1}" status=0
shift
: > "${response}"
curl --silent --show-error --max-time 30 --output "${response}" \
--write-out '%{http_code}' --cookie "${jar}" --cookie-jar "${jar}" \
"$@" "${site_url}${path}" > "${code}" || status=$?
http_code="$(cat "${code}")"
[ "${status}" -eq 0 ] || [ "${status}" -eq 22 ] \
|| fail "${path} got no reply and curl exited ${status}"
return "${status}"
}

check() {
local path="${1}" marker status=0
shift
fetch "${path}" --fail-with-body || status=$?
[ "${status}" -eq 0 ] || fail "${path} returned HTTP ${http_code}"
for marker in "$@"; do
grep -qF -e "${marker}" "${response}" || fail "${path} did not contain: ${marker}"
done
echo "ok ${path}"
}

# A fatal mid-page still returns 200, so every check also asks for the closing tag.
check '/' "content=\"WordPress ${version}\"" 'Hello world!' '</html>'

fetch '/?rest_route=/' --fail-with-body || fail "/?rest_route=/ returned HTTP ${http_code}"
jq -e --arg url "${site_url}" '.url == $url and ( .namespaces | index( "wp/v2" ) )' "${response}" > /dev/null \
|| fail 'the REST index was not the expected JSON'
echo 'ok /?rest_route=/'

# It prints this for an empty database too, which the checks above rule out.
check '/wp-admin/upgrade.php' 'No Update Required' '</html>'

fetch '/?p=99999999' || true
[ "${http_code}" = '404' ] || fail "a missing post returned ${http_code}, expected 404"
grep -qF '</html>' "${response}" || fail 'the 404 page was cut short'
echo 'ok 404 handling'

login_status=0
fetch '/wp-login.php' --fail-with-body \
--data-urlencode "log=${WP_ADMIN_USER}" --data-urlencode "pwd=${WP_ADMIN_PASSWORD}" || login_status=$?
[ "${login_status}" -eq 0 ] || fail "logging in returned HTTP ${http_code}"
grep -qF 'wordpress_logged_in_' "${jar}" || fail 'logging in did not set an authentication cookie'
echo 'ok login'

# The admin bar renders only for a logged-in user.
check '/wp-admin/' 'id="wpadminbar"' '</html>'

# Catches a fatal during shutdown. An empty log would let the grep pass silently.
[ -s "${server_log}" ] || { echo '::error::the server wrote no log'; exit 1; }
if grep -qE 'Fatal error|Uncaught|Segmentation fault' "${server_log}"; then
echo '::error::the server logged a fatal error'
exit 1
fi
echo 'ok server log'
Loading
Loading