From 7e3062685be7bbb71d596295bbc091dd7adec9fd Mon Sep 17 00:00:00 2001 From: Sharma Elanthiraiyan Date: Tue, 3 Jan 2023 11:50:57 +0530 Subject: [PATCH 1/6] Always skip XMLRPC checks for site discovery. --- WooCommerce/Classes/Authentication/AuthenticationManager.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WooCommerce/Classes/Authentication/AuthenticationManager.swift b/WooCommerce/Classes/Authentication/AuthenticationManager.swift index 6904d5ac0b0..9b5d549b5cc 100644 --- a/WooCommerce/Classes/Authentication/AuthenticationManager.swift +++ b/WooCommerce/Classes/Authentication/AuthenticationManager.swift @@ -70,7 +70,7 @@ class AuthenticationManager: Authentication { let isWPComMagicLinkPreferredToPassword = featureFlagService.isFeatureFlagEnabled(.loginMagicLinkEmphasis) let isWPComMagicLinkShownAsSecondaryActionOnPasswordScreen = featureFlagService.isFeatureFlagEnabled(.loginMagicLinkEmphasisM2) let isStoreCreationMVPEnabled = featureFlagService.isFeatureFlagEnabled(.storeCreationMVP) - let isNativeJetpackSetupEnabled = ABTest.nativeJetpackSetupFlow.variation != .control + let isNativeJetpackSetupEnabled = true let isWPComLoginRequiredForSiteCredentialsLogin = !featureFlagService.isFeatureFlagEnabled(.applicationPasswordAuthenticationForSiteCredentialLogin) let configuration = WordPressAuthenticatorConfiguration(wpcomClientId: ApiCredentials.dotcomAppId, wpcomSecret: ApiCredentials.dotcomSecret, From cc920ec12dcf66e48aa7d97fcd252a2dcaad4c05 Mon Sep 17 00:00:00 2001 From: Sharma Elanthiraiyan Date: Tue, 3 Jan 2023 11:51:46 +0530 Subject: [PATCH 2/6] Always show native jetpack installation flow. --- .../Authentication/AuthenticationManager.swift | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/WooCommerce/Classes/Authentication/AuthenticationManager.swift b/WooCommerce/Classes/Authentication/AuthenticationManager.swift index 9b5d549b5cc..83f55a2858d 100644 --- a/WooCommerce/Classes/Authentication/AuthenticationManager.swift +++ b/WooCommerce/Classes/Authentication/AuthenticationManager.swift @@ -786,18 +786,9 @@ private extension AuthenticationManager { } // Shows the native Jetpack flow during the site discovery flow. - if ABTest.nativeJetpackSetupFlow.variation != .control { - return jetpackSetupUI(for: site.url, - connectionMissingOnly: site.hasJetpack && site.isJetpackActive, - in: navigationController) - } - - /// Jetpack is required. Present an error if we don't detect a valid installation. - guard site.hasJetpack && site.isJetpackActive else { - return jetpackErrorUI(for: site.url, with: matcher, in: navigationController) - } - - return accountMismatchUI(for: site.url, siteCredentials: nil, with: matcher, in: navigationController) + return jetpackSetupUI(for: site.url, + connectionMissingOnly: site.hasJetpack && site.isJetpackActive, + in: navigationController) } /// The error screen to be displayed when the user tries to log in with site credentials From 79c78cf9b3f5e77b33a20ad3dc5a48c92f357f27 Mon Sep 17 00:00:00 2001 From: Sharma Elanthiraiyan Date: Tue, 3 Jan 2023 11:52:05 +0530 Subject: [PATCH 3/6] Remove unused `jetpackErrorUI` method. --- .../AuthenticationManager.swift | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/WooCommerce/Classes/Authentication/AuthenticationManager.swift b/WooCommerce/Classes/Authentication/AuthenticationManager.swift index 83f55a2858d..baa4e43b35f 100644 --- a/WooCommerce/Classes/Authentication/AuthenticationManager.swift +++ b/WooCommerce/Classes/Authentication/AuthenticationManager.swift @@ -673,39 +673,6 @@ private extension AuthenticationManager { } } - /// The error screen to be displayed when the user enters a site - /// without Jetpack in the site discovery flow. - /// More about this flow: pe5sF9-mz-p2. - /// - func jetpackErrorUI(for siteURL: String, with matcher: ULAccountMatcher, in navigationController: UINavigationController) -> UIViewController { - let viewModel = JetpackErrorViewModel(siteURL: siteURL, - siteCredentials: nil, - onJetpackSetupCompletion: { [weak self] authorizedEmailAddress in - guard let self = self else { return } - - // Tries re-syncing to get an updated store list - ServiceLocator.stores.synchronizeEntities { [weak self] in - guard let self = self else { return } - matcher.refreshStoredSites() - guard let matchedSite = matcher.matchedSite(originalURL: siteURL) else { - DDLogWarn("⚠️ Could not find \(siteURL) connected to the account") - return - } - // checks if the site has woo - if matchedSite.isWooCommerceActive == false { - let noWooUI = self.noWooUI(for: matchedSite, - with: matcher, - navigationController: navigationController, - onStorePickerDismiss: {}) - navigationController.show(noWooUI, sender: nil) - } else { - self.startStorePicker(with: matchedSite.siteID, in: navigationController, onDismiss: {}) - } - } - }) - return ULErrorViewController(viewModel: viewModel) - } - /// The error screen to be displayed when the user tries to enter a site /// whose Jetpack is not associated with their account. /// - Parameters: From f2e7b2a139d92c92a20366d50b66d13bd54a3237 Mon Sep 17 00:00:00 2001 From: Sharma Elanthiraiyan Date: Tue, 3 Jan 2023 11:52:32 +0530 Subject: [PATCH 4/6] Remove `nativeJetpackSetupFlow` AB test. --- Experiments/Experiments/ABTest.swift | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Experiments/Experiments/ABTest.swift b/Experiments/Experiments/ABTest.swift index ebb347cb463..293f2adfccb 100644 --- a/Experiments/Experiments/ABTest.swift +++ b/Experiments/Experiments/ABTest.swift @@ -15,11 +15,6 @@ public enum ABTest: String, CaseIterable { /// Experiment ref: pbxNRc-1S0-p2 case aaTestLoggedOut = "woocommerceios_explat_aa_test_logged_out_202212_v2" - /// A/B test to measure the sign-in success rate when native Jetpack installation experience is enabled - /// Experiment ref: pbxNRc-29W-p2 - /// - case nativeJetpackSetupFlow = "woocommerceios_login_jetpack_setup_flow_v2" - /// Returns a variation for the given experiment public var variation: Variation { ExPlat.shared?.experiment(rawValue) ?? .control @@ -30,7 +25,7 @@ public enum ABTest: String, CaseIterable { /// When adding a new experiment, add it to the appropriate case depending on its context (logged-in or logged-out experience). public var context: ExperimentContext { switch self { - case .aaTestLoggedIn, .nativeJetpackSetupFlow: + case .aaTestLoggedIn: return .loggedIn case .aaTestLoggedOut: return .loggedOut From ed5efa2e1830f4baef4add076368c99277101512 Mon Sep 17 00:00:00 2001 From: Sharma Elanthiraiyan Date: Tue, 3 Jan 2023 18:11:34 +0530 Subject: [PATCH 5/6] Update release notes. --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 0302b334e08..c75c9851fd4 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -4,6 +4,7 @@ ----- - [*] Design refresh: Buttons, links, and other calls to action are now purple instead of pink. [https://github.com/woocommerce/woocommerce-ios/pull/8451] - [internal] Design: Updated capitalization for various pages, links, and buttons to match new design guidelines. [https://github.com/woocommerce/woocommerce-ios/pull/8455] +- [internal] Remove A/B testing and release native Jetpack installation flow for all users. [https://github.com/woocommerce/woocommerce-ios/pull/8533] 11.7 ----- From 07fd62cbd74784ad03533a94cdacd5b2e2a62d4f Mon Sep 17 00:00:00 2001 From: Sharma Elanthiraiyan Date: Wed, 4 Jan 2023 10:31:08 +0530 Subject: [PATCH 6/6] Remove extra declaration and pass the boolean parameter value directly. --- WooCommerce/Classes/Authentication/AuthenticationManager.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/WooCommerce/Classes/Authentication/AuthenticationManager.swift b/WooCommerce/Classes/Authentication/AuthenticationManager.swift index baa4e43b35f..8413f7f4682 100644 --- a/WooCommerce/Classes/Authentication/AuthenticationManager.swift +++ b/WooCommerce/Classes/Authentication/AuthenticationManager.swift @@ -70,7 +70,6 @@ class AuthenticationManager: Authentication { let isWPComMagicLinkPreferredToPassword = featureFlagService.isFeatureFlagEnabled(.loginMagicLinkEmphasis) let isWPComMagicLinkShownAsSecondaryActionOnPasswordScreen = featureFlagService.isFeatureFlagEnabled(.loginMagicLinkEmphasisM2) let isStoreCreationMVPEnabled = featureFlagService.isFeatureFlagEnabled(.storeCreationMVP) - let isNativeJetpackSetupEnabled = true let isWPComLoginRequiredForSiteCredentialsLogin = !featureFlagService.isFeatureFlagEnabled(.applicationPasswordAuthenticationForSiteCredentialLogin) let configuration = WordPressAuthenticatorConfiguration(wpcomClientId: ApiCredentials.dotcomAppId, wpcomSecret: ApiCredentials.dotcomSecret, @@ -99,7 +98,7 @@ class AuthenticationManager: Authentication { emphasizeEmailForWPComPassword: true, wpcomPasswordInstructions: AuthenticationConstants.wpcomPasswordInstructions, - skipXMLRPCCheckForSiteDiscovery: isNativeJetpackSetupEnabled) + skipXMLRPCCheckForSiteDiscovery: true) let systemGray3LightModeColor = UIColor(red: 199/255.0, green: 199/255.0, blue: 204/255.0, alpha: 1) let systemLabelLightModeColor = UIColor(red: 0, green: 0, blue: 0, alpha: 1)