Skip to content

Commit

Permalink
Merge pull request #1609 from WordPress/publish/3.5.0
Browse files Browse the repository at this point in the history
Prepare 3.5.0 release
  • Loading branch information
westonruter authored Oct 21, 2024
2 parents 7eccb23 + a56c171 commit 6cc4ba5
Show file tree
Hide file tree
Showing 31 changed files with 175 additions and 119 deletions.
67 changes: 36 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@ The feature plugins which are currently featured by this plugin are:

Plugin | Slug | Experimental | Links
--------------------------------|---------------------------|--------------|-------------
[Image Placeholders][1] | `dominant-color-images` | No | [Source][8], [Issues][15], [PRs][22]
[Modern Image Formats][2] | `webp-uploads` | No | [Source][9], [Issues][16], [PRs][23]
[Performant Translations][3] | `performant-translations` | No | [Source][10], [Issues][17], [PRs][24]
[Speculative Loading][4] | `speculation-rules` | No | [Source][11], [Issues][18], [PRs][25]
[Embed Optimizer][5] | `embed-optimizer` | Yes | [Source][12], [Issues][19], [PRs][26]
[Enhanced Responsive Images][6] | `auto-sizes` | Yes | [Source][13], [Issues][20], [PRs][27]
[Image Prioritizer][7] | `image-prioritizer` | Yes | [Source][14], [Issues][21], [PRs][28]
[Image Placeholders][1] | `dominant-color-images` | No | [Source][9], [Issues][17], [PRs][25]
[Modern Image Formats][2] | `webp-uploads` | No | [Source][10], [Issues][18], [PRs][26]
[Performant Translations][3] | `performant-translations` | No | [Source][11], [Issues][19], [PRs][27]
[Speculative Loading][4] | `speculation-rules` | No | [Source][12], [Issues][20], [PRs][28]
[Embed Optimizer][5] | `embed-optimizer` | Yes | [Source][13], [Issues][21], [PRs][29]
[Enhanced Responsive Images][6] | `auto-sizes` | Yes | [Source][14], [Issues][22], [PRs][30]
[Image Prioritizer][7] | `image-prioritizer` | Yes | [Source][15], [Issues][23], [PRs][31]
[Web Worker Offloading][8] | `web-worker-offloading` | Yes | [Source][16], [Issues][24], [PRs][32]

[1]: https://wordpress.org/plugins/dominant-color-images/
[2]: https://wordpress.org/plugins/webp-uploads/
Expand All @@ -26,29 +27,33 @@ Plugin | Slug | Experimental | Lin
[5]: https://wordpress.org/plugins/embed-optimizer/
[6]: https://wordpress.org/plugins/auto-sizes/
[7]: https://wordpress.org/plugins/image-prioritizer/

[8]: https://github.com/WordPress/performance/tree/trunk/plugins/dominant-color-images
[9]: https://github.com/WordPress/performance/tree/trunk/plugins/webp-uploads
[10]: https://github.com/swissspidy/performant-translations
[11]: https://github.com/WordPress/performance/tree/trunk/plugins/speculation-rules
[12]: https://github.com/WordPress/performance/tree/trunk/plugins/embed-optimizer
[13]: https://github.com/WordPress/performance/tree/trunk/plugins/auto-sizes
[14]: https://github.com/WordPress/performance/tree/trunk/plugins/image-prioritizer

[15]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Image+Placeholders%22
[16]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Modern+Image+Formats%22
[17]: https://github.com/swissspidy/performant-translations/issues
[18]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Speculative+Loading%22
[19]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Embed+Optimizer%22
[20]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Enhanced+Responsive+Images%22
[21]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Image+Prioritizer%22

[22]: https://github.com/WordPress/performance/pulls?q=is%3Aopen+label%3A%22%5BPlugin%5D+Image+Placeholders%22
[23]: https://github.com/WordPress/performance/pulls?q=is%3Aopen+label%3A%22%5BPlugin%5D+Modern+Image+Formats%22
[24]: https://github.com/swissspidy/performant-translations/pulls
[25]: https://github.com/WordPress/performance/pulls?q=is%3Aopen+label%3A%22%5BPlugin%5D+Speculative+Loading%22
[26]: https://github.com/WordPress/performance/pulls?q=is%3Aopen+label%3A%22%5BPlugin%5D+Embed+Optimizer%22
[27]: https://github.com/WordPress/performance/pulls?q=is%3Aopen+label%3A%22%5BPlugin%5D+Enhanced+Responsive+Images%22
[28]: https://github.com/WordPress/performance/pulls?q=is%3Aopen+label%3A%22%5BPlugin%5D+Image+Prioritizer%22
[8]: https://wordpress.org/plugins/web-worker-offloading/

[9]: https://github.com/WordPress/performance/tree/trunk/plugins/dominant-color-images
[10]: https://github.com/WordPress/performance/tree/trunk/plugins/webp-uploads
[11]: https://github.com/swissspidy/performant-translations
[12]: https://github.com/WordPress/performance/tree/trunk/plugins/speculation-rules
[13]: https://github.com/WordPress/performance/tree/trunk/plugins/embed-optimizer
[14]: https://github.com/WordPress/performance/tree/trunk/plugins/auto-sizes
[15]: https://github.com/WordPress/performance/tree/trunk/plugins/image-prioritizer
[16]: https://github.com/WordPress/performance/tree/trunk/plugins/web-worker-offloading

[17]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Image+Placeholders%22
[18]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Modern+Image+Formats%22
[19]: https://github.com/swissspidy/performant-translations/issues
[20]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Speculative+Loading%22
[21]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Embed+Optimizer%22
[22]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Enhanced+Responsive+Images%22
[23]: https://github.com/WordPress/performance/issues?q=is%3Aopen+label%3A%22%5BPlugin%5D+Image+Prioritizer%22
[24]: https://github.com/WordPress/performance/issues?q=is%3Aopen%20label%3A%22%5BPlugin%5D%20Web%20Worker%20Offloading%22

[25]: https://github.com/WordPress/performance/pulls?q=is%3Apr+is%3Aopen+label%3A%22%5BPlugin%5D+Image+Placeholders%22
[26]: https://github.com/WordPress/performance/pulls?q=is%3Apr+is%3Aopen+label%3A%22%5BPlugin%5D+Modern+Image+Formats%22
[27]: https://github.com/swissspidy/performant-translations/pulls
[28]: https://github.com/WordPress/performance/pulls?q=is%3Apr+is%3Aopen+label%3A%22%5BPlugin%5D+Speculative+Loading%22
[29]: https://github.com/WordPress/performance/pulls?q=is%3Apr+is%3Aopen+label%3A%22%5BPlugin%5D+Embed+Optimizer%22
[30]: https://github.com/WordPress/performance/pulls?q=is%3Apr+is%3Aopen+label%3A%22%5BPlugin%5D+Enhanced+Responsive+Images%22
[31]: https://github.com/WordPress/performance/pulls?q=is%3Apr+is%3Aopen+label%3A%22%5BPlugin%5D+Image+Prioritizer%22
[32]: https://github.com/WordPress/performance/pulls?q=is%3Apr+is%3Aopen+label%3A%22%5BPlugin%5D+Web%20Worker%20Offloading%22

Note that the plugin names sometimes diverge from the plugin slugs due to scope changes. For example, a plugin's purpose may change as some of its features are merged into WordPress core.
2 changes: 1 addition & 1 deletion plugins/auto-sizes/readme.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
=== Enhanced Responsive Images ===

Contributors: wordpressdotorg
Tested up to: 6.6
Tested up to: 6.7
Stable tag: 1.3.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Expand Down
2 changes: 1 addition & 1 deletion plugins/dominant-color-images/readme.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
=== Image Placeholders ===

Contributors: wordpressdotorg
Tested up to: 6.6
Tested up to: 6.7
Stable tag: 1.1.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Expand Down
8 changes: 4 additions & 4 deletions plugins/embed-optimizer/class-embed-optimizer-tag-visitor.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ final class Embed_Optimizer_Tag_Visitor {
/**
* Determines whether the processor is currently at a figure.wp-block-embed tag.
*
* @since n.e.x.t
* @since 0.3.0
*
* @param OD_HTML_Tag_Processor $processor Processor.
* @return bool Whether at the tag.
Expand All @@ -47,7 +47,7 @@ private function is_embed_figure( OD_HTML_Tag_Processor $processor ): bool {
/**
* Determines whether the processor is currently at a div.wp-block-embed__wrapper tag (which is a child of figure.wp-block-embed).
*
* @since n.e.x.t
* @since 0.3.0
*
* @param OD_HTML_Tag_Processor $processor Processor.
* @return bool Whether the tag should be measured and stored in URL metrics.
Expand Down Expand Up @@ -196,7 +196,7 @@ public function __invoke( OD_Tag_Visitor_Context $context ): bool {
/**
* Gets the XPath for the embed wrapper DIV which is the sole child of the embed block FIGURE.
*
* @since n.e.x.t
* @since 0.3.0
*
* @param string $embed_block_xpath XPath for the embed block FIGURE tag. For example: `/*[1][self::HTML]/*[2][self::BODY]/*[1][self::FIGURE]`.
* @return string XPath for the child DIV. For example: `/*[1][self::HTML]/*[2][self::BODY]/*[1][self::FIGURE]/*[1][self::DIV]`
Expand All @@ -208,7 +208,7 @@ private static function get_embed_wrapper_xpath( string $embed_block_xpath ): st
/**
* Reduces layout shifts.
*
* @since n.e.x.t
* @since 0.3.0
*
* @param OD_Tag_Visitor_Context $context Tag visitor context, with the cursor currently at an embed block.
*/
Expand Down
10 changes: 5 additions & 5 deletions plugins/embed-optimizer/hooks.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ function embed_optimizer_add_hooks(): void {
/**
* Adds hooks for when the Optimization Detective logic is not running.
*
* @since n.e.x.t
* @since 0.3.0
*/
function embed_optimizer_add_non_optimization_detective_hooks(): void {
if ( false === has_action( 'od_register_tag_visitors', 'embed_optimizer_register_tag_visitors' ) ) {
Expand All @@ -37,7 +37,7 @@ function embed_optimizer_add_non_optimization_detective_hooks(): void {
/**
* Initializes Embed Optimizer when Optimization Detective has loaded.
*
* @since n.e.x.t
* @since 0.3.0
*
* @param string $optimization_detective_version Current version of the optimization detective plugin.
*/
Expand Down Expand Up @@ -81,7 +81,7 @@ function embed_optimizer_register_tag_visitors( OD_Tag_Visitor_Registry $registr
/**
* Filters additional properties for the element item schema for Optimization Detective.
*
* @since n.e.x.t
* @since 0.3.0
*
* @param array<string, array{type: string}> $additional_properties Additional properties.
* @return array<string, array{type: string}> Additional properties.
Expand Down Expand Up @@ -112,7 +112,7 @@ function embed_optimizer_add_element_item_schema_properties( array $additional_p
/**
* Filters the list of Optimization Detective extension module URLs to include the extension for Embed Optimizer.
*
* @since n.e.x.t
* @since 0.3.0
*
* @param string[]|mixed $extension_module_urls Extension module URLs.
* @return string[] Extension module URLs.
Expand All @@ -130,7 +130,7 @@ function embed_optimizer_filter_extension_module_urls( $extension_module_urls ):
*
* This ensures that the module for handling embeds is only loaded when there is an embed on the page.
*
* @since n.e.x.t
* @since 0.3.0
*
* @param string|mixed $html The oEmbed HTML.
* @return string Unchanged oEmbed HTML.
Expand Down
4 changes: 2 additions & 2 deletions plugins/embed-optimizer/load.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* Description: Optimizes the performance of embeds by lazy-loading iframes and scripts.
* Requires at least: 6.5
* Requires PHP: 7.2
* Version: 0.3.0-alpha
* Version: 0.3.0
* Author: WordPress Performance Team
* Author URI: https://make.wordpress.org/performance/
* License: GPLv2 or later
Expand Down Expand Up @@ -70,7 +70,7 @@ static function ( string $global_var_name, string $version, Closure $load ): voi
}
)(
'embed_optimizer_pending_plugin',
'0.3.0-alpha',
'0.3.0',
static function ( string $version ): void {
if ( defined( 'EMBED_OPTIMIZER_VERSION' ) ) {
return;
Expand Down
11 changes: 9 additions & 2 deletions plugins/embed-optimizer/readme.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
=== Embed Optimizer ===

Contributors: wordpressdotorg
Tested up to: 6.6
Stable tag: 0.2.0
Tested up to: 6.7
Stable tag: 0.3.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: performance, embeds
Expand Down Expand Up @@ -51,6 +51,13 @@ The [plugin source code](https://github.com/WordPress/performance/tree/trunk/plu

== Changelog ==

= 0.3.0 =

**Enhancements**

* Leverage URL metrics to reserve space for embeds to reduce CLS. ([1373](https://github.com/WordPress/performance/pull/1373))
* Avoid lazy-loading images and embeds unless there are URL Metrics for both mobile and desktop. ([1604](https://github.com/WordPress/performance/pull/1604))

= 0.2.0 =

**Enhancements**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ protected function is_data_url( string $url ): bool {
/**
* Gets attribute value for select attributes.
*
* @since n.e.x.t
* @since 0.2.0
* @todo Move this into the OD_HTML_Tag_Processor/OD_HTML_Processor class eventually.
*
* @phpstan-param NormalizedAttributeNames $attribute_name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
*
* @package image-prioritizer
*
* @since n.e.x.t
* @since 0.2.0
*/

// Exit if accessed directly.
Expand All @@ -16,7 +16,7 @@
/**
* Image Prioritizer: Image_Prioritizer_Video_Tag_Visitor class
*
* @since n.e.x.t
* @since 0.2.0
*
* @access private
*/
Expand All @@ -25,23 +25,23 @@ final class Image_Prioritizer_Video_Tag_Visitor extends Image_Prioritizer_Tag_Vi
/**
* Class name used to indicate a video which is lazy-loaded.
*
* @since n.e.x.t
* @since 0.2.0
* @var string
*/
const LAZY_VIDEO_CLASS_NAME = 'od-lazy-video';

/**
* Whether the lazy-loading script was added to the body.
*
* @since n.e.x.t
* @since 0.2.0
* @var bool
*/
protected $added_lazy_script = false;

/**
* Visits a tag.
*
* @since n.e.x.t
* @since 0.2.0
*
* @param OD_Tag_Visitor_Context $context Tag visitor context.
* @return bool Whether the tag should be tracked in URL metrics.
Expand Down Expand Up @@ -69,7 +69,7 @@ public function __invoke( OD_Tag_Visitor_Context $context ): bool {
*
* Skips empty poster attributes and data: URLs.
*
* @since n.e.x.t
* @since 0.2.0
*
* @param OD_Tag_Visitor_Context $context Tag visitor context.
* @return non-empty-string|null Poster or null if not defined or is a data: URL.
Expand All @@ -85,7 +85,7 @@ private function get_poster( OD_Tag_Visitor_Context $context ): ?string {
/**
* Reduces poster image size by choosing one that fits the maximum video size more closely.
*
* @since n.e.x.t
* @since 0.2.0
*
* @param non-empty-string $poster Poster image URL.
* @param OD_Tag_Visitor_Context $context Tag visitor context, with the cursor currently at a VIDEO tag.
Expand Down Expand Up @@ -128,7 +128,7 @@ private function reduce_poster_image_size( string $poster, OD_Tag_Visitor_Contex
/**
* Preloads poster image for the LCP <video> element.
*
* @since n.e.x.t
* @since 0.2.0
*
* @param non-empty-string $poster Poster image URL.
* @param OD_Tag_Visitor_Context $context Tag visitor context, with the cursor currently at a VIDEO tag.
Expand Down Expand Up @@ -164,7 +164,7 @@ private function preload_poster_image( string $poster, OD_Tag_Visitor_Context $c
/**
* Optimizes the VIDEO tag based on whether it is the LCP element or else whether it is displayed in any initial viewport.
*
* @since n.e.x.t
* @since 0.2.0
*
* @param non-empty-string|null $poster Poster image URL.
* @param OD_Tag_Visitor_Context $context Tag visitor context, with the cursor currently at an embed block.
Expand Down
2 changes: 1 addition & 1 deletion plugins/image-prioritizer/helper.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
/**
* Initializes Image Prioritizer when Optimization Detective has loaded.
*
* @since n.e.x.t
* @since 0.2.0
*
* @param string $optimization_detective_version Current version of the optimization detective plugin.
*/
Expand Down
2 changes: 1 addition & 1 deletion plugins/image-prioritizer/hooks.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
*
* Handles 'autoplay' and 'preload' attributes accordingly.
*
* @since n.e.x.t
* @since 0.2.0
*/
function image_prioritizer_get_lazy_load_script(): string {
$script = file_get_contents( __DIR__ . '/lazy-load.js' ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents -- It's a local filesystem path not a remote request.
Expand Down
4 changes: 2 additions & 2 deletions plugins/image-prioritizer/load.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* Requires at least: 6.5
* Requires PHP: 7.2
* Requires Plugins: optimization-detective
* Version: 0.1.5-alpha
* Version: 0.2.0
* Author: WordPress Performance Team
* Author URI: https://make.wordpress.org/performance/
* License: GPLv2 or later
Expand Down Expand Up @@ -71,7 +71,7 @@ static function ( string $global_var_name, string $version, Closure $load ): voi
}
)(
'image_prioritizer_pending_plugin',
'0.1.5-alpha',
'0.2.0',
static function ( string $version ): void {
if ( defined( 'IMAGE_PRIORITIZER_VERSION' ) ) {
return;
Expand Down
14 changes: 12 additions & 2 deletions plugins/image-prioritizer/readme.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
=== Image Prioritizer ===

Contributors: wordpressdotorg
Tested up to: 6.6
Stable tag: 0.1.4
Tested up to: 6.7
Stable tag: 0.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: performance, optimization, image, lcp, lazy-load
Expand Down Expand Up @@ -62,6 +62,16 @@ The [plugin source code](https://github.com/WordPress/performance/tree/trunk/plu

== Changelog ==

= 0.2.0 =

**Enhancements**

* Lazy load videos and video posters. ([1596](https://github.com/WordPress/performance/pull/1596))
* Prioritize loading poster image of video LCP elements. ([1498](https://github.com/WordPress/performance/pull/1498))
* Choose smaller video poster image size based on actual dimensions. ([1595](https://github.com/WordPress/performance/pull/1595))
* Add fetchpriority=low to occluded initial-viewport images (e.g. images in hidden carousel slides). ([1482](https://github.com/WordPress/performance/pull/1482))
* Avoid lazy-loading images and embeds unless there are URL Metrics for both mobile and desktop. ([1604](https://github.com/WordPress/performance/pull/1604))

= 0.1.4 =

**Enhancements**
Expand Down
Loading

0 comments on commit 6cc4ba5

Please sign in to comment.