Conversation
- Update swift-tools-version from 5.1 to 6.1 - Remove redundant Package@swift-5.5.swift (consolidated into Package.swift) - Update minimum deployment targets: - iOS 12 → 15 - macOS 10.10 → 12 - tvOS 12 → 15 - watchOS 5 → 8 - Update podspec Swift version to 6.1 - Remove CoreServices framework dependency (no longer needed) BREAKING CHANGE: Minimum deployment targets have been raised to support Swift 6.1 concurrency features. # Conflicts: # Package.swift
…etection - Remove CoreServices framework usage (deprecated) - Simplify URL+MIME.swift by removing fallback code for pre-macOS 11/iOS 14 - Use UniformTypeIdentifiers exclusively on Apple platforms - Reduce code complexity by ~40 lines - Keep Linux support using file command With minimum deployment targets now at macOS 12+/iOS 15+, we no longer need the CoreServices fallback since UniformTypeIdentifiers is available on all supported OS versions.
- Require Response types to conform to Sendable in ResponseEndpoint protocol - Add Sendable conformance to User test model - Remove redundant Sendable constraint from async function signature BREAKING CHANGE: All ResponseEndpoint.Response types must now conform to Sendable. This enforces Swift 6 concurrency safety at compile time and provides clear error messages at the endpoint definition site rather than at the call site. This design choice improves developer experience by failing fast with clear errors when defining endpoints with non-Sendable response types, rather than discovering issues later when calling async functions.
- Change static var to static let for immutable global state: - APIError+Standard.swift: unhandled property - Test mock Errors.swift: unhandled property - Test files: allTests arrays - Fix SwiftLint violations: - EndpointPublisher: Use proper nesting disable/enable scope - URLRequestBuilder: Remove unneeded synthesized initializer All changes maintain thread safety and resolve Swift 6 strict concurrency checking errors without suppressing warnings.
- Remove macos-10.15.yml (runner no longer available) - Remove macos-11.yml (runner deprecated) - Add macos-14.yml with Xcode 16.2 (supports Swift 6.1) - Update ubuntu-latest.yml to use actions/checkout@v4 - Consolidate to single macOS workflow on latest available runner macOS 14 is the oldest currently supported GitHub Actions runner. Previous runners (macOS 10.15, 11, 13) have been deprecated or removed.
- Update README.md: - Fix workflow badges to reference new macos-14.yml - Remove outdated macos-10.15 and macos-11 badges Documentation now accurately reflects the codebase state and breaking changes introduced in this migration.
Remove Combine support and completion handler-based API in favor of async/await only. This simplifies the codebase and aligns with Swift 6.1 concurrency patterns. BREAKING CHANGE: All completion handler methods and Combine publishers have been removed. Users must migrate to async/await patterns.
Replace wrapper-based async implementation with native URLSession async/await APIs. Remove URLServer+Task.swift helper file and inline necessary logic. Remove redundant Swift version guards and @available attributes since Swift 6.1 is now required. Changes: - Use urlSession.data(for:), urlSession.upload(for:fromFile:), and urlSession.download(for:) directly - Inline buildRequest(endpoint:) and upload file detection - Remove #if swift(>=5.5.2) guards - Remove @available(macOS 10.15, iOS 13, ...) attributes - Delete URLServer+Task.swift (trivial wrappers no longer needed) - Update test mock signatures to async throws
Update Server and URLServer protocols to declare buildRequest as async throws, enabling async operations like token refresh, dynamic configuration, and rate limiting. This addresses GitHub issue #105.
…namic headers Add comprehensive tests showcasing async buildRequest functionality (addressing GitHub issue #105). Tests demonstrate: - Dynamic header fetching with async configuration - Token refresh pattern before request building These tests serve as documentation for the async buildRequest feature.
Update package version to 2.0.0 and comprehensively document the async-only API changes. Changes: - Bump version to 2.0.0 in podspec - Remove Combine weak_frameworks reference - Add comprehensive migration guide in README - Document async buildRequest examples and use cases - Add CLAUDE.md with architecture documentation - Update project description to emphasize Swift Concurrency Migration guide covers: - Completion handlers → async/await - Combine → async/await with Task - buildRequest signature changes - Sendable requirements
- Add RequestConfiguring protocol with async configure method - Add configuring parameter to all call methods in URLServer+Async - Add configuring parameter to download method in URLServer+Download - Add RequestConfiguringTests demonstrating authorization use case This enables use cases like: - Adding authorization headers dynamically - Token refresh before request execution - Per-request rate limiting Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Resolve conflicts favoring our branch. Remove files main brought back that were already deleted (Combine/, Templates/, ResponseTests). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Breaking
Added
Changed
Removed