From 6697c8fde760d0a08ff4352eefb9a809f1e35c3b Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Wed, 11 Mar 2020 16:19:49 -0500 Subject: [PATCH 01/17] Update shared pod schemes to 11.3 --- .../xcschemes/WordPressKit.xcscheme | 24 ++++++++----------- .../xcschemes/WordPressKitTests.xcscheme | 6 +---- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/WordPressKit.xcodeproj/xcshareddata/xcschemes/WordPressKit.xcscheme b/WordPressKit.xcodeproj/xcshareddata/xcschemes/WordPressKit.xcscheme index 62e711de..c9101d8a 100644 --- a/WordPressKit.xcodeproj/xcshareddata/xcschemes/WordPressKit.xcscheme +++ b/WordPressKit.xcodeproj/xcshareddata/xcschemes/WordPressKit.xcscheme @@ -1,6 +1,6 @@ + + + + @@ -44,17 +53,6 @@ - - - - - - - - - - - - Date: Wed, 11 Mar 2020 16:35:13 -0500 Subject: [PATCH 02/17] `pod update` to get the latest acceptable changes for WP pods --- Podfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Podfile.lock b/Podfile.lock index 933f0c10..bd3622b5 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -9,7 +9,7 @@ PODS: - FormatterKit/Resources (1.8.2) - FormatterKit/TimeIntervalFormatter (1.8.2): - FormatterKit/Resources - - NSObject-SafeExpectations (0.0.3) + - NSObject-SafeExpectations (0.0.4) - OCMock (3.4.3) - OHHTTPStubs (6.1.0): - OHHTTPStubs/Default (= 6.1.0) @@ -27,7 +27,7 @@ PODS: - OHHTTPStubs/Swift (6.1.0): - OHHTTPStubs/Default - UIDeviceIdentifier (1.4.0) - - WordPressShared (1.8.13-beta.3): + - WordPressShared (1.8.15): - CocoaLumberjack (~> 3.4) - FormatterKit/TimeIntervalFormatter (= 1.8.2) - wpxmlrpc (0.8.5-beta.1) @@ -59,11 +59,11 @@ SPEC CHECKSUMS: Alamofire: ae5c501addb7afdbb13687d7f2f722c78734c2d3 CocoaLumberjack: db7cc9e464771f12054c22ff6947c5a58d43a0fd FormatterKit: 4b8f29acc9b872d5d12a63efb560661e8f2e1b98 - NSObject-SafeExpectations: b989b68a8a9b7b9f2b264a8b52ba9d7aab8f3129 + NSObject-SafeExpectations: ab8fe623d36b25aa1f150affa324e40a2f3c0374 OCMock: 43565190abc78977ad44a61c0d20d7f0784d35ab OHHTTPStubs: 1e21c7d2c084b8153fc53d48400d8919d2d432d0 UIDeviceIdentifier: 44f805037d21b94394821828f4fcaba34b38c2d0 - WordPressShared: 98ebacf932b8f7b99a6ccb9f61b3fb1792f82d55 + WordPressShared: 02e0947034648cbd7251ffcc10f64d512f93a53b wpxmlrpc: d758b6ad17723d31d06493acc932f6d9b340de95 PODFILE CHECKSUM: 5ce92d370c62c207679b4db9f2eb470dfa1f6e78 From d1024a8d91976e658fc86558c3db84a4463596b0 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Wed, 11 Mar 2020 16:45:49 -0500 Subject: [PATCH 03/17] `pod update` to get latest internal pod updates --- Podfile | 4 ++-- Podfile.lock | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Podfile b/Podfile index 7258576b..19d04b49 100644 --- a/Podfile +++ b/Podfile @@ -8,9 +8,9 @@ platform :ios, '11.0' def wordpresskit_pods pod 'Alamofire', '~> 4.8.0' pod 'CocoaLumberjack', '3.4.2' - pod 'WordPressShared', '~> 1.8.13-beta' + pod 'WordPressShared', '~> 1.8.15-beta' # pod 'WordPressShared', :git => 'https://github.com/wordpress-mobile/WordPress-iOS-Shared.git', :commit => 'efe5a065f3ace331353595ef85eef502baa23497' - pod 'NSObject-SafeExpectations', '~> 0.0.3' + pod 'NSObject-SafeExpectations', '~> 0.0.4' pod 'wpxmlrpc', '0.8.5-beta.1' #pod 'wpxmlrpc', :git => 'https://github.com/wordpress-mobile/wpxmlrpc.git', :branch => 'feature/update-xcode-settings' pod 'UIDeviceIdentifier', '~> 1' diff --git a/Podfile.lock b/Podfile.lock index bd3622b5..cbdd0a76 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -35,12 +35,12 @@ PODS: DEPENDENCIES: - Alamofire (~> 4.8.0) - CocoaLumberjack (= 3.4.2) - - NSObject-SafeExpectations (~> 0.0.3) + - NSObject-SafeExpectations (~> 0.0.4) - OCMock (~> 3.4.2) - OHHTTPStubs (= 6.1.0) - OHHTTPStubs/Swift (= 6.1.0) - UIDeviceIdentifier (~> 1) - - WordPressShared (~> 1.8.13-beta) + - WordPressShared (~> 1.8.15-beta) - wpxmlrpc (= 0.8.5-beta.1) SPEC REPOS: @@ -66,6 +66,6 @@ SPEC CHECKSUMS: WordPressShared: 02e0947034648cbd7251ffcc10f64d512f93a53b wpxmlrpc: d758b6ad17723d31d06493acc932f6d9b340de95 -PODFILE CHECKSUM: 5ce92d370c62c207679b4db9f2eb470dfa1f6e78 +PODFILE CHECKSUM: f9aa630fd36cfb01c9eea628263740a2703d39e9 COCOAPODS: 1.8.4 From 8a39e556a9743967ed509b5403a092c5e57ea3b3 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Wed, 11 Mar 2020 16:46:13 -0500 Subject: [PATCH 04/17] Bump dependency pod versions in podspec --- WordPressKit.podspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPressKit.podspec b/WordPressKit.podspec index 56b28c1e..672a28d1 100644 --- a/WordPressKit.podspec +++ b/WordPressKit.podspec @@ -21,8 +21,8 @@ Pod::Spec.new do |s| s.dependency 'Alamofire', '~> 4.8.0' s.dependency 'CocoaLumberjack', '~> 3.4' - s.dependency 'WordPressShared', '~> 1.8.13-beta' - s.dependency 'NSObject-SafeExpectations', '0.0.3' + s.dependency 'WordPressShared', '~> 1.8.15-beta' + s.dependency 'NSObject-SafeExpectations', '0.0.4' s.dependency 'wpxmlrpc', '0.8.5-beta.1' s.dependency 'UIDeviceIdentifier', '~> 1' end From 06e28dc27304b59ca88f723baf43ef3bc5212b24 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Wed, 11 Mar 2020 16:46:25 -0500 Subject: [PATCH 05/17] Bump podspec version --- WordPressKit.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPressKit.podspec b/WordPressKit.podspec index 672a28d1..ee8ffdb3 100644 --- a/WordPressKit.podspec +++ b/WordPressKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "WordPressKit" - s.version = "4.6.0-beta.3" + s.version = "4.6.0-beta.5" s.summary = "WordPressKit offers a clean and simple WordPress.com and WordPress.org API." s.description = <<-DESC From b668dfe31e94d89ee9ac44210fbbd4c6f3d4a311 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Wed, 11 Mar 2020 16:47:01 -0500 Subject: [PATCH 06/17] Update OHHTTPStubs pod to latest version (8.0 and 9.0 support Swift 5) --- Podfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Podfile b/Podfile index 19d04b49..c142054f 100644 --- a/Podfile +++ b/Podfile @@ -28,7 +28,7 @@ target 'WordPressKitTests' do project 'WordPressKit.xcodeproj' wordpresskit_pods - pod 'OHHTTPStubs', '6.1.0' - pod 'OHHTTPStubs/Swift', '6.1.0' + pod 'OHHTTPStubs', '9.0' + pod 'OHHTTPStubs/Swift', '9.0' pod 'OCMock', '~> 3.4.2' end From b061d25ae08099010bb5e64420ce46cecf747559 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Wed, 11 Mar 2020 16:47:12 -0500 Subject: [PATCH 07/17] Update checksum for OHHTTPStubs --- Podfile.lock | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Podfile.lock b/Podfile.lock index cbdd0a76..ffcf68ec 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -11,20 +11,20 @@ PODS: - FormatterKit/Resources - NSObject-SafeExpectations (0.0.4) - OCMock (3.4.3) - - OHHTTPStubs (6.1.0): - - OHHTTPStubs/Default (= 6.1.0) - - OHHTTPStubs/Core (6.1.0) - - OHHTTPStubs/Default (6.1.0): + - OHHTTPStubs (9.0.0): + - OHHTTPStubs/Default (= 9.0.0) + - OHHTTPStubs/Core (9.0.0) + - OHHTTPStubs/Default (9.0.0): - OHHTTPStubs/Core - OHHTTPStubs/JSON - OHHTTPStubs/NSURLSession - OHHTTPStubs/OHPathHelpers - - OHHTTPStubs/JSON (6.1.0): + - OHHTTPStubs/JSON (9.0.0): - OHHTTPStubs/Core - - OHHTTPStubs/NSURLSession (6.1.0): + - OHHTTPStubs/NSURLSession (9.0.0): - OHHTTPStubs/Core - - OHHTTPStubs/OHPathHelpers (6.1.0) - - OHHTTPStubs/Swift (6.1.0): + - OHHTTPStubs/OHPathHelpers (9.0.0) + - OHHTTPStubs/Swift (9.0.0): - OHHTTPStubs/Default - UIDeviceIdentifier (1.4.0) - WordPressShared (1.8.15): @@ -37,8 +37,8 @@ DEPENDENCIES: - CocoaLumberjack (= 3.4.2) - NSObject-SafeExpectations (~> 0.0.4) - OCMock (~> 3.4.2) - - OHHTTPStubs (= 6.1.0) - - OHHTTPStubs/Swift (= 6.1.0) + - OHHTTPStubs (= 9.0) + - OHHTTPStubs/Swift (= 9.0) - UIDeviceIdentifier (~> 1) - WordPressShared (~> 1.8.15-beta) - wpxmlrpc (= 0.8.5-beta.1) @@ -61,7 +61,7 @@ SPEC CHECKSUMS: FormatterKit: 4b8f29acc9b872d5d12a63efb560661e8f2e1b98 NSObject-SafeExpectations: ab8fe623d36b25aa1f150affa324e40a2f3c0374 OCMock: 43565190abc78977ad44a61c0d20d7f0784d35ab - OHHTTPStubs: 1e21c7d2c084b8153fc53d48400d8919d2d432d0 + OHHTTPStubs: cb29d2a9d09a828ecb93349a2b0c64f99e0db89f UIDeviceIdentifier: 44f805037d21b94394821828f4fcaba34b38c2d0 WordPressShared: 02e0947034648cbd7251ffcc10f64d512f93a53b wpxmlrpc: d758b6ad17723d31d06493acc932f6d9b340de95 From 78dc4c59e81b204b1c38315640cd1fa52a508f0a Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Wed, 11 Mar 2020 16:48:07 -0500 Subject: [PATCH 08/17] Remove `OH` prefix from OHHTTPStubs classes, per 9.0 update --- WordPressKitTests/BlogServiceRemoteRESTTests.m | 8 ++++---- WordPressKitTests/ReaderSiteServiceRemoteTests.swift | 2 +- WordPressKitTests/RemoteTestCase.swift | 10 +++++----- WordPressKitTests/WordPressComOAuthTests.swift | 4 ++-- WordPressKitTests/WordPressComRestApiTests.swift | 8 ++++---- .../WordPressComServiceRemoteRestTests.swift | 6 +++--- WordPressKitTests/WordPressOrgXMLRPCApiTests.swift | 4 ++-- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/WordPressKitTests/BlogServiceRemoteRESTTests.m b/WordPressKitTests/BlogServiceRemoteRESTTests.m index 3017132b..c6408f53 100644 --- a/WordPressKitTests/BlogServiceRemoteRESTTests.m +++ b/WordPressKitTests/BlogServiceRemoteRESTTests.m @@ -18,7 +18,7 @@ @implementation BlogServiceRemoteRESTTests - (void)tearDown { [super tearDown]; - [OHHTTPStubs removeAllStubs]; + [HTTPStubs removeAllStubs]; } @@ -136,10 +136,10 @@ - (void)testSyncBlogSettingsParsesCorrectlyEveryField BlogServiceRemoteREST *service = [[BlogServiceRemoteREST alloc] initWithWordPressComRestApi:api siteID:blogID]; XCTAssertNotNil(service, @"Error while creating the new service"); - [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { + [HTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { return [[request.URL absoluteString] containsString:endpoint]; - } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [OHHTTPStubsResponse responseWithFileAtPath:responsePath + } withStubResponse:^HTTPStubsResponse *(NSURLRequest *request) { + return [HTTPStubsResponse responseWithFileAtPath:responsePath statusCode:200 headers:@{@"Content-Type":@"application/json"}]; }]; diff --git a/WordPressKitTests/ReaderSiteServiceRemoteTests.swift b/WordPressKitTests/ReaderSiteServiceRemoteTests.swift index 0d765e1b..2f2ac165 100644 --- a/WordPressKitTests/ReaderSiteServiceRemoteTests.swift +++ b/WordPressKitTests/ReaderSiteServiceRemoteTests.swift @@ -331,7 +331,7 @@ class ReaderSiteServiceRemoteTests: XCTestCase { let testURLString = "http://www.wordpress.com" let testURL = URL(string: testURLString)! stub(condition:{request in request.url?.absoluteString == testURLString}) { request in - return OHHTTPStubsResponse(error: NSError(domain: NSURLErrorDomain, code: NSURLErrorUnknown, userInfo: nil)) + return HTTPStubsResponse(error: NSError(domain: NSURLErrorDomain, code: NSURLErrorUnknown, userInfo: nil)) } let expect = self.expectation(description: "One callback should be invoked") diff --git a/WordPressKitTests/RemoteTestCase.swift b/WordPressKitTests/RemoteTestCase.swift index 8a495844..ea2b048c 100644 --- a/WordPressKitTests/RemoteTestCase.swift +++ b/WordPressKitTests/RemoteTestCase.swift @@ -32,7 +32,7 @@ class RemoteTestCase: XCTestCase { override func tearDown() { super.tearDown() - OHHTTPStubs.removeAllStubs() + HTTPStubs.removeAllStubs() } } @@ -80,7 +80,7 @@ extension RemoteTestCase { if contentType != .NoContentType { headers = ["Content-Type" as NSObject: contentType.rawValue as AnyObject] } - return OHHTTPStubsResponse(data: data, statusCode: status, headers: headers) + return HTTPStubsResponse(data: data, statusCode: status, headers: headers) } } @@ -107,7 +107,7 @@ extension RemoteTestCase { // An extra call was made to this stub and no corresponding response file existed. XCTFail("Unexpected network request was made to: \(response.url!.absoluteString)") let notConnectedError = NSError(domain:NSURLErrorDomain, code:Int(CFNetworkErrors.cfurlErrorNotConnectedToInternet.rawValue), userInfo:nil) - return OHHTTPStubsResponse(error:notConnectedError) + return HTTPStubsResponse(error:notConnectedError) } let stubPath = OHPathForFile(files[callCounter], type(of: self)) @@ -126,7 +126,7 @@ extension RemoteTestCase { /// error. In the response, prior to returning the error, XCTFail will also be called logging the endpoint /// which was called. /// - /// - Note: Remember that order is important when stubbing requests with OHHTTPStubs. Therefore, it is important + /// - Note: Remember that order is important when stubbing requests with HTTPStubs. Therefore, it is important /// this is called **before** stubbing out a specific endpoint you are testing. See: /// https://github.com/AliSoftware/OHHTTPStubs/wiki/Usage-Examples#stack-multiple-stubs-and-remove-installed-stubs /// @@ -136,7 +136,7 @@ extension RemoteTestCase { }) { response in XCTFail("Unexpected network request was made to: \(response.url!.absoluteString)") let notConnectedError = NSError(domain:NSURLErrorDomain, code:Int(CFNetworkErrors.cfurlErrorNotConnectedToInternet.rawValue), userInfo:nil) - return OHHTTPStubsResponse(error:notConnectedError) + return HTTPStubsResponse(error:notConnectedError) } } diff --git a/WordPressKitTests/WordPressComOAuthTests.swift b/WordPressKitTests/WordPressComOAuthTests.swift index 291437a4..8e904108 100644 --- a/WordPressKitTests/WordPressComOAuthTests.swift +++ b/WordPressKitTests/WordPressComOAuthTests.swift @@ -19,10 +19,10 @@ class WordPressComOAuthTests: XCTestCase { override func tearDown() { super.tearDown() - OHHTTPStubs.removeAllStubs() + HTTPStubs.removeAllStubs() } - private func isOauthTokenRequest(url: OAuthURL) -> OHHTTPStubsTestBlock { + private func isOauthTokenRequest(url: OAuthURL) -> HTTPStubsTestBlock { return { request in return request.url?.absoluteString == url.rawValue } diff --git a/WordPressKitTests/WordPressComRestApiTests.swift b/WordPressKitTests/WordPressComRestApiTests.swift index 9b629d83..486e7402 100644 --- a/WordPressKitTests/WordPressComRestApiTests.swift +++ b/WordPressKitTests/WordPressComRestApiTests.swift @@ -17,10 +17,10 @@ class WordPressComRestApiTests: XCTestCase { override func tearDown() { super.tearDown() - OHHTTPStubs.removeAllStubs() + HTTPStubs.removeAllStubs() } - private func isRestAPIRequest() -> OHHTTPStubsTestBlock { + private func isRestAPIRequest() -> HTTPStubsTestBlock { return { request in guard let requestURL = request.url, let components = URLComponents(string: requestURL.absoluteString) else { return false @@ -40,7 +40,7 @@ class WordPressComRestApiTests: XCTestCase { } } - private func isRestAPIMediaNewRequest() -> OHHTTPStubsTestBlock { + private func isRestAPIMediaNewRequest() -> HTTPStubsTestBlock { return { request in guard let requestURL = request.url, let components = URLComponents(string: requestURL.absoluteString) else { return false @@ -253,7 +253,7 @@ class WordPressComRestApiTests: XCTestCase { func testCancelationOfRequest() { stub(condition: isRestAPIMediaNewRequest()) { request in - return OHHTTPStubsResponse.init(error: NSError(domain: NSURLErrorDomain, code: NSURLErrorCancelled, userInfo: nil)) + return HTTPStubsResponse.init(error: NSError(domain: NSURLErrorDomain, code: NSURLErrorCancelled, userInfo: nil)) } let expect = self.expectation(description: "One callback should be invoked") let api = WordPressComRestApi(oAuthToken: "fakeToken") diff --git a/WordPressKitTests/WordPressComServiceRemoteRestTests.swift b/WordPressKitTests/WordPressComServiceRemoteRestTests.swift index 173bf05f..f1956d26 100644 --- a/WordPressKitTests/WordPressComServiceRemoteRestTests.swift +++ b/WordPressKitTests/WordPressComServiceRemoteRestTests.swift @@ -22,10 +22,10 @@ class WordPressComServiceRemoteRestTests: XCTestCase { service = nil api = nil - OHHTTPStubs.removeAllStubs() + HTTPStubs.removeAllStubs() } - private func isRestAPIUsersNewRequest() -> OHHTTPStubsTestBlock { + private func isRestAPIUsersNewRequest() -> HTTPStubsTestBlock { return { request in guard let url = request.url else { return false @@ -34,7 +34,7 @@ class WordPressComServiceRemoteRestTests: XCTestCase { } } - private func isRestAPISitesNewRequest() -> OHHTTPStubsTestBlock { + private func isRestAPISitesNewRequest() -> HTTPStubsTestBlock { return { request in guard let url = request.url else { return false diff --git a/WordPressKitTests/WordPressOrgXMLRPCApiTests.swift b/WordPressKitTests/WordPressOrgXMLRPCApiTests.swift index ef705759..c665029f 100644 --- a/WordPressKitTests/WordPressOrgXMLRPCApiTests.swift +++ b/WordPressKitTests/WordPressOrgXMLRPCApiTests.swift @@ -13,10 +13,10 @@ class WordPressOrgXMLRPCApiTests: XCTestCase { override func tearDown() { super.tearDown() - OHHTTPStubs.removeAllStubs() + HTTPStubs.removeAllStubs() } - private func isXmlRpcAPIRequest() -> OHHTTPStubsTestBlock { + private func isXmlRpcAPIRequest() -> HTTPStubsTestBlock { return { request in return request.url?.absoluteString == self.xmlrpcEndpoint } From 643e45aa6cc21a36ae6050a966ca60294b7b1b43 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Thu, 12 Mar 2020 11:04:59 -0500 Subject: [PATCH 09/17] Update unit tests framework to use Swift 5 --- WordPressKit.xcodeproj/project.pbxproj | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WordPressKit.xcodeproj/project.pbxproj b/WordPressKit.xcodeproj/project.pbxproj index aa36db42..0e7a527a 100644 --- a/WordPressKit.xcodeproj/project.pbxproj +++ b/WordPressKit.xcodeproj/project.pbxproj @@ -1920,7 +1920,7 @@ }; 9368C7831EC5EF1B0092CE8E = { CreatedOnToolsVersion = 8.3.2; - LastSwiftMigration = 0910; + LastSwiftMigration = 1130; ProvisioningStyle = Automatic; }; }; @@ -2655,6 +2655,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "WordPressKitTests/WordPressKitTests-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -2674,6 +2675,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.automattic.WordPressKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "WordPressKitTests/WordPressKitTests-Bridging-Header.h"; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -2775,6 +2777,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.automattic.WordPressKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "WordPressKitTests/WordPressKitTests-Bridging-Header.h"; + SWIFT_VERSION = 5.0; }; name = "Release-Internal"; }; @@ -2876,6 +2879,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.automattic.WordPressKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "WordPressKitTests/WordPressKitTests-Bridging-Header.h"; + SWIFT_VERSION = 5.0; }; name = "Release-Alpha"; }; From caadb9674138604af42ac7af90d14d6c216d05ab Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Thu, 12 Mar 2020 11:40:55 -0500 Subject: [PATCH 10/17] Migrate main project to Swift 5 --- WordPressKit.xcodeproj/project.pbxproj | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WordPressKit.xcodeproj/project.pbxproj b/WordPressKit.xcodeproj/project.pbxproj index 0e7a527a..5f11be4c 100644 --- a/WordPressKit.xcodeproj/project.pbxproj +++ b/WordPressKit.xcodeproj/project.pbxproj @@ -1915,7 +1915,7 @@ TargetAttributes = { 9368C77A1EC5EF1B0092CE8E = { CreatedOnToolsVersion = 8.3.2; - LastSwiftMigration = 0910; + LastSwiftMigration = 1130; ProvisioningStyle = Automatic; }; 9368C7831EC5EF1B0092CE8E = { @@ -2610,6 +2610,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -2635,6 +2636,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.automattic.WordPressKit; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -2758,6 +2760,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.automattic.WordPressKit; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; }; name = "Release-Internal"; }; @@ -2860,6 +2863,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.automattic.WordPressKit; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; }; name = "Release-Alpha"; }; From 3682253489a9c73f289fc54f1fbb96619f709f0b Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Thu, 12 Mar 2020 11:43:43 -0500 Subject: [PATCH 11/17] Update code to Swift 5 --- WordPressKit/CocoaLumberjack.swift | 10 +++++----- WordPressKit/PluginDirectoryEntry.swift | 6 +++--- WordPressKit/WordPressOrgXMLRPCValidator.swift | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/WordPressKit/CocoaLumberjack.swift b/WordPressKit/CocoaLumberjack.swift index 7ee1e9c9..d11ce0a4 100644 --- a/WordPressKit/CocoaLumberjack.swift +++ b/WordPressKit/CocoaLumberjack.swift @@ -68,23 +68,23 @@ public func _DDLogMessage(_ message: @autoclosure () -> String, level: DDLogLeve } public func DDLogDebug(_ message: @autoclosure () -> String, level: DDLogLevel = defaultDebugLevel, context: Int = 0, file: StaticString = #file, function: StaticString = #function, line: UInt = #line, tag: Any? = nil, asynchronous async: Bool = true, ddlog: DDLog = DDLog.sharedInstance) { - _DDLogMessage(message, level: level, flag: .debug, context: context, file: file, function: function, line: line, tag: tag, asynchronous: async, ddlog: ddlog) + _DDLogMessage(message(), level: level, flag: .debug, context: context, file: file, function: function, line: line, tag: tag, asynchronous: async, ddlog: ddlog) } public func DDLogInfo(_ message: @autoclosure () -> String, level: DDLogLevel = defaultDebugLevel, context: Int = 0, file: StaticString = #file, function: StaticString = #function, line: UInt = #line, tag: Any? = nil, asynchronous async: Bool = true, ddlog: DDLog = DDLog.sharedInstance) { - _DDLogMessage(message, level: level, flag: .info, context: context, file: file, function: function, line: line, tag: tag, asynchronous: async, ddlog: ddlog) + _DDLogMessage(message(), level: level, flag: .info, context: context, file: file, function: function, line: line, tag: tag, asynchronous: async, ddlog: ddlog) } public func DDLogWarn(_ message: @autoclosure () -> String, level: DDLogLevel = defaultDebugLevel, context: Int = 0, file: StaticString = #file, function: StaticString = #function, line: UInt = #line, tag: Any? = nil, asynchronous async: Bool = true, ddlog: DDLog = DDLog.sharedInstance) { - _DDLogMessage(message, level: level, flag: .warning, context: context, file: file, function: function, line: line, tag: tag, asynchronous: async, ddlog: ddlog) + _DDLogMessage(message(), level: level, flag: .warning, context: context, file: file, function: function, line: line, tag: tag, asynchronous: async, ddlog: ddlog) } public func DDLogVerbose(_ message: @autoclosure () -> String, level: DDLogLevel = defaultDebugLevel, context: Int = 0, file: StaticString = #file, function: StaticString = #function, line: UInt = #line, tag: Any? = nil, asynchronous async: Bool = true, ddlog: DDLog = DDLog.sharedInstance) { - _DDLogMessage(message, level: level, flag: .verbose, context: context, file: file, function: function, line: line, tag: tag, asynchronous: async, ddlog: ddlog) + _DDLogMessage(message(), level: level, flag: .verbose, context: context, file: file, function: function, line: line, tag: tag, asynchronous: async, ddlog: ddlog) } public func DDLogError(_ message: @autoclosure () -> String, level: DDLogLevel = defaultDebugLevel, context: Int = 0, file: StaticString = #file, function: StaticString = #function, line: UInt = #line, tag: Any? = nil, asynchronous async: Bool = false, ddlog: DDLog = DDLog.sharedInstance) { - _DDLogMessage(message, level: level, flag: .error, context: context, file: file, function: function, line: line, tag: tag, asynchronous: async, ddlog: ddlog) + _DDLogMessage(message(), level: level, flag: .error, context: context, file: file, function: function, line: line, tag: tag, asynchronous: async, ddlog: ddlog) } /// Returns a String of the current filename, without full path or extension. diff --git a/WordPressKit/PluginDirectoryEntry.swift b/WordPressKit/PluginDirectoryEntry.swift index accb8878..3c60044f 100644 --- a/WordPressKit/PluginDirectoryEntry.swift +++ b/WordPressKit/PluginDirectoryEntry.swift @@ -83,16 +83,16 @@ extension PluginDirectoryEntry: Codable { lastUpdated = try? container.decode(Date.self, forKey: .lastUpdated) rating = try container.decode(Int.self, forKey: .rating) - let icons = try? container.decodeIfPresent([String: String].self, forKey: .icons) + let icons = ((try? container.decodeIfPresent([String: String].self, forKey: .icons)) as [String : String]??) icon = icons??["2x"].flatMap(URL.init(string:)) // If there's no hi-res version of the banner, the API returns `high: false`, instead of something more logical, // like an empty string or `null`, hence the dance below. let banners = try? container.nestedContainer(keyedBy: BannersKeys.self, forKey: .banners) - if let highRes = try? banners?.decodeIfPresent(String.self, forKey: .high) { + if let highRes = ((try? banners?.decodeIfPresent(String.self, forKey: .high)) as String??) { banner = highRes.flatMap(URL.init(string:)) - } else if let lowRes = try? banners?.decodeIfPresent(String.self, forKey: .low) { + } else if let lowRes = ((try? banners?.decodeIfPresent(String.self, forKey: .low)) as String??) { banner = lowRes.flatMap(URL.init(string:)) } else { banner = nil diff --git a/WordPressKit/WordPressOrgXMLRPCValidator.swift b/WordPressKit/WordPressOrgXMLRPCValidator.swift index 915f6f2b..e593a94b 100644 --- a/WordPressKit/WordPressOrgXMLRPCValidator.swift +++ b/WordPressKit/WordPressOrgXMLRPCValidator.swift @@ -325,7 +325,7 @@ open class WordPressOrgXMLRPCValidator: NSObject { guard let data = data, let responseString = String(data: data, encoding: String.Encoding.utf8), let parser = WordPressRSDParser(xmlString: responseString), - let endpoint = (try? parser.parsedEndpoint()), + let endpoint = (((try? parser.parsedEndpoint()) as String??)), let xmlrpc = endpoint, let xmlrpcURL = URL(string: xmlrpc) else { From 34c1a756bee5b2721adfd3a18693c9709b9f5767 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Thu, 12 Mar 2020 12:31:49 -0500 Subject: [PATCH 12/17] Enable base internationalization --- WordPressKit.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPressKit.xcodeproj/project.pbxproj b/WordPressKit.xcodeproj/project.pbxproj index 5f11be4c..95f2e3f3 100644 --- a/WordPressKit.xcodeproj/project.pbxproj +++ b/WordPressKit.xcodeproj/project.pbxproj @@ -1927,11 +1927,11 @@ }; buildConfigurationList = 9368C7751EC5EF1B0092CE8E /* Build configuration list for PBXProject "WordPressKit" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( - English, en, + Base, ); mainGroup = 9368C7711EC5EF1B0092CE8E; productRefGroup = 9368C77C1EC5EF1B0092CE8E /* Products */; From e70f44e43c77dcf528f51a16072a57483b48c1b6 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Thu, 12 Mar 2020 13:15:10 -0500 Subject: [PATCH 13/17] Update podspec swift version requirement to 5.0 --- WordPressKit.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPressKit.podspec b/WordPressKit.podspec index ee8ffdb3..afbc95a8 100644 --- a/WordPressKit.podspec +++ b/WordPressKit.podspec @@ -12,7 +12,7 @@ Pod::Spec.new do |s| s.license = "GPLv2" s.author = { "WordPress" => "mobile@automattic.com" } s.platform = :ios, "11.0" - s.swift_version = '4.2' + s.swift_version = '5.0' s.source = { :git => "https://github.com/wordpress-mobile/WordPressKit-iOS.git", :tag => s.version.to_s } s.source_files = 'WordPressKit/**/*.{h,m,swift}' s.private_header_files = "WordPressKit/Private/*.h" From cd056a10f742cae0da4d9e13614ca6f9741948fc Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Thu, 12 Mar 2020 13:55:13 -0500 Subject: [PATCH 14/17] Bug fix #149 - do not output social login to logs --- WordPressKit/WordPressComOAuthClient.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPressKit/WordPressComOAuthClient.swift b/WordPressKit/WordPressComOAuthClient.swift index 1800d9b3..e63f51e3 100644 --- a/WordPressKit/WordPressComOAuthClient.swift +++ b/WordPressKit/WordPressComOAuthClient.swift @@ -272,7 +272,7 @@ public final class WordPressComOAuthClient: NSObject { .responseJSON(completionHandler: { response in switch response.result { case .success(let responseObject): - DDLogVerbose("Received Social Login Oauth response: \(self.cleanedUpResponseForLogging(responseObject as AnyObject? ?? "nil" as AnyObject))") + DDLogVerbose("Received Social Login Oauth response.") let defaultError = NSError(domain: WordPressComOAuthClient.WordPressComOAuthErrorDomain, code: WordPressComOAuthError.unknown.rawValue, From 1a219b3095835dc204fded6eeb13c7e3a09850d7 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Thu, 12 Mar 2020 14:10:25 -0500 Subject: [PATCH 15/17] Update podspec to 4.6.0-beta.6 --- WordPressKit.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPressKit.podspec b/WordPressKit.podspec index afbc95a8..3ea9034b 100644 --- a/WordPressKit.podspec +++ b/WordPressKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "WordPressKit" - s.version = "4.6.0-beta.5" + s.version = "4.6.0-beta.6" s.summary = "WordPressKit offers a clean and simple WordPress.com and WordPress.org API." s.description = <<-DESC From 08ab35a9fc648bbe8a7edde8a340b35960ca9464 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Fri, 13 Mar 2020 13:59:32 -0500 Subject: [PATCH 16/17] Delete code migration substitutions and use code that is easier to read --- WordPressKit/PluginDirectoryEntry.swift | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/WordPressKit/PluginDirectoryEntry.swift b/WordPressKit/PluginDirectoryEntry.swift index 3c60044f..bef42a75 100644 --- a/WordPressKit/PluginDirectoryEntry.swift +++ b/WordPressKit/PluginDirectoryEntry.swift @@ -83,17 +83,19 @@ extension PluginDirectoryEntry: Codable { lastUpdated = try? container.decode(Date.self, forKey: .lastUpdated) rating = try container.decode(Int.self, forKey: .rating) - let icons = ((try? container.decodeIfPresent([String: String].self, forKey: .icons)) as [String : String]??) - icon = icons??["2x"].flatMap(URL.init(string:)) + let icons = try? container.decodeIfPresent([String: String].self, forKey: .icons) + icon = icons?["2x"].flatMap({ (s) -> URL? in + URL(string: s) + }) // If there's no hi-res version of the banner, the API returns `high: false`, instead of something more logical, // like an empty string or `null`, hence the dance below. let banners = try? container.nestedContainer(keyedBy: BannersKeys.self, forKey: .banners) - if let highRes = ((try? banners?.decodeIfPresent(String.self, forKey: .high)) as String??) { - banner = highRes.flatMap(URL.init(string:)) - } else if let lowRes = ((try? banners?.decodeIfPresent(String.self, forKey: .low)) as String??) { - banner = lowRes.flatMap(URL.init(string:)) + if let highRes = try? banners?.decodeIfPresent(String.self, forKey: .high) { + banner = URL(string: highRes) + } else if let lowRes = try? banners?.decodeIfPresent(String.self, forKey: .low) { + banner = URL(string: lowRes) } else { banner = nil } From b254c06db9e2979717e31ef913755ec7ea566be6 Mon Sep 17 00:00:00 2001 From: "Thuy.Copeland" Date: Fri, 13 Mar 2020 14:00:01 -0500 Subject: [PATCH 17/17] Delete generated code substitution and use easier to read code --- WordPressKit/WordPressOrgXMLRPCValidator.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/WordPressKit/WordPressOrgXMLRPCValidator.swift b/WordPressKit/WordPressOrgXMLRPCValidator.swift index e593a94b..3e40c434 100644 --- a/WordPressKit/WordPressOrgXMLRPCValidator.swift +++ b/WordPressKit/WordPressOrgXMLRPCValidator.swift @@ -325,8 +325,7 @@ open class WordPressOrgXMLRPCValidator: NSObject { guard let data = data, let responseString = String(data: data, encoding: String.Encoding.utf8), let parser = WordPressRSDParser(xmlString: responseString), - let endpoint = (((try? parser.parsedEndpoint()) as String??)), - let xmlrpc = endpoint, + let xmlrpc = try? parser.parsedEndpoint(), let xmlrpcURL = URL(string: xmlrpc) else { failure(WordPressOrgXMLRPCValidatorError.invalid as NSError)