Skip to content

Declare iOS 15 and add CI - #29

Merged
taplin merged 2 commits into
mainfrom
declare-ios
Oct 6, 2026
Merged

taplin merged 2 commits into
mainfrom
declare-ios

Conversation

@taplin

@taplin taplin commented Oct 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

Declares iOS 15 for Perfect-SQLite and adds CI, matching PerfectlySoft/Perfect-CRUD#85.

  • iOS 15. .iOS(.v15) in Package.swift. iOS uses the SDK's SQLite3 module, like macOS, and no sqlite3_* call needs a newer iOS.
  • CI (.github/workflows/ci.yml):
    • Linux: Swift 6.2 and 6.4, with libsqlite3-dev.
    • macOS: Xcode 26.0.1 and 26.6.
    • Both run debug and release with -warnings-as-errors.
    • iOS: the tests on an iPhone 17 simulator with Xcode 26.6.
    • The iOS job can't use SWIFT_TREAT_WARNINGS_AS_ERRORS. Xcode builds the Perfect-CRUD dependency with warnings suppressed, and the two flags conflict ("Conflicting options").
  • Tests: five transaction results were discarded without _ =. That was the only warning.
  • README: platforms and CI coverage.

Merge order

Merge PerfectlySoft/Perfect-CRUD#85 first, then re-run this PR's CI. Against today's CRUD main, two sets of jobs fail:

  • The macOS Swift 6.2 release jobs hit the CRUD crash that #85 fixes.
  • The iOS job fails because CRUD main declares no iOS platform, so Xcode 26 builds it for iOS 12 and CheckedContinuation doesn't compile.

Testing

With Perfect-SQLite pointed at the CRUD branch, Xcode 26.3: 49/49 in debug, release and the iOS Simulator, warning-free.

With CRUD main:

  • Xcode 27, macOS: 49/49 in debug and release.
  • Xcode 27, iOS Simulator: 49/49.
  • Linux swift:6.4-noble: 49/49 in debug and release.

Note that the tests write to /tmp. That works on the simulator but would not on a device.

🤖 Generated with Claude Code

taplin and others added 2 commits October 5, 2026 12:08
GitHub Actions on every push and pull request: Linux (swift:6.4-noble,
libsqlite3-dev) and macOS, each in debug and release with warnings as
errors, plus the tests on an iOS Simulator. The iOS job can't use
SWIFT_TREAT_WARNINGS_AS_ERRORS: Xcode builds Perfect-CRUD with warnings
suppressed and the two flags conflict.

The tests discarded transaction results without saying so; that was the
only warning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Linux runs Swift 6.2 and 6.4, macOS runs Xcode 26.0.1 and 26.6, each in
debug and release. The iOS job pins Xcode 26.6 and an iPhone 17.

The macOS Swift 6.2 release jobs and the iOS job need Perfect-CRUD's
crud-3-release-prep on main first: CRUD main crashes in Swift 6.2
release builds, and declares no iOS (Xcode 26 then builds it for iOS 12
and fails). Checked against that branch with Xcode 26.3: 49/49 in debug,
release and the iOS Simulator.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@taplin
taplin merged commit 6ef92c6 into main Oct 6, 2026
29 of 36 checks passed
@taplin
taplin deleted the declare-ios branch October 6, 2026 12:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant