From 64406c86ba8f925df4f9a4a0e84ed127b37a0a51 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 18:44:36 +1100 Subject: [PATCH 01/19] Update release toolkit to version 9.2.0 --- Gemfile.lock | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 070f0ab6a449..b606b1fee830 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,10 +3,15 @@ GEM specs: CFPropertyList (3.0.6) rexml - activesupport (7.0.8) + activesupport (7.1.1) + base64 + bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) minitest (>= 5.1) + mutex_m tzinfo (~> 2.0) addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) @@ -17,8 +22,8 @@ GEM ast (2.4.2) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.830.0) - aws-sdk-core (3.184.0) + aws-partitions (1.843.0) + aws-sdk-core (3.185.1) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) @@ -30,9 +35,11 @@ GEM aws-sdk-core (~> 3, >= 3.181.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.6) - aws-sigv4 (1.6.0) + aws-sigv4 (1.6.1) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) + base64 (0.1.1) + bigdecimal (3.1.4) buildkit (1.5.0) sawyer (>= 0.6) chroma (0.2.0) @@ -84,6 +91,7 @@ GEM highline (~> 2.0.0) commonmarker (0.23.7) concurrent-ruby (1.2.2) + connection_pool (2.4.1) cork (0.3.0) colored2 (~> 3.1) danger (9.3.1) @@ -109,6 +117,8 @@ GEM domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1) + drb (2.1.1) + ruby2_keywords emoji_regex (3.2.3) escape (0.0.4) ethon (0.16.0) @@ -188,7 +198,7 @@ GEM fastlane-plugin-appcenter (2.1.1) fastlane-plugin-sentry (1.15.0) os (~> 1.1, >= 1.1.4) - fastlane-plugin-wpmreleasetoolkit (9.1.0) + fastlane-plugin-wpmreleasetoolkit (9.2.0) activesupport (>= 6.1.7.1) buildkit (~> 1.5) chroma (= 0.2.0) @@ -212,9 +222,9 @@ GEM git (1.18.0) addressable (~> 2.8) rchardet (~> 1.8) - google-apis-androidpublisher_v3 (0.50.0) + google-apis-androidpublisher_v3 (0.51.0) google-apis-core (>= 0.11.0, < 2.a) - google-apis-core (0.11.1) + google-apis-core (0.11.2) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -265,11 +275,12 @@ GEM kramdown (~> 2.0) mini_magick (4.12.0) mini_mime (1.1.5) - mini_portile2 (2.8.4) + mini_portile2 (2.8.5) minitest (5.20.0) molinillo (0.8.0) multi_json (1.15.0) multipart-post (2.3.0) + mutex_m (0.1.2) nanaimo (0.3.0) nap (1.1.0) naturally (2.2.1) @@ -295,7 +306,7 @@ GEM public_suffix (4.0.7) racc (1.7.1) rainbow (3.1.1) - rake (13.0.6) + rake (13.1.0) rake-compiler (1.2.5) rake rchardet (1.8.0) @@ -354,7 +365,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.8.2) - unicode-display_width (2.4.2) + unicode-display_width (2.5.0) webrick (1.8.1) word_wrap (1.0.0) xcodeproj (1.23.0) From f886436c4fcdbaf6d4fd3a1f65e06a3fc06b0b8e Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 18:53:26 +1100 Subject: [PATCH 02/19] Use `git_commit` instead of broken release toolkit for version bumps The release toolkit code depends on an environment variable that is no longer present. See https://github.com/wordpress-mobile/release-toolkit/blob/32e419afa781cf86ca70276f4386671b7fac0784/lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_git_helper.rb#L14-L18 and b1d4142130b2f7067cbbc3022952d8a91f27cd32 which removed the env var. Good riddance. Using a first-party library to DRY the way we commit version files might have been taking DRY on the wrong direction --- fastlane/lanes/release.rb | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/fastlane/lanes/release.rb b/fastlane/lanes/release.rb index a541e6d6f200..5f49a04259a6 100644 --- a/fastlane/lanes/release.rb +++ b/fastlane/lanes/release.rb @@ -49,7 +49,7 @@ version_short: release_version_next, version_long: build_code_code_freeze ) - Fastlane::Helper::Ios::GitHelper.commit_version_bump + commit_version_bump UI.success "Done! New Release Version: #{release_version_current}. New Build Code: #{build_code_current}" # Bump the internal release version and build code and write it to the `xcconfig` file @@ -60,7 +60,7 @@ version_short: release_version_current, version_long: build_code_code_freeze_internal ) - Fastlane::Helper::Ios::GitHelper.commit_version_bump + commit_version_bump UI.success "Done! New Internal Release Version: #{release_version_current_internal}. New Internal Build Code: #{build_code_current_internal}" new_version = release_version_current @@ -180,7 +180,7 @@ PUBLIC_VERSION_FILE.write(version_long: build_code_next_internal) UI.success "Done! New Internal Build Code: #{build_code_current_internal}" - Fastlane::Helper::Ios::GitHelper.commit_version_bump + commit_version_bump if prompt_for_confirmation( message: 'Ready to push changes to remote and trigger the beta build?', @@ -254,7 +254,7 @@ ) UI.success "Done! New Internal Release Version: #{release_version_current_internal}. New Internal Build Code: #{build_code_current_internal}" - Fastlane::Helper::Ios::GitHelper.commit_version_bump + commit_version_bump end # Finalizes a hotfix, by triggering a release build on CI @@ -315,7 +315,7 @@ # Bump the internal build code UI.message 'Bumping internal build code...' INTERNAL_VERSION_FILE.write(version_long: build_code_next_internal) - Fastlane::Helper::Ios::GitHelper.commit_version_bump + commit_version_bump UI.success "Done! New Internal Build Code: #{build_code_current_internal}" # Wrap up @@ -459,3 +459,13 @@ def compute_release_branch_name(options:) def release_branch_name "release/#{release_version_current}" end + +def commit_version_bump + version_files = [PUBLIC_CONFIG_FILE, INTERNAL_CONFIG_FILE] + git_add(path: version_files, shell_escape: false) + git_commit( + path: version_files, + message: 'Bump version number', + allow_nothing_to_commit: false + ) +end From a79af5728633a740c68b7a5ddefa6ede6f20dbae Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:08:40 +1100 Subject: [PATCH 03/19] Use case-sensitive name for public version xcconfig Otherwise, `git commit -m`, which Fastlane uses under the hood, would fail. --- fastlane/Fastfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 7b4919f24aba..68cfed05a529 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -53,7 +53,7 @@ Dotenv.load(USER_ENV_FILE_PATH) Dotenv.load(PROJECT_ENV_FILE_PATH) GITHUB_REPO = 'wordpress-mobile/wordpress-iOS' DEFAULT_BRANCH = 'trunk' -PUBLIC_CONFIG_FILE = File.join(PROJECT_ROOT_FOLDER, 'config', 'Version.Public.xcconfig') +PUBLIC_CONFIG_FILE = File.join(PROJECT_ROOT_FOLDER, 'config', 'Version.public.xcconfig') INTERNAL_CONFIG_FILE = File.join(PROJECT_ROOT_FOLDER, 'config', 'Version.internal.xcconfig') ENV['FASTLANE_WWDR_USE_HTTP1_AND_RETRIES'] = 'true' From 69a7414f2148c6ca96e5f82d06c4bd2b2fb565b1 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:10:44 +1100 Subject: [PATCH 04/19] Remove explicit `git_add` call from `commit_version_bump` Fastlane can do that for us under the hood. --- fastlane/lanes/release.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/fastlane/lanes/release.rb b/fastlane/lanes/release.rb index 5f49a04259a6..53443601a1fe 100644 --- a/fastlane/lanes/release.rb +++ b/fastlane/lanes/release.rb @@ -461,10 +461,8 @@ def release_branch_name end def commit_version_bump - version_files = [PUBLIC_CONFIG_FILE, INTERNAL_CONFIG_FILE] - git_add(path: version_files, shell_escape: false) git_commit( - path: version_files, + path: [PUBLIC_CONFIG_FILE, INTERNAL_CONFIG_FILE], message: 'Bump version number', allow_nothing_to_commit: false ) From 057284c57de18b2148f579b48a1623ca0b995a23 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:11:48 +1100 Subject: [PATCH 05/19] Call `commit_version_bump` once for both build types in code freeze --- fastlane/lanes/release.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/lanes/release.rb b/fastlane/lanes/release.rb index 53443601a1fe..18684b80fcb9 100644 --- a/fastlane/lanes/release.rb +++ b/fastlane/lanes/release.rb @@ -49,7 +49,6 @@ version_short: release_version_next, version_long: build_code_code_freeze ) - commit_version_bump UI.success "Done! New Release Version: #{release_version_current}. New Build Code: #{build_code_current}" # Bump the internal release version and build code and write it to the `xcconfig` file @@ -60,9 +59,10 @@ version_short: release_version_current, version_long: build_code_code_freeze_internal ) - commit_version_bump UI.success "Done! New Internal Release Version: #{release_version_current_internal}. New Internal Build Code: #{build_code_current_internal}" + commit_version_bump + new_version = release_version_current release_notes_source_path = File.join(PROJECT_ROOT_FOLDER, 'RELEASE-NOTES.txt') From f801ea31fe10f7d61a882c0fa5b6a03069a5ce49 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:19:52 +1100 Subject: [PATCH 06/19] Use internal file to read internal version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Most of the time, the release/public and internal versions (`VERSION_LONG`) values are the same. But that's not guaranteed to be the same. Case in point, during code freeze they are momentarily out of sync. If we use the public file to read the internal version during code freeze, we'll end up with the build code set for the following version. Notice the difference between the internal build code in the header and the one that's written on disk (last line): ``` [19:13:18]: Cruising back to lane 'ios code_freeze' 🚘 [19:13:18]: Code Freeze: • New release branch from trunk: release/23.6 • Current release version and build code: 23.5 (23.5.0.3). • New release version and build code: 23.6 (23.6.0.0). • Current internal release version and build code: 23.5 (23.5.0.20231027) • New internal release version and build code: 23.6 (23.6.0.20231030) [19:13:18]: Do you want to continue? (y/n) y [19:13:18]: Creating release branch... [19:13:18]: $ git branch --list release/23.6 [19:13:19]: $ git checkout trunk [19:13:19]: ▸ Already on 'trunk' [19:13:19]: ▸ Your branch is ahead of 'origin/trunk' by 5 commits. [19:13:19]: ▸ (use "git push" to publish your local commits) [19:13:19]: $ git checkout -b release/23.6 [19:13:19]: ▸ Switched to a new branch 'release/23.6' [19:13:19]: ------------------------ [19:13:19]: --- Step: git_branch --- [19:13:19]: ------------------------ [19:13:19]: Done! New release branch is: release/23.6 [19:13:19]: Bumping release version and build code... [19:13:19]: Done! New Release Version: 23.6. New Build Code: 23.6.0.0 [19:13:19]: Bumping internal release version and build code... [19:13:19]: Done! New Internal Release Version: 23.6. New Internal Build Code: 23.7.0.20231030 ``` --- fastlane/Fastfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 68cfed05a529..256f1f9ab538 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -162,7 +162,7 @@ def build_code_code_freeze_internal # Read the current build code from the .xcconfig file and parse it into an AppVersion object # The AppVersion is used because WP/JPiOS uses the four part (1.2.3.4) build code format, so the version # calculator can be used to calculate the next four-part version - release_version_current = VERSION_FORMATTER.parse(PUBLIC_VERSION_FILE.read_release_version) + release_version_current = VERSION_FORMATTER.parse(INTERNAL_VERSION_FILE.read_release_version) # Calculate the next release version, which will be used as the basis of the new build code release_version_next = VERSION_CALCULATOR.next_release_version(version: release_version_current) build_code_code_freeze = INTERNAL_BUILD_CODE_CALCULATOR.next_build_code(version: release_version_next) @@ -197,7 +197,7 @@ def build_code_next_internal # Read the current build code from the .xcconfig file and parse it into an AppVersion object # The AppVersion is used because WP/JPiOS uses the four part (1.2.3.4) build code format, so the version # calculator can be used to calculate the next four-part version - build_code_current = VERSION_FORMATTER.parse(PUBLIC_VERSION_FILE.read_build_code(attribute_name: 'VERSION_LONG')) + build_code_current = VERSION_FORMATTER.parse(INTERNAL_VERSION_FILE.read_build_code(attribute_name: 'VERSION_LONG')) # Calculate the next build code build_code_next = INTERNAL_BUILD_CODE_CALCULATOR.next_build_code(version: build_code_current) # Return the formatted build code From 9cd5fbe93bd08385c343cbf327f93a724ad7237a Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:26:08 +1100 Subject: [PATCH 07/19] Fallback to `false` in `ENV.fetch` for flag to bypass confirmation `false` is the desired default value for the `bypass` parameter. I noticed this when I replied no to the prompt but it did not abort as I expected. See how the lane moved to `setbranchprotection` even though the input was `n` ``` [19:13:19]: Ready to push changes to remote to let the automation configure it on GitHub? (y/n) n [19:14:13]: Aborting code completion. See you later. [19:14:13]: --------------------------------- [19:14:13]: --- Step: setbranchprotection --- [19:14:13]: --------------------------------- ========================================== This action (setbranchprotection) is deprecated ``` However, `false` vs `nil` is not the cause of the defective behavior. That is due to the branch that's meant to abort only printing a message about it and not calling `next`. --- fastlane/lanes/release.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fastlane/lanes/release.rb b/fastlane/lanes/release.rb index 18684b80fcb9..e65488ecc8c8 100644 --- a/fastlane/lanes/release.rb +++ b/fastlane/lanes/release.rb @@ -95,7 +95,7 @@ if prompt_for_confirmation( message: 'Ready to push changes to remote to let the automation configure it on GitHub?', - bypass: ENV.fetch('RELEASE_TOOLKIT_SKIP_PUSH_CONFIRM', nil) + bypass: ENV.fetch('RELEASE_TOOLKIT_SKIP_PUSH_CONFIRM', false) ) push_to_git_remote(tags: false) else @@ -131,7 +131,7 @@ if prompt_for_confirmation( message: 'Ready to push changes to remote and trigger the beta build?', - bypass: ENV.fetch('RELEASE_TOOLKIT_SKIP_PUSH_CONFIRM', nil) + bypass: ENV.fetch('RELEASE_TOOLKIT_SKIP_PUSH_CONFIRM', false) ) push_to_git_remote(tags: false) trigger_beta_build @@ -184,7 +184,7 @@ if prompt_for_confirmation( message: 'Ready to push changes to remote and trigger the beta build?', - bypass: ENV.fetch('RELEASE_TOOLKIT_SKIP_PUSH_CONFIRM', nil) + bypass: ENV.fetch('RELEASE_TOOLKIT_SKIP_PUSH_CONFIRM', false) ) push_to_git_remote(tags: false) trigger_beta_build @@ -327,7 +327,7 @@ if prompt_for_confirmation( message: 'Ready to push changes to remote and trigger the release build?', - bypass: ENV.fetch('RELEASE_TOOLKIT_SKIP_PUSH_CONFIRM', nil) + bypass: ENV.fetch('RELEASE_TOOLKIT_SKIP_PUSH_CONFIRM', false) ) push_to_git_remote(tags: false) trigger_release_build From cb2796bc6064635da7d3cdcedf3382e43c00b949 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:31:39 +1100 Subject: [PATCH 08/19] Call `next` to properly exit a lane early after user prompt --- fastlane/lanes/release.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fastlane/lanes/release.rb b/fastlane/lanes/release.rb index e65488ecc8c8..3a65abb9e611 100644 --- a/fastlane/lanes/release.rb +++ b/fastlane/lanes/release.rb @@ -100,6 +100,7 @@ push_to_git_remote(tags: false) else UI.message('Aborting code completion. See you later.') + next end setbranchprotection(repository: GITHUB_REPO, branch: "release/#{new_version}") @@ -137,6 +138,7 @@ trigger_beta_build else UI.message('Aborting code freeze completion. See you later.') + next end end @@ -190,6 +192,7 @@ trigger_beta_build else UI.message('Aborting beta deployment. See you later.') + next end end @@ -333,6 +336,7 @@ trigger_release_build else UI.message('Aborting release finalization. See you later.') + next end end From 200f11859c718dd1df376f09baf9d8cee9f377b1 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:33:57 +1100 Subject: [PATCH 09/19] Bump version number --- config/Version.internal.xcconfig | 6 ++---- config/Version.public.xcconfig | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/config/Version.internal.xcconfig b/config/Version.internal.xcconfig index 587505425f5c..012de8fad43d 100644 --- a/config/Version.internal.xcconfig +++ b/config/Version.internal.xcconfig @@ -1,4 +1,2 @@ -VERSION_SHORT=23.5 - -// Internal long version example: VERSION_LONG=9.9.0.20180423 -VERSION_LONG=23.5.0.20231027 +VERSION_LONG = 23.6.0.20231030 +VERSION_SHORT = 23.6 diff --git a/config/Version.public.xcconfig b/config/Version.public.xcconfig index 55eda8ffa423..dd0906ea455f 100644 --- a/config/Version.public.xcconfig +++ b/config/Version.public.xcconfig @@ -1,4 +1,2 @@ -VERSION_SHORT=23.5 - -// Public long version example: VERSION_LONG=9.9.0.0 -VERSION_LONG=23.5.0.3 +VERSION_LONG = 23.6.0.0 +VERSION_SHORT = 23.6 From d00e6390a8cb4a8ea36cc40067ee18ae72efb530 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:33:57 +1100 Subject: [PATCH 10/19] Update draft release notes for 23.6. --- WordPress/Resources/release_notes.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/WordPress/Resources/release_notes.txt b/WordPress/Resources/release_notes.txt index 5933c47f05ed..aae1e057a473 100644 --- a/WordPress/Resources/release_notes.txt +++ b/WordPress/Resources/release_notes.txt @@ -1,7 +1,11 @@ -In the block editor, you can now split or exit a formatted block by pressing the “enter” key three times. The left-hand border is always visible for quote blocks, too. And you can quote us on that. +* [***] [internal][Jetpack-only] [***] Added paid domain selection, plan selection, and checkout screens in site creation flow [#21688] +* [**] When moving a post to trash, show a toast message with undo action instead of an inline undo row. [#21724] +* [*] Site Domains: Fixed an issue where the message shared while adding a domain was inaccurate. [#21827] +* [*] Fix an issue where login with site address is blocked after failing the first attempt. [#21848] +* [*] Fix an issue with an issue [#16999] with HTML not being stripped from post titles [#21846] +* [*] Fix an issue that leads to an ambiguous error message when an incorrect SMS 2FA code is submitted. [#21863] +* [*] Fix an issue where two 2FA controllers were being opened at the same time when logging in. [#21865] +* [*] Block Editor Social Icons: Fix visibility of inactive icons when used with block based themes in dark mode [https://github.com/WordPress/gutenberg/pull/55398] +* [*] Block Editor Classic block: Add option to convert to blocks [https://github.com/WordPress/gutenberg/pull/55461] +* [*] Block Editor Synced Patterns: Fix visibility of heading section when used with block based themes in dark mode [https://github.com/WordPress/gutenberg/pull/55399] -We also squashed a handful of bugs. - -- We fixed a code issue in blogging prompt settings that caused the app to crash. -- During the signup process, you won’t end up in the reader by accident. -- Creating a .com site? You should no longer see two overlays after completing the signup process. One and done. From a0a4804cf9ad22c9d9d3e668849e55ee9a26a7d4 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:33:57 +1100 Subject: [PATCH 11/19] Update draft release notes for 23.6. --- WordPress/Jetpack/Resources/release_notes.txt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/WordPress/Jetpack/Resources/release_notes.txt b/WordPress/Jetpack/Resources/release_notes.txt index 48ac0fbfbbf8..aae1e057a473 100644 --- a/WordPress/Jetpack/Resources/release_notes.txt +++ b/WordPress/Jetpack/Resources/release_notes.txt @@ -1,5 +1,11 @@ -We’ve made some visual changes to the reader. You’ll notice updates to feed cards, headers, buttons, recommendations, and more. Please feel free to give us lots of compliments. +* [***] [internal][Jetpack-only] [***] Added paid domain selection, plan selection, and checkout screens in site creation flow [#21688] +* [**] When moving a post to trash, show a toast message with undo action instead of an inline undo row. [#21724] +* [*] Site Domains: Fixed an issue where the message shared while adding a domain was inaccurate. [#21827] +* [*] Fix an issue where login with site address is blocked after failing the first attempt. [#21848] +* [*] Fix an issue with an issue [#16999] with HTML not being stripped from post titles [#21846] +* [*] Fix an issue that leads to an ambiguous error message when an incorrect SMS 2FA code is submitted. [#21863] +* [*] Fix an issue where two 2FA controllers were being opened at the same time when logging in. [#21865] +* [*] Block Editor Social Icons: Fix visibility of inactive icons when used with block based themes in dark mode [https://github.com/WordPress/gutenberg/pull/55398] +* [*] Block Editor Classic block: Add option to convert to blocks [https://github.com/WordPress/gutenberg/pull/55461] +* [*] Block Editor Synced Patterns: Fix visibility of heading section when used with block based themes in dark mode [https://github.com/WordPress/gutenberg/pull/55399] -In the block editor, you can now split or exit a formatted block by pressing the “enter” key three times. The left-hand border is always visible for quote blocks, too, even in block-based themes on dark mode. And you can quote us on that. - -Finally, we fixed a code issue in blogging prompt settings that caused the app to crash. From c71b6a325dc1bc4f8e40a332dc27dce686182abb Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:33:57 +1100 Subject: [PATCH 12/19] Release Notes: add new section for next version (23.7) --- RELEASE-NOTES.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 4615148660ec..fd584307fc9a 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,3 +1,7 @@ +23.7 +----- + + 23.6 ----- * [***] [internal][Jetpack-only] [***] Added paid domain selection, plan selection, and checkout screens in site creation flow [#21688] From 6dfefddcf327c587a8ab6c8cc22f25f361936006 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 19:51:51 +1100 Subject: [PATCH 13/19] Update `activesupport` to work around Ruby 3 issue --- Gemfile | 6 ++++++ Gemfile.lock | 14 ++------------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/Gemfile b/Gemfile index 5c925f75934c..3d4fdba0c0fa 100644 --- a/Gemfile +++ b/Gemfile @@ -2,6 +2,12 @@ source 'https://rubygems.org' +# To address the following error when running `bundle exec pod install`: +# +# undefined method `deprecator' for ActiveSupport:Module (NoMethodError) +# +# See: https://github.com/fastlane/fastlane/issues/21585 +gem 'activesupport', '~> 7.0.8' # 1.12.x and higher, starting from 1.12.1, because that hotfix fixes Xcode 14.3 compatibility gem 'cocoapods', '~> 1.12', '>= 1.12.1' gem 'commonmarker' diff --git a/Gemfile.lock b/Gemfile.lock index b606b1fee830..bcb3c26c1f63 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,15 +3,10 @@ GEM specs: CFPropertyList (3.0.6) rexml - activesupport (7.1.1) - base64 - bigdecimal + activesupport (7.0.8) concurrent-ruby (~> 1.0, >= 1.0.2) - connection_pool (>= 2.2.5) - drb i18n (>= 1.6, < 2) minitest (>= 5.1) - mutex_m tzinfo (~> 2.0) addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) @@ -38,8 +33,6 @@ GEM aws-sigv4 (1.6.1) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) - base64 (0.1.1) - bigdecimal (3.1.4) buildkit (1.5.0) sawyer (>= 0.6) chroma (0.2.0) @@ -91,7 +84,6 @@ GEM highline (~> 2.0.0) commonmarker (0.23.7) concurrent-ruby (1.2.2) - connection_pool (2.4.1) cork (0.3.0) colored2 (~> 3.1) danger (9.3.1) @@ -117,8 +109,6 @@ GEM domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1) - drb (2.1.1) - ruby2_keywords emoji_regex (3.2.3) escape (0.0.4) ethon (0.16.0) @@ -280,7 +270,6 @@ GEM molinillo (0.8.0) multi_json (1.15.0) multipart-post (2.3.0) - mutex_m (0.1.2) nanaimo (0.3.0) nap (1.1.0) naturally (2.2.1) @@ -384,6 +373,7 @@ PLATFORMS ruby DEPENDENCIES + activesupport (~> 7.0.8) cocoapods (~> 1.12, >= 1.12.1) commonmarker danger (~> 9.3) From 275e797f567ff3f1fb1673b67046509aff536ad3 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 20:31:33 +1100 Subject: [PATCH 14/19] Use latest stable versions of internal pods for release 23.6 --- Podfile | 2 +- Podfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Podfile b/Podfile index 1c3f686eb77f..01118c750e04 100644 --- a/Podfile +++ b/Podfile @@ -148,7 +148,7 @@ abstract_target 'Apps' do # pod 'WPMediaPicker', git: 'https://github.com/wordpress-mobile/MediaPicker-iOS.git', branch: '' # pod 'WPMediaPicker', path: '../MediaPicker-iOS' - pod 'WordPressAuthenticator', '~> 7.2.1-beta.2' + pod 'WordPressAuthenticator', '~> 7.2', '>= 7.2.1' # pod 'WordPressAuthenticator', git: 'https://github.com/wordpress-mobile/WordPressAuthenticator-iOS.git', branch: '' # pod 'WordPressAuthenticator', git: 'https://github.com/wordpress-mobile/WordPressAuthenticator-iOS.git', commit: '' # pod 'WordPressAuthenticator', path: '../WordPressAuthenticator-iOS' diff --git a/Podfile.lock b/Podfile.lock index f58381b76521..72797927292e 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -66,7 +66,7 @@ PODS: - WordPress-Aztec-iOS (1.19.9) - WordPress-Editor-iOS (1.19.9): - WordPress-Aztec-iOS (= 1.19.9) - - WordPressAuthenticator (7.2.1-beta.2): + - WordPressAuthenticator (7.2.1): - Gridicons (~> 1.0) - "NSURL+IDN (= 0.4)" - SVProgressHUD (~> 2.2.5) @@ -125,7 +125,7 @@ DEPENDENCIES: - SVProgressHUD (= 2.2.5) - SwiftLint (~> 0.50) - WordPress-Editor-iOS (~> 1.19.9) - - WordPressAuthenticator (~> 7.2.1-beta.2) + - WordPressAuthenticator (>= 7.2.1, ~> 7.2) - WordPressKit (>= 8.9.1, ~> 8.9) - WordPressShared (~> 2.2) - WordPressUI (~> 1.15) @@ -225,7 +225,7 @@ SPEC CHECKSUMS: UIDeviceIdentifier: 442b65b4ff1832d4ca9c2a157815cb29ad981b17 WordPress-Aztec-iOS: fbebd569c61baa252b3f5058c0a2a9a6ada686bb WordPress-Editor-iOS: bda9f7f942212589b890329a0cb22547311749ef - WordPressAuthenticator: 1d73abee8fdd87032e987c40f140423a6aa0e577 + WordPressAuthenticator: eb60491871a2b8819017deed2970b054d2678547 WordPressKit: e774ca87068b8ea02bbb0bd0b75b98aa5d722cb9 WordPressShared: 87f3ee89b0a3e83106106f13a8b71605fb8eb6d2 WordPressUI: a491454affda3b0fb812812e637dc5e8f8f6bd06 @@ -240,6 +240,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: d170fa8e270b2a32bef9dcdcabff5b8f1a5deced -PODFILE CHECKSUM: e5c5369947a1f32a1c03bb35d92c86ee8c39833a +PODFILE CHECKSUM: be61e28a7fc7d099c5bdd49f360cac8be5083101 COCOAPODS: 1.12.1 From 9a863896cda8e9dd5c3cc48683d5aaaa8d492d00 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 20:35:25 +1100 Subject: [PATCH 15/19] Remove "Jetpack-only" annotation from Jetpack raw release notes for 23.6 --- WordPress/Jetpack/Resources/release_notes.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/WordPress/Jetpack/Resources/release_notes.txt b/WordPress/Jetpack/Resources/release_notes.txt index aae1e057a473..ebb6a3a57053 100644 --- a/WordPress/Jetpack/Resources/release_notes.txt +++ b/WordPress/Jetpack/Resources/release_notes.txt @@ -1,4 +1,4 @@ -* [***] [internal][Jetpack-only] [***] Added paid domain selection, plan selection, and checkout screens in site creation flow [#21688] +* [***] [internal] Added paid domain selection, plan selection, and checkout screens in site creation flow [#21688] * [**] When moving a post to trash, show a toast message with undo action instead of an inline undo row. [#21724] * [*] Site Domains: Fixed an issue where the message shared while adding a domain was inaccurate. [#21827] * [*] Fix an issue where login with site address is blocked after failing the first attempt. [#21848] @@ -8,4 +8,3 @@ * [*] Block Editor Social Icons: Fix visibility of inactive icons when used with block based themes in dark mode [https://github.com/WordPress/gutenberg/pull/55398] * [*] Block Editor Classic block: Add option to convert to blocks [https://github.com/WordPress/gutenberg/pull/55461] * [*] Block Editor Synced Patterns: Fix visibility of heading section when used with block based themes in dark mode [https://github.com/WordPress/gutenberg/pull/55399] - From e42432af712d2314e56befa041c0acd822dbe7dc Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 20:36:12 +1100 Subject: [PATCH 16/19] Remove "Jetpack-only" entries from WordPress 23.6 raw release notes --- WordPress/Resources/release_notes.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/WordPress/Resources/release_notes.txt b/WordPress/Resources/release_notes.txt index aae1e057a473..cb868c7dd6f3 100644 --- a/WordPress/Resources/release_notes.txt +++ b/WordPress/Resources/release_notes.txt @@ -1,6 +1,4 @@ -* [***] [internal][Jetpack-only] [***] Added paid domain selection, plan selection, and checkout screens in site creation flow [#21688] * [**] When moving a post to trash, show a toast message with undo action instead of an inline undo row. [#21724] -* [*] Site Domains: Fixed an issue where the message shared while adding a domain was inaccurate. [#21827] * [*] Fix an issue where login with site address is blocked after failing the first attempt. [#21848] * [*] Fix an issue with an issue [#16999] with HTML not being stripped from post titles [#21846] * [*] Fix an issue that leads to an ambiguous error message when an incorrect SMS 2FA code is submitted. [#21863] @@ -8,4 +6,3 @@ * [*] Block Editor Social Icons: Fix visibility of inactive icons when used with block based themes in dark mode [https://github.com/WordPress/gutenberg/pull/55398] * [*] Block Editor Classic block: Add option to convert to blocks [https://github.com/WordPress/gutenberg/pull/55461] * [*] Block Editor Synced Patterns: Fix visibility of heading section when used with block based themes in dark mode [https://github.com/WordPress/gutenberg/pull/55399] - From 153861873f018e6b01a2e00f3fa40869e91f2d05 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 20:43:03 +1100 Subject: [PATCH 17/19] Use "liked" in the reverse-DNS key for the `likedButtonHint` --- WordPress/Classes/ViewRelated/Reader/ReaderPostCardCell.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderPostCardCell.swift b/WordPress/Classes/ViewRelated/Reader/ReaderPostCardCell.swift index 3438b4eefebf..de3042a9d9a5 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderPostCardCell.swift +++ b/WordPress/Classes/ViewRelated/Reader/ReaderPostCardCell.swift @@ -101,7 +101,7 @@ class ReaderPostCardCell: UITableViewCell { static let likeButtonHint = NSLocalizedString("reader.post.button.like.accessibility.hint", value: "Likes the post.", comment: "Accessibility hint for the like button on the reader post card cell") - static let likedButtonHint = NSLocalizedString("reader.post.button.like.accessibility.hint", + static let likedButtonHint = NSLocalizedString("reader.post.button.liked.accessibility.hint", value: "Unlikes the post.", comment: "Accessibility hint for the liked button on the reader post card cell") static let menuButtonLabel = NSLocalizedString("reader.post.button.menu.accessibility.label", From d710d68c47d27fb32ffe4b535dbf5acd33ba6ea0 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 30 Oct 2023 20:48:44 +1100 Subject: [PATCH 18/19] Update strings for localization --- .../Resources/en.lproj/Localizable.strings | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index 1ef4a79bdae1..690484e8b179 100644 --- a/WordPress/Resources/en.lproj/Localizable.strings +++ b/WordPress/Resources/en.lproj/Localizable.strings @@ -251,6 +251,9 @@ /* translators: %s: social link name e.g: \"Instagram\". */ "%s social icon" = "%s social icon"; +/* translators: displayed right after the classic block is converted to blocks. %s: The localized classic block name */ +"'%s' block converted to blocks" = "'%s' block converted to blocks"; + /* translators: Missing block alert title. %s: The localized block name */ "'%s' is not fully-supported" = "'%s' is not fully-supported"; @@ -760,6 +763,9 @@ Label for the alt for a media asset (image) */ "Alt Text" = "Alt Text"; +/* No comment provided by engineer. */ +"Alternatively, you can convert the content to blocks." = "Alternatively, you can convert the content to blocks."; + /* No comment provided by engineer. */ "Alternatively, you can detach and edit these blocks separately by tapping “Detach patterns”." = "Alternatively, you can detach and edit these blocks separately by tapping “Detach patterns”."; @@ -2812,6 +2818,9 @@ Example: Reply to Pamela Nguyen */ /* Title for a menu action in the context menu on the Jetpack install card. */ "domain.dashboard.card.menu.hide" = "Hide this"; +/* Domain Management Screen Title */ +"domain.management.title" = "My Domains"; + /* Domain Purchase Completion footer */ "domain.purchase.preview.footer" = "It may take up to 30 minutes for your custom domain to start working."; @@ -5262,6 +5271,9 @@ Please install the %3$@ to use the app with this site."; Title of the 'Me' tab - used for spotlight indexing on iOS. */ "Me" = "Me"; +/* Products header text in Me Screen. */ +"me.products.header" = "Products"; + /* Noun. Title. Links to the blog's Media library. Tab bar title for the Media tab in Media Picker The menu item to select during a guided tour. @@ -6415,9 +6427,6 @@ Please install the %3$@ to use the app with this site."; /* Title of notification displayed when a page has failed to upload. */ "Page failed to upload" = "Page failed to upload"; -/* A short message explaining that a page was moved to the trash bin. */ -"Page moved to trash." = "Page moved to trash."; - /* Title of notification displayed when a page has been successfully saved as a draft. */ "Page pending review" = "Page pending review"; @@ -6791,9 +6800,6 @@ Please install the %3$@ to use the app with this site."; The post formats available for the post. Should be the same as in core WP. */ "Post Format" = "Post Format"; -/* A short message explaining that a post was moved to the trash bin. */ -"Post moved to trash." = "Post moved to trash."; - /* Title of notification displayed when a post has been successfully saved as a draft. */ "Post pending review" = "Post pending review"; @@ -6913,6 +6919,15 @@ Please install the %3$@ to use the app with this site."; /* Beginning text of the remaining social shares a user has left. %1$d is their current remaining shares. This text is combined with ' in the next 30 days' if there is no warning displayed. */ "postsettings.social.shares.text.format" = "%1$d social shares remaining"; +/* A short message explaining that a page was moved to the trash bin. */ +"postsList.movePageToTrash.message" = "Page moved to trash"; + +/* A short message explaining that a post was moved to the trash bin. */ +"postsList.movePostToTrash.message" = "Post moved to trash"; + +/* The title of an 'undo' button. Tapping the button moves a trashed post or page out of the trash folder. */ +"postsList.movePostToTrash.undo" = "Undo"; + /* Subtitle for placeholder in Tenor picker. `The company name 'Tenor' should always be written as it is. */ "Powered by Tenor" = "Powered by Tenor"; @@ -7267,13 +7282,15 @@ Example: given a notice format "Following %@" and empty site name, this will be /* Text for the 'Like' button on the reader post card cell. */ "reader.post.button.like" = "Like"; -/* Accessibility hint for the like button on the reader post card cell - Accessibility hint for the liked button on the reader post card cell */ +/* Accessibility hint for the like button on the reader post card cell */ "reader.post.button.like.accessibility.hint" = "Likes the post."; /* Text for the 'Liked' button on the reader post card cell. */ "reader.post.button.liked" = "Liked"; +/* Accessibility hint for the liked button on the reader post card cell */ +"reader.post.button.liked.accessibility.hint" = "Unlikes the post."; + /* Accessibility hint for the site header on the reader post card cell */ "reader.post.button.menu.accessibility.hint" = "Opens a menu with more actions."; @@ -10076,8 +10093,6 @@ Example: given a notice format "Following %@" and empty site name, this will be Button title. Reverts the previous notification operation Revert an operation Revert enabling notification after successfully subcribing to the comments for the post. - The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. - The title of an 'undo' button. Tapping the button moves a trashed post out of the trash folder. Undo action */ "Undo" = "Undo"; From 57374962ab882aa1b7f1f90a0c341b9f524fc1fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Irfan=20=C3=96m=C3=BCr?= Date: Mon, 30 Oct 2023 18:38:49 +0300 Subject: [PATCH 19/19] Fix release notes for the Plans in Site Creation project (#21912) --- RELEASE-NOTES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index fd584307fc9a..3276919ba6e2 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -4,7 +4,7 @@ 23.6 ----- -* [***] [internal][Jetpack-only] [***] Added paid domain selection, plan selection, and checkout screens in site creation flow [#21688] +* [***] [Jetpack-only] Added paid domain selection, plan selection, and checkout screens in site creation flow [#21688] * [**] When moving a post to trash, show a toast message with undo action instead of an inline undo row. [#21724] * [*] Site Domains: Fixed an issue where the message shared while adding a domain was inaccurate. [#21827] * [*] Fix an issue where login with site address is blocked after failing the first attempt. [#21848]