Skip to content

Commit

Permalink
Migrate to new DTModelStorage API. Test on Xcode 12 Beta.
Browse files Browse the repository at this point in the history
  • Loading branch information
DenTelezhkin committed Jul 29, 2020
1 parent 7a4d553 commit 69eff80
Show file tree
Hide file tree
Showing 17 changed files with 202 additions and 167 deletions.
21 changes: 6 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ on:
- '*'

jobs:
iOS:
iOS-Xcode-12:
name: Test iOS
runs-on: macOS-latest
env:
DEVELOPER_DIR: /Applications/Xcode_11.5.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_12_beta.app/Contents/Developer
strategy:
matrix:
destination: ["test_ios13"] #,"test_ios12"]
destination: ["test_ios14"] #,"test_ios12"]
steps:
- uses: actions/checkout@v2
- name: Install gems
Expand All @@ -25,14 +25,14 @@ jobs:
run: instruments -s devices
- name: iOS - ${{ matrix.destination }}
run: bundle exec fastlane ${{ matrix.destination }}
tvOS:
tvOS-Xcode-12:
name: Test tvOS
runs-on: macOS-latest
env:
DEVELOPER_DIR: /Applications/Xcode_11.5.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_12_beta.app/Contents/Developer
strategy:
matrix:
destination: ["test_tvos13"] #,"test_tvos12"]
destination: ["test_tvos14"] #,"test_tvos12"]
steps:
- uses: actions/checkout@v2
- name: Install gems
Expand All @@ -50,12 +50,3 @@ jobs:
run: bundle install
- name: CocoaPods spec lint
run: bundle exec fastlane pod_lint
# spm:
# name: Test with SPM
# runs-on: macOS-latest
# env:
# DEVELOPER_DIR: /Applications/Xcode_11.3.1.app/Contents/Developer
# steps:
# - uses: actions/checkout@v2
# - name: SPM Test
# run: swift test -c debug
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ All notable changes to this project will be documented in this file.

# Next

## [7.2.0](https://github.com/DenTelezhkin/DTTableViewManager/releases/tag/7.2.0)
### Breaking

This release requires Swift 5.3. Minimum iOS / tvOS deployment targets are unchanged (iOS 11, tvOS 11).

Some context: this release heavily relies on where clauses on contextually generic declarations, that are only available in Swift 5.3 - [SE-0267](https://github.com/apple/swift-evolution/blob/master/proposals/0267-where-on-contextually-generic.md).

## [7.2.0](https://github.com/DenTelezhkin/DTTableViewManager/releases/tag/7.2.0)

Expand Down
2 changes: 1 addition & 1 deletion DTTableViewManager.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Pod::Spec.new do |s|
s.social_media_url = 'https://twitter.com/DenTelezhkin'
s.source = { :git => 'https://github.com/DenTelezhkin/DTTableViewManager.git', :tag => s.version.to_s }
s.source_files = 'Sources/DTTableViewManager/*.swift'
s.swift_versions = ['5.0']
s.swift_versions = ['5.3']
s.ios.deployment_target = '11.0'
s.tvos.deployment_target = '11.0'
s.frameworks = 'UIKit', 'Foundation'
Expand Down
48 changes: 25 additions & 23 deletions DTTableViewManager.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -94,16 +94,16 @@
3EDC20E422B8181D0078EB0D /* RandomNameWrongReuseIdentifierCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3EDC208922B817E00078EB0D /* RandomNameWrongReuseIdentifierCell.xib */; };
3EDC20E522B8181D0078EB0D /* CustomNibCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3EDC208A22B817E00078EB0D /* CustomNibCell.xib */; };
3EE31B4F21563BB000FA9361 /* AutoDiffSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EE31B4E21563BB000FA9361 /* AutoDiffSearchViewController.swift */; };
9A245D5824ADD200001D6A9E /* Changeset in Frameworks */ = {isa = PBXBuildFile; productRef = 9A245D5724ADD200001D6A9E /* Changeset */; };
9A245D5A24ADD232001D6A9E /* Changeset in Frameworks */ = {isa = PBXBuildFile; productRef = 9A245D5924ADD232001D6A9E /* Changeset */; };
9A245D5C24ADD74A001D6A9E /* Changeset in Frameworks */ = {isa = PBXBuildFile; productRef = 9A245D5B24ADD74A001D6A9E /* Changeset */; };
9A383CA61CE1DA2F0081D843 /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 9A383CA51CE1DA2F0081D843 /* [email protected] */; };
9A41FBDB1B8A176300508207 /* BankCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A41FBDA1B8A176300508207 /* BankCell.xib */; };
9A41FBE01B8A17C400508207 /* Banks.json in Resources */ = {isa = PBXBuildFile; fileRef = 9A41FBDF1B8A17C400508207 /* Banks.json */; };
9A41FBE31B8A17E700508207 /* mochaGrunge.png in Resources */ = {isa = PBXBuildFile; fileRef = 9A41FBE11B8A17E700508207 /* mochaGrunge.png */; };
9A41FBE41B8A17E700508207 /* textured_paper.png in Resources */ = {isa = PBXBuildFile; fileRef = 9A41FBE21B8A17E700508207 /* textured_paper.png */; };
9A41FBE71B8A181300508207 /* Banks.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 9A41FBE51B8A181300508207 /* Banks.xcdatamodeld */; };
9A5292041B5D3DAC00DC8528 /* DTTableViewManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A2A38BC1AEE285E0021E97D /* DTTableViewManager.framework */; };
9A66DC1624D0333A002AD705 /* Changeset in Frameworks */ = {isa = PBXBuildFile; productRef = 9A66DC1524D0333A002AD705 /* Changeset */; };
9A66DC1824D0334A002AD705 /* Changeset in Frameworks */ = {isa = PBXBuildFile; productRef = 9A66DC1724D0334A002AD705 /* Changeset */; };
9A66DC1A24D03357002AD705 /* Changeset in Frameworks */ = {isa = PBXBuildFile; productRef = 9A66DC1924D03357002AD705 /* Changeset */; };
9A6CED701BE570750091B0AF /* DTTableViewManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A2A38BC1AEE285E0021E97D /* DTTableViewManager.framework */; };
9A9B17071B65771600D8ABD3 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A9B17061B65771600D8ABD3 /* AppDelegate.swift */; };
9A9B170E1B65771600D8ABD3 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9A9B170C1B65771600D8ABD3 /* Main.storyboard */; };
Expand Down Expand Up @@ -288,7 +288,7 @@
buildActionMask = 2147483647;
files = (
9A6CED701BE570750091B0AF /* DTTableViewManager.framework in Frameworks */,
9A245D5A24ADD232001D6A9E /* Changeset in Frameworks */,
9A66DC1A24D03357002AD705 /* Changeset in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -297,7 +297,7 @@
buildActionMask = 2147483647;
files = (
9A9B17261B65772E00D8ABD3 /* DTTableViewManager.framework in Frameworks */,
9A245D5C24ADD74A001D6A9E /* Changeset in Frameworks */,
9A66DC1824D0334A002AD705 /* Changeset in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -306,7 +306,7 @@
buildActionMask = 2147483647;
files = (
9A5292041B5D3DAC00DC8528 /* DTTableViewManager.framework in Frameworks */,
9A245D5824ADD200001D6A9E /* Changeset in Frameworks */,
9A66DC1624D0333A002AD705 /* Changeset in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -622,7 +622,7 @@
);
name = "Tests-tvOS";
packageProductDependencies = (
9A245D5924ADD232001D6A9E /* Changeset */,
9A66DC1924D03357002AD705 /* Changeset */,
);
productName = XCTests;
productReference = 9A6CED7D1BE570750091B0AF /* Tests-tvOS.xctest */;
Expand All @@ -644,7 +644,7 @@
);
name = Example;
packageProductDependencies = (
9A245D5B24ADD74A001D6A9E /* Changeset */,
9A66DC1724D0334A002AD705 /* Changeset */,
);
productName = Example;
productReference = 9A9B17021B65771600D8ABD3 /* Example.app */;
Expand All @@ -665,7 +665,7 @@
);
name = "Tests-iOS";
packageProductDependencies = (
9A245D5724ADD200001D6A9E /* Changeset */,
9A66DC1524D0333A002AD705 /* Changeset */,
);
productName = XCTests;
productReference = 9AF0031A1A5ABE7000ABFC90 /* Tests-iOS.xctest */;
Expand All @@ -678,7 +678,7 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0700;
LastUpgradeCheck = 1020;
LastUpgradeCheck = 1200;
ORGANIZATIONNAME = "Denys Telezhkin";
TargetAttributes = {
9A2A38BB1AEE285E0021E97D = {
Expand Down Expand Up @@ -708,7 +708,7 @@
mainGroup = E6EA83571615EE6000F8B8C3;
packageReferences = (
9AFAAF7422D4BDB5001C86B0 /* XCRemoteSwiftPackageReference "DTModelStorage" */,
9A245D5624ADD200001D6A9E /* XCRemoteSwiftPackageReference "Changeset" */,
9A66DC1424D0333A002AD705 /* XCRemoteSwiftPackageReference "Changeset" */,
);
productRefGroup = E6EA83631615EE6000F8B8C3 /* Products */;
projectDirPath = "";
Expand Down Expand Up @@ -1151,6 +1151,7 @@
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
Expand Down Expand Up @@ -1206,6 +1207,7 @@
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
Expand Down Expand Up @@ -1286,38 +1288,38 @@
/* End XCConfigurationList section */

/* Begin XCRemoteSwiftPackageReference section */
9A245D5624ADD200001D6A9E /* XCRemoteSwiftPackageReference "Changeset" */ = {
9A66DC1424D0333A002AD705 /* XCRemoteSwiftPackageReference "Changeset" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/osteslag/Changeset";
repositoryURL = "https://github.com/DenTelezhkin/Changeset";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 3.2.0;
branch = "swiftpm-platforms";
kind = branch;
};
};
9AFAAF7422D4BDB5001C86B0 /* XCRemoteSwiftPackageReference "DTModelStorage" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/DenTelezhkin/DTModelStorage";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 8.1.0;
branch = "custom-view-mappings";
kind = branch;
};
};
/* End XCRemoteSwiftPackageReference section */

/* Begin XCSwiftPackageProductDependency section */
9A245D5724ADD200001D6A9E /* Changeset */ = {
9A66DC1524D0333A002AD705 /* Changeset */ = {
isa = XCSwiftPackageProductDependency;
package = 9A245D5624ADD200001D6A9E /* XCRemoteSwiftPackageReference "Changeset" */;
package = 9A66DC1424D0333A002AD705 /* XCRemoteSwiftPackageReference "Changeset" */;
productName = Changeset;
};
9A245D5924ADD232001D6A9E /* Changeset */ = {
9A66DC1724D0334A002AD705 /* Changeset */ = {
isa = XCSwiftPackageProductDependency;
package = 9A245D5624ADD200001D6A9E /* XCRemoteSwiftPackageReference "Changeset" */;
package = 9A66DC1424D0333A002AD705 /* XCRemoteSwiftPackageReference "Changeset" */;
productName = Changeset;
};
9A245D5B24ADD74A001D6A9E /* Changeset */ = {
9A66DC1924D03357002AD705 /* Changeset */ = {
isa = XCSwiftPackageProductDependency;
package = 9A245D5624ADD200001D6A9E /* XCRemoteSwiftPackageReference "Changeset" */;
package = 9A66DC1424D0333A002AD705 /* XCRemoteSwiftPackageReference "Changeset" */;
productName = Changeset;
};
9AFAAF7522D4BDB5001C86B0 /* DTModelStorage */ = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@
"pins": [
{
"package": "Changeset",
"repositoryURL": "https://github.com/osteslag/Changeset",
"repositoryURL": "https://github.com/DenTelezhkin/Changeset",
"state": {
"branch": null,
"revision": "3f68006be9d378160fa154a1f239b984a459c82f",
"version": "3.2.0"
"branch": "swiftpm-platforms",
"revision": "76ee0cdc4f46a5129229e36530384e1bee7d34e5",
"version": null
}
},
{
"package": "DTModelStorage",
"repositoryURL": "https://github.com/DenTelezhkin/DTModelStorage",
"state": {
"branch": null,
"revision": "1dd8d83882eb0e1c72342dcacd32c687cb39531b",
"version": "8.1.0"
"branch": "custom-view-mappings",
"revision": "e0d6de68c6dc3ac3906b7febe11fc1ad23aa06f7",
"version": null
}
}
]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
LastUpgradeVersion = "1200"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down Expand Up @@ -28,15 +28,6 @@
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
codeCoverageEnabled = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9A2A38BB1AEE285E0021E97D"
BuildableName = "DTTableViewManager.framework"
BlueprintName = "DTTableViewManager"
ReferencedContainer = "container:DTTableViewManager.xcodeproj">
</BuildableReference>
</MacroExpansion>
<Testables>
<TestableReference
skipped = "NO">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
LastUpgradeVersion = "1200"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
LastUpgradeVersion = "1200"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
4 changes: 2 additions & 2 deletions Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
"repositoryURL": "https://github.com/DenTelezhkin/DTModelStorage",
"state": {
"branch": null,
"revision": "2a202af2e6dfbef70983f4eed8ffda54b9a92e46",
"version": "8.0.0"
"revision": "1dd8d83882eb0e1c72342dcacd32c687cb39531b",
"version": "8.1.0"
}
}
]
Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// swift-tools-version:5.2
// swift-tools-version:5.3
//
// Package.swift
// DTTableViewManager
Expand Down
8 changes: 6 additions & 2 deletions Sources/DTTableViewManager/DTTableViewDataSource.swift
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,11 @@ open class DTTableViewDataSource : DTTableViewDelegateWrapper, UITableViewDataSo
guard let cell = viewFactory?.cellForModel(model, atIndexPath: indexPath) else {
return UITableViewCell()
}
_ = tableViewEventReactions.performReaction(of: .cell, signature: EventMethodSignature.configureCell.rawValue, view: cell, model: model, location: indexPath)
_ = EventReaction.performReaction(from: viewFactory?.mappings ?? [],
signature: EventMethodSignature.configureCell.rawValue,
view: cell,
model: model,
location: indexPath)
return cell
}

Expand Down Expand Up @@ -107,7 +111,7 @@ open class DTTableViewDataSource : DTTableViewDelegateWrapper, UITableViewDataSo
#if os(iOS)
/// Implementation for `UITableViewDataSource` protocol
open func sectionIndexTitles(for tableView: UITableView) -> [String]? {
if let _ = tableViewEventReactions.first(where: { $0.methodSignature == EventMethodSignature.sectionIndexTitlesForTableView.rawValue }) {
if let _ = unmappedReactions.first(where: { $0.methodSignature == EventMethodSignature.sectionIndexTitlesForTableView.rawValue }) {
return performNonCellReaction(.sectionIndexTitlesForTableView) as? [String]
}
return (delegate as? UITableViewDataSource)?.sectionIndexTitles?(for: tableView) ?? nil
Expand Down
Loading

0 comments on commit 69eff80

Please sign in to comment.