Skip to content

Commit 15603f6

Browse files
committed
Merge remote-tracking branch 'upstream/trunk' into 64623-data-loss-prevention
2 parents 8de9d1d + aa72dfe commit 15603f6

1,232 files changed

Lines changed: 99704 additions & 19188 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/pull_request_template.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ Trac ticket: <!-- insert a link to the WordPress Trac ticket here -->
2323

2424
<!--
2525
You are free to use artificial intelligence (AI) tooling to contribute, but you must disclose what tooling you are using and to what extent a pull request has been authored by AI. It is your responsibility to review and take responsibility for what AI generates. See the WordPress AI Guidelines: <https://make.wordpress.org/ai/handbook/ai-guidelines/>.
26+
27+
Example disclosure:
28+
29+
AI assistance: Yes
30+
Tool(s): GitHub Copilot, ChatGPT
31+
Model(s): GPT-5.1
32+
Used for: Initial code skeleton and test suggestions; final implementation and tests were reviewed and edited by me.
2633
-->
2734

2835
---

.github/workflows/check-built-files.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,14 @@ on:
2323
- '.nvmrc'
2424
- 'Gruntfile.js'
2525
- 'webpack.config.js'
26+
- 'tools/gutenberg/**'
27+
- 'tools/vendors/**'
2628
- 'tools/webpack/**'
2729
# These files configure Composer. Changes could affect the outcome.
2830
- 'composer.*'
2931
# Confirm any changes to relevant workflow files.
3032
- '.github/workflows/check-built-files.yml'
33+
- '.github/workflows/reusable-check-built-files.yml'
3134
# Changes to the default themes should be handled by the themes workflows.
3235
- '!src/wp-content/themes/twenty**'
3336

.github/workflows/commit-built-file-changes.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ jobs:
123123
rm -f private-key.pem
124124
125125
- name: Checkout repository
126-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
126+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
127127
if: ${{ steps.artifact-check.outputs.exists == 'true' }}
128128
with:
129129
repository: ${{ github.event.workflow_run.head_repository.full_name }}

.github/workflows/end-to-end-tests.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ on:
2828
- '.nvmrc'
2929
- 'Gruntfile.js'
3030
- 'webpack.config.js'
31+
- 'tools/gutenberg/**'
32+
- 'tools/vendors/**'
3133
- 'tools/webpack/**'
3234
# These files configure Composer. Changes could affect the outcome.
3335
- 'composer.*'

.github/workflows/install-testing.yml

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -88,22 +88,18 @@ jobs:
8888
- db-version: '5.0'
8989
- db-version: '5.1'
9090
- db-version: '5.5'
91-
# The PHP <= 7.3/MySQL 8.4 jobs currently fail due to mysql_native_password being disabled by default. See https://core.trac.wordpress.org/ticket/61218.
92-
- php: '7.2'
93-
db-version: '8.4'
94-
- php: '7.3'
95-
db-version: '8.4'
9691
# Only test the latest innovation release.
9792
- db-version: '9.0'
9893
- db-version: '9.1'
9994
- db-version: '9.2'
10095
- db-version: '9.3'
10196
- db-version: '9.4'
97+
- db-version: '9.5'
10298
# MySQL 9.0+ will not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218.
10399
- php: '7.2'
104-
db-version: '9.5'
100+
db-version: '9.6'
105101
- php: '7.3'
106-
db-version: '9.5'
102+
db-version: '9.6'
107103

108104
services:
109105
database:
@@ -118,11 +114,11 @@ jobs:
118114
-e MYSQL_ROOT_PASSWORD="root"
119115
-e MYSQL_DATABASE="test_db"
120116
--entrypoint sh ${{ matrix.db-type }}:${{ matrix.db-version }}
121-
-c "exec docker-entrypoint.sh mysqld${{ matrix.db-type == 'mysql' && contains( fromJSON('["7.2", "7.3"]'), matrix.php ) && ' --default-authentication-plugin=mysql_native_password' || '' }}"
117+
-c "exec docker-entrypoint.sh mysqld${{ matrix.db-type == 'mysql' && contains( fromJSON('["5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3"]'), matrix.php ) && ( matrix.db-version == '8.4' && ' --mysql-native-password=ON --authentication-policy=mysql_native_password' || ' --default-authentication-plugin=mysql_native_password' ) || '' }}"
122118
123119
steps:
124120
- name: Set up PHP ${{ matrix.php }}
125-
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
121+
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
126122
with:
127123
php-version: '${{ matrix.php }}'
128124
coverage: none

.github/workflows/javascript-tests.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ on:
2626
- '.nvmrc'
2727
- 'Gruntfile.js'
2828
- 'webpack.config.js'
29+
- 'tools/gutenberg/**'
30+
- 'tools/vendors/**'
2931
- 'tools/webpack/**'
3032
# This file configures ESLint. Changes could affect the outcome.
3133
- '.eslintignore'
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
name: JavaScript Type Checking
2+
3+
on:
4+
# JavaScript type checking was introduced in 7.0.0.
5+
push:
6+
branches:
7+
- trunk
8+
- '[7-9].[0-9]'
9+
tags:
10+
- '[7-9].[0-9]'
11+
- '[7-9]+.[0-9].[0-9]+'
12+
pull_request:
13+
branches:
14+
- trunk
15+
- '[7-9].[0-9]'
16+
paths:
17+
# This workflow only scans JavaScript files.
18+
- '**.js'
19+
- '**.ts'
20+
- '**.tsx'
21+
# These files configure npm. Changes could affect the outcome.
22+
- 'package*.json'
23+
- '.nvmrc'
24+
- '.npmrc'
25+
# This file configures TypeScript. Changes could affect the outcome.
26+
- 'tsconfig.json'
27+
# This directory contains TypeScript definitions. Changes could affect the outcome.
28+
- 'typings/**'
29+
# Confirm any changes to relevant workflow files.
30+
- '.github/workflows/javascript-type-checking.yml'
31+
- '.github/workflows/reusable-javascript-type-checking-v1.yml'
32+
workflow_dispatch:
33+
34+
# Cancels all previous workflow runs for pull requests that have not completed.
35+
concurrency:
36+
# The concurrency group contains the workflow name and the branch name for pull requests
37+
# or the commit hash for any other events.
38+
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
39+
cancel-in-progress: true
40+
41+
# Disable permissions for all available scopes by default.
42+
# Any needed permissions should be configured at the job level.
43+
permissions: {}
44+
45+
jobs:
46+
# Runs JavaScript type checking.
47+
typecheck:
48+
name: JavaScript type checking
49+
uses: ./.github/workflows/reusable-javascript-type-checking-v1.yml
50+
permissions:
51+
contents: read
52+
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
53+
54+
slack-notifications:
55+
name: Slack Notifications
56+
uses: ./.github/workflows/slack-notifications.yml
57+
permissions:
58+
actions: read
59+
contents: read
60+
needs: [ typecheck ]
61+
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }}
62+
with:
63+
calling_status: ${{ contains( needs.*.result, 'cancelled' ) && 'cancelled' || contains( needs.*.result, 'failure' ) && 'failure' || 'success' }}
64+
secrets:
65+
SLACK_GHA_SUCCESS_WEBHOOK: ${{ secrets.SLACK_GHA_SUCCESS_WEBHOOK }}
66+
SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }}
67+
SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }}
68+
SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }}
69+
70+
failed-workflow:
71+
name: Failed workflow tasks
72+
runs-on: ubuntu-24.04
73+
permissions:
74+
actions: write
75+
needs: [ slack-notifications ]
76+
if: |
77+
always() &&
78+
github.repository == 'WordPress/wordpress-develop' &&
79+
github.event_name != 'pull_request' &&
80+
github.run_attempt < 2 &&
81+
(
82+
contains( needs.*.result, 'cancelled' ) ||
83+
contains( needs.*.result, 'failure' )
84+
)
85+
86+
steps:
87+
- name: Dispatch workflow run
88+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
89+
with:
90+
retries: 2
91+
retry-exempt-status-codes: 418
92+
script: |
93+
github.rest.actions.createWorkflowDispatch({
94+
owner: context.repo.owner,
95+
repo: context.repo.repo,
96+
workflow_id: 'failed-workflow.yml',
97+
ref: 'trunk',
98+
inputs: {
99+
run_id: `${context.runId}`,
100+
}
101+
});

.github/workflows/local-docker-environment.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ on:
1717
- 'package*.json'
1818
- 'Gruntfile.js'
1919
- 'webpack.config.js'
20+
- 'tools/gutenberg/**'
21+
- 'tools/vendors/**'
2022
- 'tools/webpack/**'
2123
- '.npmrc'
2224
- '.nvmrc'
@@ -106,6 +108,7 @@ jobs:
106108
- db-version: '9.2'
107109
- db-version: '9.3'
108110
- db-version: '9.4'
111+
- db-version: '9.5'
109112
# No PHP 8.5 + Memcached support yet.
110113
- php: '8.5'
111114
memcached: true

.github/workflows/performance.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ on:
2828
- '.nvmrc'
2929
- 'Gruntfile.js'
3030
- 'webpack.config.js'
31+
- 'tools/gutenberg/**'
32+
- 'tools/vendors/**'
3133
- 'tools/webpack/**'
3234
# These files configure Composer. Changes could affect the outcome.
3335
- 'composer.*'
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: PHPStan Static Analysis
2+
3+
on:
4+
# PHPStan testing was introduced in 7.0.0.
5+
push:
6+
branches:
7+
- trunk
8+
- '[7-9].[0-9]'
9+
tags:
10+
- '[7-9].[0-9]'
11+
- '[7-9]+.[0-9].[0-9]+'
12+
pull_request:
13+
branches:
14+
- trunk
15+
- '[7-9].[0-9]'
16+
paths:
17+
# This workflow only scans PHP files.
18+
- '**.php'
19+
# These files configure Composer. Changes could affect the outcome.
20+
- 'composer.*'
21+
# These files configure PHPStan. Changes could affect the outcome.
22+
- 'phpstan.neon.dist'
23+
- 'tests/phpstan/base.neon'
24+
- 'tests/phpstan/baseline.php'
25+
# Confirm any changes to relevant workflow files.
26+
- '.github/workflows/phpstan-static-analysis.yml'
27+
- '.github/workflows/reusable-phpstan-static-analysis-v1.yml'
28+
workflow_dispatch:
29+
30+
# Cancels all previous workflow runs for pull requests that have not completed.
31+
concurrency:
32+
# The concurrency group contains the workflow name and the branch name for pull requests
33+
# or the commit hash for any other events.
34+
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
35+
cancel-in-progress: true
36+
37+
# Disable permissions for all available scopes by default.
38+
# Any needed permissions should be configured at the job level.
39+
permissions: {}
40+
41+
jobs:
42+
# Runs PHPStan Static Analysis.
43+
phpstan:
44+
name: PHP static analysis
45+
uses: ./.github/workflows/reusable-phpstan-static-analysis-v1.yml
46+
permissions:
47+
contents: read
48+
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
49+
50+
slack-notifications:
51+
name: Slack Notifications
52+
uses: ./.github/workflows/slack-notifications.yml
53+
permissions:
54+
actions: read
55+
contents: read
56+
needs: [ phpstan ]
57+
if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }}
58+
with:
59+
calling_status: ${{ contains( needs.*.result, 'cancelled' ) && 'cancelled' || contains( needs.*.result, 'failure' ) && 'failure' || 'success' }}
60+
secrets:
61+
SLACK_GHA_SUCCESS_WEBHOOK: ${{ secrets.SLACK_GHA_SUCCESS_WEBHOOK }}
62+
SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }}
63+
SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }}
64+
SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }}
65+
66+
failed-workflow:
67+
name: Failed workflow tasks
68+
runs-on: ubuntu-24.04
69+
permissions:
70+
actions: write
71+
needs: [ slack-notifications ]
72+
if: |
73+
always() &&
74+
github.repository == 'WordPress/wordpress-develop' &&
75+
github.event_name != 'pull_request' &&
76+
github.run_attempt < 2 &&
77+
(
78+
contains( needs.*.result, 'cancelled' ) ||
79+
contains( needs.*.result, 'failure' )
80+
)
81+
82+
steps:
83+
- name: Dispatch workflow run
84+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
85+
with:
86+
retries: 2
87+
retry-exempt-status-codes: 418
88+
script: |
89+
github.rest.actions.createWorkflowDispatch({
90+
owner: context.repo.owner,
91+
repo: context.repo.repo,
92+
workflow_id: 'failed-workflow.yml',
93+
ref: 'trunk',
94+
inputs: {
95+
run_id: `${context.runId}`,
96+
}
97+
});

0 commit comments

Comments
 (0)