Skip to content

[Tooling] Update release-toolkit to 14.0#25221

Open
iangmaia wants to merge 9 commits intotrunkfrom
iangmaia/update-release-toolkit
Open

[Tooling] Update release-toolkit to 14.0#25221
iangmaia wants to merge 9 commits intotrunkfrom
iangmaia/update-release-toolkit

Conversation

@iangmaia
Copy link
Contributor

@iangmaia iangmaia commented Feb 4, 2026

Fixes AINFRA-1898, AINFRA-1899

Summary

  • Update release-toolkit gem to version 14.0
  • Replace deprecated ios_update_metadata_source with gp_update_metadata_source
  • Update metadata strings

Testing

  • Run bundle exec fastlane update_jetpack_appstore_strings skip_commit:true / bundle exec fastlane update_wordpress_appstore_strings skip_commit:true to test PO generation

The main change required is replacing `ios_update_metadata_source` (now deprecated) with `gp_update_metadata_source`
@iangmaia iangmaia self-assigned this Feb 4, 2026
@dangermattic
Copy link
Collaborator

dangermattic commented Feb 4, 2026

1 Warning
⚠️ This PR is larger than 500 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews.

Generated by 🚫 Danger

Comment on lines 326 to 350
# app_store_name: {
# path: File.join(source_metadata_folder, 'name.txt'),
# comment: "translators: The application name in the Apple App Store. Please keep the brand names ('Jetpack' and WordPress') verbatim. Limit to 30 characters including spaces and punctuation!"
# },
# app_store_subtitle: {
# path: File.join(source_metadata_folder, 'subtitle.txt'),
# comment: 'translators: Subtitle to be displayed below the application name in the Apple App Store. Limit to 30 characters including spaces and commas!'
# },
# app_store_desc: {
# path: File.join(source_metadata_folder, 'description.txt'),
# comment: 'translators: Multi-paragraph text used to display in the Apple App Store.'
# },
# app_store_keywords: {
# path: File.join(source_metadata_folder, 'keywords.txt'),
# comment: <<~COMMENT.chomp
# translators: Keywords used in the App Store search engine to find the app.
# Delimit with a comma between each keyword. Limit to 100 characters including spaces and commas.
# COMMENT
# },
# **(1..6).to_h do |i|
# [
# "screenshot-text-#{i}",
# { path: File.join(custom_metadata_folder, "promo_screenshot_#{i}.txt"), comment: screenshot_comment }
# ]
# end
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given this entire part is (already was) commented out, now with the new idempotent PO generation, it removes the parts that are not present. Not sure if this is an issue to the tests the team is doing with the App Store copy? cc @crazytonyli

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to git blame this was indeed commented out due to an ongoing ASO experiment… but that was ≈3 years ago! (Oct 2023)

Also even if we end up deciding to keep it commented out for the time being, we should still (1) update this code—so that it works out of the box when we might hopefully finally uncomment it in the future—and (2) DRY the common translator comments that are common for WP vs JP in some constants to avoid repetition.

Copy link
Contributor

@crazytonyli crazytonyli Feb 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no idea what this ASO experiment is. Keeping or removing the comments both sounds good to me.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should still (1) update this code—so that it works out of the box when we might hopefully finally uncomment it in the future

Oh that's what the PR initially already did.

But now I've uncommented it (121ef3b) and re-generated WordPress/Jetpack/Resources/AppStoreStrings.po.
I'm tempted to keep it like that, so that the code is again in sync with the store, the code is running again, etc.

I've checked the fields such as app_store_name, app_store_desc, app_store_subtitle, etc and everything seems to match with ASC. The <version>-whats-new matches but it was already uncommented before.
The screenshots don't seem to be generated anymore though?

(2) DRY the common translator comments

I'd say The duplication is small and each lane reads well as a self-contained unit. Maybe we could consolidate into a single lane with different parameters (like a Jetpack / WordPress configuration stored in a hash 🤔 ), but at that point that'd be a larger refactoring that we could leave for later and that could apply to a lot of lanes.

@iangmaia iangmaia added the Tooling Build, Release, and Validation Tools label Feb 4, 2026
@iangmaia iangmaia added this to the 26.7 milestone Feb 4, 2026
@iangmaia iangmaia changed the title Update release-toolkit to 14.0 [Tooling] Update release-toolkit to 14.0 Feb 4, 2026
@iangmaia iangmaia requested a review from crazytonyli February 4, 2026 20:35
Copy link
Contributor

@AliSoftware AliSoftware left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but I think we should wait for Tony (or whoever might know in the WP/JP team) to answer about the JP metadata being currently disabled before merging, as I expect/hope the conclusion will end up being that we should uncomment it and resume JP metadata sync by now before merging…

Comment on lines 326 to 350
# app_store_name: {
# path: File.join(source_metadata_folder, 'name.txt'),
# comment: "translators: The application name in the Apple App Store. Please keep the brand names ('Jetpack' and WordPress') verbatim. Limit to 30 characters including spaces and punctuation!"
# },
# app_store_subtitle: {
# path: File.join(source_metadata_folder, 'subtitle.txt'),
# comment: 'translators: Subtitle to be displayed below the application name in the Apple App Store. Limit to 30 characters including spaces and commas!'
# },
# app_store_desc: {
# path: File.join(source_metadata_folder, 'description.txt'),
# comment: 'translators: Multi-paragraph text used to display in the Apple App Store.'
# },
# app_store_keywords: {
# path: File.join(source_metadata_folder, 'keywords.txt'),
# comment: <<~COMMENT.chomp
# translators: Keywords used in the App Store search engine to find the app.
# Delimit with a comma between each keyword. Limit to 100 characters including spaces and commas.
# COMMENT
# },
# **(1..6).to_h do |i|
# [
# "screenshot-text-#{i}",
# { path: File.join(custom_metadata_folder, "promo_screenshot_#{i}.txt"), comment: screenshot_comment }
# ]
# end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to git blame this was indeed commented out due to an ongoing ASO experiment… but that was ≈3 years ago! (Oct 2023)

Also even if we end up deciding to keep it commented out for the time being, we should still (1) update this code—so that it works out of the box when we might hopefully finally uncomment it in the future—and (2) DRY the common translator comments that are common for WP vs JP in some constants to avoid repetition.

@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 5, 2026

Copy link
Contributor

@AliSoftware AliSoftware left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

lane :update_wordpress_appstore_strings do |options|
lane :update_wordpress_appstore_strings do |version: release_version_current, skip_commit: false|
source_metadata_folder = File.join(PROJECT_ROOT_FOLDER, 'fastlane', 'metadata', 'default')
custom_metadata_folder = File.join(PROJECT_ROOT_FOLDER, 'fastlane', 'appstoreres', 'metadata', 'source')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎗️ Worth taking note (Linear issue?) that it would be nice to get rid of the appstoreres at some point, to remove the confusion of having 2 different sources of truth for different App Store strings, like Gio recently did in another product (can't remember which)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Tooling Build, Release, and Validation Tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants