From 034421536ba83e46d456188c4df1fa03b554c63f Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 12:58:14 -0400 Subject: [PATCH 01/18] Bump the version number to 3.1.5 --- OneTimePassword.podspec | 2 +- Sources/Info.plist | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/OneTimePassword.podspec b/OneTimePassword.podspec index 01c5ae37..e56e7bcc 100644 --- a/OneTimePassword.podspec +++ b/OneTimePassword.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "OneTimePassword" - s.version = "3.1.4" + s.version = "3.1.5" s.summary = "A small library for generating TOTP and HOTP one-time passwords." s.homepage = "https://github.com/mattrubin/OneTimePassword" s.license = "MIT" diff --git a/Sources/Info.plist b/Sources/Info.plist index 78223678..132656df 100644 --- a/Sources/Info.plist +++ b/Sources/Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.1.4 + 3.1.5 CFBundleSignature ???? CFBundleVersion - 3.1.4 + 3.1.5 NSPrincipalClass From b78393f852c5fc4179172dd9a45103c0f69ef856 Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 13:04:27 -0400 Subject: [PATCH 02/18] Add `pod lib lint` runs to the CI jobs --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 49d3b663..f772e60c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,6 +34,10 @@ matrix: env: BUILD_ONLY="YES" RUNTIME="watchOS 3.2" DEVICE="Apple Watch Series 2 - 42mm" - xcode_scheme: OneTimePassword (watchOS) env: BUILD_ONLY="YES" RUNTIME="watchOS 2.0" DEVICE="Apple Watch - 38mm" + # Include CocoaPods builds + - script: pod lib lint + - osx_image: xcode9 + script: pod lib lint # Check out nested dependencies before_install: git submodule update --init --recursive From 9cd71f402c72648235a273d4a103cc688763a8c7 Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 13:20:52 -0400 Subject: [PATCH 03/18] Clean the env and before_script for CI CocoaPods builds --- .travis.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f772e60c..a906d427 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,8 +35,13 @@ matrix: - xcode_scheme: OneTimePassword (watchOS) env: BUILD_ONLY="YES" RUNTIME="watchOS 2.0" DEVICE="Apple Watch - 38mm" # Include CocoaPods builds - - script: pod lib lint - osx_image: xcode9 + env: [] + before_script: [] + script: pod lib lint + - osx_image: xcode10 + env: [] + before_script: [] script: pod lib lint # Check out nested dependencies From 30fa43c5d687f25ef7d99e6cca57e13124f6f3e7 Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 13:22:03 -0400 Subject: [PATCH 04/18] Update CocoaPods before attempting the Xcode 9 CocoaPods CI build --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a906d427..0d1b275a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,6 +37,7 @@ matrix: # Include CocoaPods builds - osx_image: xcode9 env: [] + before_install: gem update cocoapods before_script: [] script: pod lib lint - osx_image: xcode10 @@ -45,7 +46,7 @@ matrix: script: pod lib lint # Check out nested dependencies -before_install: git submodule update --init --recursive +install: git submodule update --init --recursive before_script: - DEVICE_ID=com.apple.CoreSimulator.SimDeviceType.$(echo $DEVICE | sed -E -e "s/[ \-]+/ /g" -e "s/[^[:alnum:]]/-/g") From adaede02360f494bbb510c7b568f5a28a452f07f Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 13:31:17 -0400 Subject: [PATCH 05/18] Allow warnings in CI CocoaPods builds --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0d1b275a..351c2abd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,11 +39,11 @@ matrix: env: [] before_install: gem update cocoapods before_script: [] - script: pod lib lint + script: pod lib lint --allow-warnings - osx_image: xcode10 env: [] before_script: [] - script: pod lib lint + script: pod lib lint --allow-warnings # Check out nested dependencies install: git submodule update --init --recursive From 5af336d0b3895fe2d8c746f6158e7767dd530e6d Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 13:31:38 -0400 Subject: [PATCH 06/18] Attempt a new way of unsetting Travis configurations --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 351c2abd..1747a705 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,13 +36,13 @@ matrix: env: BUILD_ONLY="YES" RUNTIME="watchOS 2.0" DEVICE="Apple Watch - 38mm" # Include CocoaPods builds - osx_image: xcode9 - env: [] + env: null before_install: gem update cocoapods - before_script: [] + before_script: null script: pod lib lint --allow-warnings - osx_image: xcode10 - env: [] - before_script: [] + env: null + before_script: null script: pod lib lint --allow-warnings # Check out nested dependencies From 7523dc7cc763f20ada1fee9351d437a93f9a3451 Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 13:46:25 -0400 Subject: [PATCH 07/18] Temporarily disable Xcode 9 CocoaPods CI build --- .travis.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1747a705..d494fcf2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,11 +35,11 @@ matrix: - xcode_scheme: OneTimePassword (watchOS) env: BUILD_ONLY="YES" RUNTIME="watchOS 2.0" DEVICE="Apple Watch - 38mm" # Include CocoaPods builds - - osx_image: xcode9 - env: null - before_install: gem update cocoapods - before_script: null - script: pod lib lint --allow-warnings + # - osx_image: xcode9 + # env: null + # before_install: gem update cocoapods + # before_script: null + # script: pod lib lint --allow-warnings - osx_image: xcode10 env: null before_script: null From eaad9b6bf38573cdfb8a96446b00c3c841f5b8bb Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 18:54:31 -0400 Subject: [PATCH 08/18] Re-enable the CocoaPods Xcode 9 CI build, but allow it to fail --- .travis.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index d494fcf2..c68b7f28 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,15 +35,22 @@ matrix: - xcode_scheme: OneTimePassword (watchOS) env: BUILD_ONLY="YES" RUNTIME="watchOS 2.0" DEVICE="Apple Watch - 38mm" # Include CocoaPods builds - # - osx_image: xcode9 - # env: null - # before_install: gem update cocoapods - # before_script: null - # script: pod lib lint --allow-warnings + - osx_image: xcode9 + env: + before_install: gem update cocoapods + before_script: + script: pod lib lint --allow-warnings - osx_image: xcode10 env: null before_script: null script: pod lib lint --allow-warnings + allow_failures: + - osx_image: xcode9 + env: + before_install: gem update cocoapods + before_script: + script: pod lib lint --allow-warnings + # Check out nested dependencies install: git submodule update --init --recursive From 93fcd070cb878d15507657ea148c3ce4f374623b Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 19:04:44 -0400 Subject: [PATCH 09/18] Remove unnecessary Travis install step Travis already recursively updates submodules on checkout. --- .travis.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index c68b7f28..754f7d86 100644 --- a/.travis.yml +++ b/.travis.yml @@ -51,10 +51,6 @@ matrix: before_script: script: pod lib lint --allow-warnings - -# Check out nested dependencies -install: git submodule update --init --recursive - before_script: - DEVICE_ID=com.apple.CoreSimulator.SimDeviceType.$(echo $DEVICE | sed -E -e "s/[ \-]+/ /g" -e "s/[^[:alnum:]]/-/g") - RUNTIME_ID=com.apple.CoreSimulator.SimRuntime.$(echo $RUNTIME | sed -E -e "s/[ \-]+/ /g" -e "s/[^[:alnum:]]/-/g") From f08f60b45d970a485c9034eabde33e31a7e15c9d Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 19:05:04 -0400 Subject: [PATCH 10/18] Add verbose flag to failing CocoaPods Xcode 9 CI build --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 754f7d86..9bfdec9b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,7 +39,7 @@ matrix: env: before_install: gem update cocoapods before_script: - script: pod lib lint --allow-warnings + script: pod lib lint --allow-warnings --verbose - osx_image: xcode10 env: null before_script: null @@ -49,7 +49,7 @@ matrix: env: before_install: gem update cocoapods before_script: - script: pod lib lint --allow-warnings + script: pod lib lint --allow-warnings --verbose before_script: - DEVICE_ID=com.apple.CoreSimulator.SimDeviceType.$(echo $DEVICE | sed -E -e "s/[ \-]+/ /g" -e "s/[^[:alnum:]]/-/g") From bc1f733f7d55bdb1b5983a0f04157f5e3c9cfbbb Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 19:26:32 -0400 Subject: [PATCH 11/18] Add a Carthage build to the CI matrix --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 9bfdec9b..52a35058 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,6 +34,10 @@ matrix: env: BUILD_ONLY="YES" RUNTIME="watchOS 3.2" DEVICE="Apple Watch Series 2 - 42mm" - xcode_scheme: OneTimePassword (watchOS) env: BUILD_ONLY="YES" RUNTIME="watchOS 2.0" DEVICE="Apple Watch - 38mm" + # Include a Carthage build + - env: null + before_script: null + script: carthage build --no-skip-current # Include CocoaPods builds - osx_image: xcode9 env: From f2cd32a8824f0262d29a020a560638adcdeb9f36 Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 19:38:18 -0400 Subject: [PATCH 12/18] Add an Xcode 9 Carthage CI build --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 52a35058..d2e89615 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,10 +34,14 @@ matrix: env: BUILD_ONLY="YES" RUNTIME="watchOS 3.2" DEVICE="Apple Watch Series 2 - 42mm" - xcode_scheme: OneTimePassword (watchOS) env: BUILD_ONLY="YES" RUNTIME="watchOS 2.0" DEVICE="Apple Watch - 38mm" - # Include a Carthage build + # Include Carthage builds - env: null before_script: null script: carthage build --no-skip-current + - osx_image: xcode9 + env: null + before_script: null + script: carthage build --no-skip-current # Include CocoaPods builds - osx_image: xcode9 env: From 2f9223966e1f6ce43903e5da102bca3d3fcdaf5a Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 18 Sep 2018 19:41:10 -0400 Subject: [PATCH 13/18] Clean up the Travis CI configuration --- .travis.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index d2e89615..6f3747f4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,24 +35,24 @@ matrix: - xcode_scheme: OneTimePassword (watchOS) env: BUILD_ONLY="YES" RUNTIME="watchOS 2.0" DEVICE="Apple Watch - 38mm" # Include Carthage builds - - env: null - before_script: null + - env: + before_script: script: carthage build --no-skip-current - osx_image: xcode9 - env: null - before_script: null + env: + before_script: script: carthage build --no-skip-current # Include CocoaPods builds + - env: + before_script: + script: pod lib lint --allow-warnings - osx_image: xcode9 env: before_install: gem update cocoapods before_script: script: pod lib lint --allow-warnings --verbose - - osx_image: xcode10 - env: null - before_script: null - script: pod lib lint --allow-warnings allow_failures: + # Allow the Xcode 9 `pod lib lint` to fail, as this test method currently has an issue using the custom CommonCrypto module maps. - osx_image: xcode9 env: before_install: gem update cocoapods From a88654adf9224d42062c9b3008d70a46252ed219 Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Tue, 11 Dec 2018 13:23:57 -0500 Subject: [PATCH 14/18] Enable several new SwiftLint rules --- .swiftlint.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.swiftlint.yml b/.swiftlint.yml index 352d86c7..4bb6053f 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -5,8 +5,10 @@ excluded: opt_in_rules: - array_init - attributes + - closure_body_length - closure_end_indentation - closure_spacing + - collection_alignment - conditional_returns_on_newline - contains_over_first_not_nil - convenience_type @@ -23,14 +25,17 @@ opt_in_rules: - fatal_error_message - file_header - first_where + - identical_operands - implicit_return - implicitly_unwrapped_optional - joined_default_parameter + - legacy_random - let_var_whitespace - literal_expression_end_indentation - lower_acl_than_parent - modifier_order - multiline_function_chains + - multiline_literal_brackets - multiline_parameters - nimble_operator - operator_usage_whitespace @@ -43,10 +48,14 @@ opt_in_rules: - redundant_nil_coalescing - single_test_class - sorted_first_last + - static_operator - switch_case_on_newline + - toggle_bool - unavailable_function - unneeded_parentheses_in_closure_argument - untyped_error_in_catch + - unused_import + - unused_private_declaration - vertical_parameter_alignment_on_call - yoda_condition disabled_rules: From 83a3872ff5ba719bda9a9d56249d52ef3c4a0431 Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Thu, 11 Apr 2019 16:17:40 -0400 Subject: [PATCH 15/18] Update project localization as recommended by Xcode 10.2 --- OneTimePassword.xcodeproj/project.pbxproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OneTimePassword.xcodeproj/project.pbxproj b/OneTimePassword.xcodeproj/project.pbxproj index 2d9b383a..a69666ff 100644 --- a/OneTimePassword.xcodeproj/project.pbxproj +++ b/OneTimePassword.xcodeproj/project.pbxproj @@ -557,10 +557,11 @@ }; buildConfigurationList = C97C82321946E51D00FD9F4C /* Build configuration list for PBXProject "OneTimePassword" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = C97C822E1946E51D00FD9F4C; productRefGroup = C97C82391946E51D00FD9F4C /* Products */; From 558d0d5009c1c0b8e54bf8fe0380b332b9ef4001 Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Thu, 11 Apr 2019 16:22:36 -0400 Subject: [PATCH 16/18] Upgrade Base32 --- Cartfile | 2 +- Cartfile.resolved | 2 +- Carthage/Checkouts/Base32 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cartfile b/Cartfile index dda7e5c9..9a13ed5e 100644 --- a/Cartfile +++ b/Cartfile @@ -1,3 +1,3 @@ # Configuration for Carthage (https://github.com/Carthage/Carthage) -github "mattrubin/Base32" "xcode9" +github "mattrubin/Base32" "1.1.2+xcode10.2" diff --git a/Cartfile.resolved b/Cartfile.resolved index aef3ef05..823b32ef 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,2 +1,2 @@ github "jspahrsummers/xcconfigs" "0.12" -github "mattrubin/Base32" "xcode9" +github "mattrubin/Base32" "1.1.2+xcode10.2" diff --git a/Carthage/Checkouts/Base32 b/Carthage/Checkouts/Base32 index 24f64bf8..d3265800 160000 --- a/Carthage/Checkouts/Base32 +++ b/Carthage/Checkouts/Base32 @@ -1 +1 @@ -Subproject commit 24f64bf81b15c815019f37cf64cfbb3a253e2bea +Subproject commit d3265800b6c0ac9c0927f7989d0750017dd10ffc From 491538c18f7fcb750f20c75d03e0d4623099b45a Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Thu, 11 Apr 2019 16:39:25 -0400 Subject: [PATCH 17/18] Defer Swift 5 migration --- OneTimePassword.xcodeproj/project.pbxproj | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/OneTimePassword.xcodeproj/project.pbxproj b/OneTimePassword.xcodeproj/project.pbxproj index a69666ff..8c5da6e6 100644 --- a/OneTimePassword.xcodeproj/project.pbxproj +++ b/OneTimePassword.xcodeproj/project.pbxproj @@ -526,27 +526,28 @@ TargetAttributes = { 5B39F4931DBD06BA00CD2DAB = { CreatedOnToolsVersion = 8.0; + LastSwiftMigration = 1020; ProvisioningStyle = Manual; }; C97C82371946E51D00FD9F4C = { CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0900; + LastSwiftMigration = 1020; ProvisioningStyle = Manual; }; C97C82421946E51D00FD9F4C = { CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0900; + LastSwiftMigration = 1020; ProvisioningStyle = Manual; TestTargetID = FD6C3C0B1E0200F800EC4528; }; C9A486B2196F352E00524F51 = { CreatedOnToolsVersion = 6.0; - LastSwiftMigration = 0900; + LastSwiftMigration = 1020; ProvisioningStyle = Manual; }; FD6C3C0B1E0200F800EC4528 = { CreatedOnToolsVersion = 8.2; - LastSwiftMigration = 0900; + LastSwiftMigration = 1020; ProvisioningStyle = Automatic; }; FDD3B8661DD6E59E00F87980 = { From 5735f25884fa37b771ed414ad6266adda52fdca3 Mon Sep 17 00:00:00 2001 From: Matt Rubin Date: Thu, 11 Apr 2019 18:21:47 -0400 Subject: [PATCH 18/18] Update the changelog --- CHANGELOG.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc7f723b..4f71cd62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ +## [3.1.5][] (2019-04-11) +- Enable additional linting and CI testing. +([#196](https://github.com/mattrubin/OneTimePassword/pull/196), +[#192](https://github.com/mattrubin/OneTimePassword/pull/192)) +- Satisfy various project-level warnings introduced in Xcode 10.2. +([#198](https://github.com/mattrubin/OneTimePassword/pull/198)) + ## [3.1.4][] (2018-09-15) - Fix compilation errors and add CI testing for Xcode 10. ([#182](https://github.com/mattrubin/OneTimePassword/pull/182), @@ -166,8 +173,9 @@ Changes between prerelease versions of OneTimePassword version 2 can be found be ## [1.0.0][] (2014-07-17) -[develop]: https://github.com/mattrubin/OneTimePassword/compare/3.1.4...develop +[develop]: https://github.com/mattrubin/OneTimePassword/compare/3.1.5...develop +[3.1.5]: https://github.com/mattrubin/OneTimePassword/compare/3.1.4...3.1.5 [3.1.4]: https://github.com/mattrubin/OneTimePassword/compare/3.1.3...3.1.4 [3.1.3]: https://github.com/mattrubin/OneTimePassword/compare/3.1.2...3.1.3 [3.1.2]: https://github.com/mattrubin/OneTimePassword/compare/3.1.1...3.1.2