Skip to content

Commit 961bed0

Browse files
authored
Fall 2024 updates (#21)
* Update to GEOSwift 11; Bump min versions * Update CI environment * Fix lint * add test plan * add workspace * remove watchos * fix warnings when building with swift 6 compiler * add tvos to quicklook * update changelog * only swift 6 compiler knows about @retroactive * Add some xcode 16 ci jobs
1 parent 0f6a470 commit 961bed0

File tree

14 files changed

+426
-188
lines changed

14 files changed

+426
-188
lines changed

.github/workflows/main.yml

+43-49
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,29 @@ name: GEOSwiftMapKit
33

44
on:
55
push:
6-
branches: [ main ]
6+
branches: [main]
77
pull_request:
8-
branches: [ main ]
8+
branches: [main]
99

1010
jobs:
1111
swiftlint:
12-
runs-on: macos-12
12+
runs-on: macos-14
1313
steps:
1414
- uses: actions/checkout@v3
15+
- name: Install SwiftLint
16+
run: brew install swiftlint
1517
- name: Swiftlint
16-
run: swiftlint
18+
run: swiftlint --strict
1719
podspec:
1820
name: Lint Podspec for ${{ matrix.platform }}
19-
runs-on: macos-12
21+
runs-on: macos-14
2022
strategy:
2123
matrix:
22-
platform: [ios, osx, tvos]
24+
platform: [ios, macos, tvos]
2325
steps:
2426
- uses: actions/checkout@v3
27+
- name: Update CocoaPods Specs
28+
run: pod repo update
2529
- name: Lint Podspec
2630
run: pod lib lint --platforms=${{ matrix.platform }}
2731
xcodebuild:
@@ -30,46 +34,36 @@ jobs:
3034
strategy:
3135
matrix:
3236
include:
33-
- name: "xcodebuild (iOS 16.2, Xcode 14.2)"
34-
os: macos-12
35-
xcode-version: "14.2"
36-
sdk: iphonesimulator16.2
37-
destination: "platform=iOS Simulator,OS=16.2,name=iPhone 14"
38-
- name: "xcodebuild (tvOS 16.1, Xcode 14.2)"
39-
os: macos-12
40-
xcode-version: "14.2"
41-
sdk: appletvsimulator16.1
42-
destination: "platform=tvOS Simulator,OS=16.1,name=Apple TV"
43-
- name: "xcodebuild (macOS 13.1, Xcode 14.2)"
44-
os: macos-12
45-
xcode-version: "14.2"
46-
sdk: macosx13.1
47-
destination: "platform=macOS"
48-
- name: "xcodebuild (macCatalyst 13.1, Xcode 14.2)"
49-
os: macos-12
50-
xcode-version: "14.2"
51-
sdk: macosx13.1
52-
destination: "platform=macOS,variant=Mac Catalyst"
53-
- name: "xcodebuild (iOS 15.2, Xcode 13.2.1)"
54-
os: macos-11
55-
xcode-version: "13.2.1"
56-
sdk: iphonesimulator15.2
57-
destination: "platform=iOS Simulator,OS=15.2,name=iPhone 13"
58-
- name: "xcodebuild (tvOS 15.2, Xcode 13.2.1)"
59-
os: macos-11
60-
xcode-version: "13.2.1"
61-
sdk: appletvsimulator15.2
62-
destination: "platform=tvOS Simulator,OS=15.2,name=Apple TV"
63-
- name: "xcodebuild (macOS 12.1, Xcode 13.2.1)"
64-
os: macos-11
65-
xcode-version: "13.2.1"
66-
sdk: macosx12.1
37+
- name: "xcodebuild (iOS 18.0, Xcode 16.0)"
38+
os: macos-14
39+
xcode-version: "16"
40+
sdk: iphonesimulator18.0
41+
destination: "platform=iOS Simulator,OS=18.0,name=iPhone 16"
42+
- name: "xcodebuild (tvOS 18.0, Xcode 16.0)"
43+
os: macos-14
44+
xcode-version: "16"
45+
sdk: appletvsimulator18.0
46+
destination: "platform=tvOS Simulator,OS=18.0,name=Apple TV"
47+
- name: "xcodebuild (macOS 15.0, Xcode 16.0)"
48+
os: macos-14
49+
xcode-version: "16"
50+
sdk: macosx15.0
51+
destination: "platform=OS X"
52+
- name: "xcodebuild (iOS 17.5, Xcode 15.4)"
53+
os: macos-14
54+
xcode-version: "15.4"
55+
sdk: iphonesimulator17.5
56+
destination: "platform=iOS Simulator,OS=17.5,name=iPhone 15"
57+
- name: "xcodebuild (tvOS 17.5, Xcode 15.4)"
58+
os: macos-14
59+
xcode-version: "15.4"
60+
sdk: appletvsimulator17.5
61+
destination: "platform=tvOS Simulator,OS=17.5,name=Apple TV"
62+
- name: "xcodebuild (macOS 14.7, Xcode 15.4)"
63+
os: macos-14
64+
xcode-version: "15.4"
65+
sdk: macosx14.5
6766
destination: "platform=OS X"
68-
- name: "xcodebuild (macCatalyst 12.1, Xcode 13.2.1)"
69-
os: macos-11
70-
xcode-version: "13.2.1"
71-
sdk: macosx12.1
72-
destination: "platform=OS X,variant=Mac Catalyst"
7367
steps:
7468
- uses: actions/checkout@v3
7569
- name: Select Xcode Version
@@ -89,10 +83,10 @@ jobs:
8983
strategy:
9084
matrix:
9185
include:
92-
- os: macos-11
93-
xcode-version: "13.2.1"
94-
- os: macos-12
95-
xcode-version: "14.2"
86+
- os: macos-14
87+
xcode-version: "15.4"
88+
- os: macos-14
89+
xcode-version: "16"
9690
steps:
9791
- uses: actions/checkout@v3
9892
- name: Select Xcode Version

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,3 @@ Carthage/Build
3030
# Swift Package Manager
3131

3232
.build/
33-
.swiftpm/

.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1600"
4+
version = "1.7">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES"
8+
buildArchitectures = "Automatic">
9+
<BuildActionEntries>
10+
<BuildActionEntry
11+
buildForTesting = "YES"
12+
buildForRunning = "YES"
13+
buildForProfiling = "YES"
14+
buildForArchiving = "YES"
15+
buildForAnalyzing = "YES">
16+
<BuildableReference
17+
BuildableIdentifier = "primary"
18+
BlueprintIdentifier = "GEOSwiftMapKit"
19+
BuildableName = "GEOSwiftMapKit"
20+
BlueprintName = "GEOSwiftMapKit"
21+
ReferencedContainer = "container:">
22+
</BuildableReference>
23+
</BuildActionEntry>
24+
</BuildActionEntries>
25+
</BuildAction>
26+
<TestAction
27+
buildConfiguration = "Debug"
28+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
29+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
30+
shouldUseLaunchSchemeArgsEnv = "YES">
31+
<TestPlans>
32+
<TestPlanReference
33+
reference = "container:GEOSwiftMapKit.xctestplan"
34+
default = "YES">
35+
</TestPlanReference>
36+
</TestPlans>
37+
<Testables>
38+
<TestableReference
39+
skipped = "NO">
40+
<BuildableReference
41+
BuildableIdentifier = "primary"
42+
BlueprintIdentifier = "GEOSwiftMapKitTests"
43+
BuildableName = "GEOSwiftMapKitTests"
44+
BlueprintName = "GEOSwiftMapKitTests"
45+
ReferencedContainer = "container:">
46+
</BuildableReference>
47+
</TestableReference>
48+
</Testables>
49+
</TestAction>
50+
<LaunchAction
51+
buildConfiguration = "Debug"
52+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
53+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
54+
launchStyle = "0"
55+
useCustomWorkingDirectory = "NO"
56+
ignoresPersistentStateOnLaunch = "NO"
57+
debugDocumentVersioning = "YES"
58+
debugServiceExtension = "internal"
59+
allowLocationSimulation = "YES">
60+
</LaunchAction>
61+
<ProfileAction
62+
buildConfiguration = "Release"
63+
shouldUseLaunchSchemeArgsEnv = "YES"
64+
savedToolIdentifier = ""
65+
useCustomWorkingDirectory = "NO"
66+
debugDocumentVersioning = "YES">
67+
<MacroExpansion>
68+
<BuildableReference
69+
BuildableIdentifier = "primary"
70+
BlueprintIdentifier = "GEOSwiftMapKit"
71+
BuildableName = "GEOSwiftMapKit"
72+
BlueprintName = "GEOSwiftMapKit"
73+
ReferencedContainer = "container:">
74+
</BuildableReference>
75+
</MacroExpansion>
76+
</ProfileAction>
77+
<AnalyzeAction
78+
buildConfiguration = "Debug">
79+
</AnalyzeAction>
80+
<ArchiveAction
81+
buildConfiguration = "Release"
82+
revealArchiveInOrganizer = "YES">
83+
</ArchiveAction>
84+
</Scheme>

CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## 5.0.0
2+
3+
* Updates to GEOSwift 11.0.0
4+
* Increases min Swift version to 5.9
5+
* Increases min deployment targets for Apple platforms
6+
* Expands QuickLook support to tvOS
7+
* Fixes some warnings when building with Xcode 16
8+
19
## 4.0.0
210

311
* Updates to GEOSwift 10.0.0

GEOSwiftMapKit.podspec

+6-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22
s.name = 'GEOSwiftMapKit'
3-
s.version = '4.0.0'
4-
s.swift_version = '5.5'
3+
s.version = '5.0.0'
4+
s.swift_version = '5.9'
55
s.cocoapods_version = '~> 1.10'
66
s.summary = 'MapKit support for GEOSwift'
77
s.description = <<~DESC
@@ -15,16 +15,14 @@ Pod::Spec.new do |s|
1515
file: 'LICENSE'
1616
}
1717
s.authors = 'Andrew Hershberger'
18-
s.platforms = {
19-
ios: '9.0',
20-
osx: '10.9',
21-
tvos: '9.2',
22-
}
18+
s.ios.deployment_target = '12.0'
19+
s.macos.deployment_target = '10.13'
20+
s.tvos.deployment_target = '12.0'
2321
s.source = {
2422
git: 'https://github.com/GEOSwift/GEOSwiftMapKit.git',
2523
tag: s.version
2624
}
2725
s.source_files = 'Sources/**/*.swift'
2826
s.macos.exclude_files = 'GEOSwiftMapKit/GEOSwift+MapKitQuickLook.swift'
29-
s.dependency 'GEOSwift', '~> 10.0'
27+
s.dependency 'GEOSwift', '~> 11.0'
3028
end

GEOSwiftMapKit.xctestplan

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"configurations" : [
3+
{
4+
"id" : "13C39BF1-17D7-4105-AD5C-3810194BC2B3",
5+
"name" : "Test Scheme Action",
6+
"options" : {
7+
8+
}
9+
}
10+
],
11+
"defaultOptions" : {
12+
"codeCoverage" : false
13+
},
14+
"testTargets" : [
15+
{
16+
"target" : {
17+
"containerPath" : "container:",
18+
"identifier" : "GEOSwiftMapKitTests",
19+
"name" : "GEOSwiftMapKitTests"
20+
}
21+
}
22+
],
23+
"version" : 1
24+
}

Package.resolved

+20-22
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
11
{
2-
"object": {
3-
"pins": [
4-
{
5-
"package": "geos",
6-
"repositoryURL": "https://github.com/GEOSwift/geos.git",
7-
"state": {
8-
"branch": null,
9-
"revision": "f510e634c822116fca615064d889300dba40d761",
10-
"version": "8.1.0"
11-
}
12-
},
13-
{
14-
"package": "GEOSwift",
15-
"repositoryURL": "https://github.com/GEOSwift/GEOSwift.git",
16-
"state": {
17-
"branch": null,
18-
"revision": "e55eef92fb533107b43e30fcf275223a5055797e",
19-
"version": "10.0.0"
20-
}
2+
"pins" : [
3+
{
4+
"identity" : "geos",
5+
"kind" : "remoteSourceControl",
6+
"location" : "https://github.com/GEOSwift/geos.git",
7+
"state" : {
8+
"revision" : "4d8af495e7507f48f1ae9104102debdd2043917b",
9+
"version" : "9.0.0"
2110
}
22-
]
23-
},
24-
"version": 1
11+
},
12+
{
13+
"identity" : "geoswift",
14+
"kind" : "remoteSourceControl",
15+
"location" : "https://github.com/GEOSwift/GEOSwift.git",
16+
"state" : {
17+
"revision" : "e42c062c2feb0df61373ae8cd6031a823a0dc981",
18+
"version" : "11.0.0"
19+
}
20+
}
21+
],
22+
"version" : 2
2523
}

Package.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
// swift-tools-version:5.5
1+
// swift-tools-version:5.9
22
import PackageDescription
33

44
let package = Package(
55
name: "GEOSwiftMapKit",
6-
platforms: [.iOS(.v9), .macOS("10.9"), .tvOS("9.2")],
6+
platforms: [.iOS(.v12), .macOS(.v10_13), .tvOS(.v12)],
77
products: [
88
.library(name: "GEOSwiftMapKit", targets: ["GEOSwiftMapKit"])
99
],
1010
dependencies: [
11-
.package(url: "https://github.com/GEOSwift/GEOSwift.git", from: "10.0.0")
11+
.package(url: "https://github.com/GEOSwift/GEOSwift.git", from: "11.0.0")
1212
],
1313
targets: [
1414
.target(

Playgrounds/GEOSwiftMapKit.playground/playground.xcworkspace/contents.xcworkspacedata

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ See [GEOSwift](https://github.com/GEOSwift/GEOSwift) for full details
99

1010
## Requirements
1111

12-
* iOS 9.0+, tvOS 9.2+, macOS 10.9+ (CocoaPods, Swift PM)
13-
* Swift 5.5
12+
* iOS 12.0+, tvOS 12.0+, macOS 10.13+ (CocoaPods, Swift PM)
13+
* Swift 5.9
1414

1515
> GEOS is licensed under LGPL 2.1 and its compatibility with static linking is
1616
at least controversial. Use of geos without dynamic linking is discouraged.
@@ -30,7 +30,7 @@ at least controversial. Use of geos without dynamic linking is discouraged.
3030

3131
1. Update the top-level dependencies in your `Package.swift` to include:
3232

33-
.package(url: "https://github.com/GEOSwift/GEOSwiftMapKit.git", from: "4.0.0")
33+
.package(url: "https://github.com/GEOSwift/GEOSwiftMapKit.git", from: "5.0.0")
3434

3535
2. Update the target dependencies in your `Package.swift` to include
3636

Sources/GEOSwiftMapKit/GEOSwift+MapKit.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public extension Point {
2020
public extension GEOSwift.Polygon {
2121
static var world: GEOSwift.Polygon {
2222
// swiftlint:disable:next force_try
23-
return try! Polygon(exterior: Polygon.LinearRing(points: [
23+
try! Polygon(exterior: Polygon.LinearRing(points: [
2424
Point(x: -180, y: 90),
2525
Point(x: -180, y: -90),
2626
Point(x: 180, y: -90),

0 commit comments

Comments
 (0)