From 3c4eea848775164257d13d37d16176798023dc02 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 15 Jan 2026 20:18:18 +1100 Subject: [PATCH 01/12] Silence the check for `drawText` in the path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise, every hit (and there are many) of the method would print the path in the logs. Example: ``` [20:09:25]: ------------------------------- [20:09:25]: --- Step: promo_screenshots --- [20:09:25]: ------------------------------- [20:09:25]: Creating Promo Screenshots /opt/homebrew/bin/drawText [20:09:25]: ✅ Original Screenshot Source: /Users/gio/Developer/a8c/wcios/fastlane/screenshots /opt/homebrew/bin/drawText [20:09:25]: ✅ Translation source: /Users/gio/Developer/a8c/wcios/fastlane/metadata /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText [20:09:26]: ▸ ✅ Font "Helvetica Neue" found and active /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText [20:09:26]: ✅ Output Folder: /Users/gio/Developer/a8c/wcios/fastlane/promo_screenshots /opt/homebrew/bin/drawText [20:09:26]: 💙 Creating Promo Screenshots for: ar-SA, de-DE, en-US [20:09:26]: Do you want to overwrite the existing promo screenshots? (y/n) y /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /opt/homebrew/bin/drawText /Users/gio/Developer/a8c/wcios/vendor/bundle/ruby/3.2.0/gems/fastlane-plugin-wpmreleasetoolkit-13.8.1/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb:410: warning: passing a block without an image argument is deprecated ... ``` --- .../plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb index 38fdab80c..c1effd787 100644 --- a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb +++ b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb @@ -33,7 +33,7 @@ def initialize UI.user_error!(message) end - UI.user_error!('`drawText` not found – install it using `brew install automattic/build-tools/drawText`.') unless system('command -v drawText') + UI.user_error!('`drawText` not found – install it using `brew install automattic/build-tools/drawText`.') unless system('command -v drawText > /dev/null') end def read_config(config_file_path) From 922a8ba9bc1c865192e4d7b16569db59b0537878 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 15 Jan 2026 20:25:01 +1100 Subject: [PATCH 02/12] Suggests runing screenshots generation when file not found Felt pretty dumb when I looked in the screenshots folder and realized that it was empty because, duh, I didn't run the automation. --- .../wpmreleasetoolkit/helper/promo_screenshots_helper.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb index c1effd787..d1ec9c9a1 100644 --- a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb +++ b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb @@ -432,8 +432,12 @@ def resolve_path(path) return resolved_path if !resolved_path.nil? && resolved_path.exist? end - message = "Unable to locate #{path}" - UI.crash!(message) + message = <<~MESSAGE + Unable to locate #{path}. + + Did you run the automation to generate the screenshots? + MESSAGE + UI.user_error!(message) end def resolve_text_into_path(text, locale) From 95ed576d550ba08955074cbd70db4b96c5d8e04c Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 15 Jan 2026 21:06:48 +1100 Subject: [PATCH 03/12] Address deprecation warning in RMagick See how https://github.com/rmagick/rmagick/pull/1279 addressed the same issue. --- .../wpmreleasetoolkit/helper/promo_screenshots_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb index d1ec9c9a1..c970d2d72 100644 --- a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb +++ b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb @@ -407,8 +407,8 @@ def create_image(width, height, background = 'transparent') working_background = background.frozen? ? background.dup : background working_background.paint.to_hex - Image.new(width, height) do - self.background_color = working_background + Image.new(width, height) do |info| + info.background_color = working_background end end From 5740c60ec481816be53fbb2a4bc195284cd945d9 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 15 Jan 2026 21:08:11 +1100 Subject: [PATCH 04/12] Use `system` over `Action.sh` to call `drawText` Doing so prevents printing the long `drawText` message and making the logs noisy. I tried using `command:` and `log: false` to silence that (as per https://github.com/fastlane/fastlane/pull/14945) but it didn't work. --- .../helper/promo_screenshots_helper.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb index c970d2d72..b4c17c614 100644 --- a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb +++ b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb @@ -287,7 +287,16 @@ def draw_text_to_canvas(canvas, text, width, height, x_position, y_position, fon begin temp_text_file = Tempfile.new - Action.sh('drawText', "html=#{text}", "maxWidth=#{width}", "maxHeight=#{height}", "output=#{temp_text_file.path}", "fontSize=#{font_size}", "stylesheet=#{stylesheet_path}", "alignment=#{position}") + system( + 'drawText', + "html=#{text}", + "maxWidth=#{width}", + "maxHeight=#{height}", + "output=#{temp_text_file.path}", + "fontSize=#{font_size}", + "stylesheet=#{stylesheet_path}", + "alignment=#{position}" + ) text_content = open_image(temp_text_file.path).trim text_frame = create_image(width, height) From 12abcb0d355da5fb8072f39926705fc89e9ef125 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 19 Jan 2026 11:07:46 +1100 Subject: [PATCH 05/12] Restore using `Action.sh` using proper `log` keyword Hat tip @iangmaia, https://github.com/wordpress-mobile/release-toolkit/pull/685#discussion_r2700028707 --- .../wpmreleasetoolkit/helper/promo_screenshots_helper.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb index b4c17c614..dc5ae652b 100644 --- a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb +++ b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb @@ -287,7 +287,7 @@ def draw_text_to_canvas(canvas, text, width, height, x_position, y_position, fon begin temp_text_file = Tempfile.new - system( + Action.sh( 'drawText', "html=#{text}", "maxWidth=#{width}", @@ -295,7 +295,8 @@ def draw_text_to_canvas(canvas, text, width, height, x_position, y_position, fon "output=#{temp_text_file.path}", "fontSize=#{font_size}", "stylesheet=#{stylesheet_path}", - "alignment=#{position}" + "alignment=#{position}", + log: false ) text_content = open_image(temp_text_file.path).trim From 1b7b4610c4c5e457fb62c65877098ce93ec7fd8b Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 19 Jan 2026 15:30:30 +1100 Subject: [PATCH 06/12] Update required Fastlane to latest version This is just in case the `sh` error I'm experiencing has been fixed recently. I haven't actually checked the release notes, but an update like this is beneficial anyway. --- Gemfile.lock | 71 ++++++++++++----------- fastlane-plugin-wpmreleasetoolkit.gemspec | 2 +- 2 files changed, 39 insertions(+), 34 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 63da3e27c..895febed5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,7 +6,7 @@ PATH buildkit (~> 1.5) chroma (= 0.2.0) diffy (~> 3.3) - fastlane (~> 2.213) + fastlane (~> 2.231) git (~> 1.3) google-cloud-storage (~> 1.31) java-properties (~> 0.3.0) @@ -22,10 +22,8 @@ PATH GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.7) - base64 - nkf - rexml + CFPropertyList (3.0.8) + abbrev (0.1.2) activesupport (7.2.2.1) base64 benchmark (>= 0.3) @@ -38,8 +36,8 @@ GEM minitest (>= 5.1) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) + addressable (2.8.8) + public_suffix (>= 2.0.2, < 8.0) algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) @@ -47,8 +45,8 @@ GEM ast (2.4.2) atomos (0.1.3) aws-eventstream (1.4.0) - aws-partitions (1.1196.0) - aws-sdk-core (3.240.0) + aws-partitions (1.1206.0) + aws-sdk-core (3.241.4) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) @@ -56,19 +54,19 @@ GEM bigdecimal jmespath (~> 1, >= 1.6.1) logger - aws-sdk-kms (1.118.0) - aws-sdk-core (~> 3, >= 3.239.1) + aws-sdk-kms (1.121.0) + aws-sdk-core (~> 3, >= 3.241.4) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.208.0) - aws-sdk-core (~> 3, >= 3.234.0) + aws-sdk-s3 (1.212.0) + aws-sdk-core (~> 3, >= 3.241.4) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) aws-sigv4 (1.12.1) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) - base64 (0.3.0) + base64 (0.2.0) benchmark (0.4.0) - bigdecimal (3.1.9) + bigdecimal (4.0.1) buildkit (1.6.1) sawyer (>= 0.6) buildkite-test_collector (2.9.0) @@ -129,6 +127,7 @@ GEM crack (1.0.0) bigdecimal rexml + csv (3.3.5) danger (9.5.1) base64 (~> 0.2) claide (~> 1.0) @@ -179,16 +178,16 @@ GEM faraday-rack (~> 1.0) faraday-retry (~> 1.0) ruby2_keywords (>= 0.0.4) - faraday-cookie_jar (0.0.7) + faraday-cookie_jar (0.0.8) faraday (>= 0.8.0) - http-cookie (~> 1.0.0) + http-cookie (>= 1.0.0) faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) + faraday-em_synchrony (1.0.1) faraday-excon (1.1.0) faraday-http-cache (2.5.1) faraday (>= 0.8) faraday-httpclient (1.0.1) - faraday-multipart (1.1.0) + faraday-multipart (1.2.0) multipart-post (~> 2.0) faraday-net_http (1.0.2) faraday-net_http_persistent (1.2.0) @@ -198,15 +197,18 @@ GEM faraday_middleware (1.2.1) faraday (~> 1.0) fastimage (2.4.0) - fastlane (2.227.0) + fastlane (2.231.0) CFPropertyList (>= 2.3, < 4.0.0) + abbrev (~> 0.1.2) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) aws-sdk-s3 (~> 1.0) babosa (>= 1.0.3, < 2.0.0) - bundler (>= 1.12.0, < 3.0.0) + base64 (~> 0.2.0) + bundler (>= 1.17.3, < 5.0.0) colored (~> 1.2) commander (~> 4.6) + csv (~> 3.3) dotenv (>= 2.1.1, < 3.0.0) emoji_regex (>= 0.1, < 4.0) excon (>= 0.71.0, < 1.0.0) @@ -224,9 +226,12 @@ GEM http-cookie (~> 1.0.5) json (< 3.0.0) jwt (>= 2.1.0, < 3) + logger (>= 1.6, < 2.0) mini_magick (>= 4.9.4, < 5.0.0) multipart-post (>= 2.0.0, < 3.0.0) + mutex_m (~> 0.3.0) naturally (~> 2.2) + nkf (~> 0.2.0) optparse (>= 0.1.1, < 1.0.0) plist (>= 3.1.0, < 4.0.0) rubyzip (>= 2.0.0, < 3.0.0) @@ -238,7 +243,7 @@ GEM tty-spinner (>= 0.8.0, < 1.0.0) word_wrap (~> 1.0.0) xcodeproj (>= 1.13.0, < 2.0.0) - xcpretty (~> 0.4.0) + xcpretty (~> 0.4.1) xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) fastlane-sirp (1.0.0) sysrandom (~> 1.0) @@ -295,8 +300,8 @@ GEM concurrent-ruby (~> 1.0) java-properties (0.3.0) jmespath (1.6.2) - json (2.10.2) - jwt (2.10.1) + json (2.18.0) + jwt (2.10.2) base64 kramdown (2.5.1) rexml (>= 3.3.9) @@ -304,19 +309,19 @@ GEM kramdown (~> 2.0) language_server-protocol (3.17.0.4) lint_roller (1.1.0) - logger (1.6.6) + logger (1.7.0) method_source (0.9.2) mini_magick (4.13.2) mini_mime (1.1.5) mini_portile2 (2.8.9) minitest (5.25.5) molinillo (0.8.0) - multi_json (1.15.0) + multi_json (1.19.1) multipart-post (2.4.1) mutex_m (0.3.0) nanaimo (0.4.0) nap (1.1.0) - naturally (2.2.1) + naturally (2.3.0) netrc (0.11.0) nkf (0.2.0) nokogiri (1.18.9) @@ -328,7 +333,7 @@ GEM sawyer (~> 0.9) open4 (1.3.4) options (2.3.2) - optparse (0.6.0) + optparse (0.8.1) os (1.1.4) parallel (1.26.3) parser (3.3.7.1) @@ -346,7 +351,7 @@ GEM public_suffix (4.0.7) racc (1.8.1) rainbow (3.1.1) - rake (13.2.1) + rake (13.3.1) rake-compiler (1.2.9) rake rchardet (1.9.0) @@ -356,7 +361,7 @@ GEM trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.4.2) + rexml (3.4.4) rmagick (5.5.0) observer (~> 0.1) pkg-config (~> 1.4) @@ -400,10 +405,10 @@ GEM faraday (>= 0.17.3, < 3) securerandom (0.4.1) security (0.1.5) - signet (0.19.0) + signet (0.21.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) - jwt (>= 1.5, < 3.0) + jwt (>= 1.5, < 4.0) multi_json (~> 1.10) simctl (1.6.10) CFPropertyList @@ -440,7 +445,7 @@ GEM colored2 (~> 3.1) nanaimo (~> 0.4.0) rexml (>= 3.3.6, < 4.0) - xcpretty (0.4.0) + xcpretty (0.4.1) rouge (~> 3.28.0) xcpretty-travis-formatter (1.0.1) xcpretty (~> 0.2, >= 0.0.7) diff --git a/fastlane-plugin-wpmreleasetoolkit.gemspec b/fastlane-plugin-wpmreleasetoolkit.gemspec index 045b252f4..cf8b14ce3 100644 --- a/fastlane-plugin-wpmreleasetoolkit.gemspec +++ b/fastlane-plugin-wpmreleasetoolkit.gemspec @@ -30,7 +30,7 @@ Gem::Specification.new do |spec| spec.add_dependency 'buildkit', '~> 1.5' spec.add_dependency 'chroma', '0.2.0' spec.add_dependency 'diffy', '~> 3.3' - spec.add_dependency 'fastlane', '~> 2.213' + spec.add_dependency 'fastlane', '~> 2.231' spec.add_dependency 'git', '~> 1.3' spec.add_dependency 'java-properties', '~> 0.3.0' spec.add_dependency 'nokogiri', '~> 1.11' From 05875c7484cb7630180f6968adc4060b51a7157b Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 19 Jan 2026 15:25:39 +1100 Subject: [PATCH 07/12] Call `sh` via `Actions` not `Action` `Action.sh` delegates directly to `Actions.sh_control_output,` which accepts `print_command:` and `print_command_output:`, not `log:`. The delegation occurs in `fastlane/lib/fastlane/action.rb` using Ruby's Forwardable module: ``` def_delegator(Actions, :sh_control_output, :sh) ``` `Actions.sh` is a wrapper that accepts `log:` and translates it to `print_command:` and `print_command_output:` when calling `sh_control_output`. See: - https://github.com/fastlane/fastlane/blob/2.231.0/fastlane/lib/fastlane/action.rb#L32-L39 - https://github.com/fastlane/fastlane/blob/2.231.0/fastlane/lib/fastlane/helper/sh_helper.rb#L4-L28 --- .../plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb index dc5ae652b..77074a8d9 100644 --- a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb +++ b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb @@ -287,7 +287,7 @@ def draw_text_to_canvas(canvas, text, width, height, x_position, y_position, fon begin temp_text_file = Tempfile.new - Action.sh( + Actions.sh( 'drawText', "html=#{text}", "maxWidth=#{width}", From 4e22a26ec92a2cd17108d535f467b1b5ff7e80e2 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 19 Jan 2026 15:31:35 +1100 Subject: [PATCH 08/12] Print warning when input promo title is missing --- .../plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb index 77074a8d9..a945949f2 100644 --- a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb +++ b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb @@ -458,6 +458,7 @@ def resolve_text_into_path(text, locale) elsif can_resolve_path(localized_file) resolve_path(localized_file).realpath.to_s else + UI.important("Could not identify '#{localized_file}' as a file path or the file was not found. Will use its value as a raw string. This may result in undesired annotations.") format(text, 'source') end end From 5dfbf5b85a34aa70d20d71bbfc402d433aa35581 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 20 Jan 2026 10:28:04 +1100 Subject: [PATCH 09/12] Memoize `drawText` availability check memoization --- Generate with the help of Claude Code, https://code.claude.com Co-Authored-By: Ian Maia Co-Authored-By: Claude Opus 4.5 --- .../wpmreleasetoolkit/helper/promo_screenshots_helper.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb index a945949f2..7dae1559d 100644 --- a/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb +++ b/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb @@ -33,7 +33,13 @@ def initialize UI.user_error!(message) end - UI.user_error!('`drawText` not found – install it using `brew install automattic/build-tools/drawText`.') unless system('command -v drawText > /dev/null') + UI.user_error!('`drawText` not found – install it using `brew install automattic/build-tools/drawText`.') unless self.class.draw_text_available? + end + + def self.draw_text_available? + return @draw_text_available if defined?(@draw_text_available) + + @draw_text_available = system('command -v drawText', %i[out err] => File::NULL) end def read_config(config_file_path) From e8f1adf715e3df4dc4e3f48fc2ad8c580c6aec9e Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 20 Jan 2026 10:36:19 +1100 Subject: [PATCH 10/12] Replace a `user_error!` with `abort_with_message!` From the docs: Use this method to exit the program because of terminal state that is neither the fault of fastlane, nor a problem with the user's input. Using this method instead of user_error! will avoid tracking this outcome as a fastlane failure. --- .../actions/common/promo_screenshots_action.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb b/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb index 2fa613079..e29176d73 100644 --- a/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb +++ b/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb @@ -93,7 +93,7 @@ def self.confirm_directory_overwrite(path, description) FileUtils.rm_rf(path) Dir.mkdir(path) else - UI.user_error!("Exiting to avoid overwriting #{description}.") + UI.abort_with_message!("Exiting to avoid overwriting #{description}.") end else Dir.mkdir(path) From 5d122f0901efccde6cf3a2d76d6fc4b23067ec49 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 20 Jan 2026 10:55:46 +1100 Subject: [PATCH 11/12] Add a verbose log with the details of the entry being processed --- .../actions/common/promo_screenshots_action.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb b/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb index e29176d73..131222984 100644 --- a/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb +++ b/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/promo_screenshots_action.rb @@ -62,6 +62,8 @@ def self.run(params) UI.message("Unable to find device #{entry['device']}.") if device.nil? + UI.verbose("Processing entry:\n#{JSON.pretty_generate(entry)}") + width = device['canvas_size'][0] height = device['canvas_size'][1] From 17bf347719add4c4476ece34319b935e335e7c57 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 20 Jan 2026 10:58:32 +1100 Subject: [PATCH 12/12] Add changelog entry for promo screenshots updates --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b96b9b51f..047dd37e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,8 @@ _None_ ### Internal Changes -_None_ +- Improved efficiency and refined the logs of the `promo_screenshots` action. [#685] +- Updated minimum Fastlane requirement to 2.231.0. [#685] ## 13.8.1