Merge latest changes to feature branch - #2633
Conversation
Assemble the release notes for the plugins currently being released — those with an open, dated milestone whose title does not contain "n.e.x.t" — by reading each plugin's stable-tag changelog entry from its readme.txt (as populated by npm run readme). Progress and warnings go to STDERR so STDOUT (the Markdown notes) can be piped to a file or the clipboard. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Create a draft GitHub release for the release date, using the combined per-plugin changelogs from `npm run prepare-release-notes` as the body. The tag and title are $RELEASE_DATE and the target is the release/$RELEASE_DATE branch. Fails early if the target branch is missing on origin or a release for the tag already exists, and authenticates the milestone lookup with the gh token to avoid rate limiting. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: b1ink0 <b1ink0@git.wordpress.org>
Co-authored-by: mukeshpanchal27 <mukesh27@git.wordpress.org>
Add `@covers` tags to the existing Test_WebP_Uploads_REST_API tests and add regression tests for the defensive guards in webp_uploads_update_rest_attachment(), covering a missing/non-string `source_url`, a missing/invalid mime source `file` in both the per-size and full-size loops, and non-array response data. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ssing non-string as arg
…filter Convert the query-string test into a data-provider-driven test covering an empty string, a query string, an array, and an invalid `false` value passed as the `$attr` argument, asserting each is normalized before being passed to the inner `webp_uploads_filter_wp_get_attachment_image` filter. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`build-plugins:zip` rebuilds each plugin archive from a freshly re-copied build directory, so the `zip` command embeds new entry timestamps every run and the resulting bytes always differ even when the file contents are identical. This bumped the ZIP's modified time on every build regardless of whether anything actually changed. Build the archive into a temporary file and compare it against the existing ZIP using a timestamp-independent content fingerprint (each entry's uncompressed size, CRC-32, and name via `unzip -v`). The existing ZIP is only replaced when its contents actually change; otherwise the temporary file is discarded and the existing file — including its modified time — is left untouched. Building fresh into a temporary file each time also ensures files removed from a plugin no longer linger in an updated-in-place archive. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
When zipping a plugin, stray files left in the plugin source directory get copied into the build output and silently bundled into the archive. This makes it easy to ship files that were never meant to be part of a release. Before creating the archive, check the plugin source directory for files that Git considers untracked (and are not ignored via .gitignore), narrowed to those that actually made it into the build output — i.e. files not excluded by the copy step's ignore patterns. If any are found, fail the build with a message listing them. Generated build artifacts are unaffected because they are either committed or gitignored. The check can be bypassed with `--env force=true` for cases where including untracked files is intentional. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The `build-plugins:zip` script wraps `build:plugin:*` via `npm-run-all`, which
did not pass extra command-line arguments through to the matched scripts. As a
result there was no way to reach the whole-suite zip build with the new
`--env force=true` override.
Add npm-run-all's `{@}` argument placeholder (and the required trailing `--`)
so arguments after `--` are forwarded to each plugin build. This makes
`npm run build-plugins:zip -- --env force=true` bypass the untracked-files
check across all plugins, while `npm run build-plugins:zip` continues to work
unchanged when no arguments are given.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ttachment-image Prevent fatal error in `webp_uploads_filter_wp_get_attachment_image()` when `wp_get_attachment_image_src()` returns false
Prepare 2026-07-03 release
Post 2026-07-03 release merge
Only suggest `gh release delete` when the existing release is still a draft. A published release is immutable, so advise supplying a different RELEASE_DATE instead. Co-authored-by: thelovekesh <thelovekesh@git.wordpress.org> Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…nchanged Build: Preserve plugin ZIP modified time when contents are unchanged Co-authored-by: westonruter <westonruter@git.wordpress.org> Co-authored-by: b1ink0 <b1ink0@git.wordpress.org>
Build: Fail plugin ZIP build when untracked files would be included Co-authored-by: westonruter <westonruter@git.wordpress.org> Co-authored-by: b1ink0 <b1ink0@git.wordpress.org>
Bumps the phpstan-packages group with 2 updates: [phpstan/phpstan](https://github.com/phpstan/phpstan-phar-composer-source) and [phpstan/phpstan-phpunit](https://github.com/phpstan/phpstan-phpunit). Updates `phpstan/phpstan` from 2.2.2 to 2.2.3 - [Commits](https://github.com/phpstan/phpstan-phar-composer-source/commits) Updates `phpstan/phpstan-phpunit` from 2.0.16 to 2.0.17 - [Release notes](https://github.com/phpstan/phpstan-phpunit/releases) - [Commits](phpstan/phpstan-phpunit@2.0.16...2.0.17) --- updated-dependencies: - dependency-name: phpstan/phpstan dependency-version: 2.2.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: phpstan-packages - dependency-name: phpstan/phpstan-phpunit dependency-version: 2.0.17 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: phpstan-packages ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.47.2 to 1.48.0. - [Release notes](https://github.com/crate-ci/typos/releases) - [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md) - [Commits](crate-ci/typos@37bb988...bee27e3) --- updated-dependencies: - dependency-name: crate-ci/typos dependency-version: 1.48.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps the wordpress-packages group with 3 updates: [@wordpress/e2e-test-utils-playwright](https://github.com/WordPress/gutenberg/tree/HEAD/packages/e2e-test-utils-playwright), [@wordpress/env](https://github.com/WordPress/gutenberg/tree/HEAD/packages/env) and [@wordpress/scripts](https://github.com/WordPress/gutenberg/tree/HEAD/packages/scripts). Updates `@wordpress/e2e-test-utils-playwright` from 1.49.0 to 1.50.0 - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/e2e-test-utils-playwright/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/e2e-test-utils-playwright@1.50.0/packages/e2e-test-utils-playwright) Updates `@wordpress/env` from 11.9.0 to 11.10.0 - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/env/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/env@11.10.0/packages/env) Updates `@wordpress/scripts` from 32.5.0 to 32.6.0 - [Release notes](https://github.com/WordPress/gutenberg/releases) - [Changelog](https://github.com/WordPress/gutenberg/blob/trunk/packages/scripts/CHANGELOG.md) - [Commits](https://github.com/WordPress/gutenberg/commits/@wordpress/scripts@32.6.0/packages/scripts) --- updated-dependencies: - dependency-name: "@wordpress/e2e-test-utils-playwright" dependency-version: 1.50.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wordpress-packages - dependency-name: "@wordpress/env" dependency-version: 11.10.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wordpress-packages - dependency-name: "@wordpress/scripts" dependency-version: 32.6.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: wordpress-packages ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [fs-extra](https://github.com/jprichardson/node-fs-extra) from 11.3.5 to 11.3.6. - [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md) - [Commits](jprichardson/node-fs-extra@11.3.5...11.3.6) --- updated-dependencies: - dependency-name: fs-extra dependency-version: 11.3.6 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.48.0 to 1.49.0. - [Release notes](https://github.com/crate-ci/typos/releases) - [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md) - [Commits](crate-ci/typos@bee27e3...8a48f81) --- updated-dependencies: - dependency-name: crate-ci/typos dependency-version: 1.49.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.24 to 4.17.25. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash) --- updated-dependencies: - dependency-name: "@types/lodash" dependency-version: 4.17.25 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [web-vitals](https://github.com/GoogleChrome/web-vitals) from 6.0.1 to 6.1.0. - [Changelog](https://github.com/GoogleChrome/web-vitals/blob/main/CHANGELOG.md) - [Commits](GoogleChrome/web-vitals@v6.0.1...v6.1.0) --- updated-dependencies: - dependency-name: web-vitals dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action/analyze](https://github.com/github/codeql-action) from 4.37.3 to 4.37.6. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@e4fba86...5595cca) --- updated-dependencies: - dependency-name: github/codeql-action/analyze dependency-version: 4.37.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action/init](https://github.com/github/codeql-action) from 4.37.3 to 4.37.6. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@e4fba86...5595cca) --- updated-dependencies: - dependency-name: github/codeql-action/init dependency-version: 4.37.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 4.0.2 to 4.0.3. - [Release notes](https://github.com/dorny/paths-filter/releases) - [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md) - [Commits](dorny/paths-filter@7b450ff...ceb8a2b) --- updated-dependencies: - dependency-name: dorny/paths-filter dependency-version: 4.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
…te-ci/typos-1.49.0 Bump crate-ci/typos from 1.48.0 to 1.49.0
…ny/paths-filter-4.0.3 Bump dorny/paths-filter from 4.0.2 to 4.0.3
…hub/codeql-action/init-4.37.6 Bump github/codeql-action/init from 4.37.3 to 4.37.6
…hub/codeql-action/analyze-4.37.6 Bump github/codeql-action/analyze from 4.37.3 to 4.37.6
…itals-6.1.0 Bump web-vitals from 6.0.1 to 6.1.0
Bumps [globals](https://github.com/sindresorhus/globals) from 17.8.0 to 17.9.0. - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](sindresorhus/globals@v17.8.0...v17.9.0) --- updated-dependencies: - dependency-name: globals dependency-version: 17.9.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ls-17.9.0 Bump globals from 17.8.0 to 17.9.0
…/lodash-4.17.25 Bump @types/lodash from 4.17.24 to 4.17.25
Bumps [lint-staged](https://github.com/lint-staged/lint-staged) from 17.2.0 to 17.3.0. - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](lint-staged/lint-staged@v17.2.0...v17.3.0) --- updated-dependencies: - dependency-name: lint-staged dependency-version: 17.3.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ackages-3c132ffa91 Bump phpstan/phpstan from 2.2.7 to 2.2.8 in the phpstan-packages group
Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.62.0 to 1.62.1. - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](microsoft/playwright@v1.62.0...v1.62.1) --- updated-dependencies: - dependency-name: "@playwright/test" dependency-version: 1.62.1 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
…staged-17.3.0 Bump lint-staged from 17.2.0 to 17.3.0
…right/test-1.62.1 Bump @playwright/test from 1.62.0 to 1.62.1
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## feature/2449-gallery-block #2633 +/- ##
==============================================================
+ Coverage 69.33% 70.35% +1.01%
==============================================================
Files 90 91 +1
Lines 7749 7867 +118
==============================================================
+ Hits 5373 5535 +162
+ Misses 2376 2332 -44
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the Unlinked AccountsThe following contributors have not linked their GitHub and WordPress.org accounts: @EvanYao826. Contributors, please read how to link your accounts to ensure your work is properly credited in WordPress releases. If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message. To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
Summary
Get the latest change from trunk.
Relevant technical choices
Use of AI Tools