Skip to content

Commit 9c2c254

Browse files
authored
Update Project for 2026: Swift 6.x, Math Fixes, and CI Modernization (#32)
* Update renovate.json * Update CI * Shorter job workflow names * Fix accuracy on macOS * Update for 2026 * Update CI files * Update windows CI steps * chore(conductor): Allow tracking conductor files and initialize track artifacts * conductor(plan): Mark Phase 1 initialization tasks as complete * conductor(checkpoint): Checkpoint end of Phase 1 * conductor(plan): Mark phase 'Initialization & Environment Setup' as complete * fix(ci): Fix Linux simd module error and modernize workflows with stable gate jobs * feat(ci): Update Apple CI to cover macOS and iOS with stable gate job * chore(ci): Trigger CI on track branches * fix(package): Use Set for enabledTraits in manifest * fix(matrix): Remove duplicate columnRow function definition * chore(ci): Use available Swift versions for Windows * fix(matrix): Correct index(column:row:width:) to column-major and fix Windows CI setup * revert: Revert source code changes to adhere to track constraints * chore(ci): Restore project action versions and disable Windows CI * chore(ci): Modernize markdown-link-check workflow * Remove conductor * Ignore conductor * chore(conductor): Create track fix-ci_20260210 * chore(ci): Extract iOS CI to dedicated workflow * chore(ci): Deactivate automated Linux and Windows CI * conductor(checkpoint): Checkpoint end of Phase 1 * conductor(plan): Mark phase 'Phase 1: Preparation & Deactivation' as complete * chore(ci): Modernize macOS CI workflow * chore(ci): Optimize SPM caching in macOS CI * chore(ci): Confirm strict warning configuration in macOS CI * chore(ci): Use plain swift test with strict warnings in macOS CI * conductor(plan): Mark phase 'Phase 2: Fix macOS CI Implementation' as complete * chore(ci): Verify deactivation of non-macOS CI workflows * conductor(plan): Mark track 'fix-ci_20260210' as complete * chore(conductor): Mark track 'fix-ci_20260210' as complete in registry * docs(conductor): Synchronize tech stack for track 'fix-ci_20260210' * Refine macOS CI * Fix retroactive Sendable conformance for SIMD types in Swift 6.1 * Align iOS CI workflow with macOS template * iOS simulator selection * Enable testability for iOS Release builds * Align Linux CI workflow with macOS template * Fix determinant and angle calculations for non-SIMD platforms * Align Windows CI workflow with macOS template * Try 'latest' Swift version on Windows * Try Swift 6.0 on Windows * Use compnerd/gha-setup-swift for Windows CI * Use brightdigit/swift-build for Windows tests * Use brightdigit/swift-build for Windows CI setup and test * Update Windows CI to target Swift 6.1 and 6.2 * Add required scheme * Update README
1 parent 3692f68 commit 9c2c254

File tree

134 files changed

+4250
-3153
lines changed

Some content is hidden

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

134 files changed

+4250
-3153
lines changed

.github/workflows/ci-ios.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: iOS
2+
3+
on:
4+
push:
5+
branches: [ master, main ]
6+
pull_request:
7+
branches: [ master, main ]
8+
workflow_dispatch:
9+
10+
jobs:
11+
ios:
12+
name: iOS (Swift ${{ matrix.swift }})
13+
runs-on: macos-latest
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
swift: ["6.1", "6.2"]
18+
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v6
22+
23+
- name: Setup Swift
24+
uses: swift-actions/setup-swift@v2
25+
with:
26+
swift-version: ${{ matrix.swift }}
27+
28+
- name: Select Latest Simulator
29+
id: select_sim
30+
run: |
31+
AVAILABLE_DEVICES=$(xcrun simctl list devices available)
32+
# Try to find an iPhone
33+
DEVICE_ID=$(echo "$AVAILABLE_DEVICES" | grep "iPhone" | tail -n 1 | grep -oE '[0-9A-F-]{36}')
34+
35+
if [ -z "$DEVICE_ID" ]; then
36+
# Fallback to any available device (e.g. iPad)
37+
DEVICE_ID=$(echo "$AVAILABLE_DEVICES" | grep -v "Devices" | grep -v "\-\-" | tail -n 1 | grep -oE '[0-9A-F-]{36}')
38+
fi
39+
40+
if [ -n "$DEVICE_ID" ]; then
41+
echo "Selected device ID: $DEVICE_ID"
42+
echo "destination=platform=iOS Simulator,id=$DEVICE_ID" >> "$GITHUB_OUTPUT"
43+
else
44+
echo "No device found. Defaulting to generic latest iOS Simulator."
45+
echo "destination=platform=iOS Simulator,OS=latest" >> "$GITHUB_OUTPUT"
46+
fi
47+
48+
- name: Run Tests (iOS)
49+
run: |
50+
xcodebuild test \
51+
-scheme FirebladeMath \
52+
-destination "${{ steps.select_sim.outputs.destination }}" \
53+
-configuration Release \
54+
-skipPackagePluginValidation \
55+
ENABLE_TESTABILITY=YES \
56+
OTHER_SWIFT_FLAGS='-warnings-as-errors'

.github/workflows/ci-linux.yml

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,28 @@ name: Linux
22

33
on:
44
push:
5-
branches: [ master ]
5+
branches: [ master, main ]
66
pull_request:
7-
branches: [ master ]
7+
branches: [ master, main ]
88
workflow_dispatch:
99

1010
jobs:
1111
linux:
12+
name: Linux (Swift ${{ matrix.swift }})
1213
runs-on: ubuntu-latest
1314
strategy:
15+
fail-fast: false
1416
matrix:
15-
swift: ["latest"]
16-
container:
17-
image: swift:${{ matrix.swift }}
17+
swift: ["6.1", "6.2"]
18+
1819
steps:
1920
- name: Checkout
20-
uses: actions/checkout@v4
21-
22-
- name: Test
23-
run: swift test -c release --enable-xctest --parallel --xunit-output .build/xUnit-output.xml
21+
uses: actions/checkout@v6
2422

25-
- name: Upload artifacts
26-
if: always()
27-
uses: actions/upload-artifact@v4
23+
- name: Setup Swift
24+
uses: swift-actions/setup-swift@v2
2825
with:
29-
name: artifacts-linux-${{ matrix.swift }}-${{ github.run_id }}
30-
path: |
31-
.build/**/*.a
32-
.build/**/*.bundle
33-
.build/**/*.dSYM
34-
.build/**/*.gdb
35-
.build/**/*.json
36-
.build/**/*.txt
37-
.build/**/*.xctest
38-
.build/*.json
39-
.build/*.txt
40-
.build/*.xml
41-
.build/*.yaml
42-
if-no-files-found: warn
43-
include-hidden-files: true
26+
swift-version: ${{ matrix.swift }}
27+
28+
- name: Run Tests (Release)
29+
run: swift test -c release --parallel -Xswiftc -warnings-as-errors

.github/workflows/ci-macos.yml

Lines changed: 13 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,28 @@ name: macOS
22

33
on:
44
push:
5-
branches: [ master ]
5+
branches: [ master, main ]
66
pull_request:
7-
branches: [ master ]
7+
branches: [ master, main ]
88
workflow_dispatch:
99

1010
jobs:
11-
macos-xcode:
11+
macos:
12+
name: macOS (Swift ${{ matrix.swift }})
1213
runs-on: macos-latest
1314
strategy:
15+
fail-fast: false
1416
matrix:
15-
xcode: ["14.3.1", "15.4", "16.0"]
17+
swift: ["6.1", "6.2"]
18+
1619
steps:
1720
- name: Checkout
18-
uses: actions/checkout@v4
19-
20-
- name: Select Xcode ${{ matrix.xcode }}
21-
run: sudo xcode-select -s '/Applications/Xcode_${{ matrix.xcode }}.app'
22-
23-
- name: Test
24-
run: swift test -c release --parallel --xunit-output .build/xUnit-output.xml
25-
env:
26-
DEVELOPER_DIR: /Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer
21+
uses: actions/checkout@v6
2722

28-
- name: Upload artifacts
29-
if: always()
30-
uses: actions/upload-artifact@v4.4.3
23+
- name: Setup Swift
24+
uses: swift-actions/setup-swift@v2
3125
with:
32-
name: artifacts-macOS-${{ matrix.xcode }}-${{ github.run_id }}
33-
path: |
34-
.build/**/*.a
35-
.build/**/*.bundle
36-
.build/**/*.dSYM
37-
.build/**/*.gdb
38-
.build/**/*.json
39-
.build/**/*.txt
40-
.build/**/*.xctest
41-
.build/*.json
42-
.build/*.txt
43-
.build/*.xml
44-
.build/*.yaml
45-
if-no-files-found: warn
46-
include-hidden-files: true
26+
swift-version: ${{ matrix.swift }}
4727

28+
- name: Run Tests (Release)
29+
run: swift test -c release --parallel -Xswiftc -warnings-as-errors

.github/workflows/ci-windows.yml

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,27 @@ name: Windows
22

33
on:
44
push:
5-
branches: [ master ]
5+
branches: [ master, main ]
66
pull_request:
7-
branches: [ master ]
7+
branches: [ master, main ]
88
workflow_dispatch:
99

1010
jobs:
1111
windows:
12+
name: Windows (Swift ${{ matrix.swift }})
1213
runs-on: windows-latest
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
swift: ["6.1", "6.2"]
1318
steps:
14-
- name: Setup
15-
uses: compnerd/gha-setup-swift@v0.2.3
16-
with:
17-
branch: swift-5.10-release
18-
tag: 5.10-RELEASE
19-
2019
- name: Checkout
21-
uses: actions/checkout@v4
20+
uses: actions/checkout@v6
2221

23-
- name: Test
24-
run: swift test -c release --parallel --xunit-output .build/xUnit-output.xml
25-
26-
- name: Upload artifacts
27-
if: always()
28-
uses: actions/upload-artifact@v4.4.3
22+
- name: Test Windows
23+
uses: brightdigit/swift-build@v1.5.0
2924
with:
30-
name: artifacts-windows-${{ github.run_id }}
31-
path: |
32-
.build/**/*.a
33-
.build/**/*.bundle
34-
.build/**/*.dSYM
35-
.build/**/*.gdb
36-
.build/**/*.json
37-
.build/**/*.txt
38-
.build/**/*.xctest
39-
.build/*.json
40-
.build/*.txt
41-
.build/*.xml
42-
.build/*.yaml
43-
if-no-files-found: warn
44-
include-hidden-files: true
45-
25+
windows-swift-version: swift-${{ matrix.swift }}-release
26+
windows-swift-build: ${{ matrix.swift }}-RELEASE
27+
scheme: FirebladeMath
28+
# args: swift test -c release --parallel -Xswiftc -warnings-as-errors

.github/workflows/markdown-link-check.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,20 @@ name: Check markdown links
22

33
on:
44
push:
5-
branches: [ master ]
5+
branches: [ master, main, track/* ]
66
pull_request:
7-
branches: [ master ]
7+
branches: [ master, main ]
88
workflow_dispatch:
99

1010
jobs:
1111
markdown-link-check:
1212
runs-on: ubuntu-latest
1313
steps:
1414
- name: Checkout
15-
uses: actions/checkout@master
15+
uses: actions/checkout@v6
1616
- name: Inject GH token into config
1717
run: sed -i 's/GITHUB_TOKEN/${{ secrets.GITHUB_TOKEN }}/g' .github/workflows/mlc_config.json
1818
- name: markdown-link-check
19-
uses: gaurav-nelson/github-action-markdown-link-check@master
19+
uses: gaurav-nelson/github-action-markdown-link-check@v1
2020
with:
21-
config-file: '.github/workflows/mlc_config.json'
22-
21+
config-file: '.github/workflows/mlc_config.json'

.gitignore

Lines changed: 8 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,9 @@
1-
!*.xcodeproj/project.pbxproj
2-
!*.xcodeproj/xcshareddata/
3-
!*.xcworkspace/contents.xcworkspacedata
4-
!default.mode1v3
5-
!default.mode2v3
6-
!default.pbxuser
7-
!default.perspectivev3
1+
.build*/
2+
.gemini/
83
*.DS_Store
9-
*.dSYM
10-
*.dSYM.zip
11-
*.hmap
12-
*.ipa
13-
*.mode1v3
14-
*.mode2v3
15-
*.moved-aside
16-
*.pbxuser
17-
*.perspectivev3
18-
*.xccheckout
19-
*.xcodeproj/*
20-
*.xcscmblueprint
21-
._*
22-
.apdisk
23-
.AppleDB
24-
.AppleDesktop
25-
.AppleDouble
26-
.build/
27-
.com.apple.timemachine.donotpresent
28-
.DocumentRevisions-V100
29-
.fseventsd
30-
.idea/
31-
.LSOverride
32-
.Spotlight-V100
33-
.swiftpm/xcode
34-
.TemporaryItems
35-
.Trashes
36-
.VolumeIcon.icns
37-
/*.gcno
38-
build/
39-
DerivedData/
40-
fastlane/Preview.html
41-
fastlane/report.xml
42-
fastlane/screenshots
43-
fastlane/test_output
44-
Icon
45-
Network Trash Folder
46-
playground.xcworkspace
47-
Temporary Items
48-
timeline.xctimeline
49-
xcuserdata/
4+
build*/
5+
# conductor/
6+
gha-creds-*.json
7+
xcuserdata/
8+
contents.xcworkspacedata
9+
conductor

.swiftformat

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# format options
2+
3+
--commas inline
4+
--disable opaqueGenericParameters
5+
--disable preferKeyPath
6+
--exclude .build,.github,.swiftpm,Scripts
7+
--extensionacl on-declarations
8+
--header strip
9+
--ifdef no-indent
10+
--maxwidth 220
11+
--ranges no-space
12+
--self remove
13+
--selfrequired get
14+
--semicolons never
15+
--stripunusedargs closure-only
16+
17+
# file options
18+
19+
--exclude **/**/*.generated.swift
20+
--exclude Tests/**/*.swift

0 commit comments

Comments
 (0)