Skip to content

Commit 9b8d2fa

Browse files
committed
Merge branch 'feature/swift-4' into develop
# Conflicts: # Configs/Hydra.plist # Hydra.xcodeproj/project.xcworkspace/xcuserdata/dan.xcuserdatad/UserInterfaceState.xcuserstate # HydraAsync.podspec # README.md
2 parents ffa3cb5 + 580c75c commit 9b8d2fa

27 files changed

+256
-85
lines changed

.swift-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.0
1+
4.0

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,29 @@
44

55
## CHANGELOG
66

7+
* Version **[1.0.0](#100_110)** (Swift 3.x) and **[1.1.0](#100_110)** (Swift 4.x)
78
* Version **[0.9.9](#099)**
89
* Version **[0.9.7](#097)**
910
* Version **[0.9.4](#094)**
1011
* Version **[0.9.3](#093)**
1112
* Version **[0.9.2](#092)**
1213
* Version **[0.9.1](#091)**
1314

15+
<a name="100_110" />
16+
17+
## Hydra 1.0.0 (for Swift 3) & 1.1.0 (for Swift 4)
18+
---
19+
- **Release Date**: 2017-09-04
20+
- **Download Version for Swift 3**: [Download 1.0.0](https://github.com/malcommac/Hydra/releases/tag/1.0.0)
21+
- **Download Version for Swift 4**: [Download 1.1.0](https://github.com/malcommac/Hydra/releases/tag/1.1.0)
22+
23+
- [#45](https://github.com/malcommac/Hydra/pull/45) Added support for cancellable promises inside the `await` operator.
24+
- [#46](https://github.com/malcommac/Hydra/pull/46) Resolved an issue where `timeout` operator keep a Promise alive even if it resolves correctly before it expires.
25+
- [#44](https://github.com/malcommac/Hydra/pull/44) Resolved a compatibility issue with `await` under iOS 11 or later.
26+
- [#48](https://github.com/malcommac/Hydra/pull/48) Resolved a memory leaks with cancellable promises.
27+
- [#49](https://github.com/malcommac/Hydra/pull/49) Replaced with `(Void)` with `()` to fix warnings with Swift 4 and XCode 9
28+
29+
1430
<a name="099" />
1531

1632
## Hydra 0.9.9

Configs/Hydra.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>1.0</string>
18+
<string>1.1</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

DemoApp/ViewController.swift

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,21 @@
99
import UIKit
1010
import Hydra
1111

12-
public enum Errors: Error {
13-
case any
14-
}
15-
1612
class ViewController: UIViewController {
1713

1814
override func viewDidLoad() {
1915
super.viewDidLoad()
2016
// Do any additional setup after loading the view, typically from a nib.
2117
}
22-
18+
2319
override func didReceiveMemoryWarning() {
2420
super.didReceiveMemoryWarning()
2521
// Dispose of any resources that can be recreated.
2622
}
27-
23+
24+
override func viewDidAppear(_ animated: Bool) {
25+
super.viewDidAppear(animated)
26+
}
2827

2928
}
3029

Hydra.podspec

Lines changed: 0 additions & 19 deletions
This file was deleted.

Hydra.xcodeproj/project.pbxproj

Lines changed: 43 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@
9999
37ACAE401F0FB53A00ED284A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 37ACAE3F1F0FB53A00ED284A /* Assets.xcassets */; };
100100
37ACAE431F0FB53A00ED284A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 37ACAE411F0FB53A00ED284A /* LaunchScreen.storyboard */; };
101101
37ACAE4A1F0FB55100ED284A /* Hydra.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D97C1BEFF229002C0205 /* Hydra.framework */; };
102+
37ACBBA41F55FD7D003E92AC /* DispatchTimerWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37ACBBA31F55FD7D003E92AC /* DispatchTimerWrapper.swift */; };
103+
37ACBBA51F55FD7D003E92AC /* DispatchTimerWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37ACBBA31F55FD7D003E92AC /* DispatchTimerWrapper.swift */; };
104+
37ACBBA61F55FD7D003E92AC /* DispatchTimerWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37ACBBA31F55FD7D003E92AC /* DispatchTimerWrapper.swift */; };
105+
37ACBBA71F55FD7D003E92AC /* DispatchTimerWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37ACBBA31F55FD7D003E92AC /* DispatchTimerWrapper.swift */; };
102106
52D6D9871BEFF229002C0205 /* Hydra.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52D6D97C1BEFF229002C0205 /* Hydra.framework */; };
103107
8933C78E1EB5B82C000D00A4 /* HydraTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* HydraTests.swift */; };
104108
8933C78F1EB5B82C000D00A4 /* HydraTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8933C7891EB5B82A000D00A4 /* HydraTests.swift */; };
@@ -181,6 +185,7 @@
181185
37ACAE3F1F0FB53A00ED284A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
182186
37ACAE421F0FB53A00ED284A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
183187
37ACAE441F0FB53A00ED284A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
188+
37ACBBA31F55FD7D003E92AC /* DispatchTimerWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DispatchTimerWrapper.swift; path = Hydra/DispatchTimerWrapper.swift; sourceTree = "<group>"; };
184189
52D6D97C1BEFF229002C0205 /* Hydra.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Hydra.framework; sourceTree = BUILT_PRODUCTS_DIR; };
185190
52D6D9861BEFF229002C0205 /* Hydra-iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Hydra-iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
186191
52D6D9E21BEFFF6E002C0205 /* Hydra.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Hydra.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -330,6 +335,7 @@
330335
37ACADDB1F0FB4A800ED284A /* Promise+Timeout.swift */,
331336
37ACADDC1F0FB4A800ED284A /* Promise+Validate.swift */,
332337
37ACADDD1F0FB4A800ED284A /* Promise+Zip.swift */,
338+
37ACBBA31F55FD7D003E92AC /* DispatchTimerWrapper.swift */,
333339
);
334340
path = Sources;
335341
sourceTree = "<group>";
@@ -545,7 +551,7 @@
545551
isa = PBXProject;
546552
attributes = {
547553
LastSwiftUpdateCheck = 0830;
548-
LastUpgradeCheck = 0810;
554+
LastUpgradeCheck = 0900;
549555
ORGANIZATIONNAME = Hydra;
550556
TargetAttributes = {
551557
37ACAE351F0FB53A00ED284A = {
@@ -705,6 +711,7 @@
705711
37ACAE221F0FB4A800ED284A /* Promise+Then.swift in Sources */,
706712
37ACAE1E1F0FB4A800ED284A /* Promise+State.swift in Sources */,
707713
37ACAE1A1F0FB4A800ED284A /* Promise+Retry.swift in Sources */,
714+
37ACBBA41F55FD7D003E92AC /* DispatchTimerWrapper.swift in Sources */,
708715
37ACAE0A1F0FB4A800ED284A /* Promise+Observer.swift in Sources */,
709716
);
710717
runOnlyForDeploymentPostprocessing = 0;
@@ -723,6 +730,7 @@
723730
files = (
724731
37ACAE081F0FB4A800ED284A /* Promise+Map.swift in Sources */,
725732
37ACADF41F0FB4A800ED284A /* Promise+Any.swift in Sources */,
733+
37ACBBA61F55FD7D003E92AC /* DispatchTimerWrapper.swift in Sources */,
726734
37ACADF01F0FB4A800ED284A /* Promise+Always.swift in Sources */,
727735
37ACAE041F0FB4A800ED284A /* Promise+Defer.swift in Sources */,
728736
37ACAE181F0FB4A800ED284A /* Promise+Reduce.swift in Sources */,
@@ -751,6 +759,7 @@
751759
files = (
752760
37ACAE091F0FB4A800ED284A /* Promise+Map.swift in Sources */,
753761
37ACADF51F0FB4A800ED284A /* Promise+Any.swift in Sources */,
762+
37ACBBA71F55FD7D003E92AC /* DispatchTimerWrapper.swift in Sources */,
754763
37ACADF11F0FB4A800ED284A /* Promise+Always.swift in Sources */,
755764
37ACAE051F0FB4A800ED284A /* Promise+Defer.swift in Sources */,
756765
37ACAE191F0FB4A800ED284A /* Promise+Reduce.swift in Sources */,
@@ -779,6 +788,7 @@
779788
files = (
780789
37ACAE071F0FB4A800ED284A /* Promise+Map.swift in Sources */,
781790
37ACADF31F0FB4A800ED284A /* Promise+Any.swift in Sources */,
791+
37ACBBA51F55FD7D003E92AC /* DispatchTimerWrapper.swift in Sources */,
782792
37ACADEF1F0FB4A800ED284A /* Promise+Always.swift in Sources */,
783793
37ACAE031F0FB4A800ED284A /* Promise+Defer.swift in Sources */,
784794
37ACAE171F0FB4A800ED284A /* Promise+Reduce.swift in Sources */,
@@ -876,7 +886,7 @@
876886
PRODUCT_BUNDLE_IDENTIFIER = com.danielemargutti.DemoApp;
877887
PRODUCT_NAME = "$(TARGET_NAME)";
878888
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
879-
SWIFT_VERSION = 3.0;
889+
SWIFT_VERSION = 4.0;
880890
};
881891
name = Debug;
882892
};
@@ -894,7 +904,7 @@
894904
PRODUCT_BUNDLE_IDENTIFIER = com.danielemargutti.DemoApp;
895905
PRODUCT_NAME = "$(TARGET_NAME)";
896906
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
897-
SWIFT_VERSION = 3.0;
907+
SWIFT_VERSION = 4.0;
898908
};
899909
name = Release;
900910
};
@@ -906,14 +916,20 @@
906916
CLANG_CXX_LIBRARY = "libc++";
907917
CLANG_ENABLE_MODULES = YES;
908918
CLANG_ENABLE_OBJC_ARC = YES;
919+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
909920
CLANG_WARN_BOOL_CONVERSION = YES;
921+
CLANG_WARN_COMMA = YES;
910922
CLANG_WARN_CONSTANT_CONVERSION = YES;
911923
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
912924
CLANG_WARN_EMPTY_BODY = YES;
913925
CLANG_WARN_ENUM_CONVERSION = YES;
914926
CLANG_WARN_INFINITE_RECURSION = YES;
915927
CLANG_WARN_INT_CONVERSION = YES;
928+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
929+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
916930
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
931+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
932+
CLANG_WARN_STRICT_PROTOTYPES = YES;
917933
CLANG_WARN_SUSPICIOUS_MOVE = YES;
918934
CLANG_WARN_UNREACHABLE_CODE = YES;
919935
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -942,7 +958,7 @@
942958
ONLY_ACTIVE_ARCH = YES;
943959
SDKROOT = iphoneos;
944960
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
945-
SWIFT_VERSION = 3.0;
961+
SWIFT_VERSION = 4.0;
946962
TARGETED_DEVICE_FAMILY = "1,2";
947963
VERSIONING_SYSTEM = "apple-generic";
948964
VERSION_INFO_PREFIX = "";
@@ -957,14 +973,20 @@
957973
CLANG_CXX_LIBRARY = "libc++";
958974
CLANG_ENABLE_MODULES = YES;
959975
CLANG_ENABLE_OBJC_ARC = YES;
976+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
960977
CLANG_WARN_BOOL_CONVERSION = YES;
978+
CLANG_WARN_COMMA = YES;
961979
CLANG_WARN_CONSTANT_CONVERSION = YES;
962980
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
963981
CLANG_WARN_EMPTY_BODY = YES;
964982
CLANG_WARN_ENUM_CONVERSION = YES;
965983
CLANG_WARN_INFINITE_RECURSION = YES;
966984
CLANG_WARN_INT_CONVERSION = YES;
985+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
986+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
967987
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
988+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
989+
CLANG_WARN_STRICT_PROTOTYPES = YES;
968990
CLANG_WARN_SUSPICIOUS_MOVE = YES;
969991
CLANG_WARN_UNREACHABLE_CODE = YES;
970992
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -985,7 +1007,7 @@
9851007
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
9861008
MTL_ENABLE_DEBUG_INFO = NO;
9871009
SDKROOT = iphoneos;
988-
SWIFT_VERSION = 3.0;
1010+
SWIFT_VERSION = 4.0;
9891011
TARGETED_DEVICE_FAMILY = "1,2";
9901012
VALIDATE_PRODUCT = YES;
9911013
VERSIONING_SYSTEM = "apple-generic";
@@ -1001,7 +1023,7 @@
10011023
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
10021024
DEFINES_MODULE = YES;
10031025
DYLIB_COMPATIBILITY_VERSION = 1;
1004-
DYLIB_CURRENT_VERSION = 1;
1026+
DYLIB_CURRENT_VERSION = 0;
10051027
DYLIB_INSTALL_NAME_BASE = "@rpath";
10061028
INFOPLIST_FILE = Configs/Hydra.plist;
10071029
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
@@ -1012,7 +1034,7 @@
10121034
PRODUCT_NAME = Hydra;
10131035
SKIP_INSTALL = YES;
10141036
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1015-
SWIFT_VERSION = 3.0;
1037+
SWIFT_VERSION = 4.0;
10161038
};
10171039
name = Debug;
10181040
};
@@ -1024,7 +1046,7 @@
10241046
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
10251047
DEFINES_MODULE = YES;
10261048
DYLIB_COMPATIBILITY_VERSION = 1;
1027-
DYLIB_CURRENT_VERSION = 1;
1049+
DYLIB_CURRENT_VERSION = 0;
10281050
DYLIB_INSTALL_NAME_BASE = "@rpath";
10291051
INFOPLIST_FILE = Configs/Hydra.plist;
10301052
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
@@ -1034,7 +1056,7 @@
10341056
PRODUCT_NAME = Hydra;
10351057
SKIP_INSTALL = YES;
10361058
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1037-
SWIFT_VERSION = 3.0;
1059+
SWIFT_VERSION = 4.0;
10381060
};
10391061
name = Release;
10401062
};
@@ -1048,7 +1070,7 @@
10481070
PRODUCT_BUNDLE_IDENTIFIER = "com.Hydra.Hydra-iOS-Tests";
10491071
PRODUCT_NAME = "$(TARGET_NAME)";
10501072
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1051-
SWIFT_VERSION = 3.0;
1073+
SWIFT_VERSION = 4.0;
10521074
};
10531075
name = Debug;
10541076
};
@@ -1062,7 +1084,7 @@
10621084
PRODUCT_BUNDLE_IDENTIFIER = "com.Hydra.Hydra-iOS-Tests";
10631085
PRODUCT_NAME = "$(TARGET_NAME)";
10641086
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1065-
SWIFT_VERSION = 3.0;
1087+
SWIFT_VERSION = 4.0;
10661088
};
10671089
name = Release;
10681090
};
@@ -1084,7 +1106,7 @@
10841106
SDKROOT = watchos;
10851107
SKIP_INSTALL = YES;
10861108
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1087-
SWIFT_VERSION = 3.0;
1109+
SWIFT_VERSION = 4.0;
10881110
TARGETED_DEVICE_FAMILY = 4;
10891111
WATCHOS_DEPLOYMENT_TARGET = 2.0;
10901112
};
@@ -1108,7 +1130,7 @@
11081130
SDKROOT = watchos;
11091131
SKIP_INSTALL = YES;
11101132
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1111-
SWIFT_VERSION = 3.0;
1133+
SWIFT_VERSION = 4.0;
11121134
TARGETED_DEVICE_FAMILY = 4;
11131135
WATCHOS_DEPLOYMENT_TARGET = 2.0;
11141136
};
@@ -1132,7 +1154,7 @@
11321154
SDKROOT = appletvos;
11331155
SKIP_INSTALL = YES;
11341156
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1135-
SWIFT_VERSION = 3.0;
1157+
SWIFT_VERSION = 4.0;
11361158
TARGETED_DEVICE_FAMILY = 3;
11371159
TVOS_DEPLOYMENT_TARGET = 9.0;
11381160
};
@@ -1156,7 +1178,7 @@
11561178
SDKROOT = appletvos;
11571179
SKIP_INSTALL = YES;
11581180
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1159-
SWIFT_VERSION = 3.0;
1181+
SWIFT_VERSION = 4.0;
11601182
TARGETED_DEVICE_FAMILY = 3;
11611183
TVOS_DEPLOYMENT_TARGET = 9.0;
11621184
};
@@ -1183,7 +1205,7 @@
11831205
SDKROOT = macosx;
11841206
SKIP_INSTALL = YES;
11851207
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
1186-
SWIFT_VERSION = 3.0;
1208+
SWIFT_VERSION = 4.0;
11871209
};
11881210
name = Debug;
11891211
};
@@ -1208,7 +1230,7 @@
12081230
SDKROOT = macosx;
12091231
SKIP_INSTALL = YES;
12101232
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1211-
SWIFT_VERSION = 3.0;
1233+
SWIFT_VERSION = 4.0;
12121234
};
12131235
name = Release;
12141236
};
@@ -1224,7 +1246,7 @@
12241246
PRODUCT_BUNDLE_IDENTIFIER = "com.Hydra.Hydra-macOS-Tests";
12251247
PRODUCT_NAME = "$(TARGET_NAME)";
12261248
SDKROOT = macosx;
1227-
SWIFT_VERSION = 3.0;
1249+
SWIFT_VERSION = 4.0;
12281250
};
12291251
name = Debug;
12301252
};
@@ -1241,7 +1263,7 @@
12411263
PRODUCT_NAME = "$(TARGET_NAME)";
12421264
SDKROOT = macosx;
12431265
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1244-
SWIFT_VERSION = 3.0;
1266+
SWIFT_VERSION = 4.0;
12451267
};
12461268
name = Release;
12471269
};
@@ -1254,7 +1276,7 @@
12541276
PRODUCT_BUNDLE_IDENTIFIER = "com.Hydra.Hydra-tvOS-Tests";
12551277
PRODUCT_NAME = "$(TARGET_NAME)";
12561278
SDKROOT = appletvos;
1257-
SWIFT_VERSION = 3.0;
1279+
SWIFT_VERSION = 4.0;
12581280
TVOS_DEPLOYMENT_TARGET = 9.1;
12591281
};
12601282
name = Debug;
@@ -1269,7 +1291,7 @@
12691291
PRODUCT_NAME = "$(TARGET_NAME)";
12701292
SDKROOT = appletvos;
12711293
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
1272-
SWIFT_VERSION = 3.0;
1294+
SWIFT_VERSION = 4.0;
12731295
TVOS_DEPLOYMENT_TARGET = 9.1;
12741296
};
12751297
name = Release;
Binary file not shown.

0 commit comments

Comments
 (0)