Skip to content

Commit f6f9cc8

Browse files
authored
V0.8.0 (#111)
* Begin Transition to Swift Testing (#108) * upgrading to CoreOffice/XMLCoder * Swift 6.0 Package Consolidation and Access Import Updates (#112) * Remove fail-fast option from CI matrix strategy [skip ci]
1 parent 4653d29 commit f6f9cc8

121 files changed

Lines changed: 410 additions & 389 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/syndikit.yml

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@ jobs:
2121

2222
- container: swift:6.0
2323

24-
- container: swift:5.6-focal
24+
- container: swift:5.10
2525

2626
- container: swiftlang/swift:nightly-6.3-noble
2727
steps:
2828
- uses: actions/checkout@v4
2929
- uses: brightdigit/swift-build@v1.4.2
3030
with:
3131
scheme: ${{ env.PACKAGE_NAME }}
32+
skip-package-resolved: ${{ contains(matrix.container, 'swift:5.') }}
3233
- uses: sersoft-gmbh/swift-coverage-action@v4
3334
id: coverage-files
3435
with:
@@ -51,10 +52,6 @@ jobs:
5152
fail-fast: false
5253
matrix:
5354
include:
54-
# SPM Build Matrix - Xcode 15.0.1
55-
- runs-on: macos-14
56-
xcode: "/Applications/Xcode_15.0.1.app"
57-
5855
# SPM Build Matrix - Xcode 15.4
5956
- runs-on: macos-14
6057
xcode: "/Applications/Xcode_15.4.app"
@@ -100,13 +97,6 @@ jobs:
10097
runs-on: macos-26
10198
xcode: "/Applications/Xcode_26.2.app"
10299

103-
# iOS Build Matrix - Xcode 15.0.1
104-
- type: ios
105-
runs-on: macos-14
106-
xcode: "/Applications/Xcode_15.0.1.app"
107-
deviceName: "iPhone 15 Pro"
108-
osVersion: "17.0.1"
109-
110100
# iOS Build Matrix - Xcode 15.4
111101
- type: ios
112102
runs-on: macos-14
@@ -142,20 +132,6 @@ jobs:
142132
deviceName: "iPhone 17 Pro"
143133
osVersion: "26.2"
144134

145-
# watchOS Build Matrix - Xcode 15.0.1
146-
- type: watchos
147-
runs-on: macos-14
148-
xcode: "/Applications/Xcode_15.0.1.app"
149-
deviceName: "Apple Watch Series 9 (41mm)"
150-
osVersion: "10.0"
151-
152-
# watchOS Build Matrix - Xcode 15.1
153-
# - type: watchos
154-
# runs-on: macos-14
155-
# xcode: "/Applications/Xcode_15.1.app"
156-
# deviceName: "Apple Watch Ultra (49mm)"
157-
# osVersion: "10.2"
158-
159135
# watchOS Build Matrix - Xcode 15.4
160136
- type: watchos
161137
runs-on: macos-14
@@ -250,6 +226,10 @@ jobs:
250226
steps:
251227
- uses: actions/checkout@v4
252228

229+
- name: Disable Xcode macro fingerprint validation
230+
if: ${{ contains(matrix.xcode, 'Xcode_15.4') && matrix.type != '' }}
231+
run: defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
232+
253233
- name: Build and Test
254234
uses: brightdigit/swift-build@v1.4.2
255235
with:
@@ -258,6 +238,8 @@ jobs:
258238
xcode: ${{ matrix.xcode }}
259239
deviceName: ${{ matrix.deviceName }}
260240
osVersion: ${{ matrix.osVersion }}
241+
build-only: ${{ contains(matrix.xcode, 'Xcode_15.4') && matrix.type != '' }}
242+
skip-package-resolved: ${{ contains(matrix.xcode, 'Xcode_15.4') }}
261243

262244
# Common Coverage Steps
263245
- name: Process Coverage

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ WordPress-specific files are in `Formats/Media/WordPress/`.
116116
The codebase maintains compatibility across Swift versions using conditional imports:
117117

118118
```swift
119-
#if swift(<6.1)
119+
#if swift(<6.0)
120120
import Foundation
121121
#else
122122
public import Foundation

Package.resolved

Lines changed: 12 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,58 @@
1-
// swift-tools-version:5.5
1+
// swift-tools-version:5.10
22

33
import PackageDescription
44

55
// swiftlint:disable:next explicit_acl explicit_top_level_acl
66
let package = Package(
77
name: "SyndiKit",
8+
platforms: [
9+
.macOS(.v10_15),
10+
.iOS(.v13),
11+
.watchOS(.v6),
12+
.tvOS(.v13)
13+
],
814
products: [
915
.library(
1016
name: "SyndiKit",
1117
targets: ["SyndiKit"]
1218
)
1319
],
1420
dependencies: [
15-
.package(url: "https://github.com/brightdigit/XMLCoder", from: "1.0.0-alpha.1")
21+
.package(url: "https://github.com/CoreOffice/XMLCoder", from: "0.18.0"),
22+
.package(url: "https://github.com/swiftlang/swift-testing", exact: "0.5.1")
1623
],
1724
targets: [
1825
.target(
1926
name: "SyndiKit",
2027
dependencies: ["XMLCoder"]
2128
),
29+
30+
.target(
31+
name: "SyndiKitTestSupport",
32+
dependencies: [
33+
"SyndiKit",
34+
"XMLCoder"
35+
],
36+
path: "Tests/SyndiKitTestSupport"
37+
),
38+
2239
.testTarget(
2340
name: "SyndiKitTests",
24-
dependencies: ["SyndiKit"]
41+
dependencies: [
42+
"SyndiKit",
43+
"SyndiKitTestSupport",
44+
.product(name: "Testing", package: "swift-testing")
45+
]
46+
),
47+
48+
.testTarget(
49+
name: "SyndiKitXCTests",
50+
dependencies: [
51+
"SyndiKit",
52+
"SyndiKitTestSupport",
53+
"XMLCoder"
54+
],
55+
path: "Tests/SyndiKitXCTests"
2556
)
2657
]
2758
)

Package@swift-6.0.swift

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
// swift-tools-version:6.0
2+
3+
import PackageDescription
4+
5+
// swiftlint:disable explicit_acl explicit_top_level_acl
6+
7+
// MARK: - Swift Feature Flags
8+
9+
let swift6Features: [SwiftSetting] = [
10+
// Swift 7 upcoming features (enabled_in: "7")
11+
.enableUpcomingFeature("ExistentialAny"),
12+
.enableUpcomingFeature("InternalImportsByDefault"),
13+
.enableUpcomingFeature("MemberImportVisibility"),
14+
.enableUpcomingFeature("InferIsolatedConformances"),
15+
.enableUpcomingFeature("NonisolatedNonsendingByDefault"),
16+
17+
// Experimental features
18+
.enableUpcomingFeature("FullTypedThrows")
19+
]
20+
21+
let package = Package(
22+
name: "SyndiKit",
23+
platforms: [
24+
.macOS(.v13),
25+
.iOS(.v16),
26+
.watchOS(.v9),
27+
.tvOS(.v16)
28+
],
29+
products: [
30+
.library(
31+
name: "SyndiKit",
32+
targets: ["SyndiKit"]
33+
)
34+
],
35+
dependencies: [
36+
.package(url: "https://github.com/CoreOffice/XMLCoder", from: "0.18.0")
37+
],
38+
targets: [
39+
.target(
40+
name: "SyndiKit",
41+
dependencies: ["XMLCoder"],
42+
swiftSettings: swift6Features
43+
),
44+
45+
.target(
46+
name: "SyndiKitTestSupport",
47+
dependencies: [
48+
"SyndiKit",
49+
"XMLCoder"
50+
],
51+
path: "Tests/SyndiKitTestSupport"
52+
),
53+
54+
.testTarget(
55+
name: "SyndiKitTests",
56+
dependencies: [
57+
"SyndiKit",
58+
"SyndiKitTestSupport"
59+
],
60+
// Swift Testing is built into Swift 6.0 toolchain
61+
swiftSettings: swift6Features
62+
),
63+
64+
.testTarget(
65+
name: "SyndiKitXCTests",
66+
dependencies: [
67+
"SyndiKit",
68+
"SyndiKitTestSupport",
69+
"XMLCoder"
70+
],
71+
path: "Tests/SyndiKitXCTests",
72+
swiftSettings: swift6Features
73+
)
74+
]
75+
)
76+
77+
// swiftlint:enable explicit_acl explicit_top_level_acl

Package@swift-6.1.swift

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

Sources/SyndiKit/Character.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
// OTHER DEALINGS IN THE SOFTWARE.
2828
//
2929

30-
#if swift(<6.1)
30+
#if swift(<6.0)
3131
import Foundation
3232
#else
3333
internal import Foundation

Sources/SyndiKit/Collection.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
// OTHER DEALINGS IN THE SOFTWARE.
2828
//
2929

30-
#if swift(<6.1)
30+
#if swift(<6.0)
3131
import Foundation
3232
#else
3333
internal import Foundation

Sources/SyndiKit/Common/Author.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
#if swift(<5.7)
3131
@preconcurrency import Foundation
32-
#elseif swift(<6.1)
32+
#elseif swift(<6.0)
3333
import Foundation
3434
#else
3535
public import Foundation

0 commit comments

Comments
 (0)